Nikolay Sivov (@nsivov) commented about dlls/combase/usrmarshal.c:
+{
- ULONG context;
- union {
struct {ULONG size;WCHAR data[];} buf;struct {+#ifdef _WIN64
ULONG pad;+#endif
HSTRING str;};- };
+}; +#pragma pack(pop)
There should a simpler way to define this. Padding I suspect is due to pointer field alignment on 64-bit. Does it not properly right away?