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/_lmuse.d)
8  */
9 /// Automatically imported and edited from the druntime module
10 /// core.sys.windows.lmuse for the auto-generated win32 package.
11 module win32.lmuse;
12 //version (Windows):
13 @system:
14 version (Win32_UseLib) pragma(lib, "netapi32");
15 
16 import win32.lmuseflg;
17 import win32.lmcons, win32.windef;
18 
19 enum {
20     USE_LOCAL_PARMNUM = 1,
21     USE_REMOTE_PARMNUM,
22     USE_PASSWORD_PARMNUM,
23     USE_ASGTYPE_PARMNUM,
24     USE_USERNAME_PARMNUM,
25     USE_DOMAINNAME_PARMNUM
26 }
27 
28 enum {
29     USE_OK,
30     USE_PAUSED,
31     USE_SESSLOST,
32     USE_DISCONN = USE_SESSLOST,
33     USE_NETERR,
34     USE_CONN,
35     USE_RECONN
36 }
37 
38 enum DWORD USE_WILDCARD = -1;
39 
40 enum {
41     USE_DISKDEV,
42     USE_SPOOLDEV,
43     USE_CHARDEV,
44     USE_IPC
45 }
46 
47 struct USE_INFO_0 {
48     LPWSTR ui0_local;
49     LPWSTR ui0_remote;
50 }
51 alias USE_INFO_0* PUSE_INFO_0, LPUSE_INFO_0;
52 
53 struct USE_INFO_1 {
54     LPWSTR ui1_local;
55     LPWSTR ui1_remote;
56     LPWSTR ui1_password;
57     DWORD ui1_status;
58     DWORD ui1_asg_type;
59     DWORD ui1_refcount;
60     DWORD ui1_usecount;
61 }
62 alias USE_INFO_1* PUSE_INFO_1, LPUSE_INFO_1;
63 
64 struct USE_INFO_2 {
65     LPWSTR ui2_local;
66     LPWSTR ui2_remote;
67     LPWSTR ui2_password;
68     DWORD ui2_status;
69     DWORD ui2_asg_type;
70     DWORD ui2_refcount;
71     DWORD ui2_usecount;
72     LPWSTR ui2_username;
73     LPWSTR ui2_domainname;
74 }
75 alias USE_INFO_2* PUSE_INFO_2, LPUSE_INFO_2;
76 
77 extern (Windows) {
78     NET_API_STATUS NetUseAdd(LPWSTR, DWORD, PBYTE, PDWORD);
79     NET_API_STATUS NetUseDel(LPWSTR, LPWSTR, DWORD);
80     NET_API_STATUS NetUseEnum(LPWSTR, DWORD, PBYTE*, DWORD, PDWORD, PDWORD,
81       PDWORD);
82     NET_API_STATUS NetUseGetInfo(LPWSTR, LPWSTR, DWORD, PBYTE*);
83 }