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 */
10module core.sys.windows.dhcpcsdk;
11version (Windows):
12@system:
13
14import 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
18or WindowsVista is set");*/
19
20//#if (_WIN32_WINNT >= 0x500)
21
22// FIXME: check type
23enum DHCPCAPI_REGISTER_HANDLE_EVENT = 1;
24enum DHCPCAPI_REQUEST_PERSISTENT    = 1;
25enum DHCPCAPI_REQUEST_SYNCHRONOUS   = 2;
26
27struct DHCPCAPI_CLASSID {
28    ULONG  Flags;
29    LPBYTE Data;
30    ULONG  nBytesData;
31}
32alias DHCPCAPI_CLASSID* PDHCPCAPI_CLASSID, LPDHCPCAPI_CLASSID;
33
34struct DHCPAPI_PARAMS {
35    ULONG  Flags;
36    ULONG  OptionId;
37    BOOL   IsVendor;
38    LPBYTE Data;
39    DWORD  nBytesData;
40}
41alias DHCPAPI_PARAMS* PDHCPAPI_PARAMS, LPDHCPAPI_PARAMS;
42
43struct DHCPCAPI_PARAMS_ARRAY {
44    ULONG            nParams;
45    LPDHCPAPI_PARAMS Params;
46}
47alias DHCPCAPI_PARAMS_ARRAY* PDHCPCAPI_PARAMS_ARRAY, LPDHCPCAPI_PARAMS_ARRAY;
48
49extern (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