//--------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Abstract: // Interfaces & Objects for manipulating Appx Packages. // //---------------------------------------------------------------------------- cpp_quote("#include ") import "oaidl.idl"; import "ocidl.idl"; import "urlmon.idl"; // For IUri cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN7)") #pragma region Application Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") typedef struct APPX_PACKAGE_SETTINGS { BOOL forceZip32; IUri* hashMethod; } APPX_PACKAGE_SETTINGS; typedef [v1_enum] enum APPX_COMPRESSION_OPTION { APPX_COMPRESSION_OPTION_NONE = 0, APPX_COMPRESSION_OPTION_NORMAL = 1, APPX_COMPRESSION_OPTION_MAXIMUM = 2, APPX_COMPRESSION_OPTION_FAST = 3, APPX_COMPRESSION_OPTION_SUPERFAST = 4 } APPX_COMPRESSION_OPTION; typedef struct APPX_PACKAGE_WRITER_PAYLOAD_STREAM { // Source of the payload IStream* inputStream; // Name and metadata to use when writing the payload into the appx package LPCWSTR fileName; LPCWSTR contentType; APPX_COMPRESSION_OPTION compressionOption; } APPX_PACKAGE_WRITER_PAYLOAD_STREAM; // If a new footprint file type is added in either of the two // enums below, be sure to update the corresponding file name // in appxpackagingglobals.hpp c_packageFootprintFiles array. typedef [v1_enum] enum APPX_FOOTPRINT_FILE_TYPE { APPX_FOOTPRINT_FILE_TYPE_MANIFEST = 0, APPX_FOOTPRINT_FILE_TYPE_BLOCKMAP = 1, APPX_FOOTPRINT_FILE_TYPE_SIGNATURE = 2, APPX_FOOTPRINT_FILE_TYPE_CODEINTEGRITY = 3, APPX_FOOTPRINT_FILE_TYPE_CONTENTGROUPMAP = 4 } APPX_FOOTPRINT_FILE_TYPE; typedef [v1_enum] enum APPX_BUNDLE_FOOTPRINT_FILE_TYPE { APPX_BUNDLE_FOOTPRINT_FILE_TYPE_FIRST = 0, APPX_BUNDLE_FOOTPRINT_FILE_TYPE_MANIFEST = 0, APPX_BUNDLE_FOOTPRINT_FILE_TYPE_BLOCKMAP = 1, APPX_BUNDLE_FOOTPRINT_FILE_TYPE_SIGNATURE = 2, APPX_BUNDLE_FOOTPRINT_FILE_TYPE_LAST = 2 } APPX_BUNDLE_FOOTPRINT_FILE_TYPE; typedef [v1_enum] enum APPX_CAPABILITIES { APPX_CAPABILITY_INTERNET_CLIENT = 0x0000000000000001, APPX_CAPABILITY_INTERNET_CLIENT_SERVER = 0x0000000000000002, APPX_CAPABILITY_PRIVATE_NETWORK_CLIENT_SERVER = 0x0000000000000004, APPX_CAPABILITY_DOCUMENTS_LIBRARY = 0x0000000000000008, APPX_CAPABILITY_PICTURES_LIBRARY = 0x0000000000000010, APPX_CAPABILITY_VIDEOS_LIBRARY = 0x0000000000000020, APPX_CAPABILITY_MUSIC_LIBRARY = 0x0000000000000040, APPX_CAPABILITY_ENTERPRISE_AUTHENTICATION = 0x0000000000000080, APPX_CAPABILITY_SHARED_USER_CERTIFICATES = 0x0000000000000100, APPX_CAPABILITY_REMOVABLE_STORAGE = 0x0000000000000200, APPX_CAPABILITY_APPOINTMENTS = 0x0000000000000400, APPX_CAPABILITY_CONTACTS = 0x0000000000000800 } APPX_CAPABILITIES; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(APPX_CAPABILITIES);") typedef [v1_enum] enum APPX_PACKAGE_ARCHITECTURE { APPX_PACKAGE_ARCHITECTURE_X86 = 0, // PROCESSOR_ARCHITECTURE_INTEL APPX_PACKAGE_ARCHITECTURE_ARM = 5, // PROCESSOR_ARCHITECTURE_ARM APPX_PACKAGE_ARCHITECTURE_X64 = 9, // PROCESSOR_ARCHITECTURE_AMD64 APPX_PACKAGE_ARCHITECTURE_NEUTRAL = 11, // PROCESSOR_ARCHITECTURE_NEUTRAL APPX_PACKAGE_ARCHITECTURE_ARM64 = 12 // PROCESSOR_ARCHITECTURE_ARM64 } APPX_PACKAGE_ARCHITECTURE; typedef [v1_enum] enum APPX_PACKAGE_ARCHITECTURE2 { // Must match APPX_PACKAGE_ARCHITECTURE APPX_PACKAGE_ARCHITECTURE2_X86 = 0, // PROCESSOR_ARCHITECTURE_INTEL APPX_PACKAGE_ARCHITECTURE2_ARM = 5, // PROCESSOR_ARCHITECTURE_ARM APPX_PACKAGE_ARCHITECTURE2_X64 = 9, // PROCESSOR_ARCHITECTURE_AMD64 APPX_PACKAGE_ARCHITECTURE2_NEUTRAL = 11, // PROCESSOR_ARCHITECTURE_NEUTRAL APPX_PACKAGE_ARCHITECTURE2_ARM64 = 12, // PROCESSOR_ARCHITECTURE_ARM64 APPX_PACKAGE_ARCHITECTURE2_X86_ON_ARM64 = 14, // PROCESSOR_ARCHITECTURE_IA32_ON_ARM64 APPX_PACKAGE_ARCHITECTURE2_UNKNOWN = 0xFFFF // PROCESSOR_ARCHITECTURE_UNKNOWN } APPX_PACKAGE_ARCHITECTURE2; typedef [v1_enum] enum APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE { APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE_APPLICATION = 0, APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE_RESOURCE = 1 } APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE; typedef [v1_enum] enum DX_FEATURE_LEVEL { DX_FEATURE_LEVEL_UNSPECIFIED = 0, DX_FEATURE_LEVEL_9 = 1, DX_FEATURE_LEVEL_10 = 2, DX_FEATURE_LEVEL_11 = 3, } DX_FEATURE_LEVEL; typedef [v1_enum] enum APPX_CAPABILITY_CLASS_TYPE { APPX_CAPABILITY_CLASS_DEFAULT = 0x00000000, APPX_CAPABILITY_CLASS_GENERAL = 0x00000001, APPX_CAPABILITY_CLASS_RESTRICTED = 0x00000002, APPX_CAPABILITY_CLASS_WINDOWS = 0x00000004, APPX_CAPABILITY_CLASS_ALL = 0x00000007, APPX_CAPABILITY_CLASS_CUSTOM = 0x00000008 } APPX_CAPABILITY_CLASS_TYPE; typedef [v1_enum] enum APPX_PACKAGING_CONTEXT_CHANGE_TYPE { APPX_PACKAGING_CONTEXT_CHANGE_TYPE_START = 0, APPX_PACKAGING_CONTEXT_CHANGE_TYPE_CHANGE = 1, APPX_PACKAGING_CONTEXT_CHANGE_TYPE_DETAILS = 2, APPX_PACKAGING_CONTEXT_CHANGE_TYPE_END = 3 } APPX_PACKAGING_CONTEXT_CHANGE_TYPE; interface IAppxPackageWriter; interface IAppxPackageReader; interface IAppxFile; interface IAppxFilesEnumerator; interface IAppxBlockMapReader; interface IAppxBlockMapFile; interface IAppxBlockMapFilesEnumerator; interface IAppxBlockMapBlock; interface IAppxBlockMapBlocksEnumerator; interface IAppxManifestApplicationsEnumerator; interface IAppxManifestApplication; interface IAppxManifestDeviceCapabilitiesEnumerator; interface IAppxManifestPackageId; interface IAppxManifestPackageId2; interface IAppxManifestPackageDependency; interface IAppxManifestPackageDependenciesEnumerator; interface IAppxManifestProperties; interface IAppxManifestReader; interface IAppxBundleFactory; interface IAppxBundleFactory2; interface IAppxBundleWriter; interface IAppxBundleWriter2; interface IAppxBundleWriter3; interface IAppxBundleWriter4; interface IAppxBundleReader; interface IAppxBundleManifestReader; interface IAppxBundleManifestReader2; interface IAppxBundleManifestPackageInfoEnumerator; interface IAppxBundleManifestPackageInfo; interface IAppxBundleManifestPackageInfo2; interface IAppxBundleManifestPackageInfo3; interface IAppxBundleManifestOptionalBundleInfoEnumerator; interface IAppxBundleManifestOptionalBundleInfo; interface IAppxManifestQualifiedResourcesEnumerator; interface IAppxManifestQualifiedResource; interface IAppxManifestTargetDeviceFamily; interface IAppxManifestTargetDeviceFamiliesEnumerator; interface IAppxManifestPackageDependency2; interface IAppxManifestPackageDependency3; interface IAppxManifestResourcesEnumerator; interface IAppxManifestCapabilitiesEnumerator; interface IAppxManifestOptionalPackageInfo; interface IAppxContentGroupFilesEnumerator; interface IAppxContentGroupsEnumerator; interface IAppxContentGroup; interface IAppxContentGroupMapReader; interface IAppxSourceContentGroupMapReader; interface IAppxContentGroupMapWriter; interface IAppxManifestMainPackageDependenciesEnumerator; interface IAppxManifestMainPackageDependency; interface IAppxPackagingEventSink; interface IAppxPackagingEventSinkManager; interface IAppxManifestDriverDependency; interface IAppxManifestDriverDependenciesEnumerator; interface IAppxManifestDriverConstraint; interface IAppxManifestDriverConstraintsEnumerator; interface IAppxManifestOSPackageDependency; interface IAppxManifestOSPackageDependenciesEnumerator; interface IAppxManifestHostRuntimeDependency; interface IAppxManifestHostRuntimeDependenciesEnumerator; interface IAppxAppInstallerReader; interface IAppxDigestProvider; cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */") #pragma endregion #pragma region Desktop Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") interface IAppxEncryptionFactory; interface IAppxEncryptedPackageWriter; interface IAppxEncryptedBundleWriter; interface IAppxEncryptedBundleWriter2; interface IAppxEncryptedBundleWriter3; cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") #pragma endregion #pragma region Application Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [ object, uuid(beb94909-e451-438b-b5a7-d79e767b75d8), pointer_default(ref) ] interface IAppxFactory : IUnknown { HRESULT CreatePackageWriter( [in] IStream * outputStream, [in] APPX_PACKAGE_SETTINGS * settings, [out, retval] IAppxPackageWriter ** packageWriter ); HRESULT CreatePackageReader( [in] IStream * inputStream, [out, retval] IAppxPackageReader ** packageReader ); HRESULT CreateManifestReader( [in] IStream * inputStream, [out, retval] IAppxManifestReader ** manifestReader ); HRESULT CreateBlockMapReader( [in] IStream * inputStream, [out, retval] IAppxBlockMapReader ** blockMapReader ); HRESULT CreateValidatedBlockMapReader( [in] IStream * blockMapStream, [in] LPCWSTR signatureFileName, [out, retval] IAppxBlockMapReader ** blockMapReader ); } [ object, uuid(f1346df2-c282-4e22-b918-743a929a8d55), pointer_default(ref) ] interface IAppxFactory2 : IUnknown { HRESULT CreateContentGroupMapReader( [in] IStream * inputStream, [out, retval] IAppxContentGroupMapReader** contentGroupMapReader ); HRESULT CreateSourceContentGroupMapReader( [in] IStream * inputStream, [out, retval] IAppxSourceContentGroupMapReader** reader ); HRESULT CreateContentGroupMapWriter( [in] IStream * stream, [out, retval] IAppxContentGroupMapWriter** contentGroupMapWriter ); } [ object, uuid(776b2c05-e21d-4e24-ba1a-cd529a8bfdbb), pointer_default(ref) ] interface IAppxFactory3 : IUnknown { HRESULT CreatePackageReader2( [in] IStream* inputStream, [in, optional] LPCWSTR expectedDigest, [out, retval] IAppxPackageReader** packageReader ); HRESULT CreateManifestReader2( [in] IStream* inputStream, [in, optional] LPCWSTR expectedDigest, [out, retval] IAppxManifestReader** manifestReader ); HRESULT CreateAppInstallerReader( [in] IStream* inputStream, [in, optional] LPCWSTR expectedDigest, [out, retval] IAppxAppInstallerReader** appInstallerReader ); } [ object, uuid(b5c49650-99bc-481c-9a34-3d53a4106708), pointer_default(ref) ] interface IAppxPackageReader : IUnknown { HRESULT GetBlockMap( [out, retval] IAppxBlockMapReader ** blockMapReader ); HRESULT GetFootprintFile( [in] APPX_FOOTPRINT_FILE_TYPE type, [out, retval] IAppxFile ** file ); HRESULT GetPayloadFile( [in, string] LPCWSTR fileName, [out, retval] IAppxFile ** file ); HRESULT GetPayloadFiles( [out, retval] IAppxFilesEnumerator ** filesEnumerator ); HRESULT GetManifest( [out, retval] IAppxManifestReader ** manifestReader ); } [ object, uuid(9099e33b-246f-41e4-881a-008eb613f858), pointer_default(ref) ] interface IAppxPackageWriter : IUnknown { HRESULT AddPayloadFile( [in, string] LPCWSTR fileName, [in, string] LPCWSTR contentType, [in] APPX_COMPRESSION_OPTION compressionOption, [in] IStream * inputStream ); HRESULT Close( [in] IStream * manifest ); } [ object, uuid(2cf5c4fd-e54c-4ea5-ba4e-f8c4b105a8c8), pointer_default(ref) ] interface IAppxPackageWriter2 : IUnknown { HRESULT Close( [in] IStream* manifest, [in] IStream* contentGroupMap ); } [ object, uuid(a83aacd3-41c0-4501-b8a3-74164f50b2fd), pointer_default(ref) ] interface IAppxPackageWriter3 : IUnknown { HRESULT AddPayloadFiles( [in] UINT32 fileCount, [in, size_is(fileCount)] APPX_PACKAGE_WRITER_PAYLOAD_STREAM* payloadFiles, [in] UINT64 memoryLimit ); } [ object, uuid(91df827b-94fd-468f-827b-57f41b2f6f2e), pointer_default(ref) ] interface IAppxFile : IUnknown { HRESULT GetCompressionOption( [out, retval] APPX_COMPRESSION_OPTION * compressionOption ); HRESULT GetContentType( [out, string, retval] LPWSTR * contentType ); HRESULT GetName( [out, string, retval] LPWSTR * fileName ); HRESULT GetSize( [out, retval] UINT64 * size ); HRESULT GetStream( [out, retval] IStream ** stream ); } [ object, uuid(f007eeaf-9831-411c-9847-917cdc62d1fe), pointer_default(ref) ] interface IAppxFilesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxFile ** file ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(5efec991-bca3-42d1-9ec2-e92d609ec22a), pointer_default(ref) ] interface IAppxBlockMapReader : IUnknown { HRESULT GetFile( [in, string] LPCWSTR filename, [out, retval] IAppxBlockMapFile ** file ); HRESULT GetFiles( [out, retval] IAppxBlockMapFilesEnumerator ** enumerator ); HRESULT GetHashMethod( [out, retval] IUri ** hashMethod ); HRESULT GetStream( [out, retval] IStream ** blockMapStream ); } [ object, uuid(277672ac-4f63-42c1-8abc-beae3600eb59), pointer_default(ref) ] interface IAppxBlockMapFile : IUnknown { HRESULT GetBlocks( [out, retval] IAppxBlockMapBlocksEnumerator ** blocks ); HRESULT GetLocalFileHeaderSize( [out, retval] UINT32 * lfhSize ); HRESULT GetName( [out, string, retval] LPWSTR * name ); HRESULT GetUncompressedSize( [out, retval] UINT64 * size ); HRESULT ValidateFileHash( [in] IStream * fileStream, [out, retval] BOOL * isValid ); } [ object, uuid(02b856a2-4262-4070-bacb-1a8cbbc42305), pointer_default(ref) ] interface IAppxBlockMapFilesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxBlockMapFile ** file ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasCurrent ); } [ object, uuid(75cf3930-3244-4fe0-a8c8-e0bcb270b889), pointer_default(unique) ] interface IAppxBlockMapBlock : IUnknown { HRESULT GetHash( [out] UINT32 * bufferSize, [out, size_is(, *bufferSize), retval] BYTE ** buffer ); HRESULT GetCompressedSize( [out, retval] UINT32 * size ); } [ object, uuid(6b429b5b-36ef-479e-b9eb-0c1482b49e16), pointer_default(ref) ] interface IAppxBlockMapBlocksEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxBlockMapBlock ** block ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(4e1bd148-55a0-4480-a3d1-15544710637c), pointer_default(ref) ] interface IAppxManifestReader : IUnknown { HRESULT GetPackageId( [out, retval] IAppxManifestPackageId ** packageId ); HRESULT GetProperties( [out, retval] IAppxManifestProperties ** packageProperties ); HRESULT GetPackageDependencies( [out, retval] IAppxManifestPackageDependenciesEnumerator ** dependencies ); HRESULT GetCapabilities( [out, retval] APPX_CAPABILITIES * capabilities ); HRESULT GetResources( [out, retval] IAppxManifestResourcesEnumerator ** resources ); HRESULT GetDeviceCapabilities( [out, retval] IAppxManifestDeviceCapabilitiesEnumerator ** deviceCapabilities ); HRESULT GetPrerequisite( [in, string] LPCWSTR name, [out, retval] UINT64 * value ); HRESULT GetApplications( [out, retval] IAppxManifestApplicationsEnumerator ** applications ); HRESULT GetStream( [out, retval] IStream ** manifestStream ); } [ object, uuid(d06f67bc-b31d-4eba-a8af-638e73e77b4d), pointer_default(ref) ] interface IAppxManifestReader2 : IAppxManifestReader { HRESULT GetQualifiedResources( [out, retval] IAppxManifestQualifiedResourcesEnumerator ** resources ); } [ object, uuid(C43825AB-69B7-400A-9709-CC37F5A72D24), pointer_default(ref) ] interface IAppxManifestReader3 : IAppxManifestReader2 { HRESULT GetCapabilitiesByCapabilityClass( [in] APPX_CAPABILITY_CLASS_TYPE capabilityClass, [out, retval] IAppxManifestCapabilitiesEnumerator ** capabilities ); HRESULT GetTargetDeviceFamilies( [out, retval] IAppxManifestTargetDeviceFamiliesEnumerator** targetDeviceFamilies ); } [ object, uuid(4579BB7C-741D-4161-B5A1-47BD3B78AD9B), pointer_default(ref) ] interface IAppxManifestReader4 : IAppxManifestReader3 { HRESULT GetOptionalPackageInfo( [out, retval] IAppxManifestOptionalPackageInfo ** optionalPackageInfo ); } [ object, uuid(8D7AE132-A690-4C00-B75A-6AAE1FEAAC80), pointer_default(ref) ] interface IAppxManifestReader5 : IUnknown { HRESULT GetMainPackageDependencies( [out, retval] IAppxManifestMainPackageDependenciesEnumerator** mainPackageDependencies ); } [ object, uuid(34DEACA4-D3C0-4E3E-B312-E42625E3807E), pointer_default(ref) ] interface IAppxManifestReader6 : IUnknown { HRESULT GetIsNonQualifiedResourcePackage( [out, retval] BOOL* isNonQualifiedResourcePackage ); } [ object, uuid(8EFE6F27-0CE0-4988-B32D-738EB63DB3B7), pointer_default(ref) ] interface IAppxManifestReader7 : IUnknown { HRESULT GetDriverDependencies( [out, retval] IAppxManifestDriverDependenciesEnumerator** driverDependencies ); HRESULT GetOSPackageDependencies( [out, retval] IAppxManifestOSPackageDependenciesEnumerator** osPackageDependencies ); HRESULT GetHostRuntimeDependencies( [out, retval] IAppxManifestHostRuntimeDependenciesEnumerator** hostRuntimeDependencies ); } [ object, uuid(FE039DB2-467f-4755-8404-8F5EB6865B33), pointer_default(ref) ] interface IAppxManifestDriverDependenciesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestDriverDependency** driverDependency ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(1210CB94-5A92-4602-BE24-79F318AF4AF9), pointer_default(ref) ] interface IAppxManifestDriverDependency : IUnknown { HRESULT GetDriverConstraints( [out, retval] IAppxManifestDriverConstraintsEnumerator** driverConstraints ); } [ object, uuid(D402B2D1-F600-49E0-95E6-975D8DA13D89), pointer_default(ref) ] interface IAppxManifestDriverConstraintsEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestDriverConstraint** driverConstraint ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(C031BEE4-BBCC-48EA-A237-C34045C80A07), pointer_default(ref) ] interface IAppxManifestDriverConstraint : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR* name ); HRESULT GetMinVersion( [out, retval] UINT64* minVersion ); HRESULT GetMinDate( [out, string, retval] LPWSTR* minDate ); } [ object, uuid(B84E2FC3-F8EC-4BC1-8AE2-156346F5FFEA), pointer_default(ref) ] interface IAppxManifestOSPackageDependenciesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestOSPackageDependency** osPackageDependency ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(154995EE-54A6-4F14-AC97-D8CF0519644B), pointer_default(ref) ] interface IAppxManifestOSPackageDependency : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR* name ); HRESULT GetVersion( [out, retval] UINT64* version ); } [ object, uuid(6427A646-7F49-433E-B1A6-0DA309F6885A), pointer_default(ref) ] interface IAppxManifestHostRuntimeDependenciesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestHostRuntimeDependency** hostRuntimeDependency ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(3455D234-8414-410D-95C7-7B35255B8391), pointer_default(ref) ] interface IAppxManifestHostRuntimeDependency : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR* name ); HRESULT GetPublisher( [out, string, retval] LPWSTR* publisher ); HRESULT GetMinVersion( [out, retval] UINT64* minVersion ); } [ object, uuid(C26F23A8-EE10-4AD6-B898-2B4D7AEBFE6A), pointer_default(ref) ] interface IAppxManifestHostRuntimeDependency2 : IUnknown { HRESULT GetPackageFamilyName( [out, string, retval] LPWSTR* packageFamilyName ); } [ object, uuid(2634847D-5B5D-4FE5-A243-002FF95EDC7E), pointer_default(ref) ] interface IAppxManifestOptionalPackageInfo : IUnknown { HRESULT GetIsOptionalPackage( [out, retval] BOOL * isOptionalPackage ); HRESULT GetMainPackageName( [out, string, retval] LPWSTR * mainPackageName ); } [ object, uuid(A99C4F00-51D2-4F0F-BA46-7ED5255EBDFF), pointer_default(ref) ] interface IAppxManifestMainPackageDependenciesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestMainPackageDependency** mainPackageDependency ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(05D0611C-BC29-46D5-97E2-84B9C79BD8AE), pointer_default(ref) ] interface IAppxManifestMainPackageDependency : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR* name ); HRESULT GetPublisher( [out, string, retval] LPWSTR* publisher ); HRESULT GetPackageFamilyName( [out, string, retval] LPWSTR* packageFamilyName ); } [ object, uuid(283ce2d7-7153-4a91-9649-7a0f7240945f), pointer_default(ref) ] interface IAppxManifestPackageId : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR * name ); HRESULT GetArchitecture( [out, retval] APPX_PACKAGE_ARCHITECTURE * architecture ); HRESULT GetPublisher( [out, string, retval] LPWSTR * publisher ); HRESULT GetVersion( [out, retval] UINT64 * packageVersion ); HRESULT GetResourceId( [out, string, retval] LPWSTR * resourceId ); HRESULT ComparePublisher( [in, string] LPCWSTR other, [out, retval] BOOL * isSame ); HRESULT GetPackageFullName( [out, string, retval] LPWSTR * packageFullName ); HRESULT GetPackageFamilyName( [out, string, retval] LPWSTR * packageFamilyName ); } [ object, uuid(2256999d-d617-42f1-880e-0ba4542319d5), pointer_default(ref) ] interface IAppxManifestPackageId2 : IAppxManifestPackageId { HRESULT GetArchitecture2( [out, retval] APPX_PACKAGE_ARCHITECTURE2 * architecture ); } [ object, uuid(03faf64d-f26f-4b2c-aaf7-8fe7789b8bca), pointer_default(ref) ] interface IAppxManifestProperties : IUnknown { HRESULT GetBoolValue( [in, string] LPCWSTR name, [out, retval] BOOL * value ); HRESULT GetStringValue( [in, string] LPCWSTR name, [out, string, retval] LPWSTR * value ); } [ object, uuid(36537F36-27A4-4788-88C0-733819575017), pointer_default(ref) ] interface IAppxManifestTargetDeviceFamiliesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestTargetDeviceFamily** targetDeviceFamily ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(9091B09B-C8D5-4F31-8687-A338259FAEFB), pointer_default(ref) ] interface IAppxManifestTargetDeviceFamily : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR* name ); HRESULT GetMinVersion( [out, retval] UINT64* minVersion ); HRESULT GetMaxVersionTested( [out, retval] UINT64* maxVersionTested ); } [ object, uuid(b43bbcf9-65a6-42dd-bac0-8c6741e7f5a4), pointer_default(ref) ] interface IAppxManifestPackageDependenciesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestPackageDependency ** dependency ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(e4946b59-733e-43f0-a724-3bde4c1285a0), pointer_default(ref) ] interface IAppxManifestPackageDependency : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR * name ); HRESULT GetPublisher( [out, string, retval] LPWSTR * publisher ); HRESULT GetMinVersion( [out, retval] UINT64 * minVersion ); } [ object, uuid(DDA0B713-F3FF-49D3-898A-2786780C5D98), pointer_default(ref) ] interface IAppxManifestPackageDependency2 : IAppxManifestPackageDependency { HRESULT GetMaxMajorVersionTested( [out, retval] UINT16* maxMajorVersionTested ); } [ object, uuid(1AC56374-6198-4D6B-92E4-749D5AB8A895), pointer_default(ref) ] interface IAppxManifestPackageDependency3 : IUnknown { HRESULT GetIsOptional( [out, retval] BOOL * isOptional ); } [ object, uuid(de4dfbbd-881a-48bb-858c-d6f2baeae6ed), pointer_default(ref) ] interface IAppxManifestResourcesEnumerator : IUnknown { HRESULT GetCurrent( [out, string, retval] LPWSTR * resource ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(30204541-427b-4a1c-bacf-655bf463a540), pointer_default(ref) ] interface IAppxManifestDeviceCapabilitiesEnumerator : IUnknown { HRESULT GetCurrent( [out, string, retval] LPWSTR * deviceCapability ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(11D22258-F470-42C1-B291-8361C5437E41), pointer_default(ref) ] interface IAppxManifestCapabilitiesEnumerator : IUnknown { HRESULT GetCurrent( [out, string, retval] LPWSTR * capability ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(9eb8a55a-f04b-4d0d-808d-686185d4847a), pointer_default(ref) ] interface IAppxManifestApplicationsEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestApplication ** application ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(5da89bf4-3773-46be-b650-7e744863b7e8), pointer_default(ref) ] interface IAppxManifestApplication : IUnknown { HRESULT GetStringValue( [in, string] LPCWSTR name, [out, string, retval] LPWSTR * value ); HRESULT GetAppUserModelId( [out, string, retval] LPWSTR * appUserModelId ); } [ object, uuid(8ef6adfe-3762-4a8f-9373-2fc5d444c8d2), pointer_default(ref) ] interface IAppxManifestQualifiedResourcesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxManifestQualifiedResource ** resource ); HRESULT GetHasCurrent( [out, retval] BOOL * hasCurrent ); HRESULT MoveNext( [out, retval] BOOL * hasNext ); } [ object, uuid(3b53a497-3c5c-48d1-9ea3-bb7eac8cd7d4), pointer_default(ref) ] interface IAppxManifestQualifiedResource : IUnknown { HRESULT GetLanguage( [out, string, retval] LPWSTR * language ); HRESULT GetScale( [out, retval] UINT32 * scale ); HRESULT GetDXFeatureLevel( [out, retval] DX_FEATURE_LEVEL * dxFeatureLevel ); } [ object, uuid(BBA65864-965F-4A5F-855F-F074BDBF3A7B), pointer_default(ref) ] interface IAppxBundleFactory : IUnknown { HRESULT CreateBundleWriter( [in] IStream* outputStream, [in] UINT64 bundleVersion, [out, retval] IAppxBundleWriter** bundleWriter ); HRESULT CreateBundleReader( [in] IStream* inputStream, [out, retval] IAppxBundleReader** bundleReader ); HRESULT CreateBundleManifestReader( [in] IStream* inputStream, [out, retval] IAppxBundleManifestReader** manifestReader ); } [ object, uuid(7325b83d-0185-42c4-82ac-be34ab1a2a8a), pointer_default(ref) ] interface IAppxBundleFactory2 : IUnknown { HRESULT CreateBundleReader2( [in] IStream* inputStream, [in, optional] LPCWSTR expectedDigest, [out, retval] IAppxBundleReader** bundleReader ); } [ object, uuid(EC446FE8-BFEC-4C64-AB4F-49F038F0C6D2), pointer_default(ref) ] interface IAppxBundleWriter : IUnknown { HRESULT AddPayloadPackage( [in, string] LPCWSTR fileName, [in] IStream* packageStream ); HRESULT Close(); } [ object, uuid(6D8FE971-01CC-49A0-B685-233851279962), pointer_default(ref) ] interface IAppxBundleWriter2 : IUnknown { HRESULT AddExternalPackageReference( [in, string] LPCWSTR fileName, [in] IStream* inputStream ); } [ object, uuid(AD711152-F969-4193-82D5-9DDF2786D21A), pointer_default(ref) ] interface IAppxBundleWriter3 : IUnknown { HRESULT AddPackageReference( [in, string] LPCWSTR fileName, [in] IStream* inputStream ); HRESULT Close( [in, string] LPCWSTR hashMethodString ); } [ object, uuid(9CD9D523-5009-4C01-9882-DC029FBD47A3), pointer_default(ref) ] interface IAppxBundleWriter4 : IUnknown { HRESULT AddPayloadPackage( [in, string] LPCWSTR fileName, [in] IStream* packageStream, [in] BOOL isDefaultApplicablePackage ); HRESULT AddPackageReference( [in, string] LPCWSTR fileName, [in] IStream* inputStream, [in] BOOL isDefaultApplicablePackage ); HRESULT AddExternalPackageReference( [in, string] LPCWSTR fileName, [in] IStream* inputStream, [in] BOOL isDefaultApplicablePackage ); } [ object, uuid(DD75B8C0-BA76-43B0-AE0F-68656A1DC5C8), pointer_default(ref) ] interface IAppxBundleReader : IUnknown { HRESULT GetFootprintFile( [in] APPX_BUNDLE_FOOTPRINT_FILE_TYPE fileType, [out, retval] IAppxFile** footprintFile ); HRESULT GetBlockMap( [out, retval] IAppxBlockMapReader** blockMapReader ); HRESULT GetManifest( [out, retval] IAppxBundleManifestReader** manifestReader ); HRESULT GetPayloadPackages( [out, retval] IAppxFilesEnumerator** payloadPackages ); HRESULT GetPayloadPackage( [in, string] LPCWSTR fileName, [out, retval] IAppxFile** payloadPackage ); } [ object, uuid(CF0EBBC1-CC99-4106-91EB-E67462E04FB0), pointer_default(ref) ] interface IAppxBundleManifestReader : IUnknown { HRESULT GetPackageId( [out, retval] IAppxManifestPackageId** packageId ); HRESULT GetPackageInfoItems( [out, retval] IAppxBundleManifestPackageInfoEnumerator** packageInfoItems ); HRESULT GetStream( [out, retval] IStream** manifestStream ); } [ object, uuid(5517DF70-033F-4AF2-8213-87D766805C02), pointer_default(ref) ] interface IAppxBundleManifestReader2 : IUnknown { HRESULT GetOptionalBundles( [out, retval] IAppxBundleManifestOptionalBundleInfoEnumerator** optionalBundles ); } [ object, uuid(F9B856EE-49A6-4E19-B2B0-6A2406D63A32), pointer_default(ref) ] interface IAppxBundleManifestPackageInfoEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxBundleManifestPackageInfo** packageInfo ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(54CD06C1-268F-40BB-8ED2-757A9EBAEC8D), pointer_default(ref) ] interface IAppxBundleManifestPackageInfo : IUnknown { HRESULT GetPackageType( [out, retval] APPX_BUNDLE_PAYLOAD_PACKAGE_TYPE* packageType ); HRESULT GetPackageId( [out, retval] IAppxManifestPackageId** packageId ); HRESULT GetFileName( [out, string, retval] LPWSTR* fileName ); HRESULT GetOffset( [out, retval] UINT64* offset ); HRESULT GetSize( [out, retval] UINT64* size ); HRESULT GetResources( [out, retval] IAppxManifestQualifiedResourcesEnumerator** resources ); } [ object, uuid(44C2ACBC-B2CF-4CCB-BBDB-9C6DA8C3BC9E), pointer_default(ref) ] interface IAppxBundleManifestPackageInfo2 : IUnknown { HRESULT GetIsPackageReference( [out, retval] BOOL* isPackageReference ); HRESULT GetIsNonQualifiedResourcePackage( [out, retval] BOOL* isNonQualifiedResourcePackage ); HRESULT GetIsDefaultApplicablePackage( [out, retval] BOOL* isDefaultApplicablePackage ); } [ object, uuid(6BA74B98-BB74-4296-80D0-5F4256A99675), pointer_default(ref) ] interface IAppxBundleManifestPackageInfo3 : IUnknown { HRESULT GetTargetDeviceFamilies( [out, retval] IAppxManifestTargetDeviceFamiliesEnumerator** targetDeviceFamilies ); } [ object, uuid(5DA6F13D-A8A7-4532-857C-1393D659371D), pointer_default(ref) ] interface IAppxBundleManifestPackageInfo4 : IUnknown { HRESULT GetIsStub( [out, retval] BOOL* isStub ); } [ object, uuid(9A178793-F97E-46AC-AACA-DD5BA4C177C8), pointer_default(ref) ] interface IAppxBundleManifestOptionalBundleInfoEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxBundleManifestOptionalBundleInfo** optionalBundle ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(515BF2E8-BCB0-4D69-8C48-E383147B6E12), pointer_default(ref) ] interface IAppxBundleManifestOptionalBundleInfo : IUnknown { HRESULT GetPackageId( [out, retval] IAppxManifestPackageId** packageId ); HRESULT GetFileName( [out, string, retval] LPWSTR* fileName ); HRESULT GetPackageInfoItems( [out, retval] IAppxBundleManifestPackageInfoEnumerator** packageInfoItems ); } [ object, uuid(1a09a2fd-7440-44eb-8c84-848205a6a1cc), pointer_default(ref) ] interface IAppxContentGroupFilesEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] LPWSTR* file ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(328f6468-c04f-4e3c-b6fa-6b8d27f3003a), pointer_default(ref) ] interface IAppxContentGroup : IUnknown { HRESULT GetName( [out, string, retval] LPWSTR* groupName ); HRESULT GetFiles( [out, retval] IAppxContentGroupFilesEnumerator** enumerator ); } [ object, uuid(3264e477-16d1-4d63-823e-7d2984696634), pointer_default(ref) ] interface IAppxContentGroupsEnumerator : IUnknown { HRESULT GetCurrent( [out, retval] IAppxContentGroup** stream ); HRESULT GetHasCurrent( [out, retval] BOOL* hasCurrent ); HRESULT MoveNext( [out, retval] BOOL* hasNext ); } [ object, uuid(418726d8-dd99-4f5d-9886-157add20de01), pointer_default(ref) ] interface IAppxContentGroupMapReader : IUnknown { HRESULT GetRequiredGroup( [out, retval] IAppxContentGroup** requiredGroup ); HRESULT GetAutomaticGroups( [out, retval] IAppxContentGroupsEnumerator** automaticGroupsEnumerator ); } [ object, uuid(f329791d-540b-4a9f-bc75-3282b7d73193), pointer_default(ref) ] interface IAppxSourceContentGroupMapReader : IUnknown { HRESULT GetRequiredGroup( [out, retval] IAppxContentGroup** requiredGroup ); HRESULT GetAutomaticGroups( [out, retval] IAppxContentGroupsEnumerator** automaticGroupsEnumerator ); } [ object, uuid(d07ab776-a9de-4798-8c14-3db31e687c78), pointer_default(ref) ] interface IAppxContentGroupMapWriter : IUnknown { HRESULT AddAutomaticGroup( [in, string] LPCWSTR groupName ); HRESULT AddAutomaticFile( [in, string] LPCWSTR fileName ); HRESULT Close(); } [ object, uuid(17239D47-6ADB-45D2-80F6-F9CBC3BF059D), pointer_default(ref) ] interface IAppxPackagingDiagnosticEventSink : IUnknown { HRESULT ReportContextChange( [in] APPX_PACKAGING_CONTEXT_CHANGE_TYPE changeType, [in] LONG contextId, [in, string] LPCSTR contextName, [in, string] LPCWSTR contextMessage, [in, string] LPCWSTR detailsMessage); HRESULT ReportError( [in, string] LPCWSTR errorMessage); } [ object, uuid(369648FA-A7EB-4909-A15D-6954A078F18A), pointer_default(ref) ] interface IAppxPackagingDiagnosticEventSinkManager : IUnknown { HRESULT SetSinkForProcess( [in] IAppxPackagingDiagnosticEventSink* sink); } [ object, uuid(f35bc38c-1d2f-43db-a1f4-586430d1fed2), pointer_default(ref) ] interface IAppxAppInstallerReader : IUnknown { HRESULT GetXmlDom( [out, retval] IXMLDOMDocument** dom ); } [ object, uuid(9fe2702b-7640-4659-8e6c-349e43c4cdbd), pointer_default(ref) ] interface IAppxDigestProvider : IUnknown { HRESULT GetDigest( [out, retval] LPWSTR* digest ); } cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */") #pragma endregion #pragma region Desktop Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") typedef struct APPX_ENCRYPTED_PACKAGE_SETTINGS { UINT32 keyLength; LPCWSTR encryptionAlgorithm; BOOL useDiffusion; IUri* blockMapHashAlgorithm; } APPX_ENCRYPTED_PACKAGE_SETTINGS; typedef [v1_enum] enum APPX_ENCRYPTED_PACKAGE_OPTIONS { APPX_ENCRYPTED_PACKAGE_OPTION_NONE = 0, APPX_ENCRYPTED_PACKAGE_OPTION_DIFFUSION = 0x1, APPX_ENCRYPTED_PACKAGE_OPTION_PAGE_HASHING = 0x2, } APPX_ENCRYPTED_PACKAGE_OPTIONS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(APPX_ENCRYPTED_PACKAGE_OPTIONS);") typedef struct APPX_ENCRYPTED_PACKAGE_SETTINGS2 { UINT32 keyLength; LPCWSTR encryptionAlgorithm; IUri* blockMapHashAlgorithm; DWORD options; } APPX_ENCRYPTED_PACKAGE_SETTINGS2; typedef struct APPX_KEY_INFO { UINT32 keyLength; UINT32 keyIdLength; [size_is(keyLength)] BYTE* key; [size_is(keyIdLength)] BYTE* keyId; } APPX_KEY_INFO; typedef struct APPX_ENCRYPTED_EXEMPTIONS { UINT32 count; [size_is(count), unique] LPCWSTR *plainTextFiles; } APPX_ENCRYPTED_EXEMPTIONS; [ object, uuid(80E8E04D-8C88-44AE-A011-7CADF6FB2E72), pointer_default(ref) ] interface IAppxEncryptionFactory : IUnknown { HRESULT EncryptPackage( [in] IStream * inputStream, [in] IStream * outputStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles ); HRESULT DecryptPackage( [in] IStream * inputStream, [in] IStream * outputStream, [in] const APPX_KEY_INFO * keyInfo ); HRESULT CreateEncryptedPackageWriter( [in] IStream * outputStream, [in] IStream * manifestStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles, [out, retval] IAppxEncryptedPackageWriter ** packageWriter ); HRESULT CreateEncryptedPackageReader( [in] IStream * inputStream, [in] const APPX_KEY_INFO * keyInfo, [out, retval] IAppxPackageReader ** packageReader ); HRESULT EncryptBundle( [in] IStream * inputStream, [in] IStream * outputStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles ); HRESULT DecryptBundle( [in] IStream * inputStream, [in] IStream * outputStream, [in] const APPX_KEY_INFO * keyInfo ); HRESULT CreateEncryptedBundleWriter( [in] IStream * outputStream, [in] UINT64 bundleVersion, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles, [out, retval] IAppxEncryptedBundleWriter ** bundleWriter ); HRESULT CreateEncryptedBundleReader( [in] IStream * inputStream, [in] const APPX_KEY_INFO * keyInfo, [out, retval] IAppxBundleReader** bundleReader ); } [ object, uuid(c1b11eee-c4ba-4ab2-a55d-d015fe8ff64f), pointer_default(ref) ] interface IAppxEncryptionFactory2 : IUnknown { HRESULT CreateEncryptedPackageWriter( [in] IStream * outputStream, [in] IStream * manifestStream, [in] IStream * contentGroupMapStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles, [out, retval] IAppxEncryptedPackageWriter ** packageWriter ); } [ object, uuid(09edca37-cd64-47d6-b7e8-1cb11d4f7e05), pointer_default(ref) ] interface IAppxEncryptionFactory3 : IUnknown { HRESULT EncryptPackage( [in] IStream * inputStream, [in] IStream * outputStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS2 * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles ); HRESULT CreateEncryptedPackageWriter( [in] IStream * outputStream, [in] IStream * manifestStream, [in] IStream * contentGroupMapStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS2 * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles, [out, retval] IAppxEncryptedPackageWriter ** packageWriter ); HRESULT EncryptBundle( [in] IStream * inputStream, [in] IStream * outputStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS2 * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles ); HRESULT CreateEncryptedBundleWriter( [in] IStream * outputStream, [in] UINT64 bundleVersion, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS2 * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles, [out, retval] IAppxEncryptedBundleWriter ** bundleWriter ); } [ object, uuid(A879611F-12FD-41fe-85D5-06AE779BBAF5), pointer_default(ref) ] interface IAppxEncryptionFactory4 : IUnknown { HRESULT EncryptPackage( [in] IStream * inputStream, [in] IStream * outputStream, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS2 * settings, [in] const APPX_KEY_INFO * keyInfo, [in] const APPX_ENCRYPTED_EXEMPTIONS * exemptedFiles, [in] UINT64 memoryLimit ); } [ object, uuid(68d6e77a-f446-480f-b0f0-d91a24c60746), pointer_default(ref) ] interface IAppxEncryptionFactory5 : IUnknown { HRESULT CreateEncryptedPackageReader2( [in] IStream * inputStream, [in, optional] const APPX_KEY_INFO * keyInfo, [in, optional] LPCWSTR expectedDigest, [out, retval] IAppxPackageReader ** packageReader ); HRESULT CreateEncryptedBundleReader2( [in] IStream * inputStream, [in, optional] const APPX_KEY_INFO * keyInfo, [in, optional] LPCWSTR expectedDigest, [out, retval] IAppxBundleReader** bundleReader ); } [ object, uuid(F43D0B0B-1379-40E2-9B29-682EA2BF42AF), pointer_default(ref) ] interface IAppxEncryptedPackageWriter : IUnknown { HRESULT AddPayloadFileEncrypted( [in, string] LPCWSTR fileName, [in] APPX_COMPRESSION_OPTION compressionOption, [in] IStream * inputStream ); HRESULT Close(); } [ object, uuid(3E475447-3A25-40b5-8AD2-F953AE50C92D), pointer_default(ref) ] interface IAppxEncryptedPackageWriter2 : IUnknown { HRESULT AddPayloadFilesEncrypted( [in] UINT32 fileCount, [in, size_is(fileCount)] APPX_PACKAGE_WRITER_PAYLOAD_STREAM* payloadFiles, [in] UINT64 memoryLimit ); } [ object, uuid(80B0902F-7BF0-4117-B8C6-4279EF81EE77), pointer_default(ref) ] interface IAppxEncryptedBundleWriter : IUnknown { HRESULT AddPayloadPackageEncrypted( [in, string] LPCWSTR fileName, [in] IStream* packageStream ); HRESULT Close(); } [ object, uuid(E644BE82-F0FA-42B8-A956-8D1CB48EE379), pointer_default(ref) ] interface IAppxEncryptedBundleWriter2 : IUnknown { HRESULT AddExternalPackageReference( [in, string] LPCWSTR fileName, [in] IStream* inputStream ); } typedef [v1_enum] enum APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION { APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION_APPEND_DELTA = 0x00, } APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION; typedef [v1_enum] enum APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS { APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTION_NONE = 0x00, APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTION_SKIP_VALIDATION = 0x01, APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTION_LOCALIZED = 0x02 } APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS; cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS);") [ object, uuid(0D34DEB3-5CAE-4DD3-977C-504932A51D31), pointer_default(ref) ] interface IAppxEncryptedBundleWriter3 : IUnknown { HRESULT AddPayloadPackageEncrypted( [in, string] LPCWSTR fileName, [in] IStream* packageStream, [in] BOOL isDefaultApplicablePackage ); HRESULT AddExternalPackageReference( [in, string] LPCWSTR fileName, [in] IStream* inputStream, [in] BOOL isDefaultApplicablePackage ); } [ object, uuid(E2ADB6DC-5E71-4416-86B6-86E5F5291A6B), pointer_default(ref) ] interface IAppxPackageEditor : IUnknown { HRESULT SetWorkingDirectory( [in, string] LPCWSTR workingDirectory ); HRESULT CreateDeltaPackage( [in] IStream* updatedPackageStream, [in] IStream* baselinePackageStream, [in] IStream* deltaPackageStream ); HRESULT CreateDeltaPackageUsingBaselineBlockMap( [in] IStream* updatedPackageStream, [in] IStream* baselineBlockMapStream, [in, string] LPCWSTR baselinePackageFullName, [in] IStream* deltaPackageStream ); HRESULT UpdatePackage( [in] IStream* baselinePackageStream, [in] IStream* deltaPackageStream, [in] APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION updateOption ); HRESULT UpdateEncryptedPackage( [in] IStream* baselineEncryptedPackageStream, [in] IStream* deltaPackageStream, [in] APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_OPTION updateOption, [in] const APPX_ENCRYPTED_PACKAGE_SETTINGS2 * settings, [in] const APPX_KEY_INFO* keyInfo ); HRESULT UpdatePackageManifest( [in] IStream* packageStream, [in] IStream* updatedManifestStream, [in] BOOL isPackageEncrypted, [in] APPX_PACKAGE_EDITOR_UPDATE_PACKAGE_MANIFEST_OPTIONS options ); } cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") #pragma endregion [ uuid(d7255437-34ff-48d1-b726-601dc4de4cad), version(1.0), lcid(0x0000) ] library APPXPACKAGING { #pragma region Application Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [ uuid(5842a140-ff9f-4166-8f5c-62f5b7b0c781) ] coclass AppxFactory { interface IAppxFactory3; interface IAppxFactory2; [default] interface IAppxFactory; }; [ uuid(378E0446-5384-43B7-8877-E7DBDD883446) ] coclass AppxBundleFactory { interface IAppxBundleFactory2; [default] interface IAppxBundleFactory; }; [ uuid(50CA0A46-1588-4161-8ED2-EF9E469CED5D) ] coclass AppxPackagingDiagnosticEventSinkManager { [default] interface IAppxPackagingDiagnosticEventSinkManager; }; cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */") #pragma endregion #pragma region Desktop Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [ uuid(DC664FDD-D868-46EE-8780-8D196CB739F7) ] coclass AppxEncryptionFactory { interface IAppxEncryptionFactory5; interface IAppxEncryptionFactory4; interface IAppxEncryptionFactory3; interface IAppxEncryptionFactory2; [default] interface IAppxEncryptionFactory; }; [ uuid(F004F2CA-AEBC-4B0D-BF58-E516D5BCC0AB) ] coclass AppxPackageEditor { [default] interface IAppxPackageEditor; }; cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") #pragma endregion }; // library APPXPACKAGING cpp_quote("#endif // (NTDDI >= NTDDI_WIN7)")