为什么在多线程调用的函数中 HRESULT hres = CoInitializeEx(0, COINIT_MULTITHREADED); 失败?解决办法

为什么在多线程调用的函数中 HRESULT hres = CoInitializeEx(0, COINIT_MULTITHREADED); 失败?
创建10个线程,为什么第一个是正常的,不会打印现“失败”,以后的线程全部打印“失败”?

for(int   i=0;i <10;i++){
        threads[i]   =   CreateThread(NULL,0,FunProc,NULL,0,NULL);
        Sleep(100);
}

DWROD   WINAPI   FunProc(LPVOID   lpPara){

        HRESULT   hres   =     CoInitializeEx(0,   COINIT_MULTITHREADED);  

        if   (FAILED(hres))
        {
                cout   < <   "失败 "  
                        < <   hex   < <   hres   < <   endl;
ClearThreadAndIp(ip);
                return   1;
        }
}

谢谢!

------解决方案--------------------
我猜想是每个进程中初始化一次即可