The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility.
diff --git a/dlls/shell32/classes.c b/dlls/shell32/classes.c
index 3fb37db..db4ce80 100644
--- a/dlls/shell32/classes.c
+++ b/dlls/shell32/classes.c
@@ -210,7 +210,7 @@
static BOOL HCR_RegOpenClassIDKey(REFIID riid, HKEY *hkey)
{
char xriid[50];
- sprintf( xriid, "CLSID\\{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+ sprintf( xriid, "CLSID\\{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
riid->Data1, riid->Data2, riid->Data3,
riid->Data4[0], riid->Data4[1], riid->Data4[2], riid->Data4[3],
riid->Data4[4], riid->Data4[5], riid->Data4[6], riid->Data4[7] );