タイプ ライブラリへのプロパティとメソッドの追加
タイプ ライブラリ エディタの使用 への移動
インターフェイスまたはディスパッチ インターフェイスにプロパティやメソッドを追加するには:
- インターフェイスを選択し、ツールバーの[プロパティの新規作成]アイコンまたは[メソッドの新規作成]アイコンをクリックします。プロパティの追加時には、[プロパティの新規作成]アイコンをそのままクリックして読み取り/書き込みプロパティ(取得アクセサ メソッドと設定アクセサ メソッドの両方を持つもの)を作成するか、下向き矢印をクリックしてプロパティの種類のメニューを表示させることができます。プロパティ アクセス メソッド メンバまたはメソッド メンバがオブジェクト リスト ペインに追加され、名前を入力できる状態になります。
- メンバの名前を入力します。
新規メンバの[属性]、[パラメータ]、および[フラグ]ページはデフォルトに設定されていて、それをメンバに合わせて変更できます。たとえば、おそらく[属性]ページでプロパティに型を割り当てる必要があるでしょう。メソッドを追加する場合には、おそらく[パラメータ]ページでパラメータを指定する必要があるでしょう。
あるいは、Delphi または IDL の構文を使って、[コード]ページに直接、プロパティやメソッドを入力する方法もあります。たとえば Delphi 構文を使用している場合、以下のプロパティ宣言をインターフェイスの[コード]ページに入力することができます。
Interface1 = interface(IDispatch) [ uuid '{5FD36EEF-70E5-11D1-AA62-00C04FB16F42}', version 1.0, dual, oleautomation ] function AutoSelect: Integer [propget, dispid $00000002]; safecall; // これを追加 function AutoSize: WordBool [propget, dispid $00000001]; safecall; // これも追加 procedure AutoSize(Value: WordBool) [propput, dispid $00000001]; safecall; // これも追加 end;
IDL で作業を行っている場合は、同じ宣言を次のように追加できます。
[ uuid(5FD36EEF-70E5-11D1-AA62-00C04FB16F42), version(1.0), dual, oleautomation ] interface Interface1: IDispatch { // すべてを中かっこの間に追加する [propget, id(0x00000002)] HRESULT _stdcall AutoSelect([out, retval] long Value ); [propget, id(0x00000003)] HRESULT _stdcall AutoSize([out, retval] VARIANT_BOOL Value ); [propput, id(0x00000003)] HRESULT _stdcall AutoSize([in] VARIANT_BOOL Value ); };
インターフェイスの[コード]ページを使ってインターフェイスにメンバを追加したら、メンバはオブジェクト リスト ペインで別の項目として表示され、それぞれに[属性]、[フラグ]、[パラメータ]のページを持つようになります。新規のプロパティやメソッドをそれぞれオブジェクト リスト ペインで選択し、これらのページを使用するか[コード]ページで直接編集して、変更することができます。
ウィザードによって生成された CoClass にインターフェイスが関連付けられている場合、タイプ ライブラリ エディタのツールバーの[実装の更新]ボタンをクリックして、変更を実装ファイルに適用することができます。タイプ ライブラリ エディタによって、新規メンバに合わせた新しいメソッドが実装クラスに追加されます。その後、実装ユニットのソース コードで新規メソッドを探し、本体を記述すると、実装が完成します。
[更新の適用]ダイアログを有効にしている場合、ソースを更新する前にタイプ ライブラリ エディタから通知があり、問題が起きる可能性があれば警告が表示されます。