在线程中创建COM对象

时间:2012-05-02 12:16:17

标签: c++ multithreading com

我有一个按钮,在该按钮后面我创建了一个线程,

void FunctionCallingThreadFunction()
{
    AfxBeginThread(MyFunction, NULL);
}

在MyFunction中,我正在创建一个COM对象,但是当我创建它的实例时,null返回给我,

MyFunction(LPVOID pvParam)
{
    comObject.CreateInstance(__uuidof(ClassName), NULL, CLSCTX_INPROC_SERVER);
}

但是如果我在原始函数中创建这个comObject,它就可以很好地创建了

什么是问题?,

2 个答案:

答案 0 :(得分:2)

在尝试创建实例之前,您需要在每个线程中调用CoInitialize()

答案 1 :(得分:2)

您需要在使用COM的每个线程中调用CoInitializeEx