Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #define _DELAY_IMP_VER 2
      7 
      8 #if defined(__cplusplus)
      9 #define ExternC extern "C"
     10 #else
     11 #define ExternC extern
     12 #endif
     13 
     14 typedef IMAGE_THUNK_DATA *PImgThunkData;
     15 typedef const IMAGE_THUNK_DATA *PCImgThunkData;
     16 typedef DWORD RVA;
     17 
     18 typedef struct ImgDelayDescr {
     19   DWORD grAttrs;
     20   RVA rvaDLLName;
     21   RVA rvaHmod;
     22   RVA rvaIAT;
     23   RVA rvaINT;
     24   RVA rvaBoundIAT;
     25   RVA rvaUnloadIAT;
     26   DWORD dwTimeStamp;
     27 } ImgDelayDescr,*PImgDelayDescr;
     28 
     29 typedef const ImgDelayDescr *PCImgDelayDescr;
     30 
     31 enum DLAttr {
     32   dlattrRva = 0x1
     33 };
     34 
     35 enum {
     36   dliStartProcessing,dliNoteStartProcessing = dliStartProcessing,dliNotePreLoadLibrary,dliNotePreGetProcAddress,dliFailLoadLib,
     37   dliFailGetProc,dliNoteEndProcessing
     38 };
     39 
     40 typedef struct DelayLoadProc {
     41   WINBOOL fImportByName;
     42   __C89_NAMELESS union {
     43     LPCSTR szProcName;
     44     DWORD dwOrdinal;
     45   };
     46 } DelayLoadProc;
     47 
     48 typedef struct DelayLoadInfo {
     49   DWORD cb;
     50   PCImgDelayDescr pidd;
     51   FARPROC *ppfn;
     52   LPCSTR szDll;
     53   DelayLoadProc dlp;
     54   HMODULE hmodCur;
     55   FARPROC pfnCur;
     56   DWORD dwLastError;
     57 } DelayLoadInfo,*PDelayLoadInfo;
     58 
     59 typedef FARPROC (WINAPI *PfnDliHook)(unsigned dliNotify,PDelayLoadInfo pdli);
     60 
     61 ExternC WINBOOL WINAPI __FUnloadDelayLoadedDLL2(LPCSTR szDll);
     62 ExternC HRESULT WINAPI __HrLoadAllImportsForDll(LPCSTR szDll);
     63 
     64 #define FACILITY_VISUALCPP ((LONG)0x6d)
     65 #define VcppException(sev,err) ((sev) | (FACILITY_VISUALCPP<<16) | err)
     66 
     67 ExternC PfnDliHook __pfnDliNotifyHook2;
     68 ExternC PfnDliHook __pfnDliFailureHook2;
     69