Ignore:
Timestamp:
Apr 16, 2000, 12:42:13 PM (25 years ago)
Author:
sandervl
Message:

put back dll search method + loadlibraryex fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/winimagebase.h

    r3398 r3404  
    1 /* $Id: winimagebase.h,v 1.5 2000-04-16 04:27:38 bird Exp $ */
     1/* $Id: winimagebase.h,v 1.6 2000-04-16 10:42:12 sandervl Exp $ */
    22
    33/*
    44 * Win32 PE Image base class
    55 *
    6  * Copyright 1998-2000 Sander van Leeuwen (sandervl@xs4all.nl)
     6 * Copyright 1998-1999 Sander van Leeuwen (sandervl@xs4all.nl)
    77 *
    88 *
     
    6565        char *getFullPath()           { return fullpath; };
    6666
    67     char *getModuleName()         { return szModule; };
     67        char *getModuleName()         { return szModule; };
    6868
    6969virtual HRSRC findResourceA(LPCSTR lpszName, LPSTR lpszType, ULONG lang = LANG_GETFIRST);
     
    7373virtual BOOL  enumResourceNamesA(HMODULE hmod, LPCTSTR  lpszType, ENUMRESNAMEPROCA lpEnumFunc, LONG lParam);
    7474virtual BOOL  enumResourceNamesW(HMODULE hmod, LPCWSTR  lpszType, ENUMRESNAMEPROCW lpEnumFunc, LONG lParam);
    75 virtual BOOL  enumResourceTypesA(HMODULE hmod, ENUMRESTYPEPROCA lpEnumFunc,
     75virtual BOOL  enumResourceTypesA(HMODULE hmod, ENUMRESTYPEPROCA lpEnumFunc, 
    7676                                 LONG lParam);
    77 virtual BOOL  enumResourceTypesW(HMODULE hmod, ENUMRESTYPEPROCW lpEnumFunc,
     77virtual BOOL  enumResourceTypesW(HMODULE hmod, ENUMRESTYPEPROCW lpEnumFunc, 
    7878                                 LONG lParam);
    7979
     
    8585                      int cchFullName, const char *pszAltPath = NULL);
    8686
    87     void  setEntryPoint(ULONG startAddress) { entryPoint = startAddress; };
     87        void  setEntryPoint(ULONG startAddress) { entryPoint = startAddress; };
    8888
    89         void  setTLSAddress(LPVOID dwTlsAddress)        { tlsAddress = dwTlsAddress; };
    90         void  setTLSIndexAddr(LPDWORD dwTlsIndexAddr)   { tlsIndexAddr = dwTlsIndexAddr; };
    91         void  setTLSInitSize(ULONG dwTlsSize)       { tlsInitSize = dwTlsSize; };
    92         void  setTLSTotalSize(ULONG dwTlsSize)      { tlsTotalSize = dwTlsSize; };
     89        void  setTLSAddress(LPVOID dwTlsAddress)        { tlsAddress = dwTlsAddress; };
     90        void  setTLSIndexAddr(LPDWORD dwTlsIndexAddr)   { tlsIndexAddr = dwTlsIndexAddr; };
     91        void  setTLSInitSize(ULONG dwTlsSize)           { tlsInitSize = dwTlsSize; };
     92        void  setTLSTotalSize(ULONG dwTlsSize)          { tlsTotalSize = dwTlsSize; };
    9393        void  setTLSCallBackAddr(PIMAGE_TLS_CALLBACK *dwTlsCallBackAddr)
    94     {
    95        tlsCallBackAddr = dwTlsCallBackAddr;
    96     };
     94        {
     95           tlsCallBackAddr = dwTlsCallBackAddr;
     96        };
    9797
    98     void  tlsAttachThread();    //setup TLS structures for new thread
    99     void  tlsDetachThread();    //destroy TLS structures
     98        void  tlsAttachThread();        //setup TLS structures for new thread
     99        void  tlsDetachThread();        //destroy TLS structures
    100100
    101 virtual ULONG    getApi(char *name)  = 0;
    102 virtual ULONG     getApi(int ordinal) = 0;
     101virtual ULONG getApi(char *name)  = 0;
     102virtual ULONG getApi(int ordinal) = 0;
    103103
    104104virtual BOOL  isDll() = 0;
     
    106106static Win32ImageBase * findModule(HMODULE hModule);
    107107
    108     //Add image to dependency list of this image
    109     void  addDependency(Win32DllBase *dll);
     108        //Add image to dependency list of this image
     109        void  addDependency(Win32DllBase *dll);
    110110        BOOL  dependsOn(Win32DllBase *dll);
    111111
    112112protected:
    113     void tlsAlloc();        //Allocate TLS index for this module
    114     void tlsDelete();       //Destroy TLS index for this module
     113        void tlsAlloc();                //Allocate TLS index for this module
     114        void tlsDelete();               //Destroy TLS index for this module
    115115
    116116        Win32Resource        *winres;
     
    119119
    120120        char                 *fullpath;
    121     char              szModule[CCHMAXPATH];
    122     char                  szFileName[CCHMAXPATH];
     121        char                  szModule[CCHMAXPATH];
     122        char                  szFileName[CCHMAXPATH];
    123123
    124124        HINSTANCE             hinstance;
    125125
    126     LPVOID                tlsAddress;       //address of TLS data
    127     LPDWORD           tlsIndexAddr;     //address of DWORD that receives the TLS index
    128     ULONG             tlsInitSize;      //size of initialized TLS memory block
    129     ULONG             tlsTotalSize;     //size of TLS memory block
    130     PIMAGE_TLS_CALLBACK  *tlsCallBackAddr;  //ptr to TLS callback array
    131     ULONG                 tlsIndex;     //module TLS index
     126        LPVOID                tlsAddress;               //address of TLS data
     127        LPDWORD               tlsIndexAddr;             //address of DWORD that receives the TLS index
     128        ULONG                 tlsInitSize;              //size of initialized TLS memory block
     129        ULONG                 tlsTotalSize;             //size of TLS memory block
     130        PIMAGE_TLS_CALLBACK  *tlsCallBackAddr;  //ptr to TLS callback array
     131        ULONG                 tlsIndex;         //module TLS index
    132132
    133133        ULONG getPEResourceSize(ULONG id, ULONG type, ULONG lang = LANG_GETFIRST);
     
    144144        ULONG                     ulRVAResourceSection;
    145145
    146     //linked list of dlls loaded on behalf of this executable image (dll or exe)
    147         Queue                  loadedDlls;
     146        //linked list of dlls loaded on behalf of this executable image (dll or exe)
     147        Queue                      loadedDlls;
    148148private:
    149149
     
    162162} WINIMAGE_LOOKUP;
    163163
    164 #define WINIMAGE_LOOKUPADDR(a)  (WINIMAGE_LOOKUP *)((ULONG)a + PAGE_SIZE - sizeof(WINIMAGE_LOOKUP))
     164#define WINIMAGE_LOOKUPADDR(a)  (WINIMAGE_LOOKUP *)((ULONG)a + PAGE_SIZE - sizeof(WINIMAGE_LOOKUP))
    165165
    166166#endif //__WINIMAGEBASE_H__
Note: See TracChangeset for help on using the changeset viewer.