user32: Avoid using HIWORD() on atoms/resources.

Michael Stefaniuc mstefani at redhat.de
Wed Feb 3 14:04:27 CST 2010


---
 dlls/user32/class.c      |   10 +++++-----
 dlls/user32/cursoricon.c |    2 +-
 dlls/user32/defwnd.c     |    4 ++--
 dlls/user32/dialog.c     |    8 ++++----
 dlls/user32/hook.c       |    8 ++++----
 dlls/user32/message.c    |   16 ++++++++--------
 dlls/user32/msgbox.c     |   30 +++++++++++++++---------------
 dlls/user32/property.c   |   12 ++++++------
 dlls/user32/resource.c   |    2 +-
 9 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/dlls/user32/class.c b/dlls/user32/class.c
index 36315b0..72cafc7 100644
--- a/dlls/user32/class.c
+++ b/dlls/user32/class.c
@@ -176,7 +176,7 @@ static BOOL set_server_info( HWND hwnd, INT offset, LONG_PTR newval, UINT size )
  */
 static inline LPSTR CLASS_GetMenuNameA( CLASS *classPtr )
 {
-    if (!HIWORD(classPtr->menuName)) return (LPSTR)classPtr->menuName;
+    if (IS_INTRESOURCE(classPtr->menuName)) return (LPSTR)classPtr->menuName;
     return (LPSTR)(classPtr->menuName + strlenW(classPtr->menuName) + 1);
 }
 
