Win32 API 日本語リファレンス
ホームStorage.EnhancedStorage › IEnumEnhancedStorageACT

IEnumEnhancedStorageACT

COM
IID09b224bd-1335-4631-a7ff-cfd3a92646d7継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

すべての IEEE 1667 Addressable Contact Target (ACT) を列挙するための最上位の列挙子として、このインターフェイスを使用します。

メソッド 2

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

vtbl 3 HRESULT GetACTs(IEnhancedStorageACT*** pppIEnhancedStorageACTs, DWORD* pcEnhancedStorageACTs)

現在システムに接続されているすべての Addressable Command Target (ACT) の列挙を返します。ACT が 1 つ以上存在する場合、Enhanced Storage API は 1 つ以上の IEnumEnhancedStorageACT ポインターの配列を割り当てます。

pppIEnhancedStorageACTsIEnhancedStorageACT***outシステムに接続されているすべてのデバイスの ACT を表す IEnhancedStorageACT インターフェイスポインターの配列です。この配列は API 内で割り当てられます。
pcEnhancedStorageACTsDWORD*out返される IEnhancedStorageACT ポインターの数です。これは pppIEnhancedStorageACTs が表す配列の要素数です。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
1 つ以上の ACT が見つかりました。
E_INVALIDARG
pppIEnhancedStorageACTs または pcEnhancedStorageACTs が NULL です。
E_OUTOFMEMORY
メモリ不足のため操作が失敗しました。

解説(Remarks)

IEnhancedStorageACT インターフェイスの配列を格納するメモリは Enhanced Storage API によって割り当てられます。返されたポインターを CoTaskMemFree メソッドに渡して解放する必要があります。

vtbl 4 HRESULT GetMatchingACT(LPWSTR szVolume, IEnhancedStorageACT** ppIEnhancedStorageACT)

クライアントが指定した文字列で示されるボリュームに関連付けられた Addressable Command Target (ACT) を返します。

szVolumeLPWSTRin一致する ACT を検索する対象のボリュームを指定する文字列です。
ppIEnhancedStorageACTIEnhancedStorageACT**out一致する ACT を表す IEnhancedStorageACT インターフェイスポインターへのポインターです。一致する ACT が見つからない場合は、エラー HRESULT_FROM_WIN32(ERROR_NOT_FOUND) が返されます。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
一致する ACT が正常に見つかりました。
E_INVALIDARG
szVolume または ppIEnhancedStorageACTNULL です。
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
一致する ACT が見つかりませんでした。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
szVolume を含むデバイスでは Enhanced Storage がサポートされていません。
HRESULT_FROM_WIN32(ERROR_INVALID_FUNCTION)
szVolume を含むデバイスでは Enhanced Storage がサポートされていません。

解説(Remarks)

クライアントはこのメソッドを使用して、指定したボリュームが IEEE 1667 ACT 上に存在し、ACT によって表されているかどうかを判断することもできます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IEnumEnhancedStorageACT "{09B224BD-1335-4631-A7FF-CFD3A92646D7}"
#usecom global IEnumEnhancedStorageACT IID_IEnumEnhancedStorageACT "{}"
#comfunc global IEnumEnhancedStorageACT_GetACTs         3 sptr,var
#comfunc global IEnumEnhancedStorageACT_GetMatchingACT  4 wstr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。