IDL 属性

従来、.idl ファイルの管理とは次のことを意味していました。

  • .idl ファイルを変更するための、構造と構文の詳しい知識を持っている。

  • .idl ファイルを部分的に変更するウィザードを使用する。

Visual C++ の IDL 属性を使用しているソース コード ファイル内から .idl ファイルを変更できるようになりました。多くの場合、Visual C++ の IDL 属性の名前は MIDL 属性と同じです。Visual C++ の IDL 属性と MIDL 属性の名前が同じ場合、ソース コード ファイルに Visual C++ 属性を入れると、同名の MIDL 属性を含む .idl ファイルが作成されます。ただし、Visual C++ の IDL 属性が MIDL 属性のすべての機能を備えているわけではありません。

COM 属性と共に使用しない場合、IDL 属性によりインターフェイスを定義できます。IDL 属性は、ソース コードのコンパイル時に生成される .idl ファイルを定義するために使用されます。ATL プロジェクトで COM 属性と共に使用する場合、coclass などの IDL 属性はプロジェクトにコードを挿入します。

idl_quote では、現在のバージョンの Visual C++ でサポートされていない MIDL コンストラクトを使用できます。さらに、importlibincludelib などの属性は、現在のバージョンの Visual C++ プロジェクトで既存の .idl ファイルを使用する場合に役立ちます。

属性

説明

aggregatable

あるコントロールが別のコントロールによって集約できることを示します。

appobject

コクラスを完全な EXE アプリケーションに関連付けられているアプリケーション オブジェクトとして識別し、コクラスの関数とプロパティがこのタイプ ライブラリでグローバルに使用できることを示します。

async_uuid

MIDL コンパイラに対して、COM インターフェイスの同期インターフェイスと非同期インターフェイスの両方を定義するように指示する UUID を指定します。

bindable

プロパティがデータ連結をサポートすることを示します。

call_as

リモートに実行できない関数をリモート関数にマップできるようにします。

case

共用体の switch_type 属性と一緒に使用します。

coclass

.idl ファイルにクラス定義をコクラスとして配置します。

control

ユーザー定義型がコントロールであることを指定します。

cpp_quote

指定した文字列を生成されるヘッダー ファイルに引用符なしで出力します。

defaultbind

オブジェクトを最もよく表している、1 つの連結できるプロパティを示します。

defaultcollelem

Visual Basic コードの最適化処理に使用します。

defaultvalue

型付きのオプション パラメータに既定値を指定できます。

default

コクラスで定義されたカスタムまたはディスパッチ インターフェイスが、既定のプログラム可能なインターフェイスを表すことを示します。

defaultvtable

コントロールの既定の vtable インターフェイスとしてインターフェイスを定義します。

dispinterface

.idl ファイルにインターフェイスをディスパッチ インターフェイスとして配置します。

displaybind

ユーザーに連結可能として表示するプロパティを指定します。

dual

.idl ファイルにインターフェイスをデュアル インターフェイスとして配置します。

entry

DLL のエントリ ポイントを識別することによって、モジュール内でエクスポートされた関数または定数を指定します。

first_is

転送する最初の配列要素のインデックスを指定します。

helpcontext

ユーザーがこの要素に関するヘルプ ファイルの情報を表示できるようにするためのコンテキスト ID を指定します。

helpfile

タイプ ライブラリのヘルプ ファイルの名前を設定します。

helpstringcontext

.hlp ファイルまたは .chm ファイルのヘルプ トピックの ID を指定します。

helpstringdll

ドキュメントの文字列を検索するときに使用する DLL の名前を指定します (ローカリゼーション)。

helpstring

適用先の要素の記述に使用される文字列を指定します。

hidden

項目は存在しても、ユーザー指向ブラウザに表示されないことを示します。

idl_module

DLL のエントリ ポイントを指定します。

idl_quote

現在のバージョンの Visual C++ ではサポートされていない属性または IDL コンストラクトを使用できます。

id

メンバ関数の DISPID を指定します (インターフェイスまたはディスパッチ インターフェイスのプロパティまたはメソッド)。

iid_is

インターフェイス ポインタが指す COM インターフェイスの IID を指定します。

immediatebind

データ連結オブジェクトのプロパティに対するすべての変更が、直ちにデータベースに通知されることを示します。

importlib

既にほかのタイプ ライブラリにコンパイルされている型を、これから作成するタイプ ライブラリで使用できるようにします。

import

メイン .idl ファイルから参照する定義が含まれる、別の .idl ファイル、.odl ファイル、またはヘッダー ファイルを指定します。

