ホーム › Storage.Packaging.Appx › IAppxFactory
IAppxFactory
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT CreatePackageWriter(IStream* outputStream, APPX_PACKAGE_SETTINGS* settings, IAppxPackageWriter** packageWriter)
| outputStream | IStream* | in | 生成したパッケージの書き込み先となる IStream へのポインタである。 |
| settings | APPX_PACKAGE_SETTINGS* | in | パッケージ書き込みの設定を格納した APPX_PACKAGE_SETTINGS へのポインタである。 |
| packageWriter | IAppxPackageWriter** | out | 生成された IAppxPackageWriter を受け取るポインタのアドレスである。 |
vtbl 4 HRESULT CreatePackageReader(IStream* inputStream, IAppxPackageReader** packageReader)
| inputStream | IStream* | in | 読み取り対象のパッケージデータを供給する IStream へのポインタである。 |
| packageReader | IAppxPackageReader** | out | 生成された IAppxPackageReader を受け取るポインタのアドレスである。 |
vtbl 5 HRESULT CreateManifestReader(IStream* inputStream, IAppxManifestReader** manifestReader)
| inputStream | IStream* | in | 読み取り対象のマニフェストデータを供給する IStream へのポインタである。 |
| manifestReader | IAppxManifestReader** | out | 生成された IAppxManifestReader を受け取るポインタのアドレスである。 |
vtbl 6 HRESULT CreateBlockMapReader(IStream* inputStream, IAppxBlockMapReader** blockMapReader)
| inputStream | IStream* | in | 読み取り対象のブロックマップデータを供給する IStream へのポインタである。 |
| blockMapReader | IAppxBlockMapReader** | out | 生成された IAppxBlockMapReader を受け取るポインタのアドレスである。 |
vtbl 7 HRESULT CreateValidatedBlockMapReader(IStream* blockMapStream, LPWSTR signatureFileName, IAppxBlockMapReader** blockMapReader)
| blockMapStream | IStream* | in | 検証対象のブロックマップデータを供給する IStream へのポインタである。 |
| signatureFileName | LPWSTR | in | ブロックマップの検証に使用する署名ファイル名を指定する文字列である。 |
| blockMapReader | IAppxBlockMapReader** | out | 署名で検証済みの IAppxBlockMapReader を受け取るポインタのアドレスである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IAppxFactory "{BEB94909-E451-438B-B5A7-D79E767B75D8}" #usecom global IAppxFactory IID_IAppxFactory "{5842A140-FF9F-4166-8F5C-62F5B7B0C781}" #comfunc global IAppxFactory_CreatePackageWriter 3 sptr,var,sptr #comfunc global IAppxFactory_CreatePackageReader 4 sptr,sptr #comfunc global IAppxFactory_CreateManifestReader 5 sptr,sptr #comfunc global IAppxFactory_CreateBlockMapReader 6 sptr,sptr #comfunc global IAppxFactory_CreateValidatedBlockMapReader 7 sptr,wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IAppxFactory "{BEB94909-E451-438B-B5A7-D79E767B75D8}" #usecom global IAppxFactory IID_IAppxFactory "{5842A140-FF9F-4166-8F5C-62F5B7B0C781}" #comfunc global IAppxFactory_CreatePackageWriter 3 sptr,sptr,sptr #comfunc global IAppxFactory_CreatePackageReader 4 sptr,sptr #comfunc global IAppxFactory_CreateManifestReader 5 sptr,sptr #comfunc global IAppxFactory_CreateBlockMapReader 6 sptr,sptr #comfunc global IAppxFactory_CreateValidatedBlockMapReader 7 sptr,wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。