描述:
IStream * g_I = NULL;
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
CoInitialize(NULL);
IUnknownPtr a;
HRESULT k = CoGetInterfaceAndReleaseStream(g_I, __uuidof(cccvvvLib::IB), (LPVOID *)&a);
cccvvvLib::IBPtr b = a;
for ( int i = 0; i < 500; ++i)
{
b->fun(); //调用在这就不动了,不知道为什么?
}
CoUninitialize();
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
cccvvvLib::IBPtr a(L"cccvvv.B");
IUnknownPtr b = a;
HRESULT k = CoMarshalInterThreadInterfaceInStream(__uuidof(cccvvvLib::IB), b, &g_I);
HANDLE u = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
for ( int i = 0; i < 500; ++i)
{
a->fun(); //调用没问题
}
WaitForSingleObject(u, INFINITE);
cout << a->fun();
return 0;
}

