Changeset 1474 for trunk/src/user32/oslibres.cpp
- Timestamp:
- Oct 27, 1999, 12:35:05 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/oslibres.cpp
r1042 r1474 1 /* $Id: oslibres.cpp,v 1. 4 1999-09-25 14:16:05 sandervl Exp $ */1 /* $Id: oslibres.cpp,v 1.5 1999-10-27 10:35:05 sandervl Exp $ */ 2 2 /* 3 3 * Window API wrappers for OS/2 … … 138 138 { 139 139 POINTERINFO pointerInfo = {0}; 140 HBITMAP hbmColor ;140 HBITMAP hbmColor = 0, hbmMask = 0; 141 141 BITMAPARRAYFILEHEADER2 *bafh = (BITMAPARRAYFILEHEADER2 *)cursorbitmap; 142 BITMAPFILEHEADER2 *bfh = (BITMAPFILEHEADER2 *)cursorbitmap ;142 BITMAPFILEHEADER2 *bfh = (BITMAPFILEHEADER2 *)cursorbitmap, *bfhColor = 0; 143 143 HPS hps; 144 144 HANDLE hPointer; … … 150 150 if(bafh->usType == BFT_BITMAPARRAY && bafh->cbSize == sizeof(BITMAPARRAYFILEHEADER2)) { 151 151 bfh = &bafh->bfh2; 152 } 153 else {//single icon 152 bfhColor = (BITMAPFILEHEADER2 *)((char *)bfh + sizeof(RGB2)*2 + sizeof(BITMAPFILEHEADER2)); 153 } 154 else {//single cursor 154 155 bfh = (BITMAPFILEHEADER2 *)cursorbitmap; 155 bafh = (BITMAPARRAYFILEHEADER2 *)bfh; //for calculation bitmap offset 156 bfhColor = (BITMAPFILEHEADER2 *)((char *)bfh + sizeof(RGB2)*2 + sizeof(BITMAPFILEHEADER2)); 157 bafh = (BITMAPARRAYFILEHEADER2 *)bfh; //for calculation bitmap offset 156 158 } 157 159 //skip xor/and mask 158 160 hps = WinGetScreenPS(HWND_DESKTOP); 159 hbm Color= GpiCreateBitmap(hps, &bfh->bmp2, CBM_INIT,160 161 162 if(hbm Color== GPI_ERROR) {161 hbmMask = GpiCreateBitmap(hps, &bfh->bmp2, CBM_INIT, 162 (char *)bafh + bfh->offBits, 163 (BITMAPINFO2 *)&bfh->bmp2); 164 if(hbmMask == GPI_ERROR) { 163 165 dprintf(("OSLibWinCreatePointer: GpiCreateBitmap failed!")); 164 166 WinReleasePS(hps); 165 167 return 0; 168 } 169 170 if((ULONG)((char *)bafh+bfh->offBits) != (ULONG)bfhColor) 171 {//color bitmap present 172 hbmColor = GpiCreateBitmap(hps, &bfhColor->bmp2, CBM_INIT, 173 (char *)bafh + bfhColor->offBits, 174 (BITMAPINFO2 *)&bfhColor->bmp2); 175 if(hbmColor == GPI_ERROR) { 176 dprintf(("OSLibWinCreateIcon: GpiCreateBitmap failed!")); 177 GpiDeleteBitmap(hbmMask); 178 WinReleasePS(hps); 179 return 0; 180 } 166 181 } 167 182 … … 169 184 pointerInfo.xHotspot = bfh->xHotspot; 170 185 pointerInfo.yHotspot = bfh->yHotspot; 171 pointerInfo.hbmColor = 0;172 pointerInfo.hbmPointer = hbm Color;186 pointerInfo.hbmColor = hbmColor; 187 pointerInfo.hbmPointer = hbmMask; 173 188 hPointer = WinCreatePointerIndirect(HWND_DESKTOP, &pointerInfo); 174 189 … … 176 191 dprintf(("OSLibWinCreatePointer: WinCreatePointerIndirect failed!")); 177 192 } 178 GpiDeleteBitmap(hbmColor); 193 GpiDeleteBitmap(hbmMask); 194 if(hbmColor) GpiDeleteBitmap(hbmColor); 179 195 WinReleasePS(hps); 180 196 return hPointer;
Note:
See TracChangeset
for help on using the changeset viewer.