使用法別の属性
このトピックでは、適用される C++ 言語要素に従って属性を示します。
属性のスコープ内にない要素の前に属性がある場合、属性ブロックはコメントとして扱われます。
属性 | 説明 |
---|---|
モジュール属性 | module 属性に適用されます。 |
インターフェイス属性 | __interface C++ キーワードに適用されます。 |
クラス属性 | C++ のキーワードに適用されます。 |
メソッド属性 | クラス、コクラス、またはインターフェイスのメソッドに適用されます。 |
パラメーター属性 | クラスまたはインターフェイスのメソッドのパラメーターに適用されます。 |
データ メンバー属性 | クラス、コクラス、またはインターフェイスのデータ メンバーに適用されます。 |
Typedef、Enum、Union、および Struct 型の属性 | C++ のキーワードに適用されます。 |
配列属性 | 配列または SAFEARRAY に適用されます。 |
スタンドアロン属性 | コード行のように動作しますが、C++ のキーワードでは動作しません。 スタンドアロンの属性ステートメントでは、行の末尾にセミコロンが必要です。 |
カスタム属性 | ユーザーがメタデータを拡張できるようにします。 |
モジュール属性
次の属性は、module 属性にのみ適用できます。
属性 | 説明 |
---|---|
helpstringdll | ドキュメント文字列参照 (ローカリゼーション) を実行するために使用する DLL の名前を指定します。 |
インターフェイス属性
次の属性は、interface (または __interface) C++ キーワードに適用されます。
属性 | 説明 |
---|---|
async_uuid | COM インターフェイスの同期と非同期の両方のバージョンを定義するように MIDL コンパイラに指示する UUID を指定します。 |
custom | 独自の属性を定義できるようにします。 |
dispinterface | ディスパッチ インターフェイスとしてインターフェイスを .idl ファイルに配置します。 |
dual | デュアル インターフェイスとしてインターフェイスを .idl ファイルに配置します。 |
export | データ構造を .idl ファイルに配置します。 |
helpcontext | この要素に関するヘルプ ファイルの情報をユーザーに表示するコンテキスト ID を指定します。 |
helpfile | タイプ ライブラリのヘルプ ファイルの名前を設定します。 |
helpstring | 適用先となる要素を記述するために使用される文字列を指定します。 |
helpstringcontext | .hlp または .chm ファイル内のヘルプ トピックの ID を指定します。 |
helpstringdll | ドキュメント文字列参照 (ローカリゼーション) を実行するために使用する DLL の名前を指定します。 |
非表示 | 項目は存在しますが、ユーザー指向ブラウザーでは表示されないことを示します。 |
library_block | .idl ファイルのライブラリ ブロック内にコンストラクトを配置します。 |
local | インターフェイス ヘッダーで使用する場合は、MIDL コンパイラをヘッダー ジェネレーターとして使用できます。 個々の関数で使用する場合は、スタブが生成されないローカル プロシージャを指定します。 |
nonextensible | IDispatch 実装に、インターフェイスの説明に記載されているプロパティとメソッドのみが含まれ、実行時にメンバーを追加して拡張できないことを指定します。 この属性は、dual インターフェイスでのみ有効です。 |
odl | インターフェイスをオブジェクト記述言語 (ODL) インターフェイスとして識別します。 |
object | カスタム インターフェイスを識別します。 |
oleautomation | インターフェイスが Automation と互換性を持つかどうかを示します。 |
pointer_default | パラメーター リストに表示される上位レベルのポインターを除く、すべてのポインターの既定のポインター属性を指定します。 |
ptr | ポインターを完全ポインターとして指定します。 |
restricted | 任意に呼び出せないライブラリのメンバーを指定します。 |
uuid | ライブラリの一意の ID を提供します |
インターフェイスを定義するには、次の規則に従う必要があります。
既定の呼び出し規約は __stdcall です。
GUID を指定しない場合は、GUID が指定されます。
オーバーロードされたメソッドは許可されません。
uuid 属性を指定しない場合、異なる属性プロジェクトで同じインターフェイス名を使用すると、同じ GUID が生成されます。