COM クラスとは関係のない、内部生成された GUID に使用するのにどちらが正しいかを再確認したいと思います。
私の疑いでは、それは UuidFromString ですが、CLSIDFromString を使用するコードが引き続き見られます。CLSIDFromString がレジストリにリストされている COM クラスを列挙する可能性があるという漠然とした記憶がありますが、これが正しいかどうかはわかりません。
Raymond Chenは次のように答えています。
UuidFromString
:
UuidFromString から始めましょう。中かっこのない基本的な形式の文字列を取ります。特殊なケースとして、有効な文字列ポインターの代わりに NULL を渡した場合でも、関数は成功し、結果を GUID_NULL に設定します。
CLSIDFromString
:
CLSIDFromString はもう少し複雑です。中かっこで囲まれた文字列 (GUID として扱われる) を受け入れるだけでなく、ProgId も受け入れます。ProgId の場合、その ProgId に関連付けられた CLSID を返します。
私は使用しますUuidFromString
- のドキュメントにCLSIDFromString
は、生成されStringFromCLSID
た文字列をCLSID
.
CLSIDFromString
2 つの関数の動作が同一である場合でも (そうではない可能性があると思います。たとえば、REGDB_E_CLASSNOTREG
クラスが登録されていないREGDB_E_READREGDB
ことを示したり、レジストリ I/O エラーを示したりすることを考えてください)、 aCLSID
および独自の内部GUID
オブジェクト。