Ignore:
Timestamp:
Aug 23, 1999, 3:58:19 PM (26 years ago)
Author:
sandervl
Message:

Icon load bugfix + dummy functions for comdlg32

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/new/oslibres.cpp

    r601 r647  
    1 /* $Id: oslibres.cpp,v 1.5 1999-08-20 20:09:51 sandervl Exp $ */
     1/* $Id: oslibres.cpp,v 1.6 1999-08-23 13:56:35 sandervl Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    5858 HBITMAP     hbmColor, hbmMask;
    5959 BITMAPARRAYFILEHEADER2 *bafh = (BITMAPARRAYFILEHEADER2 *)iconbitmap;
    60  BITMAPFILEHEADER2 *bfh;
     60 BITMAPFILEHEADER2 *bfhBW;
     61 BITMAPFILEHEADER2 *bfhColor;
    6162 HPS         hps;
    6263 HANDLE      hIcon;
     
    6667        return 0;
    6768    }
    68     //skip xor/and mask
    69     bfh = (BITMAPFILEHEADER2 *)((char *)&bafh->bfh2 + sizeof(RGB2)*2 + sizeof(BITMAPFILEHEADER2));
     69    if(bafh->usType == BFT_BITMAPARRAY && bafh->cbSize == sizeof(BITMAPARRAYFILEHEADER2)) {
     70        bfhBW    = &bafh->bfh2;
     71        bfhColor = (BITMAPFILEHEADER2 *)((char *)&bafh->bfh2 + sizeof(RGB2)*2 + sizeof(BITMAPFILEHEADER2));
     72    }
     73    else {//single icon
     74        bfhBW    = (BITMAPFILEHEADER2 *)iconbitmap;
     75        bfhColor = (BITMAPFILEHEADER2 *)((char *)bfhBW + sizeof(RGB2)*2 + sizeof(BITMAPFILEHEADER2));
     76        bafh     = (BITMAPARRAYFILEHEADER2 *)bfhBW; //for calculation bitmap offset
     77    }
    7078    hps = WinGetPS(HWND_DESKTOP);
    71     hbmColor = GpiCreateBitmap(hps, &bfh->bmp2, CBM_INIT,
    72                                (char *)bafh + bfh->offBits,
    73                                (BITMAPINFO2 *)&bfh->bmp2);
     79    hbmColor = GpiCreateBitmap(hps, &bfhColor->bmp2, CBM_INIT,
     80                               (char *)bafh + bfhColor->offBits,
     81                               (BITMAPINFO2 *)&bfhColor->bmp2);
    7482    if(hbmColor == GPI_ERROR) {
    7583        dprintf(("OSLibWinCreateIcon: GpiCreateBitmap failed!"));
     
    7785        return 0;
    7886    }
    79     hbmMask = GpiCreateBitmap(hps, &bafh->bfh2.bmp2, CBM_INIT,
    80                               (char *)bafh + bafh->bfh2.offBits,
    81                               (BITMAPINFO2 *)&bafh->bfh2.bmp2);
     87    hbmMask = GpiCreateBitmap(hps, &bfhBW->bmp2, CBM_INIT,
     88                              (char *)bafh + bfhBW->offBits,
     89                              (BITMAPINFO2 *)&bfhBW->bmp2);
    8290    if(hbmMask == GPI_ERROR) {
    8391        dprintf(("OSLibWinCreateIcon: GpiCreateBitmap hbmMask failed!"));
     
    8896
    8997    pointerInfo.fPointer   = FALSE; //icon
    90     pointerInfo.xHotspot   = bfh->xHotspot;
    91     pointerInfo.yHotspot   = bfh->yHotspot;
     98    pointerInfo.xHotspot   = bfhBW->xHotspot;
     99    pointerInfo.yHotspot   = bfhBW->yHotspot;
    92100    pointerInfo.hbmColor   = hbmColor;
    93101    pointerInfo.hbmPointer = hbmMask;
Note: See TracChangeset for help on using the changeset viewer.