小编Cod*_*Cat的帖子

如何使用CoCreateInstance()来获取com对象?

我注册了一个COM组件.我想打电话给它.

CLSID clsid;
RIID iid;
HRESULT hr = CLSIDFromProgID(OLESTR("se.mysoft"),&clsid);
LPVOID *pRet;
HRESULT hr1 = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, iid, pRet);
Run Code Online (Sandbox Code Playgroud)

我可以获得成功的clsid,但我在哪里可以得到iid?

我用OLE VIEWER查找界面:

 [
 odl,
 uuid(F3F54BC2-D6D1-4A85-B943-16287ECEA64C),
 helpstring("Isesoft Interface"),
 dual,
 oleautomation
 ]
 interface Isesoft : IDispatch {
Run Code Online (Sandbox Code Playgroud)

然后我改变了我的代码:

CLSID clsid;
RIID iid;
IDispatch* pDispatch;
HRESULT hr = CLSIDFromProgID(OLESTR("se.mysoft"),&clsid);
HRESULT hr1 = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER,  IID_IDispatch,(void **)&pDispatch);
Run Code Online (Sandbox Code Playgroud)

但hr1返回失败.

c++ com mingw

7
推荐指数
1
解决办法
3万
查看次数

标签 统计

c++ ×1

com ×1

mingw ×1