Com调用流程

   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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值