From abdb51d85e427aa3570eb7a326723f2fe25d607f Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <[email protected]>
Date: Thu, 7 Jul 2022 19:16:01 +0530
Subject: [PATCH] headers: Add appmodel.h and minappmodel.h

Required for vulkan-loader

Signed-off-by: Biswapriyo Nath <[email protected]>
---
 mingw-w64-headers/include/appmodel.h    | 274 ++++++++++++++++++++++++
 mingw-w64-headers/include/minappmodel.h |  48 +++++
 2 files changed, 322 insertions(+)
 create mode 100644 mingw-w64-headers/include/appmodel.h
 create mode 100644 mingw-w64-headers/include/minappmodel.h

diff --git a/mingw-w64-headers/include/appmodel.h b/mingw-w64-headers/include/appmodel.h
new file mode 100644
index 0000000..6b6213e
--- /dev/null
+++ b/mingw-w64-headers/include/appmodel.h
@@ -0,0 +1,274 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _APPMODEL_H_
+#define _APPMODEL_H_
+
+#include <minappmodel.h>
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+#include <pshpack4.h>
+
+typedef struct PACKAGE_VERSION {
+  __C89_NAMELESS union {
+    UINT64 Version;
+    __C89_NAMELESS struct {
+      USHORT Revision;
+      USHORT Build;
+      USHORT Minor;
+      USHORT Major;
+    };
+  };
+} PACKAGE_VERSION;
+
+typedef struct PACKAGE_ID {
+  UINT32 reserved;
+  UINT32 processorArchitecture;
+  PACKAGE_VERSION version;
+  PWSTR name;
+  PWSTR publisher;
+  PWSTR resourceId;
+  PWSTR publisherId;
+} PACKAGE_ID;
+
+#include <poppack.h>
+
+WINBASEAPI LONG WINAPI GetCurrentPackageId(UINT32 *bufferLength, BYTE *buffer);
+WINBASEAPI LONG WINAPI GetCurrentPackageFullName(UINT32 *packageFullNameLength, PWSTR packageFullName);
+WINBASEAPI LONG WINAPI GetCurrentPackageFamilyName(UINT32 *packageFamilyNameLength, PWSTR packageFamilyName);
+WINBASEAPI LONG WINAPI GetCurrentPackagePath(UINT32 *pathLength, PWSTR path);
+WINBASEAPI LONG WINAPI GetPackageId(HANDLE hProcess, UINT32 *bufferLength, BYTE *buffer);
+WINBASEAPI LONG WINAPI GetPackageFullName(HANDLE hProcess, UINT32 *packageFullNameLength, PWSTR packageFullName);
+WINBASEAPI LONG WINAPI GetPackageFullNameFromToken(HANDLE token, UINT32 *packageFullNameLength, PWSTR packageFullName);
+WINBASEAPI LONG WINAPI GetPackageFamilyName(HANDLE hProcess, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName);
+WINBASEAPI LONG WINAPI GetPackageFamilyNameFromToken(HANDLE token, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName);
+WINBASEAPI LONG WINAPI GetPackagePath(const PACKAGE_ID *packageId, const UINT32 reserved, UINT32 *pathLength, PWSTR path);
+WINBASEAPI LONG WINAPI GetPackagePathByFullName(PCWSTR packageFullName, UINT32 *pathLength, PWSTR path);
+WINBASEAPI LONG WINAPI GetStagedPackagePathByFullName(PCWSTR packageFullName, UINT32 *pathLength, PWSTR path);
+
+#if NTDDI_VERSION >= NTDDI_WIN10_19H1
+typedef enum PackagePathType {
+  PackagePathType_Install = 0,
+  PackagePathType_Mutable = 1,
+  PackagePathType_Effective = 2
+#if NTDDI_VERSION >= NTDDI_WIN10_VB
+  ,PackagePathType_MachineExternal = 3
+  ,PackagePathType_UserExternal = 4
+  ,PackagePathType_EffectiveExternal = 5
+#endif
+} PackagePathType;
+
+WINBASEAPI LONG WINAPI GetPackagePathByFullName2(PCWSTR packageFullName, PackagePathType packagePathType, UINT32 *pathLength, PWSTR path);
+WINBASEAPI LONG WINAPI GetStagedPackagePathByFullName2(PCWSTR packageFullName, PackagePathType packagePathType, UINT32 *pathLength, PWSTR path);
+WINBASEAPI LONG WINAPI GetCurrentPackageInfo2(const UINT32 flags, PackagePathType packagePathType, UINT32 *bufferLength, BYTE *buffer, UINT32 *count);
+WINBASEAPI LONG WINAPI GetCurrentPackagePath2(PackagePathType packagePathType, UINT32 *pathLength, PWSTR path);
+
+#endif /* NTDDI_VERSION >= NTDDI_WIN10_19H1 */
+
+WINBASEAPI LONG WINAPI GetCurrentApplicationUserModelId(UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId);
+WINBASEAPI LONG WINAPI GetApplicationUserModelId(HANDLE hProcess, UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId);
+WINBASEAPI LONG WINAPI GetApplicationUserModelIdFromToken(HANDLE token, UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId);
+WINBASEAPI LONG WINAPI VerifyPackageFullName(PCWSTR packageFullName);
+WINBASEAPI LONG WINAPI VerifyPackageFamilyName(PCWSTR packageFamilyName);
+WINBASEAPI LONG WINAPI VerifyPackageId(const PACKAGE_ID *packageId);
+WINBASEAPI LONG WINAPI VerifyApplicationUserModelId(PCWSTR applicationUserModelId);
+WINBASEAPI LONG WINAPI VerifyPackageRelativeApplicationId(PCWSTR packageRelativeApplicationId);
+WINBASEAPI LONG WINAPI PackageIdFromFullName(PCWSTR packageFullName, const UINT32 flags, UINT32 *bufferLength, BYTE *buffer);
+WINBASEAPI LONG WINAPI PackageFullNameFromId(const PACKAGE_ID *packageId, UINT32 *packageFullNameLength, PWSTR packageFullName);
+WINBASEAPI LONG WINAPI PackageFamilyNameFromId(const PACKAGE_ID *packageId, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName);
+WINBASEAPI LONG WINAPI PackageFamilyNameFromFullName(PCWSTR packageFullName, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName);
+WINBASEAPI LONG WINAPI PackageNameAndPublisherIdFromFamilyName(PCWSTR packageFamilyName, UINT32 *packageNameLength, PWSTR packageName, UINT32 *packagePublisherIdLength, PWSTR packagePublisherId);
+WINBASEAPI LONG WINAPI FormatApplicationUserModelId(PCWSTR packageFamilyName, PCWSTR packageRelativeApplicationId, UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId);
+WINBASEAPI LONG WINAPI ParseApplicationUserModelId(PCWSTR applicationUserModelId, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName, UINT32 *packageRelativeApplicationIdLength, PWSTR packageRelativeApplicationId);
+WINBASEAPI LONG WINAPI GetPackagesByPackageFamily(PCWSTR packageFamilyName, UINT32 *count, PWSTR *packageFullNames, UINT32 *bufferLength, WCHAR *buffer);
+WINBASEAPI LONG WINAPI FindPackagesByPackageFamily(PCWSTR packageFamilyName, UINT32 packageFilters, UINT32 *count, PWSTR *packageFullNames, UINT32 *bufferLength, WCHAR *buffer, UINT32 *packageProperties);
+
+typedef enum PackageOrigin {
+  PackageOrigin_Unknown = 0,
+  PackageOrigin_Unsigned = 1,
+  PackageOrigin_Inbox = 2,
+  PackageOrigin_Store = 3,
+  PackageOrigin_DeveloperUnsigned = 4,
+  PackageOrigin_DeveloperSigned = 5,
+  PackageOrigin_LineOfBusiness = 6
+} PackageOrigin;
+
+WINBASEAPI LONG WINAPI GetStagedPackageOrigin(PCWSTR packageFullName, PackageOrigin *origin);
+
+#define PACKAGE_PROPERTY_FRAMEWORK 0x00000001
+#define PACKAGE_PROPERTY_RESOURCE 0x00000002
+#define PACKAGE_PROPERTY_BUNDLE 0x00000004
+#define PACKAGE_PROPERTY_OPTIONAL 0x00000008
+#define PACKAGE_FILTER_HEAD 0x00000010
+#define PACKAGE_FILTER_DIRECT 0x00000020
+#define PACKAGE_FILTER_RESOURCE 0x00000040
+#define PACKAGE_FILTER_BUNDLE 0x00000080
+#define PACKAGE_INFORMATION_BASIC 0x00000000
+#define PACKAGE_INFORMATION_FULL 0x00000100
+#define PACKAGE_PROPERTY_DEVELOPMENT_MODE 0x00010000
+#define PACKAGE_FILTER_OPTIONAL 0x00020000
+#define PACKAGE_PROPERTY_IS_IN_RELATED_SET 0x00040000
+#define PACKAGE_FILTER_IS_IN_RELATED_SET PACKAGE_PROPERTY_IS_IN_RELATED_SET
+#define PACKAGE_PROPERTY_STATIC 0x00080000
+#define PACKAGE_FILTER_STATIC PACKAGE_PROPERTY_STATIC
+#define PACKAGE_PROPERTY_DYNAMIC 0x00100000
+#define PACKAGE_FILTER_DYNAMIC PACKAGE_PROPERTY_DYNAMIC
+#if NTDDI_VERSION >= NTDDI_WIN10_MN
+#define PACKAGE_PROPERTY_HOSTRUNTIME 0x00200000
+#define PACKAGE_FILTER_HOSTRUNTIME PACKAGE_PROPERTY_HOSTRUNTIME
+#endif
+
+typedef struct _PACKAGE_INFO_REFERENCE {
+  void *reserved;
+} PACKAGE_INFO_REFERENCE;
+
+#include <pshpack4.h>
+
+typedef struct PACKAGE_INFO {
+  UINT32 reserved;
+  UINT32 flags;
+  PWSTR path;
+  PWSTR packageFullName;
+  PWSTR packageFamilyName;
+  PACKAGE_ID packageId;
+} PACKAGE_INFO;
+
+#include <poppack.h>
+
+WINBASEAPI LONG WINAPI GetCurrentPackageInfo(const UINT32 flags, UINT32 *bufferLength, BYTE *buffer, UINT32 *count);
+WINBASEAPI LONG WINAPI OpenPackageInfoByFullName(PCWSTR packageFullName, const UINT32 reserved, PACKAGE_INFO_REFERENCE *packageInfoReference);
+WINBASEAPI LONG WINAPI OpenPackageInfoByFullNameForUser(PSID userSid, PCWSTR packageFullName, const UINT32 reserved, PACKAGE_INFO_REFERENCE *packageInfoReference);
+WINBASEAPI LONG WINAPI ClosePackageInfo(PACKAGE_INFO_REFERENCE packageInfoReference);
+WINBASEAPI LONG WINAPI GetPackageInfo(PACKAGE_INFO_REFERENCE packageInfoReference, const UINT32 flags, UINT32 *bufferLength, BYTE *buffer, UINT32 *count);
+WINBASEAPI LONG WINAPI GetPackageApplicationIds(PACKAGE_INFO_REFERENCE packageInfoReference, UINT32 *bufferLength, BYTE *buffer, UINT32 *count);
+
+#if NTDDI_VERSION >= NTDDI_WIN10_19H1
+WINBASEAPI LONG WINAPI GetPackageInfo2(PACKAGE_INFO_REFERENCE packageInfoReference, const UINT32 flags, PackagePathType packagePathType, UINT32 *bufferLength, BYTE *buffer, UINT32 *count);
+#endif
+
+WINBASEAPI HRESULT WINAPI CheckIsMSIXPackage(PCWSTR packageFullName, WINBOOL *isMSIXPackage);
+
+#if NTDDI_VERSION >= NTDDI_WIN10_CO
+
+typedef enum CreatePackageDependencyOptions {
+  CreatePackageDependencyOptions_None = 0,
+  CreatePackageDependencyOptions_DoNotVerifyDependencyResolution = 0x00000001,
+  CreatePackageDependencyOptions_ScopeIsSystem = 0x00000002
+} CreatePackageDependencyOptions;
+DEFINE_ENUM_FLAG_OPERATORS(CreatePackageDependencyOptions)
+
+typedef enum PackageDependencyLifetimeKind {
+  PackageDependencyLifetimeKind_Process = 0,
+  PackageDependencyLifetimeKind_FilePath = 1,
+  PackageDependencyLifetimeKind_RegistryKey = 2
+} PackageDependencyLifetimeKind;
+
+typedef enum AddPackageDependencyOptions {
+  AddPackageDependencyOptions_None = 0,
+  AddPackageDependencyOptions_PrependIfRankCollision = 0x00000001
+} AddPackageDependencyOptions;
+DEFINE_ENUM_FLAG_OPERATORS(AddPackageDependencyOptions)
+
+#define PACKAGE_DEPENDENCY_RANK_DEFAULT 0
+
+typedef enum PackageDependencyProcessorArchitectures {
+  PackageDependencyProcessorArchitectures_None = 0,
+  PackageDependencyProcessorArchitectures_Neutral = 0x00000001,
+  PackageDependencyProcessorArchitectures_X86 = 0x00000002,
+  PackageDependencyProcessorArchitectures_X64 = 0x00000004,
+  PackageDependencyProcessorArchitectures_Arm = 0x00000008,
+  PackageDependencyProcessorArchitectures_Arm64 = 0x00000010,
+  PackageDependencyProcessorArchitectures_X86A64 = 0x00000020
+} PackageDependencyProcessorArchitectures;
+DEFINE_ENUM_FLAG_OPERATORS(PackageDependencyProcessorArchitectures)
+
+DECLARE_HANDLE(PACKAGEDEPENDENCY_CONTEXT);
+
+WINBASEAPI HRESULT WINAPI TryCreatePackageDependency(PSID user, PCWSTR packageFamilyName, PACKAGE_VERSION minVersion, PackageDependencyProcessorArchitectures packageDependencyProcessorArchitectures, PackageDependencyLifetimeKind lifetimeKind, PCWSTR lifetimeArtifact, CreatePackageDependencyOptions options, PWSTR *packageDependencyId);
+WINBASEAPI HRESULT WINAPI DeletePackageDependency(PCWSTR packageDependencyId);
+WINBASEAPI HRESULT WINAPI AddPackageDependency(PCWSTR packageDependencyId, INT32 rank, AddPackageDependencyOptions options, PACKAGEDEPENDENCY_CONTEXT *packageDependencyContext, PWSTR *packageFullName);
+WINBASEAPI HRESULT WINAPI RemovePackageDependency(PACKAGEDEPENDENCY_CONTEXT packageDependencyContext);
+WINBASEAPI HRESULT WINAPI GetResolvedPackageFullNameForPackageDependency(PCWSTR packageDependencyId, PWSTR *packageFullName);
+WINBASEAPI HRESULT WINAPI GetIdForPackageDependencyContext(PACKAGEDEPENDENCY_CONTEXT packageDependencyContext, PWSTR *packageDependencyId);
+
+#endif /* NTDDI_VERSION >= NTDDI_WIN10_CO */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_NI
+WINBASEAPI UINT32 WINAPI GetPackageGraphRevisionId(void);
+#endif
+
+typedef enum AppPolicyLifecycleManagement {
+  AppPolicyLifecycleManagement_Unmanaged = 0,
+  AppPolicyLifecycleManagement_Managed = 1
+} AppPolicyLifecycleManagement;
+
+WINBASEAPI LONG WINAPI AppPolicyGetLifecycleManagement(HANDLE processToken, AppPolicyLifecycleManagement *policy);
+
+typedef enum AppPolicyWindowingModel {
+  AppPolicyWindowingModel_None = 0,
+  AppPolicyWindowingModel_Universal = 1,
+  AppPolicyWindowingModel_ClassicDesktop = 2,
+  AppPolicyWindowingModel_ClassicPhone = 3
+} AppPolicyWindowingModel;
+
+WINBASEAPI LONG WINAPI AppPolicyGetWindowingModel(HANDLE processToken, AppPolicyWindowingModel *policy);
+
+typedef enum AppPolicyMediaFoundationCodecLoading {
+  AppPolicyMediaFoundationCodecLoading_All = 0,
+  AppPolicyMediaFoundationCodecLoading_InboxOnly = 1
+} AppPolicyMediaFoundationCodecLoading;
+
+WINBASEAPI LONG WINAPI AppPolicyGetMediaFoundationCodecLoading(HANDLE processToken, AppPolicyMediaFoundationCodecLoading *policy);
+
+typedef enum AppPolicyClrCompat {
+  AppPolicyClrCompat_Other = 0,
+  AppPolicyClrCompat_ClassicDesktop = 1,
+  AppPolicyClrCompat_Universal = 2,
+  AppPolicyClrCompat_PackagedDesktop = 3
+} AppPolicyClrCompat;
+
+WINBASEAPI LONG WINAPI AppPolicyGetClrCompat(HANDLE processToken, AppPolicyClrCompat *policy);
+
+typedef enum AppPolicyThreadInitializationType {
+  AppPolicyThreadInitializationType_None = 0,
+  AppPolicyThreadInitializationType_InitializeWinRT = 1
+} AppPolicyThreadInitializationType;
+
+WINBASEAPI LONG WINAPI AppPolicyGetThreadInitializationType(HANDLE processToken, AppPolicyThreadInitializationType *policy);
+
+typedef enum AppPolicyShowDeveloperDiagnostic {
+  AppPolicyShowDeveloperDiagnostic_None = 0,
+  AppPolicyShowDeveloperDiagnostic_ShowUI = 1
+} AppPolicyShowDeveloperDiagnostic;
+
+WINBASEAPI LONG WINAPI AppPolicyGetShowDeveloperDiagnostic(HANDLE processToken, AppPolicyShowDeveloperDiagnostic *policy);
+
+typedef enum AppPolicyProcessTerminationMethod {
+  AppPolicyProcessTerminationMethod_ExitProcess = 0,
+  AppPolicyProcessTerminationMethod_TerminateProcess = 1
+} AppPolicyProcessTerminationMethod;
+
+WINBASEAPI LONG WINAPI AppPolicyGetProcessTerminationMethod(HANDLE processToken, AppPolicyProcessTerminationMethod *policy);
+
+typedef enum AppPolicyCreateFileAccess {
+  AppPolicyCreateFileAccess_Full = 0,
+  AppPolicyCreateFileAccess_Limited = 1
+} AppPolicyCreateFileAccess;
+
+WINBASEAPI LONG WINAPI AppPolicyGetCreateFileAccess(HANDLE processToken, AppPolicyCreateFileAccess *policy);
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* _APPMODEL_H_ */
diff --git a/mingw-w64-headers/include/minappmodel.h b/mingw-w64-headers/include/minappmodel.h
new file mode 100644
index 0000000..d123a35
--- /dev/null
+++ b/mingw-w64-headers/include/minappmodel.h
@@ -0,0 +1,48 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifdef _MINAPPMODEL_H_
+#define _MINAPPMODEL_H_
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+#define PACKAGE_ARCHITECTURE_MIN_LENGTH 3
+#define PACKAGE_ARCHITECTURE_MAX_LENGTH 7
+#define PACKAGE_VERSION_MIN_LENGTH 7
+#define PACKAGE_VERSION_MAX_LENGTH 23
+#define PACKAGE_NAME_MIN_LENGTH 3
+#define PACKAGE_NAME_MAX_LENGTH 50
+#define PACKAGE_PUBLISHER_MIN_LENGTH 3
+#define PACKAGE_PUBLISHER_MAX_LENGTH 8192
+#define PACKAGE_PUBLISHERID_MIN_LENGTH 13
+#define PACKAGE_PUBLISHERID_MAX_LENGTH 13
+#define PACKAGE_RESOURCEID_MIN_LENGTH 0
+#define PACKAGE_RESOURCEID_MAX_LENGTH 30
+#define PACKAGE_FULL_NAME_MIN_LENGTH (PACKAGE_NAME_MIN_LENGTH + 1 + PACKAGE_VERSION_MIN_LENGTH + 1 + PACKAGE_ARCHITECTURE_MIN_LENGTH + 1 + PACKAGE_RESOURCEID_MIN_LENGTH + 1 + PACKAGE_PUBLISHERID_MIN_LENGTH)
+#define PACKAGE_FULL_NAME_MAX_LENGTH (PACKAGE_NAME_MAX_LENGTH + 1 + PACKAGE_VERSION_MAX_LENGTH + 1 + PACKAGE_ARCHITECTURE_MAX_LENGTH + 1 + PACKAGE_RESOURCEID_MAX_LENGTH + 1 + PACKAGE_PUBLISHERID_MAX_LENGTH)
+#define PACKAGE_FAMILY_NAME_MIN_LENGTH (PACKAGE_NAME_MIN_LENGTH + 1 + PACKAGE_PUBLISHERID_MIN_LENGTH)
+#define PACKAGE_FAMILY_NAME_MAX_LENGTH (PACKAGE_NAME_MAX_LENGTH + 1 + PACKAGE_PUBLISHERID_MAX_LENGTH)
+
+#define PACKAGE_MIN_DEPENDENCIES 0
+#define PACKAGE_MAX_DEPENDENCIES 128
+#define PACKAGE_FAMILY_MIN_RESOURCE_PACKAGES 0
+#define PACKAGE_FAMILY_MAX_RESOURCE_PACKAGES 512
+#define PACKAGE_GRAPH_MIN_SIZE 1
+#define PACKAGE_GRAPH_MAX_SIZE (1 + PACKAGE_MAX_DEPENDENCIES + PACKAGE_FAMILY_MAX_RESOURCE_PACKAGES)
+
+#define PACKAGE_APPLICATIONS_MIN_COUNT 0
+#define PACKAGE_APPLICATIONS_MAX_COUNT 100
+
+#define PACKAGE_RELATIVE_APPLICATION_ID_MIN_LENGTH (1 + 1)
+#define PACKAGE_RELATIVE_APPLICATION_ID_MAX_LENGTH (64 + 1)
+#define APPLICATION_USER_MODEL_ID_MIN_LENGTH (PACKAGE_FAMILY_NAME_MIN_LENGTH + 1 + PACKAGE_RELATIVE_APPLICATION_ID_MIN_LENGTH)
+#define APPLICATION_USER_MODEL_ID_MAX_LENGTH (PACKAGE_FAMILY_NAME_MAX_LENGTH + 1 + PACKAGE_RELATIVE_APPLICATION_ID_MAX_LENGTH)
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+
+#endif /* _MINAPPMODEL_H_ */
-- 
2.37.0

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to