IEnhancedStorageACT
COM公式ドキュメント
1667 Addressable Contact Target (ACT) の情報を取得し、操作を実行するためのインターフェイスです。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Addressable Command Target (ACT) を ACT_AUTHORIZATION_STATE で定義される Authorized 状態に関連付けます。また、ACT へのアクセスを承認するために必要な順序と論理的な組み合わせに従って、個々のサイロそれぞれの認証を確実に行います。
| hwndParent | DWORD | in | 使用されません。 |
| dwFlags | DWORD | in | 使用されません。 |
戻り値
解説(Remarks)
このインターフェイスメソッドは、アプリケーションが ACT を 'Authorized' 状態に変更したい場合に使用できます。
Addressable Command Target (ACT) を ACT_AUTHORIZATION_STATE で定義される Unauthorized 状態に関連付けます。また、ACT へのアクセスを制限するために必要な順序と論理的な組み合わせに従って、個々のサイロそれぞれの認証解除を確実に行います。
戻り値
このメソッドは次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 承認の解除が正常に完了しました。 |
ACT の現在の承認状態を返します。
| pState | ACT_AUTHORIZATION_STATE* | out | ACT の現在の承認状態を示す ACT_AUTHORIZATION_STATE へのポインターです。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 現在の承認状態が正常に取得されました。 | |
| pState が NULL です。 |
Addressable Command Target (ACT) に関連付けられているボリュームを返します。
| ppwszVolume | LPWSTR* | out | ACT に関連付けられているボリュームを表す文字列へのポインターです。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 関連付けられているボリュームが正常に返されました。 |
Addressable Command Target (ACT) の一意の ID を取得します。
| ppwszIdentity | LPWSTR* | out | ACT の一意の ID を表す文字列へのポインターです。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 一意の ID が正常に取得されました。 | |
| ppwszIdentity が NULL です。 |
解説(Remarks)
ACT の一意の ID を格納するメモリは Enhanced Storage API によって割り当てられます。返されたポインターを CoTaskMemFree に渡して解放する必要があります。
Addressable Command Target (ACT) に関連付けられているすべてのサイロの列挙を返します。
| pppIEnhancedStorageSilos | IEnhancedStorageSilo*** | out | ACT に関連付けられている 1 つ以上の IEnhancedStorageSilo インターフェイスポインターの配列を返します。 |
| pcEnhancedStorageSilos | DWORD* | out | 返された IEnhancedStorageSilo ポインターの数です。この値は pppIEnhancedStorageSilos が表す配列の要素数を示します。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| コマンドが正常に送信され、関連付けられているすべてのサイロが列挙されました。 | |
| メモリの割り当てが不足しているため、コマンドが失敗しました。 | |
| pppIEnhancedStorageSilos または pcEnhancedStorageSilos が NULL です。 |
解説(Remarks)
IEnhancedStorageSilo インターフェイスの配列を格納するメモリは Enhanced Storage API によって割り当てられます。返されたポインターを CoTaskMemFree に渡して解放する必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IEnhancedStorageACT "{6E7781F4-E0F2-4239-B976-A01ABAB52930}" #usecom global IEnhancedStorageACT IID_IEnhancedStorageACT "{AF076A15-2ECE-4AD4-BB21-29F040E176D8}" #comfunc global IEnhancedStorageACT_Authorize 3 int,int #comfunc global IEnhancedStorageACT_Unauthorize 4 #comfunc global IEnhancedStorageACT_GetAuthorizationState 5 var #comfunc global IEnhancedStorageACT_GetMatchingVolume 6 var #comfunc global IEnhancedStorageACT_GetUniqueIdentity 7 var #comfunc global IEnhancedStorageACT_GetSilos 8 sptr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IEnhancedStorageACT "{6E7781F4-E0F2-4239-B976-A01ABAB52930}" #usecom global IEnhancedStorageACT IID_IEnhancedStorageACT "{AF076A15-2ECE-4AD4-BB21-29F040E176D8}" #comfunc global IEnhancedStorageACT_Authorize 3 int,int #comfunc global IEnhancedStorageACT_Unauthorize 4 #comfunc global IEnhancedStorageACT_GetAuthorizationState 5 sptr #comfunc global IEnhancedStorageACT_GetMatchingVolume 6 sptr #comfunc global IEnhancedStorageACT_GetUniqueIdentity 7 sptr #comfunc global IEnhancedStorageACT_GetSilos 8 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。