2013-02-08 25 views

回答

1

我會使用UuidFromString - CLSIDFromString的文檔明確指出,它的目的是將由StringFromCLSID生成的字符串轉換回CLSID

即使兩個函數的行爲是相同的(並且我懷疑它可能不被 - 考慮,例如,CLSIDFromString可以返回REGDB_E_CLASSNOTREG指示類沒有被登記或REGDB_E_READREGDB,其指示一個註冊表I/O錯誤)區分CLSID和您自己的內部對象是很好的做法。

+0

謝謝@Nik。在辦公室進一步討論之後,我們現在懷疑CLSIDFromString需要返回REGDB_E_CLASSNOTREG的原因是它可能接受OLE類名以及字符串參數中的GUID。 無論如何,使用UuidFromString幾乎肯定更安全。 – 2013-02-11 14:43:37

1

雷蒙德陳answers this

Uuid­From­String

讓我們先從UuidFromString。它需要一個基本形式的字符串 沒有大括號。作爲一種特殊情況,如果您通過NULL而不是 有效的字符串指針,該函數仍會成功,並將結果 設置爲GUID_NULL。

CLSID­From­String

稍微複雜是CLSIDFromString。除 接受括號封閉的字符串(將其視爲GUID)之外, 還接受ProgId。在ProgId情況下,它返回與該ProgId關聯的CLSID 。

相關問題