CoCretaeInstance 失败,但CoGetClassObject成功解决方案

CoCretaeInstance 失败,但CoGetClassObject成功
我写了一个组件,用CoGetClassObject可以成功使用,而CoCretaeInstance就失败了,好奇怪!

CoCretaeInstance代码:
CoInitialize(NULL);

HRESULT hr = 0;

IFirstCOM* pIFirstCOM = NULL;
// 下面这句挂了,挂载ole32.dll里面。我自己的代码都运行完了。
hr = CoCreateInstance(CLSID_CFirstCOM, NULL, CLSCTX_INPROC_SERVER, IID_IFirstCOM, (void**)&pIFirstCOM);
if ( SUCCEEDED(hr) )
{
pIFirstCOM->ShowMsg(L"111");

pIFirstCOM->Release();
}

CoUninitialize();



CoGetClassObject代码:
CoInitialize(NULL);

HRESULT hr = 0;
IClassFactory* pIClassFactory = NULL;

hr = CoGetClassObject(CLSID_CFirstCOM, CLSCTX_INPROC_SERVER, NULL, IID_IClassFactory, (void**)&pIClassFactory);
if ( SUCCEEDED(hr) )
{
IFirstCOM* pIFirstCOM = NULL;

hr = pIClassFactory->CreateInstance(NULL, IID_IFirstCOM, (void**)&pIFirstCOM);
if ( SUCCEEDED(hr) )
{
pIFirstCOM->ShowMsg(L"111");

pIFirstCOM->Release();
}

pIClassFactory->Release();
}

CoUninitialize();

------解决方案--------------------
hr = CoCreateInstance(CLSID_CFirstCOM, NULL, CLSCTX_INPROC_SERVER, IID_IFirstCOM, (void**)&pIFirstCOM);

红色那个ID如果改成IID_IUnknown呢?
------解决方案--------------------
创建对象实例失败了