IDL プロパティを追加する
[IDL プロパティの追加] ウィザードでは、インターフェイス定義ライブラリ (IDL) で定義されているインターフェイスにプロパティを追加します。たとえば、.idl
ファイルを含む ATL プロジェクトなどです。 このウィザードは、MFC をサポートするプロジェクトでは使用できません。
このウィザードは、プロパティの追加ウィザードや IDL MFC プロパティの追加ウィザードとは以下の点で異なります。
- プロパティの追加ウィザードでは、プロジェクトのインターフェイスにプロパティを追加します。
- IDL MFC プロパティの追加ウィザードは、MFC をサポートする MFC、ActiveX、または ATL プロジェクトに固有のものです。
IDL プロパティを追加するには
[表示] メニューの [クラス ビュー] を選択します。
クラス ビューで、プロパティを追加するインターフェイスを右クリックします。
注意
プロジェクトに属性が設定されていない限り、ライブラリ ノード内で入れ子にされるディスパッチ インターフェイスに、プロパティを追加することもできます。
インターフェイス名を右クリックします。
ショートカット メニューから、[追加]>[プロパティの追加] を選びます。
IDL プロパティの追加ウィザードで、情報を指定してプロパティを作成します。
[OK] を選んで、プロパティを追加します。
プロパティの Get
メソッドと Put
メソッドは、定義されているインターフェイスの下のクラス ビューに 2 つのアイコンとして表示されます。 いずれかのアイコンをダブルクリックして、.idl
ファイルでのプロパティの宣言を確認します。
ATL インターフェイスの場合、Get
と Put
関数は、.cpp
と .h
ファイルに追加されます。
IDL プロパティの追加ウィザード
次のセクションでは、IDL プロパティの追加に使用する UI について説明します。
プロパティ名
プロパティの名前を設定します。
プロパティの型
プロパティのデータ型。
戻り値の型
ATL インターフェイスの場合、プロパティの戻り値の型を設定します。 デュアル インターフェイスの場合、戻り値の型は常に
HRESULT
であり、選択オプションは使用できません。 カスタム インターフェイスの場合、リストから戻り値の型を選択できます。 その場合でも、エラーを返す標準的な方法が提供されているため、HRESULT
をお勧めします。Get 関数
ATL インターフェイスの場合、プロパティの値を取得するための
Get
メソッドを作成します。 Get、Put、またはその両方を選択します。Put 関数
ATL インターフェイスの場合、プロパティの値を設定するための
Put
メソッドを作成します。 Get、Put、またはその両方を選択します。 [Put 関数] をオンにした場合、メソッドの実装方法として次の 2 つのどちらかを選ぶことができます。オプション 説明 propput
PropPut
関数は、オブジェクトのコピーを返します。 propput が既定値で、プロパティを書き込み可能にする最も一般的な方法です。propputref
PropPutRef
関数は、オブジェクト自体のコピーを返すのではなく、オブジェクトへの参照を返します。propputref
オプションは、初期化のオーバーヘッドが発生するおそれがある、大規模な構造体や配列などのオブジェクトに対して使用することを検討してください。パラメーター
プロパティに追加されるパラメーターのリストが表示されます。 リスト内の各項目は、パラメーター名、パラメーターの型、および属性で構成されます。
in
は、パラメーターが呼び出し元のプロシージャから呼び出されたプロシージャに渡されることを示します。out
は、ポインター パラメーターが呼び出されたプロシージャから呼び出し元のプロシージャに (サーバーからクライアントに) 返されることを示します。+
パラメーターを追加します。 [パラメーター] に、パラメーターの型と名前を入力します。 たとえば「
int x
」などとして、[OK] を選びます。x
[パラメーター] から、選んだパラメーターを削除します。
鉛筆アイコン
選んだパラメーターを編集します。
属性
helpcontext
コンテキスト ID を指定します。ユーザーはヘルプ ファイルでこのプロパティに関する情報を参照できます。 詳細については、「
helpcontext
」を参照してください。helpstring
適用先となる要素を記述するために使用される文字列を指定します。 既定では、
property
Property name に設定されます。 詳細については、「helpstring
」を参照してください。id
プロパティを識別する数値識別子を設定します。 このオプションは、カスタム インターフェイスのプロパティでは使用できません。 詳細については、「
id
」を参照してください。
- 追加の属性
Microsoft インターフェイス定義言語 (MIDL) のキーワードについては、MIDL 言語リファレンスに関する記事で詳しく説明されています。
オプション | 説明 |
---|---|
bindable |
プロパティがデータ バインディングをサポートすることを示します。 詳細については、「bindable 」を参照してください。 |
defaultbind |
これがオブジェクトを最もよく表す 1 つのバインド可能なプロパティであることを示します。 詳しくは、defaultbind に関する記事をご覧ください。 |
defaultcollelem |
プロパティが既定コレクションの要素に対するアクセサー関数であることを示します。 詳細については、「defaultcollelem 」を参照してください。 |
displaybind |
このプロパティをユーザーにバインド可能として表示する必要があることを示します。 詳細については、「displaybind 」を参照してください。 |
hidden |
プロパティは存在しますが、ユーザー指向ブラウザーでは表示されないことを示します。 詳細については、「hidden 」を参照してください。 |
immediatebind |
データ バインディング オブジェクトのこのプロパティに対するすべての変更が、すぐにデータベースに通知されることを示します。 詳細については、「immediatebind 」を参照してください。 |
local |
プロパティがリモートでないことを MIDL コンパイラに対して指定します。 詳細については、「local 」を参照してください。 |
nonbrowsable |
プロパティ ブラウザーに表示してはならない interface または dispinterface メンバーにタグを付けます。 詳細については、「nonbrowsable 」を参照してください。 |
requestedit |
OnRequestEdit 通知がプロパティでサポートされることを示します。 詳細については、「requestedit 」を参照してください。 |
restricted |
プロパティを任意に呼び出せないことを指定します。 詳細については、「restricted 」を参照してください。 |
source |
プロパティのメンバーがイベントのソースであることを示します。 詳細については、「source 」を参照してください。 |