I've created an in-proc Windows Shell-extension, implementing IThumbnailProvider, IPropertyStore (read-only) and IInitializeWithStream. The shell-extension is well-behaved and simply parses the IStream, generates a property-store and provides a thumbnail. It does not change the COM-apartment or call CoInitializeSecurity.
The shell extension is compiled and linked as two DLLs - a x86 DLL and a x64 DLL - to support in-proc loading for both 32- and 64-bit host processes. The COM ClassID for the shell-extension is kept identical in both DLLs.
The 32+64-bit shell extension DLLs will be wrapped into a 32-bit AppX-package, containing the main 32-bit user application.
Questions regarding Desktop Bridge AppX - deployment:
* Is the bitness of desktop2:DesktopPropertyHandler and desktop2:ThumbnailHandler, AppX-package bitness-dependent?
I.e. as the main user application is 32-bit, the shell extension shall also be 32-bit, even though the bitness of the Windows OS is 64-bit?
What is the proper method to support AppX-deployment of 64-bit shell extensions for 64-bit Windows OS, if the AppX-package is declared as a 32-bit application?