怎样获取当前线程所处的COM线程模型呢?(是STA还是MTA) 怎样获取当前线程所处的COM线程模型呢?(是STA还是MTA) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HRESULT hr = CoInitialize(NULL);if (hr == S_OK) // 线程还没有执行COM初始化{ CoUninitialize();}else if (hr == S_FALSE) // 线程已初始化为STA{ CoUninitialize();}else // if (hr == RPC_E_CHANGED_MODE) // 线程已初始化为MTA{} 在线程的局部存储中有没有关于COM套间的信息呢?? 为什么取不到啊??既然CoInitialize可以判断已进入套间,我想应该有相应的函数可以帮忙的,但就是找不到 没错,CoInitialize可以判断,但这是系统API,内部过程是不开放的,也确实没有别的API来判断,因为CoInitialize的返回值就能帮你判断出来。 可以在注册表的HKEY_CLASSES_ROOT\CLSID\{Class ID of the COM component} \InProcServer32 下查看到该COM的线程模式。如果该值是Apartment,则说明该COM只能以STA模式运行。其他的值有Free(MTA),Both(STA+MTA),Single(只能在一个单一的线程中执行)。 Invalidate闪屏问题 哪个好人帮我下点东西啊,我怎么也下不下来 怎样从图片文件中截取图片 我使用VC6自创建VIEW使用CView::OnFilePrintPreview();出错时为什么? 请问一个线程问题? 兄弟们,帮帮忙!遇到点麻烦(在线 ) 如何用指针代替数组 使用线程的时候内存出错,大虾帮忙! 急问:谁有pos3和smtp协议的包的具体格式或相关资料啊?坚决给分的 高手们帮看看,有什么问题?有关socket的。。。。 [求助]用vc作播放器的进度条(CSliderCtrl类)? 高手赐教!!! IDL文件中如何使用自定义的编译选项?
if (hr == S_OK) // 线程还没有执行COM初始化
{
CoUninitialize();
}
else if (hr == S_FALSE) // 线程已初始化为STA
{
CoUninitialize();
}
else // if (hr == RPC_E_CHANGED_MODE) // 线程已初始化为MTA
{
}