Interface プロパティ メソッド
多くの ADSI インターフェイスはオートメーションをサポートするように設計されているため、 IUnknown インターフェイスと IDispatch インターフェイスの両方を介したクライアント アクセスをサポートするという点でデュアル インターフェイスです。 オートメーション以外のクライアント (C/C++ で記述されたものなど) は、 IUnknown::QueryInterface メソッドを使用してメソッド呼び出しを直接解決し、メソッドを直接呼び出します。 オートメーション クライアント (Visual Basic または Visual Basic Scripting Edition (VBScript) で記述されたものなど、名前バインド クライアントとも呼ばれます) は、 dispinterface メソッドを使用してメソッド呼び出しを間接的に解決する必要があります。
オートメーションをサポートする ADSI インターフェイスでは、インターフェイスを実装するオブジェクトのプロパティを取得および変更するためのプロパティ メソッドを定義します。 プロパティ メソッドには、適切なプロパティ名の前に get_ と put_ が付加された名前があります ( たとえば、get_User や put_Name)。
各 get_ メソッドは、出力として 1 つのパラメーターを受け取ります。 このパラメーターは、プロパティ データ型の変数のメソッド割り当てアドレスです。 戻り値の場合、この変数は要求されたプロパティの現在の値を前提としています。 プロパティが不要になった場合、呼び出し元は変数の割り当てられたメモリを解放する必要があります。
各 put_ メソッドは、対応するプロパティのデータ型の入力として 1 つのパラメーターを受け取ります。 パラメーターには、 プロパティの新しい値が保持されます。
次のコード例は、通常のプロシージャに従って オブジェクトのメンバー関数を呼び出すプロパティ メソッドの呼び出しを示しています。
IADs *pADs;
BSTR bstrName;
pADs->get_Name(&bstrName);
次のコード例は、オートメーション クライアントでのプロパティ メソッドの呼び出しを示しています。これは多少異なる場合があります。 たとえば、Visual Basic ではドット表記が使用されます。
Dim Obj As IADs
Dim objName As String
objName = Obj.Name
すべてのパラメーターと戻り値の型は、VARIANT データ型が定義するパラメーターである必要があります。 デュアル インターフェイス上のすべてのメソッドは、成功または失敗を示す HRESULT 値を返します。
ADSI オブジェクトのプロパティの取得と設定の詳細については、「 プロパティ キャッシュ」を参照してください。