Win32 API 日本語リファレンス
ホームNetworkManagement.NetworkPolicyServer › ISdoCollection

ISdoCollection

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID56bc53e2-96db-11d1-bf3f-000000000000継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

ISdoCollection インターフェイスは、SDO オブジェクトのコレクションを操作するために使用します。

解説(Remarks)

コレクションを取得するには、コレクションのプロパティを指定して ISdo::GetProperty を呼び出します。詳細については、 Retrieving a Collection を参照してください。

メソッド 8

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Count(INT* pCount)

get_Count メソッドは、コレクション内の項目数を返します。

pCountINT*outコレクション内の項目数を格納する LONG へのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

vtbl 8 HRESULT Add(LPWSTR bstrName, IDispatch** ppItem)

Add メソッドは、Server Data Objects (SDO) コレクションに項目を追加します。

bstrNameLPWSTRinSDO オブジェクトの名前を指定します。このパラメーターは NULL でもかまいません。
ppItemIDispatch**inout追加する項目の IDispatch インターフェイスポインターへのポインターです。このパラメーターを NULL にすることはできません。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

解説(Remarks)

追加するオブジェクトの名前を指定する場合は、 ISdoCollection::IsNameUnique を呼び出して、その名前が一意であることを確認してください。

bstrName パラメーターが指定されていない場合、ISdoCollection::AddppItem パラメーターで指定されたオブジェクトから名前を取得します。

vtbl 9 HRESULT Remove(IDispatch* pItem)

Remove メソッドは、指定された項目をコレクションから削除します。

pItemIDispatch*in

削除する項目を指定する IDispatch インターフェイスへのポインターです。

このパラメーターを NULL にすることはできません。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

vtbl 10 HRESULT RemoveAll()

RemoveAll メソッドは、コレクションからすべての項目を削除します。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

vtbl 11 HRESULT Reload()

Reload メソッドは、コレクション内のすべてのオブジェクトを基になるデータストアから再読み込みします。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

vtbl 12 HRESULT IsNameUnique(LPWSTR bstrName, VARIANT_BOOL* pBool)

IsNameUnique メソッドは、指定された名前がコレクション内で一意かどうかをテストします。

bstrNameLPWSTRinテストする名前を指定します。
pBoolVARIANT_BOOL*out名前が一意かどうかを示す VARIANT へのポインターです。名前が一意である場合は VARIANT_TRUE、そうでない場合は VARIANT_FALSE が返されます。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

解説(Remarks)

いずれのパラメーターも NULL にすることはできません。

vtbl 13 HRESULT Item(VARIANT* Name, IDispatch** pItem)

Item メソッドは、指定された項目をコレクションから取得します。

NameVARIANT*inVARIANT へのポインターです。オブジェクトの名前を BSTR として、この VARIANT に格納します。
pItemIDispatch**outオブジェクトの IDispatch インターフェイスのアドレスを受け取るインターフェイスポインターへのポインターです。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

オブジェクトがコレクション内に見つからない場合、戻り値は DISP_E_MEMBERNOTFOUND です。

それ以外でメソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

解説(Remarks)

いずれのパラメーターも NULL にすることはできません。

vtbl 14 HRESULT get__NewEnum(IUnknown** ppEnumVARIANT)

get__NewEnum メソッドは、Server Data Objects (SDO) コレクションの IEnumVARIANT インターフェイスを取得します。

ppEnumVARIANTIUnknown**out

IUnknown インターフェイスポインターへのポインターです。正常に返された場合、この IUnknown インターフェイスポインターは IEnumVARIANT インターフェイスを指します。

このパラメーターを NULL にすることはできません。

戻り値

メソッドが成功した場合、戻り値は S_OK です。

メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。

解説(Remarks)

このメソッドを呼び出す前に SDO を初期化してください。

注意 このメソッド名では、"get" と "NewEnum" の間にアンダースコアが 2 つ使用されます。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ISdoCollection "{56BC53E2-96DB-11D1-BF3F-000000000000}"
#usecom global ISdoCollection IID_ISdoCollection "{}"
#comfunc global ISdoCollection_get_Count     7 var
#comfunc global ISdoCollection_Add           8 wstr,sptr
#comfunc global ISdoCollection_Remove        9 sptr
#comfunc global ISdoCollection_RemoveAll     10
#comfunc global ISdoCollection_Reload        11
#comfunc global ISdoCollection_IsNameUnique  12 wstr,var
#comfunc global ISdoCollection_Item          13 var,sptr
#comfunc global ISdoCollection_get__NewEnum  14 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。