advapi32: Fix registry API prototypes to match the PSDK.
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
index e99cce7..81ed484 100644
--- a/dlls/advapi32/registry.c
+++ b/dlls/advapi32/registry.c
@@ -154,9 +154,9 @@
  *
  * See RegCreateKeyExA.
  */
-DWORD WINAPI RegCreateKeyExW( HKEY hkey, LPCWSTR name, DWORD reserved, LPWSTR class,
-                              DWORD options, REGSAM access, SECURITY_ATTRIBUTES *sa,
-                              PHKEY retkey, LPDWORD dispos )
+LONG WINAPI RegCreateKeyExW( HKEY hkey, LPCWSTR name, DWORD reserved, LPWSTR class,
+                             DWORD options, REGSAM access, SECURITY_ATTRIBUTES *sa,
+                             PHKEY retkey, LPDWORD dispos )
 {
     OBJECT_ATTRIBUTES attr;
     UNICODE_STRING nameW, classW;
@@ -202,9 +202,9 @@
  * FIXME
  *  MAXIMUM_ALLOWED in access mask not supported by server
  */
-DWORD WINAPI RegCreateKeyExA( HKEY hkey, LPCSTR name, DWORD reserved, LPSTR class,
-                              DWORD options, REGSAM access, SECURITY_ATTRIBUTES *sa,
-                              PHKEY retkey, LPDWORD dispos )
+LONG WINAPI RegCreateKeyExA( HKEY hkey, LPCSTR name, DWORD reserved, LPSTR class,
+                             DWORD options, REGSAM access, SECURITY_ATTRIBUTES *sa,
+                             PHKEY retkey, LPDWORD dispos )
 {
     OBJECT_ATTRIBUTES attr;
     UNICODE_STRING classW;
@@ -256,7 +256,7 @@
  *  Success: ERROR_SUCCESS
  *  Failure: nonzero error code defined in Winerror.h
  */
-DWORD WINAPI RegCreateKeyW( HKEY hkey, LPCWSTR lpSubKey, PHKEY phkResult )
+LONG WINAPI RegCreateKeyW( HKEY hkey, LPCWSTR lpSubKey, PHKEY phkResult )
 {
     /* FIXME: previous implementation converted ERROR_INVALID_HANDLE to ERROR_BADKEY, */
     /* but at least my version of NT (4.0 SP5) doesn't do this.  -- AJ */
@@ -270,7 +270,7 @@
  *
  * See RegCreateKeyW.
  */
-DWORD WINAPI RegCreateKeyA( HKEY hkey, LPCSTR lpSubKey, PHKEY phkResult )
+LONG WINAPI RegCreateKeyA( HKEY hkey, LPCSTR lpSubKey, PHKEY phkResult )
 {
     return RegCreateKeyExA( hkey, lpSubKey, 0, NULL, REG_OPTION_NON_VOLATILE,
                             KEY_ALL_ACCESS, NULL, phkResult, NULL );
@@ -283,7 +283,7 @@
  * 
  * See RegOpenKeyExA.
  */
-DWORD WINAPI RegOpenKeyExW( HKEY hkey, LPCWSTR name, DWORD reserved, REGSAM access, PHKEY retkey )
+LONG WINAPI RegOpenKeyExW( HKEY hkey, LPCWSTR name, DWORD reserved, REGSAM access, PHKEY retkey )
 {
     OBJECT_ATTRIBUTES attr;
     UNICODE_STRING nameW;
@@ -321,7 +321,7 @@
  *  Unlike RegCreateKeyExA(), this function will not create the key if it
  *  does not exist.
  */
-DWORD WINAPI RegOpenKeyExA( HKEY hkey, LPCSTR name, DWORD reserved, REGSAM access, PHKEY retkey )
+LONG WINAPI RegOpenKeyExA( HKEY hkey, LPCSTR name, DWORD reserved, REGSAM access, PHKEY retkey )
 {
     OBJECT_ATTRIBUTES attr;
     STRING nameA;
@@ -353,7 +353,7 @@
  *
  * See RegOpenKeyA.
  */
-DWORD WINAPI RegOpenKeyW( HKEY hkey, LPCWSTR name, PHKEY retkey )
+LONG WINAPI RegOpenKeyW( HKEY hkey, LPCWSTR name, PHKEY retkey )
 {
     if (!name || !*name)
     {
@@ -378,7 +378,7 @@
  *  Success: ERROR_SUCCESS
  *  Failure: A standard Win32 error code. retkey is set to 0.
  */
-DWORD WINAPI RegOpenKeyA( HKEY hkey, LPCSTR name, PHKEY retkey )
+LONG WINAPI RegOpenKeyA( HKEY hkey, LPCSTR name, PHKEY retkey )
 {
     if (!name || !*name)
     {
@@ -409,7 +409,7 @@
  *  Since Wine does not currently allow threads to impersonate other users,
  *  this stub should work fine.
  */
-DWORD WINAPI RegOpenCurrentUser( REGSAM access, PHKEY retkey )
+LONG WINAPI RegOpenCurrentUser( REGSAM access, PHKEY retkey )
 {
     return RegOpenKeyExA( HKEY_CURRENT_USER, "", 0, access, retkey );
 }
@@ -436,8 +436,8 @@
  *  Failure: System error code. If there are no more subkeys available, the
  *           function returns ERROR_NO_MORE_ITEMS.
  */
-DWORD WINAPI RegEnumKeyExW( HKEY hkey, DWORD index, LPWSTR name, LPDWORD name_len,
-                            LPDWORD reserved, LPWSTR class, LPDWORD class_len, FILETIME *ft )
+LONG WINAPI RegEnumKeyExW( HKEY hkey, DWORD index, LPWSTR name, LPDWORD name_len,
+                           LPDWORD reserved, LPWSTR class, LPDWORD class_len, FILETIME *ft )
 {
     NTSTATUS status;
     char buffer[256], *buf_ptr = buffer;
@@ -500,8 +500,8 @@
  *
  * See RegEnumKeyExW.
  */
-DWORD WINAPI RegEnumKeyExA( HKEY hkey, DWORD index, LPSTR name, LPDWORD name_len,
-                            LPDWORD reserved, LPSTR class, LPDWORD class_len, FILETIME *ft )
+LONG WINAPI RegEnumKeyExA( HKEY hkey, DWORD index, LPSTR name, LPDWORD name_len,
+                           LPDWORD reserved, LPSTR class, LPDWORD class_len, FILETIME *ft )
 {
     NTSTATUS status;
     char buffer[256], *buf_ptr = buffer;
@@ -579,7 +579,7 @@
  *  Failure: system error code. If there are no more subkeys available, the
  *           function returns ERROR_NO_MORE_ITEMS.
  */
-DWORD WINAPI RegEnumKeyW( HKEY hkey, DWORD index, LPWSTR name, DWORD name_len )
+LONG WINAPI RegEnumKeyW( HKEY hkey, DWORD index, LPWSTR name, DWORD name_len )
 {
     return RegEnumKeyExW( hkey, index, name, &name_len, NULL, NULL, NULL, NULL );
 }
@@ -590,7 +590,7 @@
  *
  * See RegEnumKeyW.
  */
-DWORD WINAPI RegEnumKeyA( HKEY hkey, DWORD index, LPSTR name, DWORD name_len )
+LONG WINAPI RegEnumKeyA( HKEY hkey, DWORD index, LPSTR name, DWORD name_len )
 {
     return RegEnumKeyExA( hkey, index, name, &name_len, NULL, NULL, NULL, NULL );
 }
@@ -625,10 +625,10 @@
  *  - both allow class to be NULL and class_len to be NULL
  *    (it's hard to test validity, so test !NULL instead)
  */
-DWORD WINAPI RegQueryInfoKeyW( HKEY hkey, LPWSTR class, LPDWORD class_len, LPDWORD reserved,
-                               LPDWORD subkeys, LPDWORD max_subkey, LPDWORD max_class,
-                               LPDWORD values, LPDWORD max_value, LPDWORD max_data,
-                               LPDWORD security, FILETIME *modif )
+LONG WINAPI RegQueryInfoKeyW( HKEY hkey, LPWSTR class, LPDWORD class_len, LPDWORD reserved,
+                              LPDWORD subkeys, LPDWORD max_subkey, LPDWORD max_class,
+                              LPDWORD values, LPDWORD max_value, LPDWORD max_data,
+                              LPDWORD security, FILETIME *modif )
 {
     NTSTATUS status;
     char buffer[256], *buf_ptr = buffer;
@@ -702,8 +702,8 @@
  *  Failure: nonzero error code from Winerror.h ldwTotsize contains num needed
  *           bytes.
  */
-DWORD WINAPI RegQueryMultipleValuesA(HKEY hkey, PVALENTA val_list, DWORD num_vals,
-                                     LPSTR lpValueBuf, LPDWORD ldwTotsize)
+LONG WINAPI RegQueryMultipleValuesA( HKEY hkey, PVALENTA val_list, DWORD num_vals,
+                                     LPSTR lpValueBuf, LPDWORD ldwTotsize )
 {
     unsigned int i;
     DWORD maxBytes = *ldwTotsize;
@@ -748,8 +748,8 @@
  *
  * See RegQueryMultipleValuesA.
  */
-DWORD WINAPI RegQueryMultipleValuesW(HKEY hkey, PVALENTW val_list, DWORD num_vals,
-                                     LPWSTR lpValueBuf, LPDWORD ldwTotsize)
+LONG WINAPI RegQueryMultipleValuesW( HKEY hkey, PVALENTW val_list, DWORD num_vals,
+                                     LPWSTR lpValueBuf, LPDWORD ldwTotsize )
 {
     unsigned int i;
     DWORD maxBytes = *ldwTotsize;
@@ -811,10 +811,10 @@
  *   Success: ERROR_SUCCESS
  *   Failure: nonzero error code from Winerror.h
  */
-DWORD WINAPI RegQueryInfoKeyA( HKEY hkey, LPSTR class, LPDWORD class_len, LPDWORD reserved,
-                               LPDWORD subkeys, LPDWORD max_subkey, LPDWORD max_class,
-                               LPDWORD values, LPDWORD max_value, LPDWORD max_data,
-                               LPDWORD security, FILETIME *modif )
+LONG WINAPI RegQueryInfoKeyA( HKEY hkey, LPSTR class, LPDWORD class_len, LPDWORD reserved,
+                              LPDWORD subkeys, LPDWORD max_subkey, LPDWORD max_class,
+                              LPDWORD values, LPDWORD max_value, LPDWORD max_data,
+                              LPDWORD security, FILETIME *modif )
 {
     NTSTATUS status;
     char buffer[256], *buf_ptr = buffer;
@@ -885,7 +885,7 @@
  *  Success: ERROR_SUCCESS
  *  Failure: Error code
  */
-DWORD WINAPI RegCloseKey( HKEY hkey )
+LONG WINAPI RegCloseKey( HKEY hkey )
 {
     if (!hkey) return ERROR_INVALID_HANDLE;
     if (hkey >= (HKEY)0x80000000) return ERROR_SUCCESS;
@@ -898,7 +898,7 @@
  *
  * See RegDeleteKeyA.
  */
-DWORD WINAPI RegDeleteKeyW( HKEY hkey, LPCWSTR name )
+LONG WINAPI RegDeleteKeyW( HKEY hkey, LPCWSTR name )
 {
     DWORD ret;
     HKEY tmp;
@@ -935,7 +935,7 @@
  *  Success: ERROR_SUCCESS
  *  Failure: Error code
  */
-DWORD WINAPI RegDeleteKeyA( HKEY hkey, LPCSTR name )
+LONG WINAPI RegDeleteKeyA( HKEY hkey, LPCSTR name )
 {
     DWORD ret;
     HKEY tmp;
@@ -982,8 +982,8 @@
  *  Success: ERROR_SUCCESS
  *  Failure: Error code
  */
-DWORD WINAPI RegSetValueExW( HKEY hkey, LPCWSTR name, DWORD reserved,
-                             DWORD type, CONST BYTE *data, DWORD count )
+LONG WINAPI RegSetValueExW( HKEY hkey, LPCWSTR name, DWORD reserved,
+                            DWORD type, CONST BYTE *data, DWORD count )
 {
     UNICODE_STRING nameW;
 
@@ -1011,8 +1011,8 @@
  *  win95 does not care about count for REG_SZ and finds out the len by itself (js)
  *  NT does definitely care (aj)
  */
-DWORD WINAPI RegSetValueExA( HKEY hkey, LPCSTR name, DWORD reserved, DWORD type,
-                             CONST BYTE *data, DWORD count )
+LONG WINAPI RegSetValueExA( HKEY hkey, LPCSTR name, DWORD reserved, DWORD type,
+                            CONST BYTE *data, DWORD count )
 {
     ANSI_STRING nameA;
     WCHAR *dataW = NULL;
@@ -1071,7 +1071,7 @@
  *  Success: ERROR_SUCCESS
  *  Failure: nonzero error code from Winerror.h
  */
-DWORD WINAPI RegSetValueW( HKEY hkey, LPCWSTR name, DWORD type, LPCWSTR data, DWORD count )
+LONG WINAPI RegSetValueW( HKEY hkey, LPCWSTR name, DWORD type, LPCWSTR data, DWORD count )
 {
     HKEY subkey = hkey;
     DWORD ret;
@@ -1097,7 +1097,7 @@
  *
  * See RegSetValueW.
  */
-DWORD WINAPI RegSetValueA( HKEY hkey, LPCSTR name, DWORD type, LPCSTR data, DWORD count )
+LONG WINAPI RegSetValueA( HKEY hkey, LPCSTR name, DWORD type, LPCSTR data, DWORD count )
 {
     HKEY subkey = hkey;
     DWORD ret;
@@ -1122,8 +1122,8 @@
  *
  * See RegQueryValueExA.
  */
-DWORD WINAPI RegQueryValueExW( HKEY hkey, LPCWSTR name, LPDWORD reserved, LPDWORD type,
-                               LPBYTE data, LPDWORD count )
+LONG WINAPI RegQueryValueExW( HKEY hkey, LPCWSTR name, LPDWORD reserved, LPDWORD type,
+                              LPBYTE data, LPDWORD count )
 {
     NTSTATUS status;
     UNICODE_STRING name_str;
@@ -1208,8 +1208,8 @@
  *   MSDN states that if data is too small it is partially filled. In reality 
  *   it remains untouched.
  */
-DWORD WINAPI RegQueryValueExA( HKEY hkey, LPCSTR name, LPDWORD reserved, LPDWORD type,
-                               LPBYTE data, LPDWORD count )
+LONG WINAPI RegQueryValueExA( HKEY hkey, LPCSTR name, LPDWORD reserved, LPDWORD type,
+                              LPBYTE data, LPDWORD count )
 {
     NTSTATUS status;
     ANSI_STRING nameA;
@@ -1306,7 +1306,7 @@
  *   Success: ERROR_SUCCESS
  *   Failure: nonzero error code from Winerror.h
  */
-DWORD WINAPI RegQueryValueW( HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count )
+LONG WINAPI RegQueryValueW( HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count )
 {
     DWORD ret;
     HKEY subkey = hkey;
@@ -1335,7 +1335,7 @@
  *
  * See RegQueryValueW.
  */
-DWORD WINAPI RegQueryValueA( HKEY hkey, LPCSTR name, LPSTR data, LPLONG count )
+LONG WINAPI RegQueryValueA( HKEY hkey, LPCSTR name, LPSTR data, LPLONG count )
 {
     DWORD ret;
     HKEY subkey = hkey;
@@ -1629,8 +1629,8 @@
  *  Failure: nonzero error code from Winerror.h
  */
 
-DWORD WINAPI RegEnumValueW( HKEY hkey, DWORD index, LPWSTR value, LPDWORD val_count,
-                            LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count )
+LONG WINAPI RegEnumValueW( HKEY hkey, DWORD index, LPWSTR value, LPDWORD val_count,
+                           LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count )
 {
     NTSTATUS status;
     DWORD total_size;
@@ -1714,8 +1714,8 @@
  *
  * See RegEnumValueW.
  */
-DWORD WINAPI RegEnumValueA( HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count,
-                            LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count )
+LONG WINAPI RegEnumValueA( HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count,
+                           LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count )
 {
     NTSTATUS status;
     DWORD total_size;
@@ -1820,7 +1820,7 @@
  *
  * See RegDeleteValueA.
  */
-DWORD WINAPI RegDeleteValueW( HKEY hkey, LPCWSTR name )
+LONG WINAPI RegDeleteValueW( HKEY hkey, LPCWSTR name )
 {
     UNICODE_STRING nameW;
 
@@ -1844,7 +1844,7 @@
  *  Success: ERROR_SUCCESS
  *  Failure: nonzero error code from Winerror.h
  */
-DWORD WINAPI RegDeleteValueA( HKEY hkey, LPCSTR name )
+LONG WINAPI RegDeleteValueA( HKEY hkey, LPCSTR name )
 {
     STRING nameA;
     NTSTATUS status;
@@ -2238,7 +2238,7 @@
  *  Success: ERROR_SUCCESS
  *  Failure: Error code
  */
-DWORD WINAPI RegFlushKey( HKEY hkey )
+LONG WINAPI RegFlushKey( HKEY hkey )
 {
     hkey = get_special_root_hkey( hkey );
     if (!hkey) return ERROR_INVALID_HANDLE;
diff --git a/include/winreg.h b/include/winreg.h
index dd95768..a547c56 100644
--- a/include/winreg.h
+++ b/include/winreg.h
@@ -89,9 +89,9 @@
 BOOL        WINAPI InitiateSystemShutdownExA(LPSTR,LPSTR,DWORD,BOOL,BOOL,DWORD);
 BOOL        WINAPI InitiateSystemShutdownExW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL,DWORD);
 #define     InitiateSystemShutdownEx WINELIB_NAME_AW(InitiateSystemShutdownEx);
-DWORD       WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,
+LONG        WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,
                                      LPSECURITY_ATTRIBUTES,PHKEY,LPDWORD);
-DWORD       WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,
+LONG        WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,
                                      LPSECURITY_ATTRIBUTES,PHKEY,LPDWORD);
 #define     RegCreateKeyEx WINELIB_NAME_AW(RegCreateKeyEx)
 LONG        WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
@@ -101,9 +101,9 @@
 LONG        WINAPI RegConnectRegistryA(LPCSTR,HKEY,PHKEY);
 LONG        WINAPI RegConnectRegistryW(LPCWSTR,HKEY,PHKEY);
 #define     RegConnectRegistry WINELIB_NAME_AW(RegConnectRegistry)
-DWORD       WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,
+LONG        WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,
                                    LPDWORD,LPFILETIME);
-DWORD       WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,
+LONG        WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,
                                    LPDWORD,LPFILETIME);
 #define     RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx)
 LONG        WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,LPDWORD);
@@ -117,20 +117,20 @@
 LONG        WINAPI RegLoadMUIStringW(HKEY,LPCWSTR,LPWSTR,DWORD,LPDWORD,DWORD,LPCWSTR);
 #define     RegLoadMUIString WINELIB_NAME_AW(RegLoadMUIString)
 LONG        WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
-DWORD       WINAPI RegOpenCurrentUser(REGSAM,PHKEY);
-DWORD       WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
-DWORD       WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
+LONG        WINAPI RegOpenCurrentUser(REGSAM,PHKEY);
+LONG        WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
+LONG        WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
 #define     RegOpenKeyEx WINELIB_NAME_AW(RegOpenKeyEx)
 LONG        WINAPI RegOpenUserClassesRoot(HANDLE,DWORD,REGSAM,PHKEY);
-DWORD       WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,
+LONG        WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,
                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
                                       LPDWORD,LPFILETIME);
-DWORD       WINAPI RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
+LONG        WINAPI RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,
                                       LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,
                                       LPDWORD,LPFILETIME);
 #define     RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey)
-DWORD       WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,LPDWORD);
-DWORD       WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,LPDWORD);
+LONG        WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,LPDWORD);
+LONG        WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,LPDWORD);
 #define     RegQueryMultipleValues WINELIB_NAME_AW(RegQueryMultipleValues)
 LONG        WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
 LONG        WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
@@ -144,38 +144,38 @@
 
 /* Declarations for functions that are the same in Win16 and Win32 */
 
-DWORD       WINAPI RegCloseKey(HKEY);
-DWORD       WINAPI RegFlushKey(HKEY);
+LONG        WINAPI RegCloseKey(HKEY);
+LONG        WINAPI RegFlushKey(HKEY);
 
-DWORD       WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY);
-DWORD       WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY);
+LONG        WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY);
+LONG        WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY);
 #define     RegCreateKey WINELIB_NAME_AW(RegCreateKey)
-DWORD       WINAPI RegDeleteKeyA(HKEY,LPCSTR);
-DWORD       WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
+LONG        WINAPI RegDeleteKeyA(HKEY,LPCSTR);
+LONG        WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
 #define     RegDeleteKey WINELIB_NAME_AW(RegDeleteKey)
-DWORD       WINAPI RegDeleteValueA(HKEY,LPCSTR);
-DWORD       WINAPI RegDeleteValueW(HKEY,LPCWSTR);
+LONG        WINAPI RegDeleteValueA(HKEY,LPCSTR);
+LONG        WINAPI RegDeleteValueW(HKEY,LPCWSTR);
 #define     RegDeleteValue WINELIB_NAME_AW(RegDeleteValue)
-DWORD       WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
-DWORD       WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
+LONG        WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
+LONG        WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
 #define     RegEnumKey WINELIB_NAME_AW(RegEnumKey)
-DWORD       WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
-DWORD       WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG        WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG        WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
 #define     RegEnumValue WINELIB_NAME_AW(RegEnumValue)
-DWORD       WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY);
-DWORD       WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY);
+LONG        WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY);
+LONG        WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY);
 #define     RegOpenKey WINELIB_NAME_AW(RegOpenKey)
-DWORD       WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,LPLONG);
-DWORD       WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,LPLONG);
+LONG        WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,LPLONG);
+LONG        WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,LPLONG);
 #define     RegQueryValue WINELIB_NAME_AW(RegQueryValue)
-DWORD       WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
-DWORD       WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG        WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG        WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
 #define     RegQueryValueEx WINELIB_NAME_AW(RegQueryValueEx)
-DWORD       WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
-DWORD       WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
+LONG        WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
+LONG        WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
 #define     RegSetValue WINELIB_NAME_AW(RegSetValue)
-DWORD       WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,CONST BYTE*,DWORD);
-DWORD       WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,CONST BYTE*,DWORD);
+LONG        WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,CONST BYTE*,DWORD);
+LONG        WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,CONST BYTE*,DWORD);
 #define     RegSetValueEx WINELIB_NAME_AW(RegSetValueEx)
 
 #ifdef __cplusplus