- Timestamp:
- Nov 5, 1999, 1:54:11 PM (26 years ago)
- Location:
- trunk/src/user32
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/loadres.cpp
r1606 r1612 1 /* $Id: loadres.cpp,v 1.1 3 1999-11-05 09:16:21sandervl Exp $ */1 /* $Id: loadres.cpp,v 1.14 1999-11-05 12:54:10 sandervl Exp $ */ 2 2 3 3 /* … … 6 6 * Copyright 1998 Sander van Leeuwen 7 7 * 8 * Parts based on Wine code (objects\bitmap.c ):8 * Parts based on Wine code (objects\bitmap.c, loader\resource.c): 9 9 * 10 10 * Copyright 1993 Alexandre Julliard 11 11 * 1998 Huw D M Davies 12 * 1993 Robert J. Amstadt 12 13 * 13 14 * Project Odin Software License can be found in LICENSE.TXT … … 25 26 //****************************************************************************** 26 27 //****************************************************************************** 27 int WIN32API LoadStringA(HINSTANCE hinst, UINT wID, LPSTR lpBuffer, int cchBuffer) 28 INT WIN32API LoadStringA(HINSTANCE instance, UINT resource_id, 29 LPSTR buffer, INT buflen ) 30 { 31 INT retval; 32 LPWSTR buffer2 = NULL; 33 34 if (buffer && buflen) 35 buffer2 = (LPWSTR)HeapAlloc( GetProcessHeap(), 0, buflen * 2 ); 36 37 retval = LoadStringW(instance,resource_id,buffer2,buflen); 38 39 if (buffer2) 40 { 41 if (retval) { 42 lstrcpynWtoA( buffer, buffer2, buflen ); 43 retval = lstrlenA( buffer ); 44 } 45 else 46 *buffer = 0; 47 HeapFree( GetProcessHeap(), 0, buffer2 ); 48 } 49 return retval; 50 } 51 //****************************************************************************** 52 //****************************************************************************** 53 int WIN32API LoadStringW(HINSTANCE hinst, UINT wID, LPWSTR lpBuffer, int cchBuffer) 28 54 { 29 55 Win32Resource *winres; 30 LPWSTR resstring; 31 int resstrlen = 0; 32 33 winres = (Win32Resource *)FindResourceA(hinst, (LPSTR)wID, RT_STRINGA); 34 if(winres == NULL) { 35 dprintf(("LoadStringA NOT FOUND from %X, id %d buffersize %d\n", hinst, wID, cchBuffer)); 36 //TODO: BAD HACK! 37 if(cchBuffer > 3) 38 { 39 strcpy(lpBuffer, "XXX"); 40 return 3; 41 } 42 //TODO: BAD HACK! 43 *lpBuffer = 0; 44 return 0; 45 } 46 47 resstring = (LPWSTR)winres->lockResource(); 48 if(resstring) { 49 resstrlen = min(lstrlenW(resstring)+1, cchBuffer); 50 lstrcpynWtoA(lpBuffer, resstring, resstrlen); 51 lpBuffer[resstrlen-1] = 0; 52 resstrlen--; 53 dprintf(("LoadStringA (%d) %s", resstrlen, lpBuffer)); 54 } 55 delete winres; 56 57 dprintf(("LoadStringA from %X, id %d buffersize %d\n", hinst, wID, cchBuffer)); 58 return(resstrlen); 59 } 60 //****************************************************************************** 61 //****************************************************************************** 62 int WIN32API LoadStringW(HINSTANCE hinst, UINT wID, LPWSTR lpBuffer, int cchBuffer) 63 { 64 Win32Resource *winres; 65 LPWSTR resstring; 66 int resstrlen = 0; 67 68 winres = (Win32Resource *)FindResourceW(hinst, (LPWSTR)wID, RT_STRINGW); 56 WCHAR *p; 57 int string_num; 58 int i = 0; 59 60 /* Use bits 4 - 19 (incremented by 1) as resourceid, mask out 61 * 20 - 31. */ 62 winres = (Win32Resource *)FindResourceW(hinst, (LPWSTR)(((wID>>4)&0xffff)+1), RT_STRINGW); 69 63 if(winres == NULL) { 70 64 dprintf(("LoadStringW NOT FOUND from %X, id %d buffersize %d\n", hinst, wID, cchBuffer)); … … 73 67 } 74 68 75 resstring = (LPWSTR)winres->lockResource(); 76 if(resstring) { 77 resstrlen = min(lstrlenW(resstring)+1, cchBuffer); 78 lstrcpynW(lpBuffer, resstring, resstrlen); 79 lpBuffer[resstrlen-1] = 0; 80 resstrlen--; 69 p = (LPWSTR)winres->lockResource(); 70 if(p) { 71 string_num = wID & 0x000f; 72 for (i = 0; i < string_num; i++) 73 p += *p + 1; 74 75 if (lpBuffer == NULL) return *p; 76 i = min(cchBuffer - 1, *p); 77 if (i > 0) { 78 memcpy(lpBuffer, p + 1, i * sizeof (WCHAR)); 79 lpBuffer[i] = (WCHAR) 0; 80 } 81 else { 82 if (cchBuffer > 1) { 83 lpBuffer[0] = (WCHAR) 0; 84 return 0; 85 } 86 } 81 87 } 82 88 delete winres; 83 89 84 90 dprintf(("LoadStringW from %X, id %d buffersize %d\n", hinst, wID, cchBuffer)); 85 return( resstrlen);91 return(i); 86 92 } 87 93 //****************************************************************************** -
trunk/src/user32/oslibmsg.cpp
r1606 r1612 1 /* $Id: oslibmsg.cpp,v 1. 7 1999-11-05 09:16:22sandervl Exp $ */1 /* $Id: oslibmsg.cpp,v 1.8 1999-11-05 12:54:10 sandervl Exp $ */ 2 2 /* 3 3 * Window message translation functions for OS/2 … … 78 78 0x020a, 0x020a, // WM_???, WM_??? 79 79 WM_CHAR, WINWM_CHAR, 80 81 //TODO: Needs better translation! 82 WM_CHAR, WINWM_KEYDOWN, 83 WM_CHAR, WINWM_KEYUP, 84 WM_CHAR, WINWM_SYSKEYDOWN, 85 WM_CHAR, WINWM_SYSKEYUP, 86 WM_CHAR, WINWM_KEYLAST 80 87 }; 81 88 #define MAX_MSGTRANSTAB (sizeof(MsgTransTab)/sizeof(MsgTransTab[0])) … … 121 128 memcpy(winMsg, os2Msg, sizeof(MSG)); 122 129 winMsg->hwnd = Win32Window::OS2ToWin32Handle(os2Msg->hwnd); 130 131 if(os2Msg->msg >= WIN32APP_USERMSGBASE) { 132 winMsg->message = os2Msg->msg - WIN32APP_USERMSGBASE; 133 return; 134 } 123 135 for(i=0;i<MAX_MSGTRANSTAB;i++) 124 136 { … … 145 157 } 146 158 147 if(msg >= WIN 32APP_USERMSGBASE)148 return msg -WIN32APP_USERMSGBASE;159 if(msg >= WINWM_USER) 160 return msg + WIN32APP_USERMSGBASE; 149 161 150 162 for(int i=0;i<MAX_MSGTRANSTAB;i++) -
trunk/src/user32/winmenu.cpp
r1573 r1612 1 /* $Id: winmenu.cpp,v 1.1 3 1999-11-03 18:16:19 phallerExp $ */1 /* $Id: winmenu.cpp,v 1.14 1999-11-05 12:54:11 sandervl Exp $ */ 2 2 3 3 /* … … 725 725 LPCSTR, str) 726 726 { 727 dprintf(("USER32: InsertMenuA %x %d %x %d %s", hMenu, pos, flags, id, str)); 728 if(hMenu == 0) 729 { 730 SetLastError(ERROR_INVALID_PARAMETER); 731 return 0; 732 } 733 734 if(!str || *str == NULL) { 727 if(IS_STRING_ITEM(flags) && HIWORD(str)) { 728 dprintf(("USER32: InsertMenuA %x %d %x %d %s", hMenu, pos, flags, id, str)); 729 } 730 else dprintf(("USER32: InsertMenuA %x %d %x %d %x", hMenu, pos, flags, id, str)); 731 732 if(hMenu == 0) 733 { 734 SetLastError(ERROR_INVALID_PARAMETER); 735 return 0; 736 } 737 738 if(IS_STRING_ITEM(flags) && (!str || *str == NULL)) { 735 739 flags |= MF_SEPARATOR; 736 740 }
Note:
See TracChangeset
for help on using the changeset viewer.