Граф коммитов

12 Коммитов

Автор SHA1 Сообщение Дата
Ruben Guerrero 8843c96c32
Use MSIX_* specific CMake variables for build and src directories to don't interfere with projects that add it as a subtree" (#181) 2019-07-30 11:01:17 -07:00
Ruben Guerrero ed3bc904a8
Packaging sample (#128) 2019-05-10 09:51:33 -07:00
Letao Wang 49e5f4c1c9 Merged PR 2461986: Add interface for applicability override
Added interface to override language applicability in bundle reader.
Added sample to illustrate usage.

Related work items: #19015501
2018-10-22 13:55:28 -07:00
Ruben Guerrero Samaniego a1c8c698f7 Merged PR 2416703: Clean up on CMakeLists.txt and DirectoryObject.cpp
Clean up to follow CMake conventions and best practices.
2018-10-09 13:44:15 -07:00
Ruben Guerrero Samaniego 508de650e7 Merged PR 2275263: Support for Flat Bundles
Adding support for flat bundles. There are two ways a flat bundle can be unpacked:
1. Payload packages are in the same directory as the flat bundle.
1. Payload packages are in a different directory as the flat bundle.

For case 1, we create the stream of the package given the path of the bundle plus the information on the bundle manifest. A flat bundle and payload packages for testing can be found under test/appx/flat.

For case 2, two new public interfaces are defined: IMsixFactoryOverrides and IMsixStreamFactory. IMsixFactoryOverrides is implemented by the AppxFactory. The user can QI for this interface and specify an override via SpecifyExtension and the extension it wants to override defined in the MSIX_FACTORY_EXTENSION enum before creating the bundle/package reader. For now, we only have MSIX_FACTORY_EXTENSION_STREAM_FACTORY but it is design to be extended if we need to (eg. override applicability logic)

For MSIX_FACTORY_EXTENSION_STREAM_FACTORY, the user needs to set an object that implements IMsixStreamFactory. When the bundle being unpacked is a flat bundle, we get the override via GetCurrentSpecifiedExtension and QI for IMsixStreamFactory. IMsixStreamFactory has only one method, CreateStreamOnRelativePath that takes a path of the package and returns an IStream for that package. We then validate this stream as normal.

sample/OverrideStreamSample contains a sample implementation of IMsixStreamFactory and IStream. An easy way to play with the sample is to copy FlatBundleWithAsset.appxbundle in a different folder and try to unpack it.

Extras: refactor to improve readability of the code.

Related work items: #18607747, #18607753
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego 9124b9771c Merged PR 1844385: Filtering packages in bundle and implementation of public interfaces
In this change:
- Implementations of several public interfaces to expand the SDK
    - IAppxManifestReader
    - IAppxManifestReader2
    - IAppxManifestReader3
    - IAppxManifestPackageId
    - IAppxManifestProperties
    - IAppxManifestTargetDeviceFamiliesEnumerator
    - IAppxManifestTargetDeviceFamily
    - IAppxManifestResourcesEnumerator
    - IAppxManifestApplicationsEnumerator
    - IAppxManifestApplication
    - IAppxManifestQualifiedResourcesEnumerator
    - IAppxManifestQualifiedResource
    - IAppxBundleManifestReader
    - IAppxBundleManifestPackageInfoEnumerator
    - IAppxBundleManifestPackageInfo
- New option for makemsix unbundle -d <directory> -p <package> [-sl] [-sp]
- New entrypoints UnpackBundle and UnpackBundleFromStream
- Parse attributes from AppxManifest.xml
- EnumeratorCom class specialized for enumerators interfaces.
- ChainInterfaces struct for ComClass (eg. IAppxManifestReader3->IAppxManifestReader2->IAppxManifestReader)
- Fix QI'ing for IUnknown and other bugs.
- ApiTest to validate the correctness of the implementation
- New bundle sample to show information about packages in a bundle (doesn't extract)

Related work items: #15765569
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego 2604b9a0bc Delete AppxCerts.hpp to use the new resource zip file. Rename resource file to MSIXResource. Create a helper methods to obtain the resources and move CreateBufferFromStream to its own header. 2018-03-29 17:06:17 -07:00
Ruben Guerrero Samaniego 7e05b7959b Merged PR 1424038: Rename CrossPlat files from appx to MSIX
This change contains the renaming from xPlatAppx to MSIX Packaging SDK

Binaries
- xPlatAppx.dll -> msix.dll
- MakexPlatAppx.exe -> makemsix.exe

Export rename
- UnpackAppx ->UnpackPackage

Related work items: #15704951
2018-02-13 21:25:38 +00:00
Phillip Smith 65e86d9bd5 Code compiles, but there's something weird happening down in ComHelper w.r.t. the QI chain and not correctly adjusting the pointer we hand-out to clients. 2017-11-03 00:22:17 -07:00
Phillip Smith c04961b588 Reverts the revert that went into the wrong branch. This should head-off any merge conflicts that arise when this branche's payload hits the payload that was in origin/helpphil. 2017-11-03 00:20:08 -07:00
Phillip Smith 8922a45334 Revert Packing up for the day. This was inadvertently pushed to the wrong branch. 2017-11-02 20:09:32 -07:00
Phil Smith dda88911c9 Packing up for the day. 2017-11-02 18:13:34 -07:00