- Timestamp:
- May 28, 2000, 6:45:14 PM (25 years ago)
- Location:
- trunk/src
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/KERNEL32.DEF
r3461 r3625 1 ; $Id: KERNEL32.DEF,v 1.8 0 2000-04-29 18:26:56sandervl Exp $1 ; $Id: KERNEL32.DEF,v 1.81 2000-05-28 16:45:11 sandervl Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 1085 1085 CPUFeatures @2005 1086 1086 InitSystemAndRegistry__Fv @2006 1087 _ConvertResourceToOS2@12 @2007 1087 1088 1088 1089 ;registry apis imported by advapi32 -
trunk/src/kernel32/cvtcursorgrp.cpp
r3101 r3625 1 /* $Id: cvtcursorgrp.cpp,v 1. 9 2000-03-13 13:10:09sandervl Exp $ */1 /* $Id: cvtcursorgrp.cpp,v 1.10 2000-05-28 16:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 23 23 #include <string.h> 24 24 #include <win32type.h> 25 #include <win32api.h> 26 #include <winconst.h> 25 27 #include <wincursor.h> 26 #include <winres.h>27 28 #include <misc.h> 28 29 #include "cvtresource.h" 30 #include <winres.h> 29 31 30 32 #define DBG_LOCALLOG DBG_cvtcursorgrp 31 33 #include "dbglocal.h" 32 33 HRSRC WIN32API FindResourceA(HINSTANCE hModule, LPCSTR lpszName, LPCSTR lpszType);34 34 35 35 //****************************************************************************** … … 41 41 BITMAPARRAYFILEHEADER2 *bafh, *orgbafh; 42 42 CursorComponent *cursorhdr; 43 Win32Resource *winres;44 43 void *os2cursor; 44 HRSRC hRes; 45 45 46 46 dprintf(("ConvertCursorGroup")); … … 53 53 dprintf2(("Bits : %d", rdir->wBitCount)); 54 54 dprintf2(("ResBytes: %d", rdir->lBytesInRes)); 55 winres = (Win32Resource *)FindResourceA(module->getInstanceHandle(),56 (LPCSTR)rdir->wNameOrdinal,57 (LPSTR)NTRT_CURSOR); 58 groupsize += winres->getOS2Size();55 hRes = FindResourceA(module->getInstanceHandle(), 56 (LPCSTR)rdir->wNameOrdinal, (LPSTR)NTRT_CURSOR); 57 58 groupsize += QueryConvertedResourceSize(module->getInstanceHandle(), (char *)NTRT_CURSOR, hRes); 59 59 rdir++; 60 60 } … … 68 68 bafh->cxDisplay = 0; 69 69 bafh->cyDisplay = 0; 70 winres = (Win32Resource *)FindResourceA(module->getInstanceHandle(),71 (LPCSTR)rdir->wNameOrdinal,72 (LPSTR)NTRT_CURSOR); 73 if( winres == NULL) {70 hRes = FindResourceA(module->getInstanceHandle(), 71 (LPCSTR)rdir->wNameOrdinal, (LPSTR)NTRT_CURSOR); 72 73 if(hRes == NULL) { 74 74 dprintf(("Can't find cursor!")); 75 75 rdir++; … … 77 77 } 78 78 79 cursorhdr = (CursorComponent *) winres->lockResource();80 os2cursor = ConvertCursor(cursorhdr, winres->getSize(), &os2cursorsize, (int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER2)-sizeof(BITMAPFILEHEADER2));79 cursorhdr = (CursorComponent *)LockResource(LoadResource(module->getInstanceHandle(), hRes)); 80 os2cursor = ConvertCursor(cursorhdr, SizeofResource(module->getInstanceHandle(), hRes), &os2cursorsize, (int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER2)-sizeof(BITMAPFILEHEADER2)); 81 81 82 82 if(os2cursor == NULL) { 83 83 dprintf(("Can't convert cursor!")); 84 delete winres;85 84 rdir++; 86 85 continue; … … 96 95 97 96 bafh = (BITMAPARRAYFILEHEADER2 *)((int)&bafh->bfh2 + os2cursorsize); 98 delete winres;99 97 100 98 rdir++; -
trunk/src/kernel32/cvticongrp.cpp
r2802 r3625 1 /* $Id: cvticongrp.cpp,v 1. 6 2000-02-16 14:25:37sandervl Exp $ */1 /* $Id: cvticongrp.cpp,v 1.7 2000-05-28 16:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 23 23 #include <string.h> 24 24 #include <win32type.h> 25 #include <win32api.h> 26 #include <winconst.h> 25 27 #include <winicon.h> 26 #include <winres.h>27 28 #include <misc.h> 28 29 #include "cvtresource.h" 30 #include <winres.h> 29 31 30 32 #define DBG_LOCALLOG DBG_cvticongrp 31 33 #include "dbglocal.h" 32 33 HRSRC WIN32API FindResourceA(HINSTANCE hModule, LPCSTR lpszName, LPCSTR lpszType);34 34 35 35 //****************************************************************************** … … 41 41 BITMAPARRAYFILEHEADER2 *bafh, *orgbafh; 42 42 WINBITMAPINFOHEADER *iconhdr; 43 Win32Resource *winres;44 43 void *os2icon; 44 HRSRC hRes; 45 45 46 46 dprintf(("Icon Group type :%d", ihdr->wType)); … … 53 53 dprintf2(("Bits : %d", rdir->wBitCount)); 54 54 dprintf2(("ResBytes: %d", rdir->lBytesInRes)); 55 winres = (Win32Resource *)FindResourceA(module->getInstanceHandle(),56 (LPCSTR)rdir->wNameOrdinal,57 (LPSTR)NTRT_ICON); 58 groupsize += winres->getOS2Size();55 hRes = FindResourceA(module->getInstanceHandle(), 56 (LPCSTR)rdir->wNameOrdinal, (LPSTR)NTRT_ICON); 57 58 groupsize += QueryConvertedResourceSize(module->getInstanceHandle(), (char *)NTRT_ICON, hRes); 59 59 rdir++; 60 60 } … … 68 68 bafh->cxDisplay = 0; 69 69 bafh->cyDisplay = 0; 70 winres = (Win32Resource *)FindResourceA(module->getInstanceHandle(),71 (LPCSTR)rdir->wNameOrdinal,72 (LPSTR)NTRT_ICON); 73 if( winres == NULL) {70 hRes = FindResourceA(module->getInstanceHandle(), 71 (LPCSTR)rdir->wNameOrdinal, (LPSTR)NTRT_ICON); 72 73 if(hRes == NULL) { 74 74 dprintf(("Can't find icon!")); 75 75 rdir++; … … 77 77 } 78 78 79 iconhdr = (WINBITMAPINFOHEADER *) winres->lockResource();80 os2icon = ConvertIcon(iconhdr, winres->getSize(), &os2iconsize, (int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER2)-sizeof(BITMAPFILEHEADER2));79 iconhdr = (WINBITMAPINFOHEADER *)LockResource(LoadResource(module->getInstanceHandle(), hRes)); 80 os2icon = ConvertIcon(iconhdr, SizeofResource(module->getInstanceHandle(), hRes), &os2iconsize, (int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER2)-sizeof(BITMAPFILEHEADER2)); 81 81 82 82 if(os2icon == NULL) { 83 83 dprintf(("Can't convert icon!")); 84 delete winres;85 84 rdir++; 86 85 continue; … … 96 95 97 96 bafh = (BITMAPARRAYFILEHEADER2 *)((int)&bafh->bfh2 + os2iconsize); 98 delete winres;99 97 100 98 rdir++; -
trunk/src/kernel32/directory.cpp
r3611 r3625 1 /* $Id: directory.cpp,v 1.2 1 2000-05-26 18:53:18sandervl Exp $ */1 /* $Id: directory.cpp,v 1.22 2000-05-28 16:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 381 381 tmp[len -1] = 0; 382 382 383 dprintf(("RemoveDirectory % S", arg1));383 dprintf(("RemoveDirectory %s", arg1)); 384 384 385 385 return O32_RemoveDirectory(tmp); -
trunk/src/kernel32/pefile.cpp
r2802 r3625 1 /* $Id: pefile.cpp,v 1. 7 2000-02-16 14:23:11sandervl Exp $ */1 /* $Id: pefile.cpp,v 1.8 2000-05-28 16:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 15 15 #include <pefile.h> 16 16 #include <misc.h> 17 #include <winres.h>18 17 19 18 #define DBG_LOCALLOG DBG_pefile -
trunk/src/kernel32/resource.cpp
r2803 r3625 1 /* $Id: resource.cpp,v 1.1 5 2000-02-16 14:25:45sandervl Exp $ */1 /* $Id: resource.cpp,v 1.16 2000-05-28 16:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 13 13 #include <os2win.h> 14 14 #include <unicode.h> 15 #include "winres.h"16 15 #include <winimagebase.h> 17 16 #include <winexebase.h> … … 71 70 *****************************************************************************/ 72 71 73 HRSRC 74 72 HRSRC WIN32API FindResourceExA( HMODULE hModule, LPCSTR lpType, 73 LPCSTR lpName, WORD wLanguage) 75 74 { 76 75 Win32ImageBase *module; … … 105 104 *****************************************************************************/ 106 105 107 HRSRC 108 109 110 106 HRSRC WIN32API FindResourceExW(HMODULE hModule, 107 LPCWSTR lpType, 108 LPCWSTR lpName, 109 WORD wLanguage) 111 110 { 112 111 Win32ImageBase *module; … … 117 116 return(NULL); 118 117 } 119 120 118 return module->findResourceW((LPWSTR)lpName, (LPWSTR)lpType, wLanguage); 121 119 } … … 128 126 } 129 127 //****************************************************************************** 128 //hRes == returned by FindResource(Ex) = PIMAGE_RESOURCE_DATA_ENTRY for resource 129 //****************************************************************************** 130 HGLOBAL WIN32API LoadResource(HINSTANCE hModule, HRSRC hRes) 131 { 132 Win32ImageBase *module; 133 134 /* @@@PH */ 135 if(HIWORD(hRes) == NULL) { 136 dprintf(("ERROR: LoadResource %x: invalid hRes %x", hModule, hRes)); 137 return 0; 138 } 139 140 dprintf(("LoadResource %x %X\n", hModule, hRes)); 141 if(hModule == 0 || hModule == -1 || (WinExe && hModule == WinExe->getInstanceHandle())) { 142 module = (Win32ImageBase *)WinExe; 143 } 144 else { 145 module = (Win32ImageBase *)Win32DllBase::findModule(hModule); 146 } 147 148 return (HGLOBAL)module->getResourceAddr(hRes); 149 } 150 //****************************************************************************** 130 151 //hRes == returned by FindResource(Ex) 131 152 //****************************************************************************** 132 HGLOBAL WIN32API LoadResource(HINSTANCE hModule, HRSRC hRes)133 {134 Win32Resource *res = (Win32Resource *)hRes;135 136 dprintf(("LoadResource %x %X\n", hModule, hRes));137 138 /* @@@PH */139 if (HIWORD(res) == NULL) {140 dprintf(("LoadResource %x: invalid hRes %x", hModule, hRes));141 return 0;142 }143 else return (HGLOBAL)res->lockResource();144 }145 //******************************************************************************146 //hRes == returned by FindResource(Ex)147 //******************************************************************************148 153 DWORD WIN32API SizeofResource(HINSTANCE hModule, HRSRC hRes) 149 154 { 150 Win32Resource *res = (Win32Resource *)hRes; 151 152 dprintf(("OS2SizeofResource\n")); 153 if(res == NULL) 154 return(0); 155 156 return res->getSize(); 155 Win32ImageBase *module; 156 157 if(hRes == NULL) { 158 dprintf(("ERROR: SizeofResource %x: invalid hRes %x", hModule, hRes)); 159 return(0); 160 } 161 162 dprintf(("SizeofResource %x %x", hModule, hRes)); 163 164 if(hModule == 0 || hModule == -1 || (WinExe && hModule == WinExe->getInstanceHandle())) { 165 module = (Win32ImageBase *)WinExe; 166 } 167 else { 168 module = (Win32ImageBase *)Win32DllBase::findModule(hModule); 169 } 170 171 return module->getResourceSize(hRes); 157 172 } 158 173 //****************************************************************************** -
trunk/src/kernel32/winimagebase.cpp
r3609 r3625 1 /* $Id: winimagebase.cpp,v 1.2 0 2000-05-26 18:42:56sandervl Exp $ */1 /* $Id: winimagebase.cpp,v 1.21 2000-05-28 16:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 32 32 #include <pefile.h> 33 33 #include <unicode.h> 34 #include <winres.h>35 34 #include "oslibmisc.h" 36 35 #include "oslibdos.h" … … 47 46 errorState(NO_ERROR), entryPoint(0), fullpath(NULL), 48 47 tlsAddress(0), tlsIndexAddr(0), tlsInitSize(0), tlsTotalSize(0), 49 tlsCallBackAddr(0), tlsIndex(-1), winres(NULL),pResDir(NULL),48 tlsCallBackAddr(0), tlsIndex(-1), pResDir(NULL), 50 49 ulRVAResourceSection(0) 51 50 { … … 78 77 Win32ImageBase::~Win32ImageBase() 79 78 { 80 Win32Resource *res;81 82 while(winres)83 {84 res = winres->next;85 delete(winres);86 winres = res;87 }88 79 if(fullpath) 89 80 free(fullpath); -
trunk/src/kernel32/winimagebase.h
r3609 r3625 1 /* $Id: winimagebase.h,v 1. 9 2000-05-26 18:42:56sandervl Exp $ */1 /* $Id: winimagebase.h,v 1.10 2000-05-28 16:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 67 67 char *getModuleName() { return szModule; }; 68 68 69 //findResource returns the pointer of the resource's IMAGE_RESOURCE_DATA_ENTRY structure 69 70 virtual HRSRC findResourceA(LPCSTR lpszName, LPSTR lpszType, ULONG lang = LANG_GETFIRST); 70 71 HRSRC findResourceW(LPWSTR lpszName, LPWSTR lpszType, ULONG lang = LANG_GETFIRST); 72 71 73 virtual ULONG getResourceSizeA(LPCSTR lpszName, LPSTR lpszType, ULONG lang = LANG_GETFIRST); 72 74 ULONG getResourceSizeW(LPCWSTR lpszName, LPWSTR lpszType, ULONG lang = LANG_GETFIRST); … … 80 82 virtual ULONG getVersionSize(); 81 83 virtual BOOL getVersionStruct(char *verstruct, ULONG bufLength); 84 85 //Returns pointer to data of resource handle 86 char *getResourceAddr(HRSRC hResource); 87 ULONG getResourceSize(HRSRC hResource); 82 88 83 89 static BOOL isPEImage(char *szFileName); … … 118 124 void tlsAlloc(); //Allocate TLS index for this module 119 125 void tlsDelete(); //Destroy TLS index for this module 120 121 Win32Resource *winres;122 126 123 127 ULONG errorState, entryPoint; -
trunk/src/kernel32/winimagelx.cpp
r2802 r3625 1 /* $Id: winimagelx.cpp,v 1. 6 2000-02-16 14:22:12sandervl Exp $ */1 /* $Id: winimagelx.cpp,v 1.7 2000-05-28 16:45:13 sandervl Exp $ */ 2 2 3 3 /* … … 33 33 #include <pefile.h> 34 34 #include <unicode.h> 35 #include <winres.h>36 35 #include "oslibmisc.h" 37 36 #include "initterm.h" -
trunk/src/kernel32/winimagepeldr.cpp
r3609 r3625 1 /* $Id: winimagepeldr.cpp,v 1.4 3 2000-05-26 18:42:56sandervl Exp $ */1 /* $Id: winimagepeldr.cpp,v 1.44 2000-05-28 16:45:13 sandervl Exp $ */ 2 2 3 3 /* … … 43 43 #include <pefile.h> 44 44 #include <unicode.h> 45 #include <winres.h>46 45 #include "oslibmisc.h" 47 46 #include "initterm.h" -
trunk/src/kernel32/winimgres.cpp
r3588 r3625 1 /* $Id: winimgres.cpp,v 1.3 7 2000-05-22 19:08:00sandervl Exp $ */1 /* $Id: winimgres.cpp,v 1.38 2000-05-28 16:45:13 sandervl Exp $ */ 2 2 3 3 /* … … 23 23 #include <misc.h> 24 24 #include <winimagebase.h> 25 #include <winres.h>26 25 #include <unicode.h> 27 26 #include <heapstring.h> … … 31 30 #define DBG_LOCALLOG DBG_winimgres 32 31 #include "dbglocal.h" 32 33 #define MAX_RES 17 34 char *ResTypes[MAX_RES] = 35 {"niks", "CURSOR", "BITMAP", "ICON", "MENU", "DIALOG", "STRING", 36 "FONTDIR", "FONT", "ACCELERATOR", "RCDATA", "MESSAGETABLE", 37 "GROUP_CURSOR", "niks", "GROUP_ICON", "niks", "VERSION"}; 33 38 34 39 //SvL: VPBuddy bugfix, seems to load bitmaps with type name 'DIB' … … 262 267 } 263 268 //****************************************************************************** 269 //Returns pointer to data of resource handle 270 //****************************************************************************** 271 char *Win32ImageBase::getResourceAddr(HRSRC hResource) 272 { 273 PIMAGE_RESOURCE_DATA_ENTRY pData = (PIMAGE_RESOURCE_DATA_ENTRY)hResource; 274 275 if(pData == NULL) { 276 DebugInt3(); 277 return NULL; 278 } 279 //ulRVAResourceSection contains the relative virtual address (relative to the start of the image) 280 //for the resource section (images loaded by the pe.exe and pe2lx/win32k) 281 //For LX images, this is 0 as OffsetToData contains a relative offset 282 return (char *)((char *)pResDir + (pData->OffsetToData - ulRVAResourceSection)); 283 } 284 //****************************************************************************** 285 //****************************************************************************** 286 ULONG Win32ImageBase::getResourceSize(HRSRC hResource) 287 { 288 PIMAGE_RESOURCE_DATA_ENTRY pData = (PIMAGE_RESOURCE_DATA_ENTRY)hResource; 289 290 if(pData == NULL) { 291 DebugInt3(); 292 return NULL; 293 } 294 return pData->Size; 295 } 296 //****************************************************************************** 297 //findResource returns the pointer of the resource's IMAGE_RESOURCE_DATA_ENTRY structure 264 298 //****************************************************************************** 265 299 HRSRC Win32ImageBase::findResourceA(LPCSTR lpszName, LPSTR lpszType, ULONG langid) 266 300 { 267 301 PIMAGE_RESOURCE_DATA_ENTRY pData = NULL; 268 Win32Resource *res;269 302 BOOL fNumType; 270 303 char *winres = NULL; … … 334 367 } 335 368 else dprintf(("FindResource %s: resource %d (type %d, lang %x)", szModule, id, type, lang)); 336 //ulRVAResourceSection contains the relative virtual address (relative to the start of the image) 337 //for the resource section (images loaded by the pe.exe and pe2lx/win32k) 338 //For LX images, this is 0 as OffsetToData contains a relative offset 339 char *resdata = (char *)((char *)pResDir + (pData->OffsetToData - ulRVAResourceSection)); 340 res = new Win32Resource(this, id, type, pData->Size, resdata); 341 342 return (HRSRC) res; 369 370 return (HRSRC) pData; 343 371 } 344 372 //****************************************************************************** … … 359 387 else astring2 = (char *)lpszType; 360 388 361 hres = (HRSRC)findResourceA(astring1, astring2, lang);389 hres = findResourceA(astring1, astring2, lang); 362 390 363 391 if(HIWORD(astring1)) FreeAsciiString(astring1); -
trunk/src/kernel32/winres.cpp
r2802 r3625 1 /* $Id: winres.cpp,v 1.2 6 2000-02-16 14:22:12sandervl Exp $ */1 /* $Id: winres.cpp,v 1.27 2000-05-28 16:45:14 sandervl Exp $ */ 2 2 3 3 /* … … 26 26 #define INCL_WINRES 27 27 #include <win32type.h> 28 #include <win32api.h> 29 #include <winconst.h> 28 30 #include <winres.h> 29 31 #include <misc.h> 30 #include <winexepe2lx.h> 31 #include <windllpe2lx.h> 32 #include <winimagebase.h> 33 #include <winexebase.h> 34 #include <windllbase.h> 32 35 #include "cvtresource.h" 33 #include <vmutex.h>34 36 35 37 #define DBG_LOCALLOG DBG_winres 36 38 #include "dbglocal.h" 37 39 38 VMutex resmutex;39 40 char *ResTypes[MAX_RES] =41 {"niks", "CURSOR", "BITMAP", "ICON", "MENU", "DIALOG", "STRING",42 "FONTDIR", "FONT", "ACCELERATOR", "RCDATA", "MESSAGETABLE",43 "GROUP_CURSOR", "niks", "GROUP_ICON", "niks", "VERSION"};44 45 40 //****************************************************************************** 46 41 //****************************************************************************** 47 Win32Resource::Win32Resource() : 48 os2resdata(NULL), winresdata(NULL), resType(RSRC_CUSTOMNODATA) 42 PVOID WIN32API ConvertResourceToOS2(HINSTANCE hInstance, LPSTR restype, HRSRC hResource) 49 43 { 50 next = NULL; 51 module = NULL; 44 PIMAGE_RESOURCE_DATA_ENTRY pData = (PIMAGE_RESOURCE_DATA_ENTRY)hResource; 45 Win32ImageBase *module; 46 char *resdata; 47 int ressize, cvtressize; 52 48 53 id = -1; 54 type = -1; 55 hres = 0; 56 OS2ResHandle = 0; 57 //resources are in Unicode format by default; indirectly created resources 58 //can also be in ascii format 59 isUnicode = TRUE; 60 } 61 //****************************************************************************** 62 //****************************************************************************** 63 Win32Resource::Win32Resource(Win32ImageBase *module, ULONG id, ULONG type, 64 ULONG size, char *resdata) : hres(NULL), 65 os2resdata(NULL), winresdata(NULL), resType(RSRC_PELOADER) 66 { 67 resmutex.enter(); 68 next = module->winres; 69 module->winres = this; 70 resmutex.leave(); 71 72 this->module = module; 73 this->id = id; 74 this->type = type; 75 this->ressize = size; 76 winresdata = (char *)malloc(size+sizeof(WCHAR)); 77 if(winresdata == NULL) { 78 DebugInt3(); 79 return; 80 } 81 OS2ResHandle = 0; 82 83 if(type == NTRT_STRING) { 84 memcpy(winresdata, resdata, size); 85 ((USHORT *)winresdata)[size/sizeof(WCHAR)] = 0; 86 // ((USHORT *)winresdata)[size/sizeof(WCHAR)-1] = 0; 87 } 88 else memcpy(winresdata, resdata, size); 89 90 //resources are in Unicode format by default 91 isUnicode = TRUE; 92 } 93 //****************************************************************************** 94 //****************************************************************************** 95 Win32Resource::~Win32Resource() 96 { 97 Win32Resource *res = module->winres; 98 99 if(os2resdata && (resType == RSRC_PELOADER || resType == RSRC_CUSTOMINDIRECT)) 100 free(os2resdata); 101 102 if(winresdata) free(winresdata); 103 104 resmutex.enter(); 105 if(res == this) { 106 module->winres = res->next; 49 if(hInstance == 0 || hInstance == -1 || (WinExe && hInstance == WinExe->getInstanceHandle())) { 50 module = (Win32ImageBase *)WinExe; 107 51 } 108 52 else { 109 while(res->next != this) { 110 res = res->next; 111 } 112 if(res) 113 res->next = next; 53 module = (Win32ImageBase *)Win32DllBase::findModule(hInstance); 114 54 } 115 resmutex.leave(); 116 } 117 //****************************************************************************** 118 //****************************************************************************** 119 PVOID Win32Resource::lockResource() 120 { 121 dprintf(("Win32Resource::lockResource %d %x\n", id, winresdata)); 55 resdata = (char *)LockResource(LoadResource(hInstance, hResource)); 56 ressize = SizeofResource(hInstance, hResource); 122 57 123 if(winresdata) 124 return(winresdata); 125 126 dprintf(("Win32Resource::lockResource: NO windows resource!")); 127 return NULL; 128 } 129 //****************************************************************************** 130 //****************************************************************************** 131 PVOID Win32Resource::lockOS2Resource() 132 { 133 APIRET rc; 134 PVOID resdata; 135 136 dprintf(("Win32Resource::lockOS2Resource %d\n", id)); 137 if(os2resdata == NULL) { 138 os2resdata = convertResource(winresdata); 139 } 140 return os2resdata; 141 } 142 //****************************************************************************** 143 //return size of converted win32 resource 144 //****************************************************************************** 145 ULONG Win32Resource::getOS2Size() 146 { 147 switch(type) { 58 switch((int)restype) { 148 59 case NTRT_NEWBITMAP: 149 60 case NTRT_BITMAP: 150 return QueryConvertedBitmapSize((WINBITMAPINFOHEADER *)winresdata,ressize);61 return ConvertBitmap((WINBITMAPINFOHEADER *)resdata, ressize, (PULONG)&cvtressize); 151 62 152 63 case NTRT_CURSOR: 153 return QueryConvertedCursorSize((CursorComponent *)winresdata, ressize); 64 return ConvertCursor((CursorComponent *)resdata, ressize, &cvtressize); 65 66 case NTRT_GROUP_CURSOR: 67 return ConvertCursorGroup((CursorHeader *)resdata, ressize, module); 68 69 case NTRT_GROUP_ICON: 70 return ConvertIconGroup((IconHeader *)resdata, ressize, module); 154 71 155 72 case NTRT_ICON: 156 return QueryConvertedIconSize((WINBITMAPINFOHEADER *)winresdata, ressize); 157 158 case NTRT_GROUP_ICON: 159 case NTRT_GROUP_CURSOR: 160 case NTRT_ACCELERATORS: 161 case NTRT_NEWMENU: 162 case NTRT_MENU: 163 case NTRT_NEWDIALOG: 164 case NTRT_DIALOG: 165 case NTRT_FONTDIR: 166 case NTRT_FONT: 167 case NTRT_MESSAGETABLE: 168 case NTRT_RCDATA: 169 case NTRT_VERSION: 170 case NTRT_STRING: 171 default: 172 dprintf(("Win32Resource::getOS2Size SHOULDN'T BE CALLED for this resource type (%d) (NOT IMPLEMENTED)!!", type)); 173 break; 174 } 175 return 0; 176 } 177 //****************************************************************************** 178 //****************************************************************************** 179 PVOID Win32Resource::convertResource(void *win32res) 180 { 181 int cvtressize; 182 183 switch(type) { 184 case NTRT_NEWBITMAP: 185 case NTRT_BITMAP: 186 return ConvertBitmap((WINBITMAPINFOHEADER *)win32res, ressize, &ressize); 187 188 case NTRT_CURSOR: 189 return ConvertCursor((CursorComponent *)win32res, ressize, &cvtressize); 190 191 case NTRT_GROUP_CURSOR: 192 return ConvertCursorGroup((CursorHeader *)win32res, ressize, module); 193 194 case NTRT_GROUP_ICON: 195 return ConvertIconGroup((IconHeader *)win32res, ressize, module); 196 197 case NTRT_ICON: 198 return ConvertIcon((WINBITMAPINFOHEADER *)win32res, ressize, &cvtressize); 73 return ConvertIcon((WINBITMAPINFOHEADER *)resdata, ressize, &cvtressize); 199 74 200 75 case NTRT_ACCELERATORS: 201 return ConvertAccelerator((WINACCEL *) win32res, ressize);76 return ConvertAccelerator((WINACCEL *)resdata, ressize); 202 77 203 78 case NTRT_NEWMENU: … … 216 91 break; 217 92 } 218 dprintf((" Win32Resource::convertResource: Can't convert resource %d (type %d)", id, type));93 dprintf(("ConvertResourceToOS2: Can't convert resource %x (inst %x)", hResource, hInstance)); 219 94 return 0; 220 95 } 221 96 //****************************************************************************** 222 97 //****************************************************************************** 223 void Win32Resource::destroyAll(Win32ImageBase *module)98 ULONG WIN32API QueryConvertedResourceSize(HINSTANCE hInstance, LPSTR restype, HRSRC hResource) 224 99 { 225 Win32Resource *res = module->winres, *next; 100 PIMAGE_RESOURCE_DATA_ENTRY pData = (PIMAGE_RESOURCE_DATA_ENTRY)hResource; 101 Win32ImageBase *module; 102 char *resdata; 103 int ressize, cvtressize; 226 104 227 while(res) { 228 next = res->next; 229 delete(res); 230 res = next; 231 } 105 if(hInstance == 0 || hInstance == -1 || (WinExe && hInstance == WinExe->getInstanceHandle())) { 106 module = (Win32ImageBase *)WinExe; 107 } 108 else { 109 module = (Win32ImageBase *)Win32DllBase::findModule(hInstance); 110 } 111 resdata = (char *)LockResource(LoadResource(hInstance, hResource)); 112 ressize = SizeofResource(hInstance, hResource); 113 114 switch((int)restype) { 115 case NTRT_NEWBITMAP: 116 case NTRT_BITMAP: 117 return QueryConvertedBitmapSize((WINBITMAPINFOHEADER *)resdata, ressize); 118 119 case NTRT_CURSOR: 120 return QueryConvertedCursorSize((CursorComponent *)resdata, ressize); 121 122 case NTRT_ICON: 123 return QueryConvertedIconSize((WINBITMAPINFOHEADER *)resdata, ressize); 124 125 case NTRT_GROUP_ICON: 126 case NTRT_GROUP_CURSOR: 127 case NTRT_ACCELERATORS: 128 case NTRT_NEWMENU: 129 case NTRT_MENU: 130 case NTRT_NEWDIALOG: 131 case NTRT_DIALOG: 132 case NTRT_FONTDIR: 133 case NTRT_FONT: 134 case NTRT_MESSAGETABLE: 135 case NTRT_RCDATA: 136 case NTRT_VERSION: 137 case NTRT_STRING: 138 default: 139 dprintf(("Win32Resource::getOS2Size SHOULDN'T BE CALLED for this resource type (%d) (NOT IMPLEMENTED)!!", restype)); 140 break; 141 } 142 return 0; 232 143 } 233 144 //****************************************************************************** -
trunk/src/user32/loadres.cpp
r3482 r3625 1 /* $Id: loadres.cpp,v 1.2 8 2000-05-02 20:50:48sandervl Exp $ */1 /* $Id: loadres.cpp,v 1.29 2000-05-28 16:43:45 sandervl Exp $ */ 2 2 3 3 /* … … 20 20 #include <os2win.h> 21 21 #include <user32.h> 22 #include <winres.h>23 22 #include <heapstring.h> 24 23 #include <oslibres.h> … … 27 26 #include "initterm.h" 28 27 #include <win\cursoricon.h> 28 #include <winres.h> 29 29 30 30 #define DBG_LOCALLOG DBG_loadres … … 60 60 int WIN32API LoadStringW(HINSTANCE hinst, UINT wID, LPWSTR lpBuffer, int cchBuffer) 61 61 { 62 Win32Resource *winres;63 62 WCHAR *p; 64 63 int string_num; 65 64 int i = 0; 65 HRSRC hRes; 66 66 67 67 /* Use bits 4 - 19 (incremented by 1) as resourceid, mask out 68 68 * 20 - 31. */ 69 winres = (Win32Resource *)FindResourceW(hinst, (LPWSTR)(((wID>>4)&0xffff)+1), RT_STRINGW);70 if( winres == NULL) {69 hRes = FindResourceW(hinst, (LPWSTR)(((wID>>4)&0xffff)+1), RT_STRINGW); 70 if(hRes == NULL) { 71 71 dprintf(("LoadStringW NOT FOUND from %X, id %d buffersize %d\n", hinst, wID, cchBuffer)); 72 72 *lpBuffer = 0; … … 74 74 } 75 75 76 p = (LPWSTR) winres->lockResource();76 p = (LPWSTR)LockResource(LoadResource(hinst, hRes)); 77 77 if(p) { 78 78 string_num = wID & 0x000f; … … 93 93 } 94 94 } 95 delete winres;96 95 97 96 #ifdef DEBUG_ENABLELOG_LEVEL2 … … 111 110 DWORD cyDesired, DWORD fuLoad) 112 111 { 113 Win32Resource *winres;114 112 HICON hIcon; 115 113 HANDLE hMapping = 0; 116 114 char *ptr = NULL; 115 HRSRC hRes; 116 LPSTR restype = RT_ICONA; 117 117 118 118 if(fuLoad & LR_LOADFROMFILE) … … 128 128 if(!hinst) 129 129 { 130 winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszIcon,RT_ICONA); 131 if(!winres) 132 winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszIcon,RT_GROUP_ICONA); 133 if(winres) 130 hRes = FindResourceA(hInstanceUser32,lpszIcon,RT_ICONA); 131 if(!hRes) { 132 hRes = FindResourceA(hInstanceUser32,lpszIcon,RT_GROUP_ICONA); 133 restype = RT_GROUP_ICONA; 134 } 135 if(hRes) 134 136 { 135 hIcon = OSLibWinCreateIcon(winres->lockOS2Resource()); 136 delete winres; 137 hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hInstanceUser32, restype, hRes)); 137 138 } 138 else hIcon = OSLibWinQuerySysIcon((ULONG)lpszIcon,GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON));139 else hIcon = OSLibWinQuerySysIcon((ULONG)lpszIcon,GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON)); 139 140 } 140 141 else 141 142 { //not a system icon 142 winres = (Win32Resource *)FindResourceA(hinst, lpszIcon,RT_ICONA);143 if(winres == 0){144 winres = (Win32Resource *)FindResourceA(hinst, lpszIcon,RT_GROUP_ICONA);145 }146 if(winres) {147 hIcon = OSLibWinCreateIcon(winres->lockOS2Resource());148 delete winres;143 hRes = FindResourceA(hinst,lpszIcon,RT_ICONA); 144 if(!hRes) { 145 hRes = FindResourceA(hinst,lpszIcon,RT_GROUP_ICONA); 146 restype = RT_GROUP_ICONA; 147 } 148 if(hRes) { 149 hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hinst, restype, hRes)); 149 150 } 150 151 else hIcon = 0; … … 160 161 DWORD cyDesired, DWORD fuLoad) 161 162 { 162 Win32Resource *winres;163 163 HICON hIcon; 164 164 HANDLE hMapping = 0; 165 165 char *ptr = NULL; 166 HRSRC hRes; 167 LPSTR restype = RT_ICONA; 166 168 167 169 if(fuLoad & LR_LOADFROMFILE) … … 177 179 if (!hinst) 178 180 { 179 winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszIcon,RT_ICONW); 180 if(!winres) 181 winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszIcon,RT_GROUP_ICONW); 182 if(winres) 181 hRes = FindResourceW(hInstanceUser32,lpszIcon,RT_ICONW); 182 if(!hRes) { 183 hRes = FindResourceW(hInstanceUser32,lpszIcon,RT_GROUP_ICONW); 184 restype = RT_GROUP_ICONA; 185 } 186 if(hRes) 183 187 { 184 hIcon = OSLibWinCreateIcon(winres->lockOS2Resource()); 185 delete winres; 188 hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hInstanceUser32, restype, hRes)); 186 189 } 187 190 else hIcon = OSLibWinQuerySysIcon((ULONG)lpszIcon,GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON)); 188 191 } 189 192 else 190 193 {//not a system icon 191 winres = (Win32Resource *)FindResourceW(hinst, lpszIcon,RT_ICONW);192 if(winres == 0){193 winres = (Win32Resource *)FindResourceW(hinst, lpszIcon,RT_GROUP_ICONW);194 }195 if(winres) {196 hIcon = OSLibWinCreateIcon(winres->lockOS2Resource());197 delete winres;194 hRes = FindResourceW(hinst,lpszIcon,RT_ICONW); 195 if(!hRes) { 196 hRes = FindResourceW(hinst,lpszIcon,RT_GROUP_ICONW); 197 restype = RT_GROUP_ICONA; 198 } 199 if(hRes) { 200 hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hinst, restype, hRes)); 198 201 } 199 202 else hIcon = 0; 200 203 } 201 204 } … … 221 224 DWORD cyDesired, DWORD fuLoad) 222 225 { 223 Win32Resource *winres;224 226 HCURSOR hCursor; 225 227 HANDLE hMapping = 0; 226 228 char *ptr = NULL; 229 HRSRC hRes; 230 LPSTR restype = RT_CURSORA; 227 231 228 232 if(fuLoad & LR_LOADFROMFILE) … … 236 240 else 237 241 { 238 if 242 if(!hinst) 239 243 { 240 winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszCursor,RT_CURSORA); 241 if(!winres) 242 winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszCursor,RT_GROUP_CURSORA); 243 if(winres) 244 hRes = FindResourceA(hInstanceUser32,lpszCursor,RT_CURSORA); 245 if(!hRes) { 246 hRes = FindResourceA(hInstanceUser32,lpszCursor,RT_GROUP_CURSORA); 247 restype = RT_GROUP_CURSORA; 248 } 249 if(hRes) 244 250 { 245 hCursor = OSLibWinCreatePointer(winres->lockOS2Resource()); 246 delete winres; 251 hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hInstanceUser32, restype, hRes)); 247 252 } 248 253 else hCursor = OSLibWinQuerySysPointer((ULONG)lpszCursor,GetSystemMetrics(SM_CXCURSOR),GetSystemMetrics(SM_CYCURSOR)); 249 }250 else251 {//not a system pointer 252 winres = (Win32Resource *)FindResourceA(hinst, lpszCursor,RT_CURSORA);253 if(winres == 0){254 winres = (Win32Resource *)FindResourceA(hinst, lpszCursor,RT_GROUP_CURSORA);255 }256 if(winres) { 257 hCursor = OSLibWinCreatePointer(winres->lockOS2Resource());258 delete winres;254 } 255 else 256 { //not a system icon 257 hRes = FindResourceA(hinst,lpszCursor,RT_CURSORA); 258 if(!hRes) { 259 hRes = FindResourceA(hinst,lpszCursor,RT_GROUP_CURSORA); 260 restype = RT_GROUP_CURSORA; 261 } 262 if(hRes) { 263 hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hinst, restype, hRes)); 259 264 } 260 265 else hCursor = 0; 261 266 } 262 267 } 263 268 if(HIWORD(lpszCursor)) { … … 273 278 DWORD cyDesired, DWORD fuLoad) 274 279 { 275 Win32Resource *winres;276 280 HCURSOR hCursor; 277 281 HANDLE hMapping = 0; 278 282 char *ptr = NULL; 283 HRSRC hRes; 284 LPSTR restype = RT_CURSORA; 279 285 280 286 if(fuLoad & LR_LOADFROMFILE) … … 290 296 if(!hinst) 291 297 { 292 winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszCursor,RT_CURSORW); 293 if(!winres) 294 winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszCursor,RT_GROUP_CURSORW); 295 if(winres) 298 hRes = FindResourceW(hInstanceUser32,lpszCursor,RT_CURSORW); 299 if(!hRes) { 300 hRes = FindResourceW(hInstanceUser32,lpszCursor,RT_GROUP_CURSORW); 301 restype = RT_GROUP_CURSORA; 302 } 303 if(hRes) 296 304 { 297 hCursor = OSLibWinCreatePointer(winres->lockOS2Resource()); 298 delete winres; 305 hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hInstanceUser32, restype, hRes)); 299 306 } 300 307 else hCursor = OSLibWinQuerySysPointer((ULONG)lpszCursor,GetSystemMetrics(SM_CXCURSOR),GetSystemMetrics(SM_CYCURSOR)); 301 302 303 {//not a system pointer 304 winres = (Win32Resource *)FindResourceW(hinst, lpszCursor,RT_CURSORW);305 if(winres == 0){306 winres = (Win32Resource *)FindResourceW(hinst, lpszCursor,RT_GROUP_CURSORW);307 }308 if(winres) {309 hCursor = OSLibWinCreatePointer(winres->lockOS2Resource());310 delete winres;308 } 309 else 310 { //not a system icon 311 hRes = FindResourceW(hinst,lpszCursor,RT_CURSORW); 312 if(!hRes) { 313 hRes = FindResourceW(hinst,lpszCursor,RT_GROUP_CURSORW); 314 restype = RT_GROUP_CURSORA; 315 } 316 if(hRes) { 317 hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hinst, restype, hRes)); 311 318 } 312 319 else hCursor = 0; 313 320 } 314 321 } 315 322 dprintf(("LoadCursorW (%X) returned %x\n", hinst, hCursor)); … … 498 505 hBitmap = LoadBitmapA(hinst, lpszBitmap, 0, 0, 0); 499 506 500 dprintf(("LoadBitmapA returned %08xh\n", hBitmap)); 507 if(HIWORD(lpszBitmap)) { 508 dprintf(("LoadBitmapA %x %s returned %08xh\n", hinst, lpszBitmap, hBitmap)); 509 } 510 else dprintf(("LoadBitmapA %x %x returned %08xh\n", hinst, lpszBitmap, hBitmap)); 501 511 502 512 return(hBitmap); … … 517 527 FreeAsciiString((LPSTR)lpszBitmap); 518 528 519 dprintf(("LoadBitmapW returned %08xh\n", hBitmap)); 529 if(HIWORD(lpszBitmap)) { 530 dprintf(("LoadBitmapW %x %s returned %08xh\n", hinst, lpszBitmap, hBitmap)); 531 } 532 else dprintf(("LoadBitmapW %x %x returned %08xh\n", hinst, lpszBitmap, hBitmap)); 520 533 521 534 return(hBitmap); -
trunk/src/user32/syscolor.cpp
r3525 r3625 1 /* $Id: syscolor.cpp,v 1.2 1 2000-05-12 18:09:41sandervl Exp $ */1 /* $Id: syscolor.cpp,v 1.22 2000-05-28 16:43:46 sandervl Exp $ */ 2 2 3 3 /* … … 246 246 HBRUSH WIN32API GetSysColorBrush(int nIndex) 247 247 { 248 dprintf(("GetSysColorBrush %d returned", nIndex));249 248 if (!fColorInit) 250 249 { … … 252 251 fColorInit = TRUE; 253 252 } 254 253 dprintf(("GetSysColorBrush %d returned %x ", nIndex, ((nIndex >= 0) && (nIndex < NUM_SYS_COLORS)) ? SysColorBrushes[nIndex]:0)); 255 254 return ((nIndex >= 0) && (nIndex < NUM_SYS_COLORS)) ? SysColorBrushes[nIndex]:0; 256 255 } -
trunk/src/user32/win32wbase.cpp
r3610 r3625 1 /* $Id: win32wbase.cpp,v 1.19 5 2000-05-26 18:43:34sandervl Exp $ */1 /* $Id: win32wbase.cpp,v 1.196 2000-05-28 16:43:46 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 … … 29 29 #include <heapstring.h> 30 30 #include <win32wbase.h> 31 #include <winres.h>32 31 #include "wndmsg.h" 33 32 #include "oslibwin.h" -
trunk/src/user32/win32wbasenonclient.cpp
r3350 r3625 1 /* $Id: win32wbasenonclient.cpp,v 1.2 2 2000-04-08 18:31:07 cbratschiExp $ */1 /* $Id: win32wbasenonclient.cpp,v 1.23 2000-05-28 16:43:47 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 (non-client methods) … … 24 24 #include <heapstring.h> 25 25 #include <win32wbase.h> 26 #include <winres.h>27 26 #include "wndmsg.h" 28 27 #include "pmframe.h" -
trunk/src/user32/win32wbasepos.cpp
r2803 r3625 1 /* $Id: win32wbasepos.cpp,v 1.1 3 2000-02-16 14:28:24sandervl Exp $ */1 /* $Id: win32wbasepos.cpp,v 1.14 2000-05-28 16:43:47 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 (nonclient/position methods) … … 25 25 #include <misc.h> 26 26 #include <win32wbase.h> 27 #include <winres.h>28 27 #include <spy.h> 29 28 #include "wndmsg.h" -
trunk/src/user32/win32wmdichild.cpp
r3603 r3625 1 /* $Id: win32wmdichild.cpp,v 1.2 3 2000-05-24 19:30:08sandervl Exp $ */1 /* $Id: win32wmdichild.cpp,v 1.24 2000-05-28 16:43:47 sandervl Exp $ */ 2 2 /* 3 3 * Win32 MDI Child Window Class for OS/2 … … 37 37 #include <oslibres.h> 38 38 #include "oslibdos.h" 39 #include <winres.h>40 39 #include "syscolor.h" 41 40 #include "win32wndhandle.h" -
trunk/src/user32/win32wmdiclient.cpp
r3603 r3625 1 /* $Id: win32wmdiclient.cpp,v 1.2 7 2000-05-24 19:30:08sandervl Exp $ */1 /* $Id: win32wmdiclient.cpp,v 1.28 2000-05-28 16:43:47 sandervl Exp $ */ 2 2 /* 3 3 * Win32 MDI Client Window Class for OS/2 … … 33 33 #include <oslibres.h> 34 34 #include "oslibdos.h" 35 #include <winres.h>36 35 #include "syscolor.h" 37 36 #include "win32wndhandle.h" -
trunk/src/user32/win32wnd.cpp
r2803 r3625 1 /* $Id: win32wnd.cpp,v 1. 8 2000-02-16 14:28:24sandervl Exp $ */1 /* $Id: win32wnd.cpp,v 1.9 2000-05-28 16:43:48 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Class for OS/2 … … 30 30 #include <oslibres.h> 31 31 #include "oslibdos.h" 32 #include <winres.h>33 32 #include "syscolor.h" 34 33 #include "win32wndhandle.h" -
trunk/src/user32/windowclass.cpp
r2803 r3625 1 /* $Id: windowclass.cpp,v 1. 9 2000-02-16 14:28:26sandervl Exp $ */1 /* $Id: windowclass.cpp,v 1.10 2000-05-28 16:43:48 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Class Code for OS/2 … … 197 197 * Variables : 198 198 * Result : If the function finds a matching class and successfully copies 199 * 199 * the data, the return value is TRUE; 200 200 * otherwise, it is FALSE. 201 201 * To get extended error information, call GetLastError. … … 203 203 *****************************************************************************/ 204 204 BOOL WIN32API GetClassInfoExA(HINSTANCE hInstance, 205 206 205 LPCTSTR lpszClass, 206 LPWNDCLASSEXA lpwcx) 207 207 { 208 208 BOOL rc; 209 209 Win32WndClass *wndclass; 210 210 211 dprintf(("USER32:GetClassInfoExA (%08xh,%x,%08x).\n", 212 hInstance, 213 lpszClass, 214 lpwcx)); 211 if(HIWORD(lpszClass)) { 212 dprintf(("USER32:GetClassInfoExA (%08xh,%s,%08x)", 213 hInstance, lpszClass, lpwcx)); 214 } 215 else dprintf(("USER32:GetClassInfoExA (%08xh,%x,%08x)", 216 hInstance, lpszClass, lpwcx)); 215 217 216 218 wndclass = Win32WndClass::FindClass(hInstance, (LPSTR)lpszClass);
Note:
See TracChangeset
for help on using the changeset viewer.