__uuidof 演算子__uuidof Operator

Microsoft 固有の仕様Microsoft Specific

式にアタッチされている GUID を取得します。Retrieves the GUID attached to the expression.

構文Syntax

__uuidof (expression)

RemarksRemarks

型名、ポインター、参照、またはその型の配列にすることができます、これらの型、またはこれらの型の変数に特化したテンプレートです。The expression can be a type name, pointer, reference, or array of that type, a template specialized on these types, or a variable of these types. 引数は、アタッチされた GUID を見つけるためにコンパイラが使用できる限り有効です。The argument is valid as long as the compiler can use it to find the attached GUID.

この組み込みの特殊なケースはいつか0か、引数として NULL が指定されています。A special case of this intrinsic is when either 0 or NULL is supplied as the argument. この場合、 _ _uuidofはゼロで構成された GUID を返します。In this case, __uuidof will return a GUID made up of zeros.

このキーワードを使用すると、次のものにアタッチされている GUID を抽出できます。Use this keyword to extract the GUID attached to:

  • オブジェクトによって、 uuid拡張属性。An object by the uuid extended attribute.

  • 作成されたライブラリ ブロック、モジュール属性。A library block created with the module attribute.

注意

デバッグ ビルドで _ _uuidof常に動的に (実行時) にオブジェクトを初期化します。In a debug build, __uuidof always initializes an object dynamically (at runtime). リリース ビルドで _ _uuidof静的 (コンパイル時) にオブジェクトを初期化できます。In a release build, __uuidof can statically (at compile time) initialize an object.

以前のバージョンとの互換性のため _uuidofのシノニムです _ _uuidofしない限り、コンパイラ オプション/Za(言語拡張機能を無効にする)は指定します。For compatibility with previous versions, _uuidof is a synonym for __uuidof unless compiler option /Za (Disable language extensions) is specified.

Example

次のコード (ole32.lib でコンパイル) は、module 属性で作成されたライブラリ ブロックの uuid を表示します。The following code (compiled with ole32.lib) will display the uuid of a library block created with the module attribute:

// 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);
}

コメントComments

ライブラリ名が不要になったスコープ内の場合、使用することができます__LIBID_の代わりに _ _uuidofします。In cases where the library name is no longer in scope, you can use __LIBID_ instead of __uuidof. 例:For example:

StringFromCLSID(__LIBID_, &lpolestr);

Microsoft 固有の仕様はここまでEND Microsoft Specific

関連項目See also

単項演算子を含む式Expressions with Unary Operators
キーワードKeywords