Win32 API 日本語リファレンス
ホームStorage.Packaging.Appx › IAppxBundleReader

IAppxBundleReader

COM
IIDdd75b8c0-ba76-43b0-ae0f-68656a1dc5c8継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

バンドルパッケージに対する読み取り専用のオブジェクトモデルを提供します。

解説(Remarks)

IAppxBundleFactory インターフェイスの CreateBundleReader メソッドを使用して、IAppxBundleReader オブジェクトを取得できます。

IAppxBundleReader を通じて、バンドルのマニフェスト、ブロックマップ、署名などのフットプリントファイルと、バンドルに含まれるアプリパッケージの両方を取得できます。

メソッド 5

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

vtbl 3 HRESULT GetFootprintFile(APPX_BUNDLE_FOOTPRINT_FILE_TYPE fileType, IAppxFile** footprintFile)

指定した種類のフットプリントファイルをバンドルから取得します。

fileTypeAPPX_BUNDLE_FOOTPRINT_FILE_TYPEin取得するフットプリントファイルの種類。
footprintFileIAppxFile**outfileType のフットプリントファイルに対応するファイルオブジェクト。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。それ以外の場合は、次の表に示すものを含む (ただしこれらに限定されない) エラーコードを返します。

戻り値 説明
E_INVALIDARG
fileType パラメーターが APPX_BUNDLE_FOOTPRINT_FILE_TYPE 列挙型の有効な値ではありません。
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
バンドルに指定された種類のフットプリントファイルが含まれていません。

GetFootprintFile は、APPX_BUNDLE_FOOTPRINT_FILE_TYPE_SIGNATURE 型に対してこのエラーを返すことがあります。

vtbl 4 HRESULT GetBlockMap(IAppxBlockMapReader** blockMapReader)

読み取り専用のブロックマップオブジェクトをバンドルから取得します。

blockMapReaderIAppxBlockMapReader**outバンドル内のパッケージのブロックマップのオブジェクトモデル。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT GetManifest(IAppxBundleManifestReader** manifestReader)

読み取り専用のマニフェストオブジェクトをバンドルから取得します。

manifestReaderIAppxBundleManifestReader**outバンドルマニフェストのオブジェクトモデル。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT GetPayloadPackages(IAppxFilesEnumerator** payloadPackages)

バンドル内のすべてのペイロードパッケージの一覧を反復処理する列挙子を取得します。

payloadPackagesIAppxFilesEnumerator**out バンドル内のすべてのペイロードパッケージを列挙する列挙子。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT GetPayloadPackage(LPWSTR fileName, IAppxFile** payloadPackage)

指定したファイル名を持つペイロードパッケージの appx ファイルオブジェクトを取得します。

fileNameLPWSTRin取得するペイロードファイルの名前。
payloadPackageIAppxFile**outfileName に対応するペイロードファイルオブジェクト。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。それ以外の場合は、次の表に示すものを含む (ただしこれらに限定されない) エラーコードを返します。

戻り値 説明
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
指定されたファイル名を持つペイロードファイルが存在しません。

解説(Remarks)

ファイルオブジェクトのストリームを IAppxFactory::CreatePackageReader に渡すことで、その appx ファイルに対するパッケージリーダーオブジェクトを取得できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAppxBundleReader "{DD75B8C0-BA76-43B0-AE0F-68656A1DC5C8}"
#usecom global IAppxBundleReader IID_IAppxBundleReader "{}"
#comfunc global IAppxBundleReader_GetFootprintFile    3 int,sptr
#comfunc global IAppxBundleReader_GetBlockMap         4 sptr
#comfunc global IAppxBundleReader_GetManifest         5 sptr
#comfunc global IAppxBundleReader_GetPayloadPackages  6 sptr
#comfunc global IAppxBundleReader_GetPayloadPackage   7 wstr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。