root/trunk/win32/lmshare.d

Revision 155, 5.9 kB (checked in by Don Clugston, 6 years ago)

Committed on behalf of Stewart.

Line 
1 /***********************************************************************\
2 *                               lmshare.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.lmshare;
11
12 import win32.lmcons;
13 private import win32.w32api, win32.windef;
14
15 static if (_WIN32_WINNT_ONLY) {
16     pragma(lib, "netapi.lib");
17 }
18 /* else {
19 // only for WinME, 98, 95.
20     pragma(lib, "svrapi.lib")
21 }
22 */
23
24 const SHARE_NETNAME_PARMNUM      = 1;
25 const SHARE_TYPE_PARMNUM         = 3;
26 const SHARE_REMARK_PARMNUM       = 4;
27 const SHARE_PERMISSIONS_PARMNUM  = 5;
28 const SHARE_MAX_USES_PARMNUM     = 6;
29 const SHARE_CURRENT_USES_PARMNUM = 7;
30 const SHARE_PATH_PARMNUM         = 8;
31 const SHARE_PASSWD_PARMNUM       = 9;
32 const SHARE_FILE_SD_PARMNUM      = 501;
33 const SHARE_REMARK_INFOLEVEL   = PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM;
34 const SHARE_MAX_USES_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM;
35 const SHARE_FILE_SD_INFOLEVEL  = PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM;
36
37 const SHI1_NUM_ELEMENTS = 4;
38 const SHI2_NUM_ELEMENTS = 10;
39
40 const STYPE_DISKTREE = 0;
41 const STYPE_PRINTQ   = 1;
42 const STYPE_DEVICE   = 2;
43 const STYPE_IPC      = 3;
44 const STYPE_DFS      = 100;
45 const STYPE_SPECIAL  = 0x80000000;
46
47 const DWORD SHI_USES_UNLIMITED = -1;
48
49 const SESS_GUEST = 1;
50 const SESS_NOENCRYPTION = 2;
51 const SESI1_NUM_ELEMENTS = 8;
52 const SESI2_NUM_ELEMENTS = 9;
53
54 const PERM_FILE_READ   = 1;
55 const PERM_FILE_WRITE  = 2;
56 const PERM_FILE_CREATE = 4;
57
58 struct FILE_INFO_2 {
59     DWORD fi2_id;
60 }
61 alias FILE_INFO_2* PFILE_INFO_2, LPFILE_INFO_2;
62
63 struct FILE_INFO_3 {
64     DWORD fi3_id;
65     DWORD fi3_permissions;
66     DWORD fi3_num_locks;
67     LPTSTR fi3_pathname;
68     LPTSTR fi3_username;
69 }
70 alias FILE_INFO_3* PFILE_INFO_3, LPFILE_INFO_3;
71
72 struct SHARE_INFO_0 {
73     LPTSTR shi0_netname;
74 }
75 alias SHARE_INFO_0* PSHARE_INFO_0, LPSHARE_INFO_0;
76
77 struct SHARE_INFO_1 {
78     LPTSTR shi1_netname;
79     DWORD shi1_type;
80     LPTSTR shi1_remark;
81 }
82 alias SHARE_INFO_1* PSHARE_INFO_1, LPSHARE_INFO_1;
83
84 struct SHARE_INFO_2 {
85     LPTSTR shi2_netname;
86     DWORD shi2_type;
87     LPTSTR shi2_remark;
88     DWORD shi2_permissions;
89     DWORD shi2_max_uses;
90     DWORD shi2_current_uses;
91     LPTSTR shi2_path;
92     LPTSTR shi2_passwd;
93 }
94 alias SHARE_INFO_2* PSHARE_INFO_2, LPSHARE_INFO_2;
95
96 struct SHARE_INFO_502 {
97     LPTSTR shi502_netname;
98     DWORD shi502_type;
99     LPTSTR shi502_remark;
100     DWORD shi502_permissions;
101     DWORD shi502_max_uses;
102     DWORD shi502_current_uses;
103     LPTSTR shi502_path;
104     LPTSTR shi502_passwd;
105     DWORD shi502_reserved;
106     PSECURITY_DESCRIPTOR shi502_security_descriptor;
107 }
108 alias SHARE_INFO_502* PSHARE_INFO_502, LPSHARE_INFO_502;
109
110 struct SHARE_INFO_1004 {
111     LPTSTR shi1004_remark;
112 }
113 alias SHARE_INFO_1004* PSHARE_INFO_1004, LPSHARE_INFO_1004;
114
115 struct SHARE_INFO_1006 {
116     DWORD shi1006_max_uses;
117 }
118 alias SHARE_INFO_1006* PSHARE_INFO_1006, LPSHARE_INFO_1006;
119
120 struct SHARE_INFO_1501 {
121     DWORD shi1501_reserved;
122     PSECURITY_DESCRIPTOR shi1501_security_descriptor;
123 }
124 alias SHARE_INFO_1501* PSHARE_INFO_1501, LPSHARE_INFO_1501;
125
126 struct SESSION_INFO_0 {
127     LPWSTR sesi0_cname;
128 }
129 alias SESSION_INFO_0* PSESSION_INFO_0, LPSESSION_INFO_0;
130
131 struct SESSION_INFO_1 {
132     LPTSTR sesi1_cname;
133     LPTSTR sesi1_username;
134     DWORD sesi1_num_opens;
135     DWORD sesi1_time;
136     DWORD sesi1_idle_time;
137     DWORD sesi1_user_flags;
138 }
139 alias SESSION_INFO_1* PSESSION_INFO_1, LPSESSION_INFO_1;
140
141 struct SESSION_INFO_2 {
142     LPTSTR sesi2_cname;
143     LPTSTR sesi2_username;
144     DWORD sesi2_num_opens;
145     DWORD sesi2_time;
146     DWORD sesi2_idle_time;
147     DWORD sesi2_user_flags;
148     LPWSTR sesi2_cltype_name;
149 }
150 alias SESSION_INFO_2* PSESSION_INFO_2, LPSESSION_INFO_2;
151
152 struct SESSION_INFO_10 {
153     LPWSTR sesi10_cname;
154     LPWSTR sesi10_username;
155     DWORD sesi10_time;
156     DWORD sesi10_idle_time;
157 }
158 alias SESSION_INFO_10* PSESSION_INFO_10, LPSESSION_INFO_10;
159
160 struct SESSION_INFO_502 {
161     LPWSTR sesi502_cname;
162     LPWSTR sesi502_username;
163     DWORD sesi502_num_opens;
164     DWORD sesi502_time;
165     DWORD sesi502_idle_time;
166     DWORD sesi502_user_flags;
167     LPWSTR sesi502_cltype_name;
168     LPWSTR sesi502_transport;
169 }
170 alias SESSION_INFO_502* PSESSION_INFO_502, LPSESSION_INFO_502;
171
172 struct CONNECTION_INFO_0 {
173     DWORD coni0_id;
174 }
175 alias CONNECTION_INFO_0* PCONNECTION_INFO_0, LPCONNECTION_INFO_0;
176
177 struct CONNECTION_INFO_1 {
178     DWORD coni1_id;
179     DWORD coni1_type;
180     DWORD coni1_num_opens;
181     DWORD coni1_num_users;
182     DWORD coni1_time;
183     LPWSTR coni1_username;
184     LPWSTR coni1_netname;
185 }
186 alias CONNECTION_INFO_1* PCONNECTION_INFO_1, LPCONNECTION_INFO_1;
187
188 extern (Windows) {
189 NET_API_STATUS NetShareAdd(LPWSTR,DWORD,PBYTE,PDWORD);
190 NET_API_STATUS NetShareEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
191 NET_API_STATUS NetShareEnumSticky(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD resume_handle);
192 NET_API_STATUS NetShareGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*);
193 NET_API_STATUS NetShareSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD);
194 NET_API_STATUS NetShareDel(LPWSTR,LPWSTR,DWORD);
195 NET_API_STATUS NetShareDelSticky(LPWSTR,LPWSTR,DWORD);
196 NET_API_STATUS NetShareCheck(LPWSTR,LPWSTR,PDWORD);
197 NET_API_STATUS NetSessionEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
198 NET_API_STATUS NetSessionDel(LPWSTR,LPWSTR,LPWSTR);
199 NET_API_STATUS NetSessionGetInfo(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*);
200 NET_API_STATUS NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
201 NET_API_STATUS NetFileClose(LPWSTR,DWORD);
202 NET_API_STATUS NetFileEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
203 NET_API_STATUS NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*);
204 }
Note: See TracBrowser for help on using the browser.