在 Win32 API 的 Appmodel.h 头文件中,PACKAGE_INFO 结构用于表示应用程序包的信息。以下是 PACKAGE_INFO 结构的定义:
typedef struct _PACKAGE_INFO {
  UINT32           reserved;
  UINT32           flags;
  const WCHAR      *path;
  const WCHAR      *familyName;
  const WCHAR      *packageFullName;
  const WCHAR      *packageRelativeId;
  const WCHAR      *packageId;
  const WCHAR      *packageMoniker;
  const WCHAR      *packagePublisherId;
  const WCHAR      *packagePublisherDisplayName;
  const WCHAR      *resources;
  const WCHAR      *custom;
  const WCHAR      *pathByReference;
  PACKAGE_VOLUME   packageVolume;
  const WCHAR      *packageFamilyName;
  PACKAGE_ID       packageIdAsPackageId;
  PACKAGE_VERSION  packageVersion;
} PACKAGE_INFO;

成员说明:

  •  reserved: 保留字段,必须设置为 0。

  •  flags: 一组标志,用于表示包的属性。

  •  path: 包的安装路径。

  •  familyName: 包家族的名称。

  •  packageFullName: 包的完整名称。

  •  packageRelativeId: 包的相对标识符。

  •  packageId: 包的标识符。

  •  packageMoniker: 包的标记。

  •  packagePublisherId: 包的发布者标识符。

  •  packagePublisherDisplayName: 包的发布者显示名称。

  •  resources: 包的资源。

  •  custom: 自定义信息。

  •  pathByReference: 引用路径。

  •  packageVolume: 包的卷信息。

  •  packageFamilyName: 包家族的名称。

  •  packageIdAsPackageId: 包的标识符。

  •  packageVersion: 包的版本信息。


使用示例:
#include <windows.h>
#include <appmodel.h>

int main() {
    PACKAGE_INFO packageInfo = {0};

    // 填充 PACKAGE_INFO 结构的相关字段
    // 例如,可以使用 OpenPackageInfoByFullName 函数获取包信息,然后将其填充到 packageInfo 中

    // 输出包的信息
    wprintf(L"Package Full Name: %s\n", packageInfo.packageFullName);
    wprintf(L"Package Family Name: %s\n", packageInfo.packageFamilyName);
    wprintf(L"Package Version: %d.%d.%d.%d\n", 
            packageInfo.packageVersion.Major, 
            packageInfo.packageVersion.Minor, 
            packageInfo.packageVersion.Build, 
            packageInfo.packageVersion.Revision);

    // 其他信息也可以通过相应的成员获取

    return 0;
}

请注意,这个示例中的 PACKAGE_INFO 结构中的字段值需要通过调用其他 API 函数(如 OpenPackageInfoByFullName)来填充。这个结构提供了关于应用程序包的各种信息。


转载请注明出处:http://www.zyzy.cn/article/detail/23846/Win32 API/Appmodel.h/PACKAGE_INFO