1 /***********************************************************************\
2 *                                lmuse.d                                *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.lmuse;
11 version(Windows):
12 pragma(lib, "netapi32");
13 
14 import win32.lmuseflg;
15 private import win32.lmcons, win32.windef;
16 
17 enum {
18 	USE_LOCAL_PARMNUM = 1,
19 	USE_REMOTE_PARMNUM,
20 	USE_PASSWORD_PARMNUM,
21 	USE_ASGTYPE_PARMNUM,
22 	USE_USERNAME_PARMNUM,
23 	USE_DOMAINNAME_PARMNUM
24 }
25 
26 enum {
27 	USE_OK,
28 	USE_PAUSED,
29 	USE_SESSLOST,
30 	USE_DISCONN = USE_SESSLOST,
31 	USE_NETERR,
32 	USE_CONN,
33 	USE_RECONN
34 }
35 
36 const DWORD USE_WILDCARD = -1;
37 
38 enum {
39 	USE_DISKDEV,
40 	USE_SPOOLDEV,
41 	USE_CHARDEV,
42 	USE_IPC
43 }
44 
45 struct USE_INFO_0 {
46 	LPWSTR ui0_local;
47 	LPWSTR ui0_remote;
48 }
49 alias USE_INFO_0* PUSE_INFO_0, LPUSE_INFO_0;
50 
51 struct USE_INFO_1 {
52 	LPWSTR ui1_local;
53 	LPWSTR ui1_remote;
54 	LPWSTR ui1_password;
55 	DWORD ui1_status;
56 	DWORD ui1_asg_type;
57 	DWORD ui1_refcount;
58 	DWORD ui1_usecount;
59 }
60 alias USE_INFO_1* PUSE_INFO_1, LPUSE_INFO_1;
61 
62 struct USE_INFO_2 {
63 	LPWSTR ui2_local;
64 	LPWSTR ui2_remote;
65 	LPWSTR ui2_password;
66 	DWORD ui2_status;
67 	DWORD ui2_asg_type;
68 	DWORD ui2_refcount;
69 	DWORD ui2_usecount;
70 	LPWSTR ui2_username;
71 	LPWSTR ui2_domainname;
72 }
73 alias USE_INFO_2* PUSE_INFO_2, LPUSE_INFO_2;
74 
75 extern (Windows) {
76 	NET_API_STATUS NetUseAdd(LPWSTR, DWORD, PBYTE, PDWORD);
77 	NET_API_STATUS NetUseDel(LPWSTR, LPWSTR, DWORD);
78 	NET_API_STATUS NetUseEnum(LPWSTR, DWORD, PBYTE*, DWORD, PDWORD, PDWORD,
79 	  PDWORD);
80 	NET_API_STATUS NetUseGetInfo(LPWSTR, LPWSTR, DWORD, PBYTE*);
81 }