__uuidof 演算子
Microsoft 固有の仕様 →
式にアタッチされている GUID を取得します。
__uuidof (
expression
)
解説
式は、その型の型名、ポインター、参照、または配列、それらの型に特化したテンプレート、またはそれらの型の変数にすることができます。 引数は、アタッチされた GUID を見つけるためにコンパイラが使用できる限り有効です。
この組み込みの特殊なケースは、引数として 0 または NULL が指定される場合です。 この場合、__uuidof はゼロで構成された GUID を返します。
このキーワードを使用すると、次のものにアタッチされている GUID を抽出できます。
注意
デバッグ ビルドでは、__uuidof は常にオブジェクトを動的に (実行時に) 初期化します。リリース ビルドでは、__uuidof は静的に (コンパイル時に) オブジェクトを初期化できます。
使用例
次のコード (ole32.lib でコンパイル) は、module 属性で作成されたライブラリ ブロックの uuid を表示します。
// expre_uuidof.cpp
// compile with: ole32.lib
#include "stdio.h"
#include "windows.h"
[emitidl];
[module(name="MyLib")];
[export]
struct stuff {
int i;
};
int main() {
LPOLESTR lpolestr;
StringFromCLSID(__uuidof(MyLib), &lpolestr);
wprintf_s(L"%s", lpolestr);
CoTaskMemFree(lpolestr);
}
コメント
ライブラリ名がスコープ内でなくなった場合は、__uuidof の代わりに __LIBID_ を使用できます。 次に例を示します。
StringFromCLSID(__LIBID_, &lpolestr);
END Microsoft 固有の仕様