1/**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC core/sys/windows/_lmmsg.d)
8 */
9module core.sys.windows.lmmsg;
10version (Windows):
11@system:
12pragma(lib, "netapi32");
13
14import core.sys.windows.lmcons, core.sys.windows.windef, core.sys.windows.w32api;
15
16static assert (_WIN32_WINNT >= 0x501,
17    "core.sys.windows.lmmsg is available only if version WindowsXP, Windows2003 "
18    ~ "or WindowsVista is set");
19
20enum MSGNAME_NOT_FORWARDED  = 0;
21enum MSGNAME_FORWARDED_TO   = 4;
22enum MSGNAME_FORWARDED_FROM = 16;
23
24struct MSG_INFO_0 {
25    LPWSTR msgi0_name;
26}
27alias MSG_INFO_0* PMSG_INFO_0, LPMSG_INFO_0;
28
29struct MSG_INFO_1 {
30    LPWSTR msgi1_name;
31    DWORD msgi1_forward_flag;
32    LPWSTR msgi1_forward;
33}
34alias MSG_INFO_1* PMSG_INFO_1, LPMSG_INFO_1;
35
36extern (Windows) {
37    NET_API_STATUS NetMessageBufferSend(LPCWSTR, LPCWSTR, LPCWSTR, PBYTE,
38      DWORD);
39    NET_API_STATUS NetMessageNameAdd(LPCWSTR, LPCWSTR);
40    NET_API_STATUS NetMessageNameDel(LPCWSTR, LPCWSTR);
41    NET_API_STATUS NetMessageNameEnum(LPCWSTR, DWORD, PBYTE*, DWORD, PDWORD,
42      PDWORD, PDWORD);
43    NET_API_STATUS NetMessageNameGetInfo(LPCWSTR, LPCWSTR, DWORD, PBYTE*);
44}
45