Changeset 5386 for trunk/src/kernel32/cvtcursorgrp.cpp
- Timestamp:
- Mar 27, 2001, 6:18:26 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/cvtcursorgrp.cpp
r3625 r5386 1 /* $Id: cvtcursorgrp.cpp,v 1.1 0 2000-05-28 16:45:12sandervl Exp $ */1 /* $Id: cvtcursorgrp.cpp,v 1.11 2001-03-27 16:18:26 sandervl Exp $ */ 2 2 3 3 /* … … 26 26 #include <winconst.h> 27 27 #include <wincursor.h> 28 #include <win\cursoricon.h> 28 29 #include <misc.h> 29 30 #include "cvtresource.h" … … 33 34 #include "dbglocal.h" 34 35 36 //CURSORICONFILEDIR 37 38 //****************************************************************************** 39 //****************************************************************************** 40 void * WIN32API ConvertCursorGroupToOS2(LPVOID ptr) 41 { 42 CURSORICONFILEDIR *chdr = (CURSORICONFILEDIR *)ptr; 43 int i, groupsize = 0, os2cursorsize; 44 BITMAPARRAYFILEHEADER2 *bafh, *orgbafh; 45 CursorComponent *cursorhdr; 46 void *os2cursor; 47 HRSRC hRes; 48 49 dprintf(("ConvertCursorGroup")); 50 dprintf(("Cursor Group type : %d", chdr->idType)); 51 dprintf(("Cursor Group count: %d", chdr->idCount)); 52 for(i=0;i<chdr->idCount;i++) { 53 dprintf2(("Cursor : %d", chdr->idEntries[i].dwDIBOffset)); 54 dprintf2(("Width : %d", (int)chdr->idEntries[i].bWidth)); 55 dprintf2(("Height : %d", (int)chdr->idEntries[i].bHeight)); 56 dprintf2(("Bits : %d", chdr->idEntries[i].bColorCount)); 57 dprintf2(("ResBytes: %d", chdr->idEntries[i].dwDIBSize)); 58 59 groupsize += chdr->idEntries[i].dwDIBSize; 60 } 61 bafh = (BITMAPARRAYFILEHEADER2 *)malloc(groupsize+chdr->idCount*sizeof(BITMAPARRAYFILEHEADER2)); 62 orgbafh = bafh; 63 64 rdir = (CursorResDir *)(chdr + 1); 65 for(i=0;i<chdr->idCount;i++) { 66 bafh->usType = BFT_BITMAPARRAY; 67 bafh->cbSize = sizeof(BITMAPARRAYFILEHEADER2); 68 bafh->cxDisplay = 0; 69 bafh->cyDisplay = 0; 70 hRes = FindResourceA(module->getInstanceHandle(), 71 (LPCSTR)rdir->wNameOrdinal, (LPSTR)NTRT_CURSOR); 72 73 if(hRes == NULL) { 74 dprintf(("Can't find cursor!")); 75 rdir++; 76 continue; 77 } 78 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 82 if(os2cursor == NULL) { 83 dprintf(("Can't convert cursor!")); 84 rdir++; 85 continue; 86 } 87 88 if(i != chdr->cwCount -1) { 89 bafh->offNext = (int)&bafh->bfh2 - (int)orgbafh + os2cursorsize; 90 } 91 else bafh->offNext = 0; 92 93 memcpy((char *)&bafh->bfh2, os2cursor, os2cursorsize); 94 free(os2cursor); 95 96 bafh = (BITMAPARRAYFILEHEADER2 *)((int)&bafh->bfh2 + os2cursorsize); 97 98 rdir++; 99 } 100 return (void *)orgbafh; 101 } 35 102 //****************************************************************************** 36 103 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.