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