xref: /reactos/sdk/include/psdk/delayloadhandler.h (revision c2c66aff)
1 /*
2  * Copyright 2013 André Hentschel
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef __WINE_DELAYLOADHANDLER_H
20 #define __WINE_DELAYLOADHANDLER_H
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #define DELAYLOAD_GPA_FAILURE 4
27 
28 typedef struct _DELAYLOAD_PROC_DESCRIPTOR
29 {
30     ULONG ImportDescribedByName;
31     union {
32         LPCSTR Name;
33         ULONG Ordinal;
34     } Description;
35 } DELAYLOAD_PROC_DESCRIPTOR, *PDELAYLOAD_PROC_DESCRIPTOR;
36 
37 typedef struct _DELAYLOAD_INFO
38 {
39     ULONG Size;
40     PCIMAGE_DELAYLOAD_DESCRIPTOR DelayloadDescriptor;
41     PIMAGE_THUNK_DATA ThunkAddress;
42     LPCSTR TargetDllName;
43     DELAYLOAD_PROC_DESCRIPTOR TargetApiDescriptor;
44     PVOID TargetModuleBase;
45     PVOID Unused;
46     ULONG LastError;
47 } DELAYLOAD_INFO, *PDELAYLOAD_INFO;
48 
49 typedef PVOID (WINAPI *PDELAYLOAD_FAILURE_DLL_CALLBACK)(ULONG, PDELAYLOAD_INFO);
50 
51 #ifdef __cplusplus
52 }
53 #endif
54 
55 #endif  /* __WINE_DELAYLOADHANDLER_H */
56