Changeset 1356 for trunk/src/kernel32/winres.cpp
- Timestamp:
- Oct 19, 1999, 2:51:25 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/winres.cpp
r956 r1356 1 /* $Id: winres.cpp,v 1. 19 1999-09-15 23:38:02sandervl Exp $ */1 /* $Id: winres.cpp,v 1.20 1999-10-19 12:51:25 sandervl Exp $ */ 2 2 3 3 /* … … 16 16 #define INCL_BITMAPFILEFORMAT 17 17 #define INCL_DOSMODULEMGR 18 #include <os2wrap.h> 18 #include <os2wrap.h> //Odin32 OS/2 api wrappers 19 19 #include <stdarg.h> 20 20 #ifdef __IBMCPP__ … … 107 107 //resources are in Unicode format by default; indirectly created resources 108 108 //can also be in ascii format 109 isUnicode = TRUE; 109 isUnicode = TRUE; 110 110 } 111 111 //****************************************************************************** … … 129 129 case NTRT_NEWBITMAP: 130 130 case NTRT_BITMAP: 131 131 orgos2type = RT_BITMAP; 132 132 break; 133 133 case NTRT_CURSOR: … … 135 135 case NTRT_GROUP_ICON: 136 136 case NTRT_ICON: 137 138 137 orgos2type = RT_POINTER; 138 break; 139 139 case NTRT_ACCELERATORS: 140 141 140 orgos2type = RT_ACCELTABLE; 141 break; 142 142 case NTRT_NEWMENU: 143 143 case NTRT_MENU: 144 145 144 orgos2type = RT_MENU; 145 break; 146 146 case NTRT_NEWDIALOG: 147 147 case NTRT_DIALOG: 148 149 148 orgos2type = RT_DIALOG; 149 break; 150 150 case NTRT_FONTDIR: 151 151 case NTRT_FONT: … … 166 166 } 167 167 //resources are in Unicode format by default 168 isUnicode = TRUE; 168 isUnicode = TRUE; 169 169 } 170 170 //****************************************************************************** … … 192 192 193 193 if(type == NTRT_STRING) { 194 195 196 } 197 else 194 memcpy(winresdata, resdata, size-sizeof(WCHAR)); 195 ((USHORT *)winresdata)[size/sizeof(WCHAR)-1] = 0; 196 } 197 else memcpy(winresdata, resdata, size); 198 198 199 199 //resources are in Unicode format by default 200 isUnicode = TRUE; 200 isUnicode = TRUE; 201 201 } 202 202 //****************************************************************************** … … 208 208 //returned by DosGetResource, so we don't (and mustn't) free it 209 209 if(os2resdata && (resType == RSRC_PELOADER || resType == RSRC_CUSTOMINDIRECT)) 210 210 free(os2resdata); 211 211 212 212 if(winresdata) free(winresdata); … … 235 235 236 236 dprintf(("Win32Resource::lockResource %d\n", id)); 237 237 238 if(winresdata) 238 239 return(winresdata); … … 290 291 winresdata = malloc(ressize+sizeof(WCHAR)); 291 292 memcpy(winresdata, resdata, ressize); 292 293 *(USHORT *)(&((char *)winresdata)[ressize]) = 0; 293 294 DosFreeResource(resdata); 294 295 return((PVOID)((ULONG)winresdata+2)); //skip length word … … 303 304 304 305 if(winresdata == NULL) { 305 306 307 308 309 310 311 306 rc = DosGetResource((HMODULE)module->hinstance, os2type, id, (PPVOID)&resdata); 307 if(rc) { 308 dprintf(("Can't find original resource!!!\n")); 309 return(NULL); 310 } 311 winresdata = (char *)malloc(ressize); 312 memcpy(winresdata, resdata, ressize); 312 313 } 313 314 if(resdata) 314 315 DosFreeResource(resdata); 315 316 316 317 return winresdata; … … 325 326 dprintf(("Win32Resource::lockOS2Resource %d\n", id)); 326 327 if(os2resdata == NULL) { 327 328 329 330 331 332 333 334 328 if(resType == RSRC_PELOADER || resType == RSRC_CUSTOMINDIRECT) { 329 os2resdata = convertResource(winresdata); 330 } 331 else { 332 rc = DosGetResource((HMODULE)module->hinstance, orgos2type, id, (PPVOID)&resdata); 333 if(rc) return(NULL); 334 os2resdata = resdata; 335 } 335 336 } 336 337 return os2resdata; … … 344 345 case NTRT_NEWBITMAP: 345 346 case NTRT_BITMAP: 346 347 return QueryConvertedBitmapSize((WINBITMAPINFOHEADER *)winresdata, ressize); 347 348 348 349 case NTRT_CURSOR: 349 350 return QueryConvertedCursorSize((CursorComponent *)winresdata, ressize); 350 351 351 352 case NTRT_ICON: 352 353 return QueryConvertedIconSize((WINBITMAPINFOHEADER *)winresdata, ressize); 353 354 354 355 case NTRT_GROUP_ICON: … … 366 367 case NTRT_STRING: 367 368 default: 368 369 369 dprintf(("Win32Resource::getOS2Size SHOULDN'T BE CALLED for this resource type (%d) (NOT IMPLEMENTED)!!", type)); 370 break; 370 371 } 371 372 return 0; … … 380 381 case NTRT_NEWBITMAP: 381 382 case NTRT_BITMAP: 382 383 return ConvertBitmap((WINBITMAPINFOHEADER *)win32res, ressize, &ressize); 383 384 384 385 case NTRT_CURSOR: 385 386 return ConvertCursor((CursorComponent *)win32res, ressize, &cvtressize); 386 387 387 388 case NTRT_GROUP_CURSOR: 388 389 return ConvertCursorGroup((CursorHeader *)win32res, ressize, module); 389 390 390 391 case NTRT_GROUP_ICON: 391 392 return ConvertIconGroup((IconHeader *)win32res, ressize, module); 392 393 393 394 case NTRT_ICON: 394 395 return ConvertIcon((WINBITMAPINFOHEADER *)win32res, ressize, &cvtressize); 395 396 396 397 case NTRT_ACCELERATORS: 397 398 return ConvertAccelerator((WINACCEL *)win32res, ressize); 398 399 399 400 case NTRT_NEWMENU: 400 401 case NTRT_MENU: 401 402 return ConvertMenu((MenuHeader *)win32res, ressize, isUnicode); 402 403 403 404 case NTRT_NEWDIALOG: 404 405 case NTRT_DIALOG: 405 406 break; 406 407 case NTRT_FONTDIR: 407 408 case NTRT_FONT: … … 410 411 case NTRT_VERSION: 411 412 case NTRT_STRING: 412 413 break; 413 414 414 415 default:
Note:
See TracChangeset
for help on using the changeset viewer.