CoInitialize( NULL );//初始化Com调用,或者说启动Com调用的能力
//获取要调用Com组件的clsid,当然这个clsid也可以直接提供
HRESULT hr = ::CLSIDFromProgID( L"Chapter2.Math.1", &clsid );
//通过com组件的clsid取得这个组件的类工厂指针,
hr = CoGetClassObject( clsid,
CLSCTX_INPROC,
NULL,
IID_IClassFactory,
(void**) &pCF );
//通过这个指针获取一个IUnknown接口
hr = pCF->CreateInstance( NULL, IID_IUnknown, (void**) &pUnk );
//得到IUnknown接口后,类工厂指针就可以释放了
pCF->Release();
//通过IUnknown指针和接口的guid获取一个接口指针
hr = pUnk->QueryInterface( IID_IMath, (LPVOID*)&pMath );
//如果使用完成,可以释放IUnknown。
pUnk->Release();
//使用接口,这就是以上步骤的最终目的
pMath->Multiply( 100, 8, &result );
//收尾,释放Com组件。
CoUninitialize();
Com调用流程
最新推荐文章于 2023-10-24 14:22:24 发布