Win32 API 日本語リファレンス
ホームSystem.ComponentServices › IContextProperties

IContextProperties

COM
IIDd396da85-bf8f-11d1-bbae-00c04fc2fa5f継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

コンテキストオブジェクトのプロパティへのアクセスを提供します。

メソッド 5

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Count(INT* plCount)

コンテキストオブジェクトのプロパティの数を取得します。

plCountINT*inoutコンテキストオブジェクトのプロパティの数。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

vtbl 4 HRESULT GetProperty(LPWSTR name, VARIANT* pProperty)

コンテキストオブジェクトのプロパティを取得します。

nameLPWSTRin

取得するコンテキストオブジェクトのプロパティの名前。

以下は IIS の組み込みプロパティです。

  • Application
  • Request
  • Response
  • Server
  • Session
以下は COMTI の組み込みプロパティです。
  • host-security-callback.cedar.microsoft.com
pPropertyVARIANT*inoutプロパティへのポインター。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

IIS オブジェクトを取得するには、返された VARIANTVT_DISPATCH メンバーを使用して、IIS オブジェクトへのインターフェイス(たとえば Response オブジェクトの場合は IResponse)に対して QueryInterface を呼び出します。

vtbl 5 HRESULT EnumNames(IEnumNames** ppenum)

コンテキストオブジェクトのプロパティ用の列挙子への参照を取得します。

ppenumIEnumNames**outすべてのコンテキストオブジェクトのプロパティを反復処理するために使用できる、新しい列挙子オブジェクト上の IEnumNames インターフェイスへの参照。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

EnumNames メソッドを使用して、列挙子オブジェクトへの参照を取得します。返される IEnumNames インターフェイスは、コンテキストオブジェクトのプロパティを表す BSTR 値のリストを反復処理するために使用できる複数のメソッドを公開します。名前を取得したら、GetProperty メソッドを使用して、その名前が表すコンテキストオブジェクトのプロパティへの参照を取得できます。他の COM オブジェクトと同様に、列挙子オブジェクトの使用が終わったら解放する必要があります。

vtbl 6 HRESULT SetProperty(LPWSTR name, VARIANT property)

コンテキストオブジェクトのプロパティを設定します。

nameLPWSTRin設定するコンテキストオブジェクトのプロパティの名前。有効なプロパティ名の一覧については、GetProperty を参照してください。
propertyVARIANTinコンテキストオブジェクトのプロパティ値。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

vtbl 7 HRESULT RemoveProperty(LPWSTR name)

コンテキストオブジェクトのプロパティを削除します。

nameLPWSTRin削除するコンテキストオブジェクトのプロパティの名前。有効なプロパティ名の一覧については、GetProperty を参照してください。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IContextProperties "{D396DA85-BF8F-11D1-BBAE-00C04FC2FA5F}"
#usecom global IContextProperties IID_IContextProperties "{}"
#comfunc global IContextProperties_Count           3 var
#comfunc global IContextProperties_GetProperty     4 wstr,var
#comfunc global IContextProperties_EnumNames       5 sptr
#comfunc global IContextProperties_SetProperty     6 wstr,int
#comfunc global IContextProperties_RemoveProperty  7 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。