Ignore:
Timestamp:
Oct 19, 1999, 2:51:25 PM (26 years ago)
Author:
sandervl
Message:

Resource support for DIB type (DISABLED)

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:02 sandervl Exp $ */
     1/* $Id: winres.cpp,v 1.20 1999-10-19 12:51:25 sandervl Exp $ */
    22
    33/*
     
    1616#define INCL_BITMAPFILEFORMAT
    1717#define INCL_DOSMODULEMGR
    18 #include <os2wrap.h>    //Odin32 OS/2 api wrappers
     18#include <os2wrap.h>    //Odin32 OS/2 api wrappers
    1919#include <stdarg.h>
    2020#ifdef __IBMCPP__
     
    107107  //resources are in Unicode format by default; indirectly created resources
    108108  //can also be in ascii format
    109   isUnicode  = TRUE; 
     109  isUnicode  = TRUE;
    110110}
    111111//******************************************************************************
     
    129129    case NTRT_NEWBITMAP:
    130130    case NTRT_BITMAP:
    131         orgos2type = RT_BITMAP;
     131        orgos2type = RT_BITMAP;
    132132        break;
    133133    case NTRT_CURSOR:
     
    135135    case NTRT_GROUP_ICON:
    136136    case NTRT_ICON:
    137         orgos2type = RT_POINTER;
    138         break;
     137        orgos2type = RT_POINTER;
     138        break;
    139139    case NTRT_ACCELERATORS:
    140         orgos2type = RT_ACCELTABLE;
    141         break;
     140        orgos2type = RT_ACCELTABLE;
     141    break;
    142142    case NTRT_NEWMENU:
    143143    case NTRT_MENU:
    144         orgos2type = RT_MENU;
    145         break;
     144        orgos2type = RT_MENU;
     145        break;
    146146    case NTRT_NEWDIALOG:
    147147    case NTRT_DIALOG:
    148         orgos2type = RT_DIALOG;
    149         break;
     148        orgos2type = RT_DIALOG;
     149        break;
    150150    case NTRT_FONTDIR:
    151151    case NTRT_FONT:
     
    166166  }
    167167  //resources are in Unicode format by default
    168   isUnicode  = TRUE; 
     168  isUnicode  = TRUE;
    169169}
    170170//******************************************************************************
     
    192192
    193193  if(type == NTRT_STRING) {
    194         memcpy(winresdata, resdata, size-sizeof(WCHAR));
    195         ((USHORT *)winresdata)[size/sizeof(WCHAR)-1] = 0;
    196   }
    197   else  memcpy(winresdata, resdata, size);
     194    memcpy(winresdata, resdata, size-sizeof(WCHAR));
     195    ((USHORT *)winresdata)[size/sizeof(WCHAR)-1] = 0;
     196  }
     197  else  memcpy(winresdata, resdata, size);
    198198
    199199  //resources are in Unicode format by default
    200   isUnicode  = TRUE; 
     200  isUnicode  = TRUE;
    201201}
    202202//******************************************************************************
     
    208208  //returned by DosGetResource, so we don't (and mustn't) free it
    209209  if(os2resdata && (resType == RSRC_PELOADER || resType == RSRC_CUSTOMINDIRECT))
    210         free(os2resdata);
     210    free(os2resdata);
    211211
    212212  if(winresdata)    free(winresdata);
     
    235235
    236236  dprintf(("Win32Resource::lockResource %d\n", id));
     237
    237238  if(winresdata)
    238239    return(winresdata);
     
    290291        winresdata = malloc(ressize+sizeof(WCHAR));
    291292        memcpy(winresdata, resdata, ressize);
    292         *(USHORT *)(&((char *)winresdata)[ressize]) = 0;
     293    *(USHORT *)(&((char *)winresdata)[ressize]) = 0;
    293294        DosFreeResource(resdata);
    294295        return((PVOID)((ULONG)winresdata+2));   //skip length word
     
    303304
    304305  if(winresdata == NULL) {
    305         rc = DosGetResource((HMODULE)module->hinstance, os2type, id, (PPVOID)&resdata);
    306         if(rc) {
    307                 dprintf(("Can't find original resource!!!\n"));
    308                 return(NULL);
    309         }
    310         winresdata = (char *)malloc(ressize);
    311         memcpy(winresdata, resdata, ressize);
     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);
    312313  }
    313314  if(resdata)
    314         DosFreeResource(resdata);
     315        DosFreeResource(resdata);
    315316
    316317  return winresdata;
     
    325326   dprintf(("Win32Resource::lockOS2Resource %d\n", id));
    326327   if(os2resdata == NULL) {
    327         if(resType == RSRC_PELOADER || resType == RSRC_CUSTOMINDIRECT) {
    328                 os2resdata = convertResource(winresdata);
    329         }
    330         else {
    331                 rc = DosGetResource((HMODULE)module->hinstance, orgos2type, id, (PPVOID)&resdata);
    332                 if(rc)  return(NULL);
    333                 os2resdata = resdata;
    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    }
    335336   }
    336337   return os2resdata;
     
    344345    case NTRT_NEWBITMAP:
    345346    case NTRT_BITMAP:
    346         return QueryConvertedBitmapSize((WINBITMAPINFOHEADER *)winresdata, ressize);
     347    return QueryConvertedBitmapSize((WINBITMAPINFOHEADER *)winresdata, ressize);
    347348
    348349    case NTRT_CURSOR:
    349         return QueryConvertedCursorSize((CursorComponent *)winresdata, ressize);
     350    return QueryConvertedCursorSize((CursorComponent *)winresdata, ressize);
    350351
    351352    case NTRT_ICON:
    352         return QueryConvertedIconSize((WINBITMAPINFOHEADER *)winresdata, ressize);
     353    return QueryConvertedIconSize((WINBITMAPINFOHEADER *)winresdata, ressize);
    353354
    354355    case NTRT_GROUP_ICON:
     
    366367    case NTRT_STRING:
    367368    default:
    368         dprintf(("Win32Resource::getOS2Size SHOULDN'T BE CALLED for this resource type (%d) (NOT IMPLEMENTED)!!", type));
    369         break;
     369    dprintf(("Win32Resource::getOS2Size SHOULDN'T BE CALLED for this resource type (%d) (NOT IMPLEMENTED)!!", type));
     370    break;
    370371  }
    371372  return 0;
     
    380381    case NTRT_NEWBITMAP:
    381382    case NTRT_BITMAP:
    382         return ConvertBitmap((WINBITMAPINFOHEADER *)win32res, ressize, &ressize);
     383    return ConvertBitmap((WINBITMAPINFOHEADER *)win32res, ressize, &ressize);
    383384
    384385    case NTRT_CURSOR:
    385         return ConvertCursor((CursorComponent *)win32res, ressize, &cvtressize);
     386    return ConvertCursor((CursorComponent *)win32res, ressize, &cvtressize);
    386387
    387388    case NTRT_GROUP_CURSOR:
    388         return ConvertCursorGroup((CursorHeader *)win32res, ressize, module);
     389    return ConvertCursorGroup((CursorHeader *)win32res, ressize, module);
    389390
    390391    case NTRT_GROUP_ICON:
    391         return ConvertIconGroup((IconHeader *)win32res, ressize, module);
     392    return ConvertIconGroup((IconHeader *)win32res, ressize, module);
    392393
    393394    case NTRT_ICON:
    394         return ConvertIcon((WINBITMAPINFOHEADER *)win32res, ressize, &cvtressize);
     395    return ConvertIcon((WINBITMAPINFOHEADER *)win32res, ressize, &cvtressize);
    395396
    396397    case NTRT_ACCELERATORS:
    397         return ConvertAccelerator((WINACCEL *)win32res, ressize);
     398    return ConvertAccelerator((WINACCEL *)win32res, ressize);
    398399
    399400    case NTRT_NEWMENU:
    400401    case NTRT_MENU:
    401         return ConvertMenu((MenuHeader *)win32res, ressize, isUnicode);
     402    return ConvertMenu((MenuHeader *)win32res, ressize, isUnicode);
    402403
    403404    case NTRT_NEWDIALOG:
    404405    case NTRT_DIALOG:
    405         break;
     406    break;
    406407    case NTRT_FONTDIR:
    407408    case NTRT_FONT:
     
    410411    case NTRT_VERSION:
    411412    case NTRT_STRING:
    412         break;
     413    break;
    413414
    414415    default:
Note: See TracChangeset for help on using the changeset viewer.