__uuidof 演算子

Microsoft 固有の仕様 →

式にアタッチされている GUID を取得します。

__uuidof ( 
   expression  
)

解説

は、その型の型名、ポインター、参照、または配列、それらの型に特化したテンプレート、またはそれらの型の変数にすることができます。 引数は、アタッチされた GUID を見つけるためにコンパイラが使用できる限り有効です。

この組み込みの特殊なケースは、引数として 0 または NULL が指定される場合です。 この場合、__uuidof はゼロで構成された GUID を返します。

このキーワードを使用すると、次のものにアタッチされている GUID を抽出できます。

  • uuid 拡張属性によるオブジェクト。

  • module 属性で作成されたライブラリ ブロック。

注意

デバッグ ビルドでは、__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 固有の仕様

参照

関連項目

単項演算子を含む式

C++ キーワード