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/kernel32/resource.cpp

    r2803 r3625  
    1 /* $Id: resource.cpp,v 1.15 2000-02-16 14:25:45 sandervl Exp $ */
     1/* $Id: resource.cpp,v 1.16 2000-05-28 16:45:12 sandervl Exp $ */
    22
    33/*
     
    1313#include <os2win.h>
    1414#include <unicode.h>
    15 #include "winres.h"
    1615#include <winimagebase.h>
    1716#include <winexebase.h>
     
    7170 *****************************************************************************/
    7271
    73 HRSRC  WIN32API FindResourceExA( HMODULE hModule, LPCSTR lpType,
    74                                     LPCSTR lpName, WORD wLanguage)
     72HRSRC WIN32API FindResourceExA( HMODULE hModule, LPCSTR lpType,
     73                                LPCSTR lpName, WORD wLanguage)
    7574{
    7675 Win32ImageBase *module;
     
    105104 *****************************************************************************/
    106105
    107 HRSRC  WIN32API FindResourceExW(HMODULE hModule,
    108                                 LPCWSTR lpType,
    109                                 LPCWSTR lpName,
    110                                 WORD    wLanguage)
     106HRSRC WIN32API FindResourceExW(HMODULE hModule,
     107                               LPCWSTR lpType,
     108                               LPCWSTR lpName,
     109                               WORD    wLanguage)
    111110{
    112111 Win32ImageBase *module;
     
    117116          return(NULL);
    118117    }
    119 
    120118    return module->findResourceW((LPWSTR)lpName, (LPWSTR)lpType, wLanguage);
    121119}
     
    128126}
    129127//******************************************************************************
     128//hRes == returned by FindResource(Ex) = PIMAGE_RESOURCE_DATA_ENTRY for resource
     129//******************************************************************************
     130HGLOBAL WIN32API LoadResource(HINSTANCE hModule, HRSRC hRes)
     131{
     132  Win32ImageBase *module;
     133
     134  /* @@@PH */
     135  if(HIWORD(hRes) == NULL) {
     136        dprintf(("ERROR: LoadResource %x: invalid hRes %x", hModule, hRes));
     137        return 0;
     138  }
     139
     140  dprintf(("LoadResource %x %X\n", hModule, hRes));
     141  if(hModule == 0 || hModule == -1 || (WinExe && hModule == WinExe->getInstanceHandle())) {
     142        module = (Win32ImageBase *)WinExe;
     143  }
     144  else {
     145        module = (Win32ImageBase *)Win32DllBase::findModule(hModule);
     146  }
     147
     148  return (HGLOBAL)module->getResourceAddr(hRes);
     149}
     150//******************************************************************************
    130151//hRes == returned by FindResource(Ex)
    131152//******************************************************************************
    132 HGLOBAL WIN32API LoadResource(HINSTANCE hModule, HRSRC hRes)
    133 {
    134   Win32Resource *res = (Win32Resource *)hRes;
    135 
    136   dprintf(("LoadResource %x %X\n", hModule, hRes));
    137 
    138   /* @@@PH */
    139   if (HIWORD(res) == NULL) {
    140    dprintf(("LoadResource %x: invalid hRes %x", hModule, hRes));
    141    return 0;
    142   }
    143   else  return (HGLOBAL)res->lockResource();
    144 }
    145 //******************************************************************************
    146 //hRes == returned by FindResource(Ex)
    147 //******************************************************************************
    148153DWORD WIN32API SizeofResource(HINSTANCE hModule, HRSRC hRes)
    149154{
    150  Win32Resource *res = (Win32Resource *)hRes;
    151 
    152     dprintf(("OS2SizeofResource\n"));
    153     if(res == NULL)
    154     return(0);
    155 
    156     return res->getSize();
     155 Win32ImageBase *module;
     156
     157  if(hRes == NULL) {
     158        dprintf(("ERROR: SizeofResource %x: invalid hRes %x", hModule, hRes));
     159        return(0);
     160  }
     161
     162  dprintf(("SizeofResource %x %x", hModule, hRes));
     163
     164  if(hModule == 0 || hModule == -1 || (WinExe && hModule == WinExe->getInstanceHandle())) {
     165        module = (Win32ImageBase *)WinExe;
     166  }
     167  else {
     168        module = (Win32ImageBase *)Win32DllBase::findModule(hModule);
     169  }
     170
     171  return module->getResourceSize(hRes);
    157172}
    158173//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.