Alexandre Julliard : user32: Move 16-bit resource functions to user16.c.
Alexandre Julliard
julliard at winehq.org
Fri Oct 16 11:26:08 CDT 2009
Module: wine
Branch: master
Commit: 09d1c52fa09e65ae57589c1be7b74c4032e9e233
URL: http://source.winehq.org/git/wine.git/?a=commit;h=09d1c52fa09e65ae57589c1be7b74c4032e9e233
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Oct 15 17:55:46 2009 +0200
user32: Move 16-bit resource functions to user16.c.
---
dlls/user32/resource.c | 66 ----------------------------------------
dlls/user32/user16.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 79 insertions(+), 66 deletions(-)
diff --git a/dlls/user32/resource.c b/dlls/user32/resource.c
index 1085dfa..82ec05b 100644
--- a/dlls/user32/resource.c
+++ b/dlls/user32/resource.c
@@ -26,9 +26,6 @@
#include "winerror.h"
#include "winternl.h"
#include "winnls.h"
-#include "wine/winbase16.h"
-#include "wine/winuser16.h"
-#include "wownt32.h"
#include "wine/debug.h"
#include "user_private.h"
@@ -53,24 +50,6 @@ struct accelerator
};
/**********************************************************************
- * LoadAccelerators [USER.177]
- */
-HACCEL16 WINAPI LoadAccelerators16(HINSTANCE16 instance, LPCSTR lpTableName)
-{
- HRSRC16 hRsrc;
-
- TRACE_(accel)("%04x %s\n", instance, debugstr_a(lpTableName) );
-
- if (!(hRsrc = FindResource16( instance, lpTableName, (LPSTR)RT_ACCELERATOR ))) {
- WARN_(accel)("couldn't find accelerator table resource\n");
- return 0;
- }
-
- TRACE_(accel)("returning HACCEL 0x%x\n", hRsrc);
- return LoadResource16(instance,hRsrc);
-}
-
-/**********************************************************************
* LoadAcceleratorsW (USER32.@)
*/
HACCEL WINAPI LoadAcceleratorsW(HINSTANCE instance, LPCWSTR name)
@@ -254,51 +233,6 @@ BOOL WINAPI DestroyAcceleratorTable( HACCEL handle )
}
/**********************************************************************
- * LoadString (USER.176)
- */
-INT16 WINAPI LoadString16( HINSTANCE16 instance, UINT16 resource_id,
- LPSTR buffer, INT16 buflen )
-{
- HGLOBAL16 hmem;
- HRSRC16 hrsrc;
- unsigned char *p;
- int string_num;
- int i;
-
- TRACE("inst=%04x id=%04x buff=%p len=%d\n",
- instance, resource_id, buffer, buflen);
-
- hrsrc = FindResource16( instance, MAKEINTRESOURCEA((resource_id>>4)+1), (LPSTR)RT_STRING );
- if (!hrsrc) return 0;
- hmem = LoadResource16( instance, hrsrc );
- if (!hmem) return 0;
-
- p = LockResource16(hmem);
- string_num = resource_id & 0x000f;
- for (i = 0; i < string_num; i++)
- p += *p + 1;
-
- TRACE("strlen = %d\n", (int)*p );
-
- if (buffer == NULL) return *p;
- i = min(buflen - 1, *p);
- if (i > 0) {
- memcpy(buffer, p + 1, i);
- buffer[i] = '\0';
- } else {
- if (buflen > 1) {
- buffer[0] = '\0';
- return 0;
- }
- WARN("Don't know why caller gave buflen=%d *p=%d trying to obtain string '%s'\n", buflen, *p, p + 1);
- }
- FreeResource16( hmem );
-
- TRACE("'%s' loaded !\n", buffer);
- return i;
-}
-
-/**********************************************************************
* LoadStringW (USER32.@)
*/
INT WINAPI LoadStringW( HINSTANCE instance, UINT resource_id,
diff --git a/dlls/user32/user16.c b/dlls/user32/user16.c
index 5ca8837..f34ae57 100644
--- a/dlls/user32/user16.c
+++ b/dlls/user32/user16.c
@@ -612,6 +612,85 @@ HBITMAP16 WINAPI LoadBitmap16(HINSTANCE16 hInstance, LPCSTR name)
return HBITMAP_16(LoadBitmapA(HINSTANCE_32(hInstance), name));
}
+/**********************************************************************
+ * LoadString (USER.176)
+ */
+INT16 WINAPI LoadString16( HINSTANCE16 instance, UINT16 resource_id, LPSTR buffer, INT16 buflen )
+{
+ HGLOBAL16 hmem;
+ HRSRC16 hrsrc;
+ unsigned char *p;
+ int string_num;
+ int ret;
+
+ TRACE("inst=%04x id=%04x buff=%p len=%d\n", instance, resource_id, buffer, buflen);
+
+ hrsrc = FindResource16( instance, MAKEINTRESOURCEA((resource_id>>4)+1), (LPSTR)RT_STRING );
+ if (!hrsrc) return 0;
+ hmem = LoadResource16( instance, hrsrc );
+ if (!hmem) return 0;
+
+ p = LockResource16(hmem);
+ string_num = resource_id & 0x000f;
+ while (string_num--) p += *p + 1;
+
+ if (buffer == NULL) ret = *p;
+ else
+ {
+ ret = min(buflen - 1, *p);
+ if (ret > 0)
+ {
+ memcpy(buffer, p + 1, ret);
+ buffer[ret] = '\0';
+ }
+ else if (buflen > 1)
+ {
+ buffer[0] = '\0';
+ ret = 0;
+ }
+ TRACE( "%s loaded\n", debugstr_a(buffer));
+ }
+ FreeResource16( hmem );
+ return ret;
+}
+
+/**********************************************************************
+ * LoadAccelerators (USER.177)
+ */
+HACCEL16 WINAPI LoadAccelerators16(HINSTANCE16 instance, LPCSTR lpTableName)
+{
+ HRSRC16 hRsrc;
+ HGLOBAL16 hMem;
+ ACCEL16 *table16;
+ HACCEL ret = 0;
+
+ TRACE("%04x %s\n", instance, debugstr_a(lpTableName) );
+
+ if (!(hRsrc = FindResource16( instance, lpTableName, (LPSTR)RT_ACCELERATOR )) ||
+ !(hMem = LoadResource16(instance,hRsrc)))
+ {
+ WARN("couldn't find %04x %s\n", instance, debugstr_a(lpTableName));
+ return 0;
+ }
+ if ((table16 = LockResource16( hMem )))
+ {
+ DWORD i, count = SizeofResource16( instance, hRsrc ) / sizeof(*table16);
+ ACCEL *table = HeapAlloc( GetProcessHeap(), 0, count * sizeof(*table) );
+ if (table)
+ {
+ for (i = 0; i < count; i++)
+ {
+ table[i].fVirt = table16[i].fVirt & 0x7f;
+ table[i].key = table16[i].key;
+ table[i].cmd = table16[i].cmd;
+ }
+ ret = CreateAcceleratorTableA( table, count );
+ HeapFree( GetProcessHeap(), 0, table );
+ }
+ }
+ FreeResource16( hMem );
+ return HACCEL_16(ret);
+}
/***********************************************************************
* GetSystemMetrics (USER.179)
More information about the wine-cvs
mailing list