Hello.

I'm trying to run Adobe Photoshop Lightroom using Wine. One of the showstoppers was the fact that 64-bit process of Lightroom is loading 32-bit DLLs containing various resources. While Windows allows it [1] wine does not.

I made this simple change to Wine code just to make it work for my local usecase:

--- a/server/mapping.c
+++ b/server/mapping.c
@@ -414,8 +414,6 @@ static unsigned int get_image_params( struct mapping *mapping, file_pos_t file_s
         if (nt.opt.hdr32.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) return STATUS_INVALID_IMAGE_FORMAT;
         break;
     case CPU_x86_64:
-        if (nt.FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64) return STATUS_INVALID_IMAGE_FORMAT;
-        if (nt.opt.hdr64.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) return STATUS_INVALID_IMAGE_FORMAT;
         break;
     case CPU_POWERPC:
         if (nt.FileHeader.Machine != IMAGE_FILE_MACHINE_POWERPC) return STATUS_INVALID_IMAGE_FORMAT;

From what I can tell this change looks neigher neat nor correct.

My question is, what is the correct way to allow loading 32-bit dll into 64-bit process just for loading its resources.

Thank you.

[1] https://support.microsoft.com/en-us/help/282423/list-of-limitations-in-64-bit-windows
-- 
best, Viktor.