@@ -199,8 +199,8 @@ static inline LPWSTR CLASS_GetMenuNameW( CLASS *classPtr )
  */
 static void CLASS_SetMenuNameA( CLASS *classPtr, LPCSTR name )
 {
-    if (HIWORD(classPtr->menuName)) HeapFree( GetProcessHeap(), 0, classPtr->menuName );
-    if (HIWORD(name))
+    if (!IS_INTRESOURCE(classPtr->menuName)) HeapFree( GetProcessHeap(), 0, classPtr->menuName );
+    if (!IS_INTRESOURCE(name))
     {
         DWORD lenA = strlen(name) + 1;
         DWORD lenW = MultiByteToWideChar( CP_ACP, 0, name, lenA, NULL, 0 );
@@ -219,8 +219,8 @@ static void CLASS_SetMenuNameA( CLASS *classPtr, LPCSTR name )
  */
 static void CLASS_SetMenuNameW( CLASS *classPtr, LPCWSTR name )
 {
-    if (HIWORD(classPtr->menuName)) HeapFree( GetProcessHeap(), 0, classPtr->menuName );
-    if (HIWORD(name))
+    if (!IS_INTRESOURCE(classPtr->menuName)) HeapFree( GetProcessHeap(), 0, classPtr->menuName );
+    if (!IS_INTRESOURCE(name))
     {
         DWORD lenW = strlenW(name) + 1;
         DWORD lenA = WideCharToMultiByte( CP_ACP, 0, name, lenW, NULL, 0, NULL, NULL );
diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c
index 9a36499..f401a14 100644
--- a/dlls/user32/cursoricon.c
+++ b/dlls/user32/cursoricon.c
@@ -2467,7 +2467,7 @@ HANDLE WINAPI LoadImageA( HINSTANCE hinst, LPCSTR name, UINT type,
     HANDLE res;
     LPWSTR u_name;
 
-    if (!HIWORD(name))
+    if (IS_INTRESOURCE(name))
         return LoadImageW(hinst, (LPCWSTR)name, type, desiredx, desiredy, loadflags);
 
     __TRY {
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c
index 0101ee2..ba4fd13 100644
--- a/dlls/user32/defwnd.c
+++ b/dlls/user32/defwnd.c
@@ -835,7 +835,7 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
             CREATESTRUCTA *cs = (CREATESTRUCTA *)lParam;
             /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
              * may have child window IDs instead of window name */
-            if (HIWORD(cs->lpszName))
+            if (!IS_INTRESOURCE(cs->lpszName))
                 DEFWND_SetTextA( hwnd, cs->lpszName );
             result = 1;
         }
@@ -982,7 +982,7 @@ LRESULT WINAPI DefWindowProcW(
             CREATESTRUCTW *cs = (CREATESTRUCTW *)lParam;
             /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
              * may have child window IDs instead of window name */
-            if (HIWORD(cs->lpszName))
+            if (!IS_INTRESOURCE(cs->lpszName))
                 DEFWND_SetTextW( hwnd, cs->lpszName );
             result = 1;
         }
diff --git a/dlls/user32/dialog.c b/dlls/user32/dialog.c
index 2df58a7..13aebe0 100644
--- a/dlls/user32/dialog.c
+++ b/dlls/user32/dialog.c
@@ -288,14 +288,14 @@ static BOOL DIALOG_CreateControls32( HWND hwnd, LPCSTR template, const DLG_TEMPL
             LPSTR class_tmp = NULL;
             LPSTR caption_tmp = NULL;
 
-            if (HIWORD(class))
+            if (!IS_INTRESOURCE(class))
             {
                 DWORD len = WideCharToMultiByte( CP_ACP, 0, info.className, -1, NULL, 0, NULL, NULL );
                 class_tmp = HeapAlloc( GetProcessHeap(), 0, len );
                 WideCharToMultiByte( CP_ACP, 0, info.className, -1, class_tmp, len, NULL, NULL );
                 class = class_tmp;
             }
-            if (HIWORD(caption))
+            if (!IS_INTRESOURCE(caption))
             {
                 DWORD len = WideCharToMultiByte( CP_ACP, 0, info.windowName, -1, NULL, 0, NULL, NULL );
                 caption_tmp = HeapAlloc( GetProcessHeap(), 0, len );
@@ -634,14 +634,14 @@ static HWND DIALOG_CreateIndirect( HINSTANCE hInst, LPCVOID dlgTemplate,
         LPSTR class_tmp = NULL;
         LPSTR caption_tmp = NULL;
 
-        if (HIWORD(class))
+        if (!IS_INTRESOURCE(class))
         {
             DWORD len = WideCharToMultiByte( CP_ACP, 0, template.className, -1, NULL, 0, NULL, NULL );
             class_tmp = HeapAlloc( GetProcessHeap(), 0, len );
             WideCharToMultiByte( CP_ACP, 0, template.className, -1, class_tmp, len, NULL, NULL );
             class = class_tmp;
         }
-        if (HIWORD(caption))
+        if (!IS_INTRESOURCE(caption))
         {
             DWORD len = WideCharToMultiByte( CP_ACP, 0, template.caption, -1, NULL, 0, NULL, NULL );
             caption_tmp = HeapAlloc( GetProcessHeap(), 0, len );
diff --git a/dlls/user32/hook.c b/dlls/user32/hook.c
index 386a585..2e36801 100644
--- a/dlls/user32/hook.c
+++ b/dlls/user32/hook.c
@@ -222,12 +222,12 @@ static LRESULT call_hook_AtoW( HOOKPROC proc, INT id, INT code, WPARAM wparam, L
         cbtcwW.hwndInsertAfter = cbtcwA->hwndInsertAfter;
         csW = *(CREATESTRUCTW *)cbtcwA->lpcs;
 
-        if (HIWORD(cbtcwA->lpcs->lpszName))
+        if (!IS_INTRESOURCE(cbtcwA->lpcs->lpszName))
         {
             RtlCreateUnicodeStringFromAsciiz(&usBuffer,cbtcwA->lpcs->lpszName);
             csW.lpszName = nameW = usBuffer.Buffer;
         }
-        if (HIWORD(cbtcwA->lpcs->lpszClass))
+        if (!IS_INTRESOURCE(cbtcwA->lpcs->lpszClass))
         {
             RtlCreateUnicodeStringFromAsciiz(&usBuffer,cbtcwA->lpcs->lpszClass);
             csW.lpszClass = classW = usBuffer.Buffer;
@@ -262,14 +262,14 @@ static LRESULT call_hook_WtoA( HOOKPROC proc, INT id, INT code, WPARAM wparam, L
         cbtcwA.hwndInsertAfter = cbtcwW->hwndInsertAfter;
         csA = *(CREATESTRUCTA *)cbtcwW->lpcs;
 
-        if (HIWORD(cbtcwW->lpcs->lpszName)) {
+        if (!IS_INTRESOURCE(cbtcwW->lpcs->lpszName)) {
             len = WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszName, -1, NULL, 0, NULL, NULL );
             nameA = HeapAlloc( GetProcessHeap(), 0, len*sizeof(CHAR) );
             WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszName, -1, nameA, len, NULL, NULL );
             csA.lpszName = nameA;
         }
 
-        if (HIWORD(cbtcwW->lpcs->lpszClass)) {
+        if (!IS_INTRESOURCE(cbtcwW->lpcs->lpszClass)) {
             len = WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszClass, -1, NULL, 0, NULL, NULL );
             classA = HeapAlloc( GetProcessHeap(), 0, len*sizeof(CHAR) );
             WideCharToMultiByte( CP_ACP, 0, cbtcwW->lpcs->lpszClass, -1, classA, len, NULL, NULL );
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index 022202a..fedb917 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -545,8 +545,8 @@ static size_t pack_message( HWND hwnd, UINT message, WPARAM wparam, LPARAM lpara
     {
         CREATESTRUCTW *cs = (CREATESTRUCTW *)lparam;
         push_data( data, cs, sizeof(*cs) );
-        if (HIWORD(cs->lpszName)) push_string( data, cs->lpszName );
-        if (HIWORD(cs->lpszClass)) push_string( data, cs->lpszClass );
+        if (!IS_INTRESOURCE(cs->lpszName)) push_string( data, cs->lpszName );
+        if (!IS_INTRESOURCE(cs->lpszClass)) push_string( data, cs->lpszClass );
         return sizeof(*cs);
     }
     case WM_GETTEXT:
@@ -689,8 +689,8 @@ static size_t pack_message( HWND hwnd, UINT message, WPARAM wparam, LPARAM lpara
     {
         MDICREATESTRUCTW *cs = (MDICREATESTRUCTW *)lparam;
         push_data( data, cs, sizeof(*cs) );
-        if (HIWORD(cs->szTitle)) push_string( data, cs->szTitle );
-        if (HIWORD(cs->szClass)) push_string( data, cs->szClass );
+        if (!IS_INTRESOURCE(cs->szTitle)) push_string( data, cs->szTitle );
+        if (!IS_INTRESOURCE(cs->szClass)) push_string( data, cs->szClass );
         return sizeof(*cs);
     }
     case WM_MDIGETACTIVE:
@@ -784,14 +784,14 @@ static BOOL unpack_message( HWND hwnd, UINT message, WPARAM *wparam, LPARAM *lpa
         WCHAR *str = (WCHAR *)(cs + 1);
         if (size < sizeof(*cs)) return FALSE;
         size -= sizeof(*cs);
-        if (HIWORD(cs->lpszName))
+        if (!IS_INTRESOURCE(cs->lpszName))
         {
             if (!check_string( str, size )) return FALSE;
             cs->lpszName = str;
             size -= (strlenW(str) + 1) * sizeof(WCHAR);
             str += strlenW(str) + 1;
         }
-        if (HIWORD(cs->lpszClass))
+        if (!IS_INTRESOURCE(cs->lpszClass))
         {
             if (!check_string( str, size )) return FALSE;
             cs->lpszClass = str;
@@ -956,14 +956,14 @@ static BOOL unpack_message( HWND hwnd, UINT message, WPARAM *wparam, LPARAM *lpa
         WCHAR *str = (WCHAR *)(cs + 1);
         if (size < sizeof(*cs)) return FALSE;
         size -= sizeof(*cs);
-        if (HIWORD(cs->szTitle))
+        if (!IS_INTRESOURCE(cs->szTitle))
         {
             if (!check_string( str, size )) return FALSE;
             cs->szTitle = str;
             size -= (strlenW(str) + 1) * sizeof(WCHAR);
             str += strlenW(str) + 1;
         }
-        if (HIWORD(cs->szClass))
+        if (!IS_INTRESOURCE(cs->szClass))
         {
             if (!check_string( str, size )) return FALSE;
             cs->szClass = str;
diff --git a/dlls/user32/msgbox.c b/dlls/user32/msgbox.c
index 868e3b0..232e599 100644
--- a/dlls/user32/msgbox.c
+++ b/dlls/user32/msgbox.c
@@ -92,7 +92,7 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
     /* set text font */
     SendDlgItemMessageW (hwnd, MSGBOX_IDTEXT, WM_SETFONT, (WPARAM)hFont, 0);
 
-    if (HIWORD(lpmb->lpszCaption)) {
+    if (!IS_INTRESOURCE(lpmb->lpszCaption)) {
        SetWindowTextW(hwnd, lpmb->lpszCaption);
     } else {
         UINT len = LoadStringW( lpmb->hInstance, LOWORD(lpmb->lpszCaption), (LPWSTR)&ptr, 0 );
@@ -107,9 +107,7 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
             buffer = NULL;
         }
     }
-    if (HIWORD(lpmb->lpszText)) {
-       lpszText = lpmb->lpszText;
-    } else {
+    if (IS_INTRESOURCE(lpmb->lpszText)) {
         UINT len = LoadStringW( lpmb->hInstance, LOWORD(lpmb->lpszText), (LPWSTR)&ptr, 0 );
         lpszText = buffer = HeapAlloc( GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR) );
         if (buffer)
@@ -117,6 +115,8 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
             memcpy( buffer, ptr, len * sizeof(WCHAR) );
             buffer[len] = 0;
         }
+    } else {
+       lpszText = lpmb->lpszText;
     }
 
     TRACE_(msgbox)("%s\n", debugstr_w(lpszText));
@@ -460,21 +460,21 @@ INT WINAPI MessageBoxIndirectA( LPMSGBOXPARAMSA msgbox )
     UNICODE_STRING textW, captionW, iconW;
     int ret;
 
-    if (HIWORD(msgbox->lpszText))
-        RtlCreateUnicodeStringFromAsciiz(&textW, msgbox->lpszText);
-    else
+    if (IS_INTRESOURCE(msgbox->lpszText))
         textW.Buffer = (LPWSTR)msgbox->lpszText;
-    if (HIWORD(msgbox->lpszCaption))
-        RtlCreateUnicodeStringFromAsciiz(&captionW, msgbox->lpszCaption);
     else
+        RtlCreateUnicodeStringFromAsciiz(&textW, msgbox->lpszText);
+    if (IS_INTRESOURCE(msgbox->lpszCaption))
         captionW.Buffer = (LPWSTR)msgbox->lpszCaption;
+    else
+        RtlCreateUnicodeStringFromAsciiz(&captionW, msgbox->lpszCaption);
 
     if (msgbox->dwStyle & MB_USERICON)
     {
-        if (HIWORD(msgbox->lpszIcon))
-            RtlCreateUnicodeStringFromAsciiz(&iconW, msgbox->lpszIcon);
-        else
+        if (IS_INTRESOURCE(msgbox->lpszIcon))
             iconW.Buffer = (LPWSTR)msgbox->lpszIcon;
+        else
+            RtlCreateUnicodeStringFromAsciiz(&iconW, msgbox->lpszIcon);
     }
     else
         iconW.Buffer = NULL;
@@ -492,9 +492,9 @@ INT WINAPI MessageBoxIndirectA( LPMSGBOXPARAMSA msgbox )
 
     ret = MessageBoxIndirectW(&msgboxW);
 
-    if (HIWORD(textW.Buffer)) RtlFreeUnicodeString(&textW);
-    if (HIWORD(captionW.Buffer)) RtlFreeUnicodeString(&captionW);
-    if (HIWORD(iconW.Buffer)) RtlFreeUnicodeString(&iconW);
+    if (!IS_INTRESOURCE(textW.Buffer)) RtlFreeUnicodeString(&textW);
+    if (!IS_INTRESOURCE(captionW.Buffer)) RtlFreeUnicodeString(&captionW);
+    if (!IS_INTRESOURCE(iconW.Buffer)) RtlFreeUnicodeString(&iconW);
     return ret;
 }
 
diff --git a/dlls/user32/property.c b/dlls/user32/property.c
index 52f389e..8350c97 100644
--- a/dlls/user32/property.c
+++ b/dlls/user32/property.c
@@ -118,7 +118,7 @@ HANDLE WINAPI GetPropA( HWND hwnd, LPCSTR str )
 {
     WCHAR buffer[ATOM_BUFFER_SIZE];
 
-    if (!HIWORD(str)) return GetPropW( hwnd, (LPCWSTR)str );
+    if (IS_INTRESOURCE(str)) return GetPropW( hwnd, (LPCWSTR)str );
     if (!MultiByteToWideChar( CP_ACP, 0, str, -1, buffer, ATOM_BUFFER_SIZE )) return 0;
     return GetPropW( hwnd, buffer );
 }
@@ -134,7 +134,7 @@ HANDLE WINAPI GetPropW( HWND hwnd, LPCWSTR str )
     SERVER_START_REQ( get_window_property )
     {
         req->window = wine_server_user_handle( hwnd );
-        if (!HIWORD(str)) req->atom = LOWORD(str);
+        if (IS_INTRESOURCE(str)) req->atom = LOWORD(str);
         else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) );
         if (!wine_server_call_err( req )) ret = reply->data;
     }
@@ -150,7 +150,7 @@ BOOL WINAPI SetPropA( HWND hwnd, LPCSTR str, HANDLE handle )
 {
     WCHAR buffer[ATOM_BUFFER_SIZE];
 
-    if (!HIWORD(str)) return SetPropW( hwnd, (LPCWSTR)str, handle );
+    if (IS_INTRESOURCE(str)) return SetPropW( hwnd, (LPCWSTR)str, handle );
     if (!MultiByteToWideChar( CP_ACP, 0, str, -1, buffer, ATOM_BUFFER_SIZE )) return FALSE;
     return SetPropW( hwnd, buffer, handle );
 }
@@ -167,7 +167,7 @@ BOOL WINAPI SetPropW( HWND hwnd, LPCWSTR str, HANDLE handle )
     {
         req->window = wine_server_user_handle( hwnd );
         req->data   = (ULONG_PTR)handle;
-        if (!HIWORD(str)) req->atom = LOWORD(str);
+        if (IS_INTRESOURCE(str)) req->atom = LOWORD(str);
         else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) );
         ret = !wine_server_call_err( req );
     }
@@ -183,7 +183,7 @@ HANDLE WINAPI RemovePropA( HWND hwnd, LPCSTR str )
 {
     WCHAR buffer[ATOM_BUFFER_SIZE];
 
-    if (!HIWORD(str)) return RemovePropW( hwnd, (LPCWSTR)str );
+    if (IS_INTRESOURCE(str)) return RemovePropW( hwnd, (LPCWSTR)str );
     if (!MultiByteToWideChar( CP_ACP, 0, str, -1, buffer, ATOM_BUFFER_SIZE )) return 0;
     return RemovePropW( hwnd, buffer );
 }
@@ -199,7 +199,7 @@ HANDLE WINAPI RemovePropW( HWND hwnd, LPCWSTR str )
     SERVER_START_REQ( remove_window_property )
     {
         req->window = wine_server_user_handle( hwnd );
-        if (!HIWORD(str)) req->atom = LOWORD(str);
+        if (IS_INTRESOURCE(str)) req->atom = LOWORD(str);
         else wine_server_add_data( req, str, strlenW(str) * sizeof(WCHAR) );
         if (!wine_server_call_err( req )) ret = reply->data;
     }
diff --git a/dlls/user32/resource.c b/dlls/user32/resource.c
index e2695b6..1917d51 100644
--- a/dlls/user32/resource.c
+++ b/dlls/user32/resource.c
@@ -83,7 +83,7 @@ HACCEL WINAPI LoadAcceleratorsA(HINSTANCE instance,LPCSTR lpTableName)
     LPWSTR uni;
     HACCEL result = 0;
 
-    if (!HIWORD(lpTableName)) return LoadAcceleratorsW( instance, (LPCWSTR)lpTableName );
+    if (IS_INTRESOURCE(lpTableName)) return LoadAcceleratorsW( instance, (LPCWSTR)lpTableName );
 
     len = MultiByteToWideChar( CP_ACP, 0, lpTableName, -1, NULL, 0 );
     if ((uni = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) )))
-- 
1.6.6



More information about the wine-patches mailing list