xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/libdruntime/core/sys/windows/lmmsg.d (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
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  */
9 module core.sys.windows.lmmsg;
10 version (Windows):
11 @system:
12 pragma(lib, "netapi32");
13 
14 import core.sys.windows.lmcons, core.sys.windows.windef, core.sys.windows.w32api;
15 
16 static assert (_WIN32_WINNT >= 0x501,
17     "core.sys.windows.lmmsg is available only if version WindowsXP, Windows2003 "
18     ~ "or WindowsVista is set");
19 
20 enum MSGNAME_NOT_FORWARDED  = 0;
21 enum MSGNAME_FORWARDED_TO   = 4;
22 enum MSGNAME_FORWARDED_FROM = 16;
23 
24 struct MSG_INFO_0 {
25     LPWSTR msgi0_name;
26 }
27 alias MSG_INFO_0* PMSG_INFO_0, LPMSG_INFO_0;
28 
29 struct MSG_INFO_1 {
30     LPWSTR msgi1_name;
31     DWORD msgi1_forward_flag;
32     LPWSTR msgi1_forward;
33 }
34 alias MSG_INFO_1* PMSG_INFO_1, LPMSG_INFO_1;
35 
36 extern (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