1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * Authors: Stewart Gordon
7  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8  * Source: $(DRUNTIMESRC src/core/sys/windows/_dhcpcsdk.d)
9  */
10 module core.sys.windows.dhcpcsdk;
11 version (Windows):
12 @system:
13 
14 import core.sys.windows.w32api, core.sys.windows.windef;
15 
16 /*static assert (_WIN32_WINNT >= 0x500,
17 "core.sys.windows.dhcpcsdk is available only if version Windows2000, WindowsXP, Windows2003
18 or WindowsVista is set");*/
19 
20 //#if (_WIN32_WINNT >= 0x500)
21 
22 // FIXME: check type
23 enum DHCPCAPI_REGISTER_HANDLE_EVENT = 1;
24 enum DHCPCAPI_REQUEST_PERSISTENT    = 1;
25 enum DHCPCAPI_REQUEST_SYNCHRONOUS   = 2;
26 
27 struct DHCPCAPI_CLASSID {
28     ULONG  Flags;
29     LPBYTE Data;
30     ULONG  nBytesData;
31 }
32 alias DHCPCAPI_CLASSID* PDHCPCAPI_CLASSID, LPDHCPCAPI_CLASSID;
33 
34 struct DHCPAPI_PARAMS {
35     ULONG  Flags;
36     ULONG  OptionId;
37     BOOL   IsVendor;
38     LPBYTE Data;
39     DWORD  nBytesData;
40 }
41 alias DHCPAPI_PARAMS* PDHCPAPI_PARAMS, LPDHCPAPI_PARAMS;
42 
43 struct DHCPCAPI_PARAMS_ARRAY {
44     ULONG            nParams;
45     LPDHCPAPI_PARAMS Params;
46 }
47 alias DHCPCAPI_PARAMS_ARRAY* PDHCPCAPI_PARAMS_ARRAY, LPDHCPCAPI_PARAMS_ARRAY;
48 
49 extern (Windows) {
50     void DhcpCApiCleanup();
51     DWORD DhcpCApiInitialize(LPDWORD);
52     DWORD DhcpDeRegisterParamChange(DWORD, LPVOID, LPVOID);
53     DWORD DhcpRegisterParamChange(DWORD, LPVOID, PWSTR, LPDHCPCAPI_CLASSID,
54       DHCPCAPI_PARAMS_ARRAY, LPVOID);
55     DWORD DhcpRemoveDNSRegistrations();
56     DWORD DhcpUndoRequestParams(DWORD, LPVOID, LPWSTR, LPWSTR);
57 }
58 
59 //#endif // (_WIN32_WINNT >= 0x500)
60