我只想仔细检查哪一个正确用于内部生成的与COM类无关的GUID。
我怀疑它是UuidFromString,但我一直看到使用CLSIDFromString的代码。我有一个模糊的回忆,CLSIDFromString可能会枚举注册表中列出的COM类,但我不确定这是否正确。
答案 0 :(得分:1)
我会使用UuidFromString
- CLSIDFromString
的文档明确声明其目的是将StringFromCLSID
生成的字符串转换回CLSID
。
即使这两个函数的行为是相同的(我怀疑它可能不是 - 例如,考虑CLSIDFromString
可以返回REGDB_E_CLASSNOTREG
表示该类未注册或{{ 1}}表示注册表I / O错误)区分REGDB_E_READREGDB
和您自己的内部CLSID
对象是一种很好的做法。
答案 1 :(得分:1)
Raymond Chen answers this:
UuidFromString
:
让我们从UuidFromString开始。它采用基本形式的字符串 没有花括号。作为一种特殊情况,如果传递NULL而不是a 有效的字符串指针,该函数仍然成功并设置结果 到GUID_NULL。
CLSIDFromString
:
CLSIDFromString稍微复杂一点。此外 它接受一个括号括起来的字符串(被视为GUID) 也接受ProgId。在ProgId的情况下,它返回CLSID 与该ProgId相关联。