ホーム › Storage.EnhancedStorage › IEnumEnhancedStorageACT
IEnumEnhancedStorageACT
COM公式ドキュメント
すべての 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 ポインターの配列を割り当てます。
| pppIEnhancedStorageACTs | IEnhancedStorageACT*** | out | システムに接続されているすべてのデバイスの ACT を表す IEnhancedStorageACT インターフェイスポインターの配列です。この配列は API 内で割り当てられます。 |
| pcEnhancedStorageACTs | DWORD* | out | 返される IEnhancedStorageACT ポインターの数です。これは pppIEnhancedStorageACTs が表す配列の要素数です。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 1 つ以上の ACT が見つかりました。 | |
| pppIEnhancedStorageACTs または pcEnhancedStorageACTs が NULL です。 | |
| メモリ不足のため操作が失敗しました。 |
解説(Remarks)
IEnhancedStorageACT インターフェイスの配列を格納するメモリは Enhanced Storage API によって割り当てられます。返されたポインターを CoTaskMemFree メソッドに渡して解放する必要があります。
vtbl 4 HRESULT GetMatchingACT(LPWSTR szVolume, IEnhancedStorageACT** ppIEnhancedStorageACT)
クライアントが指定した文字列で示されるボリュームに関連付けられた Addressable Command Target (ACT) を返します。
| szVolume | LPWSTR | in | 一致する ACT を検索する対象のボリュームを指定する文字列です。 |
| ppIEnhancedStorageACT | IEnhancedStorageACT** | out | 一致する ACT を表す IEnhancedStorageACT インターフェイスポインターへのポインターです。一致する ACT が見つからない場合は、エラー HRESULT_FROM_WIN32(ERROR_NOT_FOUND) が返されます。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 一致する ACT が正常に見つかりました。 | |
| szVolume または ppIEnhancedStorageACT が NULL です。 | |
|
一致する ACT が見つかりませんでした。 |
|
szVolume を含むデバイスでは Enhanced Storage がサポートされていません。 |
|
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)
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 指定が可能。#define global IID_IEnumEnhancedStorageACT "{09B224BD-1335-4631-A7FF-CFD3A92646D7}" #usecom global IEnumEnhancedStorageACT IID_IEnumEnhancedStorageACT "{}" #comfunc global IEnumEnhancedStorageACT_GetACTs 3 sptr,sptr #comfunc global IEnumEnhancedStorageACT_GetMatchingACT 4 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。