Soap.SOAPHTTPClient.THTTPRIO.QueryInterface
Delphi
function QueryInterface(const IID: TGUID; out Obj): HResult; override; stdcall;
C++
HRESULT __stdcall QueryInterface(::System::DelphiInterface<T>& smartIntf)
virtual HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | Soap.SOAPHTTPClient.pas Soap.SOAPHTTPClient.hpp |
Soap.SOAPHTTPClient | THTTPRIO |
説明
IInterface QueryInterface メソッドを実装します。
QueryInterface メソッドは IInterface インターフェースを介して呼び出され,IID パラメータで識別されるインターフェースのインターフェースポインタを取得します。Delphi では,この呼び出しは,アプリケーションが as 演算子を使って THTTPRIO を呼び出し可能なインターフェースにキャストしたときに生成されます。
THTTPRIO が返せるインターフェースポインタの型は,1 つだけです。アプリケーションが最初に QueryInterface を呼び出したときに,THTTPRIO はメモリ内メソッドテーブルを生成して,要求されたインターフェースのメソッドに対する呼び出しをサポートします。
IID は,この THTTPRIO インスタンスを使用して,アプリケーションが呼び出す呼び出し可能なインターフェースを指定します。THTTPRIO オブジェクトがすでにインターフェースに型キャストされている場合,IID はそのインターフェースを識別する必要があります。THTTPRIO インスタンスがまだインターフェースに型キャストされていない場合,IID は登録されている呼び出し可能なインターフェースである必要があります。
Obj は,THTTPRIO がすでにほかのインターフェースを実装していたり,IID が登録されていないインターフェースを識別したりしない限りは,指定したインターフェースに対するインターフェースポインタを返します。
QueryInterface は,Obj がインターフェースポインタを返すことに成功すると,0(S_OK)を返します。成功しなかった場合は,E_NOINTERFACE を返します。
メモ: C++ では,テンプレート化された 2 番めの構文では,目的のインターフェース型をラップする DelphiInterface ラッパーである変数を使用します。
QueryInterface は,インターフェースポインタを返すことに成功すると,参照カウントを自動的にインクリメントします。