IStorageProviderHandler
COM公式ドキュメント
特定のファイルまたはフォルダーに関連付けられた IStorageProviderPropertyHandler を取得します。
解説(Remarks)
このインターフェイスは、実装する特定の必要がある場合にのみ実装してください。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定されたパスに関連付けられた IStorageProviderPropertyHandler のインスタンスを取得します。
| path | LPWSTR | in | 対象となるファイルのパス。 |
| propertyHandler | IStorageProviderPropertyHandler** | out | path で指定されたファイルに関連付けられた IStorageProviderPropertyHandler のインスタンス。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定された URI に関連付けられた IStorageProviderPropertyHandler のインスタンスを取得します。
| uri | LPWSTR | in | 対象となるファイルの URI。 |
| propertyHandler | IStorageProviderPropertyHandler** | out | uri で指定されたファイルに関連付けられた IStorageProviderPropertyHandler のインスタンス。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、リモート URI をローカルファイルシステムのパスに変換するために使用されます。そのパスは、ローカルファイルに propertyHandler を提供するために使用されます。
指定されたファイル識別子に関連付けられた IStorageProviderPropertyHandler のインスタンスを取得します。
| fileId | LPWSTR | in | 対象となるファイルの識別子。 |
| propertyHandler | IStorageProviderPropertyHandler** | out | fileId で指定されたファイルに関連付けられた IStorageProviderPropertyHandler のインスタンス。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、ファイル識別子をローカルファイルシステムのパスに変換するために使用されます。そのパスは、ローカルファイルに propertyHandler を提供するために使用されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IStorageProviderHandler "{162C6FB5-44D3-435B-903D-E613FA093FB5}"
#usecom global IStorageProviderHandler IID_IStorageProviderHandler "{}"
#comfunc global IStorageProviderHandler_GetPropertyHandlerFromPath 3 wstr,sptr
#comfunc global IStorageProviderHandler_GetPropertyHandlerFromUri 4 wstr,sptr
#comfunc global IStorageProviderHandler_GetPropertyHandlerFromFileId 5 wstr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。