1 /***********************************************************************\
2 *                               dhcpcsdk.d                              *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                           by Stewart Gordon                           *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.dhcpcsdk;
12 version(Windows):
13 
14 private import win32.w32api, win32.windef;
15 
16 static assert (_WIN32_WINNT >= 0x500,
17 "win32.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 const DHCPCAPI_REGISTER_HANDLE_EVENT = 1;
24 const DHCPCAPI_REQUEST_PERSISTENT    = 1;
25 const 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)