比如说网上我找到一个简单的示例,
com 中有这么一个接口
STDMETHODIMP CBB::get(LONG* pVal)
{
return m_Val;
}
我在其他工程中这样调用
CComPtr<IDispatch> pIMyMath;
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
hr = pIMyMath.CoCreateInstance(L"AA.BB.1");
if (FAILED(hr))
{
printf("CoCreateInstance failed");
goto end;
}
printf("succeed\n");
VARIANT vOut;
VariantInit(&vOut);
DISPPARAMS dispParam = {NULL, NULL, 0, 0 };
hr = pIMyMath->Invoke(1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD | DISPATCH_PROPERTYGET, &dispParam, &vOut, NULL, NULL);
if(FAILED(hr))
{
printf("FAILED");
}
printf("%d\n",vOut.lVal);
VariantClear(&vOut);
pIMyMath = NULL;
end:
CoUninitialize();
getchar();
return 0;
}
这样结果就到vOut里找就行了,但是如果我的接口是 比如 STDMETHODIMP CBB::Get(LONG* ret1,LONG* ret2 ,LONG* ret3)这种需要多个传出的呢,该怎么得到结果?求示例,另外求一下如何得到结构体,万分感谢!!!