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 core/sys/windows/_dhcpcsdk.d)
9  */
10 module core.sys.windows.dhcpcsdk;
11 version (Windows):
12 
13 import core.sys.windows.w32api, core.sys.windows.windef;
14 
15 /*static assert (_WIN32_WINNT >= 0x500,
16 "core.sys.windows.dhcpcsdk is available only if version Windows2000, WindowsXP, Windows2003
17 or WindowsVista is set");*/
18 
19 //#if (_WIN32_WINNT >= 0x500)
20 
21 // FIXME: check type
22 enum DHCPCAPI_REGISTER_HANDLE_EVENT = 1;
23 enum DHCPCAPI_REQUEST_PERSISTENT    = 1;
24 enum DHCPCAPI_REQUEST_SYNCHRONOUS   = 2;
25 
26 struct DHCPCAPI_CLASSID {
27     ULONG  Flags;
28     LPBYTE Data;
29     ULONG  nBytesData;
30 }
31 alias DHCPCAPI_CLASSID* PDHCPCAPI_CLASSID, LPDHCPCAPI_CLASSID;
32 
33 struct DHCPAPI_PARAMS {
34     ULONG  Flags;
35     ULONG  OptionId;
36     BOOL   IsVendor;
37     LPBYTE Data;
38     DWORD  nBytesData;
39 }
40 alias DHCPAPI_PARAMS* PDHCPAPI_PARAMS, LPDHCPAPI_PARAMS;
41 
42 struct DHCPCAPI_PARAMS_ARRAY {
43     ULONG            nParams;
44     LPDHCPAPI_PARAMS Params;
45 }
46 alias DHCPCAPI_PARAMS_ARRAY* PDHCPCAPI_PARAMS_ARRAY, LPDHCPCAPI_PARAMS_ARRAY;
47 
48 extern (Windows) {
49     void DhcpCApiCleanup();
50     DWORD DhcpCApiInitialize(LPDWORD);
51     DWORD DhcpDeRegisterParamChange(DWORD, LPVOID, LPVOID);
52     DWORD DhcpRegisterParamChange(DWORD, LPVOID, PWSTR, LPDHCPCAPI_CLASSID,
53       DHCPCAPI_PARAMS_ARRAY, LPVOID);
54     DWORD DhcpRemoveDNSRegistrations();
55     DWORD DhcpUndoRequestParams(DWORD, LPVOID, LPWSTR, LPWSTR);
56 }
57 
58 //#endif // (_WIN32_WINNT >= 0x500)