Ignore:
Timestamp:
Mar 27, 2001, 6:18:26 PM (24 years ago)
Author:
sandervl
Message:

removed cursor(group) conversion code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/cvtcursorgrp.cpp

    r3625 r5386  
    1 /* $Id: cvtcursorgrp.cpp,v 1.10 2000-05-28 16:45:12 sandervl Exp $ */
     1/* $Id: cvtcursorgrp.cpp,v 1.11 2001-03-27 16:18:26 sandervl Exp $ */
    22
    33/*
     
    2626#include <winconst.h>
    2727#include <wincursor.h>
     28#include <win\cursoricon.h>
    2829#include <misc.h>
    2930#include "cvtresource.h"
     
    3334#include "dbglocal.h"
    3435
     36//CURSORICONFILEDIR
     37
     38//******************************************************************************
     39//******************************************************************************
     40void * 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}
    35102//******************************************************************************
    36103//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.