include

生成される .idl ファイルにインクルードする 1 つ以上のヘッダー ファイルを指定します。

includelib

.idl または .h ファイルが、生成される .idl ファイルにインクルードされます。

in

パラメータが、呼び出し元のプロシージャから呼び出し先のプロシージャに渡されることを示します。

last_is

転送する最後の配列要素のインデックスを指定します。

lcid

関数にロケール識別子を渡すことができます。

length_is

転送する配列要素の数を指定します。

licensed

適用対象のコクラスがライセンスされており、IClassFactory2 を使用してインスタンスを生成する必要があることを示します。

local

インターフェイス ヘッダーで使用するときに、MIDL コンパイラをヘッダー ジェネレータとして使用できます。個別の関数で使用する場合は、スタブが生成されないローカル プロシージャを指定します。

max_is

有効な配列インデックスの最大値を指定します。

module

.idl ファイルのライブラリ ブロックを定義します。

ms_union

カプセル化されていない共用体の、ネットワーク データ表現の整列を制御します。

no_injected_text

属性を使用したときにコードが挿入されないようにします。

nonbrowsable

インターフェイス メンバをプロパティ ブラウザに表示しないことを示します。

noncreatable

自身でインスタンスを作成できないオブジェクトを定義します。

nonextensible

IDispatch の実装に、インターフェイスの記述に含まれているプロパティおよびメソッドだけが含まれるようにして、実行時にメンバを追加して拡張できないように指定します。

object

カスタム インターフェイス (カスタム属性と同義) を識別します。

odl

インターフェイスをオブジェクト記述言語 (ODL) インターフェイスとして識別します。

oleautomation

インターフェイスがオートメーションと互換であることを示します。

optional

メンバ関数の省略可能なパラメータを指定します。

out

呼び出されたプロシージャから呼び出したプロシージャに (サーバーからクライアントに) 返される、ポインタ パラメータを識別します。

pointer_default

パラメータ リストに表示される最上位のポインタを除くすべてのポインタの既定のポインタ属性を指定します。

pragma

指定した文字列を生成される .idl ファイルに引用符なしで出力します。

progid

COM オブジェクトの ProgID を指定します。

propget

プロパティ アクセサ (get) 関数を指定します。

propputref

値ではなく参照を使用するプロパティ設定関数を指定します。

propput

プロパティ設定関数を指定します。

ptr

ポインタを完全ポインタとして指定します。

public

.idl ファイル内から参照されていない場合でも、typedef がタイプ ライブラリを参照するようにします。

range

実行時に値が設定される引数またはフィールドについて、許容値の範囲を指定します。

readonly

変数に対する代入を禁止します。

ref

参照ポインタを識別します。

requestedit

プロパティが OnRequestEdit 通知をサポートすることを示します。

restricted

ライブラリ、モジュールのメンバ、インターフェイス、またはディスパッチ インターフェイスを任意に呼び出すことができないように指定します。

retval

メンバの戻り値を受け取るパラメータを指定します。

size_is

サイズ付きポインタ、サイズ付きポインタを指すサイズ付きポインタ、および 1 次元または多次元の配列に割り当てるメモリのサイズを指定します。

source

クラスのメンバ、プロパティ、またはメソッドがイベントのソースであることを示します。

string

1 次元の char、wchar_t、byte、または同等の配列、あるいはその配列へのポインタを文字列として扱う必要があることを示します。

switch_is

共用体のメンバを選択する共用体判別変数として機能する式または識別子を指定します。

switch_type

共用体の判別変数として使用される変数の型を識別します。

transmit_as

クライアント アプリケーションとサーバー アプリケーションが操作する表現型を転送型と関連付けるようにコンパイラに指示します。

uidefault

型情報メンバがユーザー インターフェイスに表示する既定メンバであることを示します。

unique

一意のポインタを指定します。

usesgetlasterror

関数の呼び出し時にエラーが発生すると呼び出し元に通知します。呼び出し元は、GetLastError を呼び出してエラー コードを取得できます。

uuid

クラスまたはインターフェイスの一意の ID を指定します。

v1_enum

指定された列挙型を既定の 16 ビットではなく 32 ビットの要素として転送するように指示します。

vararg

関数が可変個の引数を取るように指定します。

vi_progid

バージョンに依存しない ProgID の形式を指定します。

wire_marshal

転送時にアプリケーション固有のデータ型の代わりに使用するデータ型を指定します。

参照

概念

グループ別の属性

属性に関する制限事項