为什么我调用ProgIDFromCLSID得不到ProgID? 奇怪

注册表当中的一个键值是:
HKEY_CLASSES_ROOT\CLSID\{E0FA581D-2188-11D2-A739-00C04FA377A1}

我的代码是:
C/C++ code

#include "stdafx.h"
#include<objbase.h>
#pragma comment(lib,"ole32.lib")
int _tmain(int argc, _TCHAR* argv[])
{
    //HKEY_CLASSES_ROOT\CLSID\{E0FA581D-2188-11D2-A739-00C04FA377A1}, copied from regedit
    CLSID id={0xE0FA581D,0x2188,0x11D2,{0xA739,00,0xC0,0x4F,0xA3,0x77,0xA1}};
    OLECHAR* progId;
    HRESULT ret=ProgIDFromCLSID(id,&progId);
    OutputDebugStringW(progId);
    return 0;
}


结果ret返回非S_OK,Debug提示Class not regiestered.

这是为什么呢,我的字符串拆开的时候没有错啊。

作者: erefdx   发布时间: 2011-06-13

注册表里面有ProgID的entry吗?

作者: gw_net   发布时间: 2011-06-13