| 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; |