Ignore:
Timestamp:
May 28, 2000, 6:45:14 PM (25 years ago)
Author:
sandervl
Message:

resource handling changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/loadres.cpp

    r3482 r3625  
    1 /* $Id: loadres.cpp,v 1.28 2000-05-02 20:50:48 sandervl Exp $ */
     1/* $Id: loadres.cpp,v 1.29 2000-05-28 16:43:45 sandervl Exp $ */
    22
    33/*
     
    2020#include <os2win.h>
    2121#include <user32.h>
    22 #include <winres.h>
    2322#include <heapstring.h>
    2423#include <oslibres.h>
     
    2726#include "initterm.h"
    2827#include <win\cursoricon.h>
     28#include <winres.h>
    2929
    3030#define DBG_LOCALLOG    DBG_loadres
     
    6060int WIN32API LoadStringW(HINSTANCE hinst, UINT wID, LPWSTR lpBuffer, int cchBuffer)
    6161{
    62  Win32Resource *winres;
    6362 WCHAR *p;
    6463 int string_num;
    6564 int i = 0;
     65 HRSRC hRes;
    6666
    6767    /* Use bits 4 - 19 (incremented by 1) as resourceid, mask out
    6868     * 20 - 31. */
    69     winres = (Win32Resource *)FindResourceW(hinst, (LPWSTR)(((wID>>4)&0xffff)+1), RT_STRINGW);
    70     if(winres == NULL) {
     69    hRes = FindResourceW(hinst, (LPWSTR)(((wID>>4)&0xffff)+1), RT_STRINGW);
     70    if(hRes == NULL) {
    7171        dprintf(("LoadStringW NOT FOUND from %X, id %d buffersize %d\n", hinst, wID, cchBuffer));
    7272        *lpBuffer = 0;
     
    7474    }
    7575
    76     p = (LPWSTR)winres->lockResource();
     76    p = (LPWSTR)LockResource(LoadResource(hinst, hRes));
    7777    if(p) {
    7878        string_num = wID & 0x000f;
     
    9393        }
    9494    }
    95     delete winres;
    9695
    9796#ifdef DEBUG_ENABLELOG_LEVEL2
     
    111110                DWORD cyDesired, DWORD fuLoad)
    112111{
    113  Win32Resource *winres;
    114112 HICON          hIcon;
    115113 HANDLE         hMapping = 0;
    116114 char          *ptr = NULL;
     115 HRSRC          hRes;
     116 LPSTR          restype = RT_ICONA;
    117117
    118118    if(fuLoad & LR_LOADFROMFILE)
     
    128128        if(!hinst)
    129129        {
    130                 winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszIcon,RT_ICONA);
    131                 if(!winres)
    132                         winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszIcon,RT_GROUP_ICONA);
    133                 if(winres)
     130                hRes = FindResourceA(hInstanceUser32,lpszIcon,RT_ICONA);
     131                if(!hRes)  {
     132                        hRes = FindResourceA(hInstanceUser32,lpszIcon,RT_GROUP_ICONA);
     133                        restype = RT_GROUP_ICONA;
     134                }
     135                if(hRes)
    134136                {
    135                         hIcon = OSLibWinCreateIcon(winres->lockOS2Resource());
    136                         delete winres;
     137                        hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hInstanceUser32, restype, hRes));
    137138                }
    138                 else hIcon = OSLibWinQuerySysIcon((ULONG)lpszIcon,GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON));
     139                else    hIcon = OSLibWinQuerySysIcon((ULONG)lpszIcon,GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON));
    139140        }
    140141        else
    141142        { //not a system icon
    142                 winres = (Win32Resource *)FindResourceA(hinst, lpszIcon, RT_ICONA);
    143                 if(winres == 0) {
    144                         winres = (Win32Resource *)FindResourceA(hinst, lpszIcon, RT_GROUP_ICONA);
    145                 }
    146                 if(winres) {
    147                         hIcon = OSLibWinCreateIcon(winres->lockOS2Resource());
    148                         delete winres;
     143                hRes = FindResourceA(hinst,lpszIcon,RT_ICONA);
     144                if(!hRes) {
     145                        hRes = FindResourceA(hinst,lpszIcon,RT_GROUP_ICONA);
     146                        restype = RT_GROUP_ICONA;
     147                }
     148                if(hRes) {
     149                        hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hinst, restype, hRes));
    149150                }
    150151                else    hIcon = 0;
     
    160161                DWORD cyDesired, DWORD fuLoad)
    161162{
    162  Win32Resource *winres;
    163163 HICON          hIcon;
    164164 HANDLE         hMapping = 0;
    165165 char          *ptr = NULL;
     166 HRSRC          hRes;
     167 LPSTR          restype = RT_ICONA;
    166168
    167169    if(fuLoad & LR_LOADFROMFILE)
     
    177179        if (!hinst)
    178180        {
    179                 winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszIcon,RT_ICONW);
    180                 if(!winres)
    181                         winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszIcon,RT_GROUP_ICONW);
    182                 if(winres)
     181                hRes = FindResourceW(hInstanceUser32,lpszIcon,RT_ICONW);
     182                if(!hRes)  {
     183                        hRes = FindResourceW(hInstanceUser32,lpszIcon,RT_GROUP_ICONW);
     184                        restype = RT_GROUP_ICONA;
     185                }
     186                if(hRes)
    183187                {
    184                         hIcon = OSLibWinCreateIcon(winres->lockOS2Resource());
    185                         delete winres;
     188                        hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hInstanceUser32, restype, hRes));
    186189                }
    187                 else    hIcon = OSLibWinQuerySysIcon((ULONG)lpszIcon,GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON));
     190                else    hIcon = OSLibWinQuerySysIcon((ULONG)lpszIcon,GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON));
    188191        }
    189192        else
    190193        {//not a system icon
    191                 winres = (Win32Resource *)FindResourceW(hinst, lpszIcon, RT_ICONW);
    192                 if(winres == 0) {
    193                         winres = (Win32Resource *)FindResourceW(hinst, lpszIcon, RT_GROUP_ICONW);
    194                 }
    195                 if(winres) {
    196                         hIcon = OSLibWinCreateIcon(winres->lockOS2Resource());
    197                         delete winres;
     194                hRes = FindResourceW(hinst,lpszIcon,RT_ICONW);
     195                if(!hRes) {
     196                        hRes = FindResourceW(hinst,lpszIcon,RT_GROUP_ICONW);
     197                        restype = RT_GROUP_ICONA;
     198                }
     199                if(hRes) {
     200                        hIcon = OSLibWinCreateIcon(ConvertResourceToOS2(hinst, restype, hRes));
    198201                }
    199                 else    hIcon = 0;
     202                else    hIcon = 0;
    200203        }
    201204    }
     
    221224                    DWORD cyDesired, DWORD fuLoad)
    222225{
    223  Win32Resource *winres;
    224226 HCURSOR        hCursor;
    225227 HANDLE         hMapping = 0;
    226228 char          *ptr = NULL;
     229 HRSRC          hRes;
     230 LPSTR          restype = RT_CURSORA;
    227231
    228232    if(fuLoad & LR_LOADFROMFILE)
     
    236240    else
    237241    {
    238         if (!hinst)
     242        if(!hinst)
    239243        {
    240                 winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszCursor,RT_CURSORA);
    241                 if(!winres)
    242                         winres = (Win32Resource*)FindResourceA(hInstanceUser32,lpszCursor,RT_GROUP_CURSORA);
    243                 if(winres)
     244                hRes = FindResourceA(hInstanceUser32,lpszCursor,RT_CURSORA);
     245                if(!hRes)  {
     246                        hRes = FindResourceA(hInstanceUser32,lpszCursor,RT_GROUP_CURSORA);
     247                        restype = RT_GROUP_CURSORA;
     248                }
     249                if(hRes)
    244250                {
    245                         hCursor = OSLibWinCreatePointer(winres->lockOS2Resource());
    246                         delete winres;
     251                        hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hInstanceUser32, restype, hRes));
    247252                }
    248253                else    hCursor = OSLibWinQuerySysPointer((ULONG)lpszCursor,GetSystemMetrics(SM_CXCURSOR),GetSystemMetrics(SM_CYCURSOR));
    249         }
    250         else
    251         {//not a system pointer
    252                 winres = (Win32Resource *)FindResourceA(hinst, lpszCursor, RT_CURSORA);
    253                 if(winres == 0) {
    254                         winres = (Win32Resource *)FindResourceA(hinst, lpszCursor, RT_GROUP_CURSORA);
    255                 }
    256                 if(winres) {
    257                         hCursor = OSLibWinCreatePointer(winres->lockOS2Resource());
    258                         delete winres;
     254        }
     255        else
     256        { //not a system icon
     257                hRes = FindResourceA(hinst,lpszCursor,RT_CURSORA);
     258                if(!hRes) {
     259                        hRes = FindResourceA(hinst,lpszCursor,RT_GROUP_CURSORA);
     260                        restype = RT_GROUP_CURSORA;
     261                }
     262                if(hRes) {
     263                        hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hinst, restype, hRes));
    259264                }
    260265                else    hCursor = 0;
    261         }
     266        }
    262267    }
    263268    if(HIWORD(lpszCursor)) {
     
    273278                    DWORD cyDesired, DWORD fuLoad)
    274279{
    275  Win32Resource *winres;
    276280 HCURSOR        hCursor;
    277281 HANDLE         hMapping = 0;
    278282 char          *ptr = NULL;
     283 HRSRC          hRes;
     284 LPSTR          restype = RT_CURSORA;
    279285
    280286    if(fuLoad & LR_LOADFROMFILE)
     
    290296        if(!hinst)
    291297        {
    292                 winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszCursor,RT_CURSORW);
    293                 if(!winres)
    294                         winres = (Win32Resource*)FindResourceW(hInstanceUser32,lpszCursor,RT_GROUP_CURSORW);
    295                 if(winres)
     298                hRes = FindResourceW(hInstanceUser32,lpszCursor,RT_CURSORW);
     299                if(!hRes)  {
     300                        hRes = FindResourceW(hInstanceUser32,lpszCursor,RT_GROUP_CURSORW);
     301                        restype = RT_GROUP_CURSORA;
     302                }
     303                if(hRes)
    296304                {
    297                         hCursor = OSLibWinCreatePointer(winres->lockOS2Resource());
    298                         delete winres;
     305                        hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hInstanceUser32, restype, hRes));
    299306                }
    300307                else    hCursor = OSLibWinQuerySysPointer((ULONG)lpszCursor,GetSystemMetrics(SM_CXCURSOR),GetSystemMetrics(SM_CYCURSOR));
    301             }
    302             else
    303             {//not a system pointer
    304                 winres = (Win32Resource *)FindResourceW(hinst, lpszCursor, RT_CURSORW);
    305                 if(winres == 0) {
    306                         winres = (Win32Resource *)FindResourceW(hinst, lpszCursor, RT_GROUP_CURSORW);
    307                 }
    308                 if(winres) {
    309                         hCursor = OSLibWinCreatePointer(winres->lockOS2Resource());
    310                         delete winres;
     308        }
     309        else
     310        { //not a system icon
     311                hRes = FindResourceW(hinst,lpszCursor,RT_CURSORW);
     312                if(!hRes) {
     313                        hRes = FindResourceW(hinst,lpszCursor,RT_GROUP_CURSORW);
     314                        restype = RT_GROUP_CURSORA;
     315                }
     316                if(hRes) {
     317                        hCursor = OSLibWinCreatePointer(ConvertResourceToOS2(hinst, restype, hRes));
    311318                }
    312319                else    hCursor = 0;
    313             }
     320        }
    314321    }
    315322    dprintf(("LoadCursorW (%X) returned %x\n", hinst, hCursor));
     
    498505        hBitmap = LoadBitmapA(hinst, lpszBitmap, 0, 0, 0);
    499506
    500   dprintf(("LoadBitmapA returned %08xh\n", hBitmap));
     507  if(HIWORD(lpszBitmap)) {
     508        dprintf(("LoadBitmapA %x %s returned %08xh\n", hinst, lpszBitmap, hBitmap));
     509  }
     510  else  dprintf(("LoadBitmapA %x %x returned %08xh\n", hinst, lpszBitmap, hBitmap));
    501511
    502512  return(hBitmap);
     
    517527    FreeAsciiString((LPSTR)lpszBitmap);
    518528
    519   dprintf(("LoadBitmapW returned %08xh\n", hBitmap));
     529  if(HIWORD(lpszBitmap)) {
     530        dprintf(("LoadBitmapW %x %s returned %08xh\n", hinst, lpszBitmap, hBitmap));
     531  }
     532  else  dprintf(("LoadBitmapW %x %x returned %08xh\n", hinst, lpszBitmap, hBitmap));
    520533
    521534  return(hBitmap);
Note: See TracChangeset for help on using the changeset viewer.