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

IAppxPackageReader

COM
IIDb5c49650-99bc-481c-9a34-3d53a4106708継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

アプリパッケージの読み取り専用オブジェクトモデルを提供します。

解説(Remarks)

IAppxPackageReader インターフェイスは、パッケージからペイロードファイルにアクセスし、フットプリントファイルからメタデータを照会する機能を提供します。

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

例については、クイックスタート: アプリパッケージの内容を抽出するおよび クイックスタート: アプリパッケージのマニフェスト情報を読み取るを参照してください。

メソッド 5

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

vtbl 3 HRESULT GetBlockMap(IAppxBlockMapReader** blockMapReader)

パッケージのブロックマップのオブジェクトモデルを取得します。

blockMapReaderIAppxBlockMapReader**outパッケージのブロックマップのオブジェクトモデルです。

戻り値

型: HRESULT

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

解説(Remarks)

パッケージのブロックマップは、IAppxFactory を使用してパッケージリーダーを作成する際に検証されます。

vtbl 4 HRESULT GetFootprintFile(APPX_FOOTPRINT_FILE_TYPE type, IAppxFile** file)

パッケージからフットプリントファイルを取得します。

typeAPPX_FOOTPRINT_FILE_TYPEin取得するフットプリントファイルの種類です。
fileIAppxFile**outtype で指定したフットプリントファイルに対応するファイルオブジェクトです。

戻り値

型: HRESULT

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

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

GetFootprintFile は、APPX_FOOTPRINT_FILE_TYPE_SIGNATURE および APPX_FOOTPRINT_FILE_TYPE_CODEINTEGRITY の種類に対してこのエラーを返すことがあります。

vtbl 5 HRESULT GetPayloadFile(LPWSTR fileName, IAppxFile** file)

パッケージからペイロードファイルを取得します。

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

戻り値

型: HRESULT

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

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

解説(Remarks)

指定する fileName には、パッケージのルートディレクトリからの相対パスを含める必要があります。

vtbl 6 HRESULT GetPayloadFiles(IAppxFilesEnumerator** filesEnumerator)

パッケージ内のペイロードファイルを列挙する列挙子を取得します。

filesEnumeratorIAppxFilesEnumerator**out パッケージ内のすべてのペイロードファイルを列挙する列挙子です。

戻り値

型: HRESULT

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

vtbl 7 HRESULT GetManifest(IAppxManifestReader** manifestReader)

パッケージのアプリマニフェストのオブジェクトモデルを取得します。

manifestReaderIAppxManifestReader**outアプリマニフェストのオブジェクトモデルです。

戻り値

型: HRESULT

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

解説(Remarks)

パッケージのアプリマニフェストは、IAppxFactory を使用してパッケージリーダーを作成する際に検証されます。

例については、クイックスタート: アプリパッケージのマニフェスト情報を読み取るを参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAppxPackageReader "{B5C49650-99BC-481C-9A34-3D53A4106708}"
#usecom global IAppxPackageReader IID_IAppxPackageReader "{}"
#comfunc global IAppxPackageReader_GetBlockMap       3 sptr
#comfunc global IAppxPackageReader_GetFootprintFile  4 int,sptr
#comfunc global IAppxPackageReader_GetPayloadFile    5 wstr,sptr
#comfunc global IAppxPackageReader_GetPayloadFiles   6 sptr
#comfunc global IAppxPackageReader_GetManifest       7 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。