__uuidof の演算子

Microsoft 固有の仕様 →

式に割り当てられた GUID を取得します。

__uuidof (
   expression 
)

解説

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

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

アタッチされた GUID を抽出するためこのキーワードの使用 :

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

  • モジュール の属性で作成されたライブラリ ブロック。

[!メモ]

デバッグ ビルドでは__uuidof は常にオブジェクトを動的に初期化されます (実行時に)。リリース ビルドでは__uuidof () コンパイル時に静的にオブジェクトを初期化できます。

使用例

次のコードはole32.lib としてコンパイルされたモジュール属性で作成されたライブラリ ブロックに 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);

終了 Microsoft 固有の仕様→

参照

関連項目

単項演算子との式

C++ のキーワード