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

IAppxManifestPackageId

COM
IID283ce2d7-7153-4a91-9649-7a0f7240945f継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

パッケージ ID へのアクセスを提供します。

解説(Remarks)

パッケージ ID の情報は、パッケージマニフェスト内の Identity 要素を使用して指定します。

このオブジェクトは IAppxManifestReader::GetPackageId メソッドを使用して取得できます。

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

メソッド 8

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

vtbl 3 HRESULT GetName(LPWSTR* name)

マニフェストで定義されているパッケージの名前を取得します。

nameLPWSTR*outパッケージの名前。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

パッケージ名の情報は、パッケージマニフェスト内の Identity 要素の Name 属性を使用して指定します。

パッケージ名はエンドユーザーに表示することを意図したものではありません。システムはパッケージを一意に識別するためにこの名前を使用します。

呼び出し元は、name に割り当てられたメモリを CoTaskMemFree 関数を使用して解放する必要があります。

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

vtbl 4 HRESULT GetArchitecture(APPX_PACKAGE_ARCHITECTURE* architecture)

マニフェストで定義されているプロセッサアーキテクチャを取得します。(IAppxManifestPackageId.GetArchitecture)

architectureAPPX_PACKAGE_ARCHITECTURE*outパッケージに指定されているアーキテクチャ。

戻り値

型: HRESULT

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

解説(Remarks)

プロセッサアーキテクチャの情報は、パッケージマニフェスト内の Identity 要素の ProcessorArchitecture 属性を使用して指定します。

マニフェストにアーキテクチャが定義されていない場合、このメソッドは APPX_PACKAGE_ARCHITECTURE 列挙型の APPX_PACKAGE_ARCHITECTURE_NEUTRAL 値を返します。

vtbl 5 HRESULT GetPublisher(LPWSTR* publisher)

マニフェストで定義されているパッケージ発行者の名前を取得します。

publisherLPWSTR*outパッケージの発行者。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

発行者名の情報は、パッケージマニフェスト内の Identity 要素の Publisher 属性を使用して指定します。

呼び出し元は、publisher に割り当てられたメモリを CoTaskMemFree 関数を使用して解放する必要があります。

vtbl 6 HRESULT GetVersion(ULONGLONG* packageVersion)

マニフェストで定義されているパッケージのバージョンを取得します。

packageVersionULONGLONG*outパッケージのバージョン。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

バージョンは、パッケージマニフェスト内の Identity 要素の Version 属性を使用して指定します。マニフェストでは 4 つの数値による表記で指定します。

major.minor.build.revision

このメソッドは、この表記を次のように UINT64 値へ変換します。

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

vtbl 7 HRESULT GetResourceId(LPWSTR* resourceId)

マニフェストで定義されているパッケージのリソース識別子を取得します。

resourceIdLPWSTR*outパッケージのリソース識別子。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

リソース識別子は、パッケージマニフェスト内の Identity 要素の ResourceId 属性を使用して指定します。

マニフェストにリソース識別子が定義されていない場合、このメソッドは null 文字列を返します。

呼び出し元は、resourceId に割り当てられたメモリを CoTaskMemFree 関数を使用して解放する必要があります。

vtbl 8 HRESULT ComparePublisher(LPWSTR other, BOOL* isSame)

指定された発行者と、マニフェストで定義されている発行者を比較します。

otherLPWSTRin比較する発行者名。
isSameBOOL*out指定された発行者がパッケージの発行者と一致する場合は TRUE、それ以外の場合は FALSE

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

発行者の情報は、パッケージマニフェスト内の Identity 要素の Publisher 属性を使用して指定します。

vtbl 9 HRESULT GetPackageFullName(LPWSTR* packageFullName)

パッケージのフルネームを取得します。

packageFullNameLPWSTR*outパッケージのフルネーム。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

パッケージのフルネームは大文字と小文字を区別しない文字列で、パッケージを一意に識別するために使用できます。

この文字列はパッケージ ID をシリアル化した形式であり、ファイルやディレクトリなどのオブジェクトの名前付けに適しています。

呼び出し元は、packageFullName に割り当てられたメモリを CoTaskMemFree 関数を使用して解放する必要があります。

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

vtbl 10 HRESULT GetPackageFamilyName(LPWSTR* packageFamilyName)

パッケージファミリ名を取得します。

packageFamilyNameLPWSTR*outパッケージファミリ名。

戻り値

型: HRESULT

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

パッケージファミリ名は大文字と小文字を区別しない文字列で、同じ名前と発行者を持つパッケージのファミリを一意に識別するために使用できます。

この文字列はパッケージ ID をシリアル化した形式であり、ファイルやディレクトリなどのオブジェクトの名前付けに適しています。パッケージファミリ名にはパッケージのバージョン、アーキテクチャ、リソースに関する情報が含まれないため、バージョンに依存しない形でパッケージを参照する必要がある場合に便利です。

呼び出し元は、packageFamilyName のメモリを CoTaskMemFree 関数を使用して解放する必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAppxManifestPackageId "{283CE2D7-7153-4A91-9649-7A0F7240945F}"
#usecom global IAppxManifestPackageId IID_IAppxManifestPackageId "{}"
#comfunc global IAppxManifestPackageId_GetName               3 var
#comfunc global IAppxManifestPackageId_GetArchitecture       4 var
#comfunc global IAppxManifestPackageId_GetPublisher          5 var
#comfunc global IAppxManifestPackageId_GetVersion            6 var
#comfunc global IAppxManifestPackageId_GetResourceId         7 var
#comfunc global IAppxManifestPackageId_ComparePublisher      8 wstr,var
#comfunc global IAppxManifestPackageId_GetPackageFullName    9 var
#comfunc global IAppxManifestPackageId_GetPackageFamilyName  10 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。