IX *pIX = null;
HRESULT gr = ::CoCreateInstance(CLSID_Component1,
NUll,
CLSCTX_INPROC_SERVER,
IID_IX,
(void**)&pIX);
if(SUCCEEDED(hr))
{
pIX->Fx();
pIX->Release();
}能解释一下 void**)&pIX 的意思吗?
HRESULT gr = ::CoCreateInstance(CLSID_Component1,
NUll,
CLSCTX_INPROC_SERVER,
IID_IX,
(void**)&pIX);
if(SUCCEEDED(hr))
{
pIX->Fx();
pIX->Release();
}能解释一下 void**)&pIX 的意思吗?
NUll,
CLSCTX_INPROC_SERVER,
IID_IX,
(void**)&pIX);
=====================
根据要求的IID 返回接口
(void**)&pIx 强制转换
=======
pIX本身是一个地址,&pIX就是取这个指针的指针。它相当于IX **(如果pIX指向的对象叫IX的话)(void**), 就是把它强制转换为void **, 使编译时不报错。当然了,IX **和void **可以说是同一回事。所以这样转化没有任何问题。
所以在 对 pIX & 操作后, 得到是2级指针, 类型为 IX ** ,
然后强制转换该 2 级指针为 void **。这个转换的目的,
是因为 CoCreateInstance 方法要求参数的类型为 void 的...