/*
套间线程
*/
LONG PostFileThreadFunction(LPVOID pParam)
{
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if ( FAILED(hr) )
{
AfxMessageBox("初始化COM失败");
return 0;
}
IStream *pStream = (IStream*)pParam;
IMarshalMsg* pTest;
if(FAILED(::CoGetInterfaceAndReleaseStream(pStream,IID_IMarshalMsg,(void**)&pTest)))//散集指针
{
AfxMessageBox("散集指针失败");
return 0;
}
pTest->InvokeJs();
CoUninitialize();//
return 0;
}主线程函数:
STDMETHODIMP CMarshalMsg::ShowMsg()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
DWORD dwID;
IMarshalMsg* p;//指针
IStream* pStream;
CoMarshalInterThreadInterfaceInStream(IID_IMarshalMsg,this,&pStream);//列集指针
CreateThread(NULL,NULL,
(LPTHREAD_START_ROUTINE)PostFileThreadFunction,
(LPVOID)pStream,
NULL,
&dwID);
return S_OK;
}
COM接口跨线程调用


5万+

被折叠的 条评论
为什么被折叠?



