Ignore:
Timestamp:
Sep 18, 1999, 7:47:10 PM (26 years ago)
Author:
sandervl
Message:

Changes for LX image resource support

File:
1 edited

Legend:

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

    r956 r978  
    1 /* $Id: winimgres.cpp,v 1.14 1999-09-15 23:38:02 sandervl Exp $ */
     1/* $Id: winimgres.cpp,v 1.15 1999-09-18 17:47:10 sandervl Exp $ */
    22
    33/*
     
    3737//******************************************************************************
    3838PIMAGE_RESOURCE_DATA_ENTRY
    39  Win32PeLdrImage::getPEResourceEntry(ULONG id, ULONG type, ULONG lang)
     39 Win32ImageBase::getPEResourceEntry(ULONG id, ULONG type, ULONG lang)
    4040{
    4141 PIMAGE_RESOURCE_DIRECTORY       prdType;
     
    124124//******************************************************************************
    125125PIMAGE_RESOURCE_DATA_ENTRY
    126     Win32PeLdrImage::ProcessResSubDir(PIMAGE_RESOURCE_DIRECTORY prdType,
    127                                  ULONG *nodeData, int level)
     126    Win32ImageBase::ProcessResSubDir(PIMAGE_RESOURCE_DIRECTORY prdType,
     127                                     ULONG *nodeData, int level)
    128128{
    129129 PIMAGE_RESOURCE_DIRECTORY       prdType2;
     
    201201//******************************************************************************
    202202//******************************************************************************
    203 ULONG Win32PeLdrImage::getPEResourceSize(ULONG id, ULONG type, ULONG lang)
     203ULONG Win32ImageBase::getPEResourceSize(ULONG id, ULONG type, ULONG lang)
    204204{
    205205 PIMAGE_RESOURCE_DATA_ENTRY      pData = NULL;
     
    214214//******************************************************************************
    215215//******************************************************************************
    216 HRSRC Win32PeLdrImage::findResourceA(LPCSTR lpszName, LPSTR lpszType, ULONG lang)
     216HRSRC Win32ImageBase::findResourceA(LPCSTR lpszName, LPSTR lpszType, ULONG lang)
    217217{
    218218 PIMAGE_RESOURCE_DATA_ENTRY      pData = NULL;
     
    263263        return 0;
    264264  }
    265 
    266   char *resdata = (char *)((char *)pResDir + pData->OffsetToData - (pResSection->virtaddr - oh.ImageBase));
     265  //pResourceSectionStart contains the virtual address of the imagebase in the PE header
     266  //for the resource section (images loaded by the pe.exe)
     267  //For LX images, this is 0 as OffsetToData contains a relative offset
     268  char *resdata = (char *)((char *)pResDir + pData->OffsetToData - pResourceSectionStart);
    267269  if(stringid != -1) {//search for string in table
    268270        USHORT *unicodestr = (USHORT *)resdata;
     
    375377}
    376378//******************************************************************************
    377 //TODO:
    378 //******************************************************************************
    379 HRSRC Win32LxImage::findResourceA(LPCSTR lpszName, LPSTR lpszType, ULONG lang)
    380 {
    381     return 0;
    382 }
    383 //******************************************************************************
    384379//******************************************************************************
    385380HRSRC Win32ImageBase::findResourceW(LPWSTR lpszName, LPWSTR lpszType, ULONG lang)
     
    413408}
    414409//******************************************************************************
    415 //TODO:
    416 //******************************************************************************
    417 ULONG Win32LxImage::getResourceSizeA(LPCSTR lpszName, LPSTR lpszType, ULONG lang)
    418 {
    419     DebugInt3();
    420     return 0;
    421 }
    422 //******************************************************************************
    423 //******************************************************************************
    424 ULONG Win32PeLdrImage::getResourceSizeA(LPCSTR lpszName, LPSTR lpszType, ULONG lang)
     410//******************************************************************************
     411ULONG Win32ImageBase::getResourceSizeA(LPCSTR lpszName, LPSTR lpszType, ULONG lang)
    425412{
    426413    return getPEResourceSize((ULONG)lpszName, (ULONG)lpszType, lang);
     
    471458//******************************************************************************
    472459//******************************************************************************
    473 ULONG Win32PeLdrImage::getVersionSize()
     460ULONG Win32ImageBase::getVersionSize()
    474461{
    475462    return getResourceSizeA((LPCSTR)1, (LPSTR)NTRT_VERSION);
     
    477464//******************************************************************************
    478465//******************************************************************************
    479 BOOL Win32PeLdrImage::getVersionStruct(char *verstruct, ULONG bufLength)
     466BOOL Win32ImageBase::getVersionStruct(char *verstruct, ULONG bufLength)
    480467{
    481468 PIMAGE_RESOURCE_DATA_ENTRY      pData = NULL;
     
    490477//******************************************************************************
    491478//******************************************************************************
    492 ULONG Win32LxImage::getVersionSize()
    493 {
    494 //    return getResourceSizeA((LPCSTR)1, (LPSTR)NTRT_VERSION);
    495   return 0;
    496 }
    497 //******************************************************************************
    498 //******************************************************************************
    499 BOOL Win32LxImage::getVersionStruct(char *verstruct, ULONG bufLength)
    500 {
    501  PIMAGE_RESOURCE_DATA_ENTRY      pData = NULL;
    502 
    503 //  pData = getPEResourceEntry(1, NTRT_VERSION);
    504   if(pData == NULL) {
    505         dprintf(("Win32PeLdrImage::getVersionStruct: couldn't find version resource!"));
    506         return 0;
    507   }
    508   return pData->Size;
    509 }
    510 //******************************************************************************
    511 //******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.