windows-pr 0.8.7 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/CHANGES +15 -0
  2. data/MANIFEST +9 -1
  3. data/lib/windows/clipboard.rb +1 -2
  4. data/lib/windows/com/automation.rb +58 -0
  5. data/lib/windows/com.rb +0 -1
  6. data/lib/windows/console.rb +0 -1
  7. data/lib/windows/debug.rb +0 -1
  8. data/lib/windows/device_io.rb +0 -1
  9. data/lib/windows/error.rb +37 -32
  10. data/lib/windows/eventlog.rb +5 -6
  11. data/lib/windows/file.rb +10 -36
  12. data/lib/windows/file_mapping.rb +0 -1
  13. data/lib/windows/filesystem.rb +0 -1
  14. data/lib/windows/gdi/bitmap.rb +0 -1
  15. data/lib/windows/gdi/device_context.rb +0 -1
  16. data/lib/windows/gdi/painting_drawing.rb +0 -1
  17. data/lib/windows/handle.rb +0 -1
  18. data/lib/windows/library.rb +0 -1
  19. data/lib/windows/memory.rb +0 -1
  20. data/lib/windows/msvcrt/buffer.rb +0 -1
  21. data/lib/windows/msvcrt/directory.rb +8 -9
  22. data/lib/windows/msvcrt/file.rb +0 -1
  23. data/lib/windows/msvcrt/io.rb +0 -1
  24. data/lib/windows/msvcrt/string.rb +0 -1
  25. data/lib/windows/msvcrt/time.rb +0 -1
  26. data/lib/windows/national.rb +0 -1
  27. data/lib/windows/network/management.rb +523 -0
  28. data/lib/windows/network/snmp.rb +90 -0
  29. data/lib/windows/network/winsock.rb +126 -0
  30. data/lib/windows/nio.rb +0 -1
  31. data/lib/windows/ntfs/file.rb +58 -0
  32. data/lib/windows/path.rb +105 -38
  33. data/lib/windows/pipe.rb +0 -1
  34. data/lib/windows/security.rb +292 -6
  35. data/lib/windows/service.rb +0 -1
  36. data/lib/windows/shell.rb +4 -1
  37. data/lib/windows/sound.rb +0 -1
  38. data/lib/windows/synchronize.rb +0 -1
  39. data/lib/windows/system_info.rb +0 -1
  40. data/lib/windows/thread.rb +0 -1
  41. data/lib/windows/time.rb +0 -1
  42. data/lib/windows/unicode.rb +0 -1
  43. data/lib/windows/volume.rb +0 -1
  44. data/lib/windows/window/dialog.rb +89 -0
  45. data/lib/windows/window/message.rb +289 -0
  46. data/lib/windows/window/properties.rb +18 -0
  47. data/lib/windows/window/timer.rb +17 -0
  48. data/lib/windows/window.rb +0 -1
  49. data/test/tc_com.rb +17 -19
  50. data/test/tc_msvcrt_directory.rb +57 -27
  51. data/test/tc_msvcrt_string.rb +74 -18
  52. data/windows-pr.gemspec +4 -5
  53. metadata +33 -15
@@ -0,0 +1,523 @@
1
+ require 'windows/api'
2
+
3
+ # I don't use the Boolean flag for the return types of these methods because
4
+ # they succeed, not fail, if the return value is 0.
5
+ #
6
+ module Windows
7
+ module Network
8
+ module Management
9
+ API.auto_namespace = 'Windows::Network::Management'
10
+ API.auto_constant = true
11
+ API.auto_method = false
12
+ API.auto_unicode = false
13
+
14
+ NERR_Success = 0
15
+ NERR_BASE = 2100
16
+ NERR_NetNotStarted = NERR_BASE + 2
17
+ NERR_UnknownServer = NERR_BASE + 3
18
+ NERR_ShareMem = NERR_BASE + 4
19
+ NERR_NoNetworkResource = NERR_BASE + 5
20
+ NERR_RemoteOnly = NERR_BASE + 6
21
+ NERR_DevNotRedirected = NERR_BASE + 7
22
+ NERR_AlreadyLoggedOn = NERR_BASE + 100
23
+ NERR_NotLoggedOn = NERR_BASE + 101
24
+ NERR_BadUsername = NERR_BASE + 102
25
+ NERR_BadPassword = NERR_BASE + 103
26
+ NERR_UnableToAddName_W = NERR_BASE + 104
27
+ NERR_UnableToAddName_F = NERR_BASE + 105
28
+ NERR_UnableToDelName_W = NERR_BASE + 106
29
+ NERR_UnableToDelName_F = NERR_BASE + 107
30
+ NERR_LogonsPaused = NERR_BASE + 109
31
+ NERR_LogonServerConflict = NERR_BASE + 110
32
+ NERR_LogonNoUserPath = NERR_BASE + 111
33
+ NERR_LogonScriptError = NERR_BASE + 112
34
+ NERR_StandaloneLogon = NERR_BASE + 114
35
+ NERR_LogonServerNotFound = NERR_BASE + 115
36
+ NERR_LogonDomainExists = NERR_BASE + 116
37
+ NERR_NonValidatedLogon = NERR_BASE + 117
38
+ NERR_ACFNotFound = NERR_BASE + 119
39
+ NERR_GroupNotFound = NERR_BASE + 120
40
+ NERR_UserNotFound = NERR_BASE + 121
41
+ NERR_ResourceNotFound = NERR_BASE + 122
42
+ NERR_GroupExists = NERR_BASE + 123
43
+ NERR_UserExists = NERR_BASE + 124
44
+ NERR_ResourceExists = NERR_BASE + 125
45
+ NERR_NotPrimary = NERR_BASE + 126
46
+ NERR_ACFNotLoaded = NERR_BASE + 127
47
+ NERR_ACFNoRoom = NERR_BASE + 128
48
+ NERR_ACFFileIOFail = NERR_BASE + 129
49
+ NERR_ACFTooManyLists = NERR_BASE + 130
50
+ NERR_UserLogon = NERR_BASE + 131
51
+ NERR_ACFNoParent = NERR_BASE + 132
52
+ NERR_CanNotGrowSegment = NERR_BASE + 133
53
+ NERR_SpeGroupOp = NERR_BASE + 134
54
+ NERR_NotInCache = NERR_BASE + 135
55
+ NERR_UserInGroup = NERR_BASE + 136
56
+ NERR_UserNotInGroup = NERR_BASE + 137
57
+ NERR_AccountUndefined = NERR_BASE + 138
58
+ NERR_AccountExpired = NERR_BASE + 139
59
+ NERR_InvalidWorkstation = NERR_BASE + 140
60
+ NERR_InvalidLogonHours = NERR_BASE + 141
61
+ NERR_PasswordExpired = NERR_BASE + 142
62
+ NERR_PasswordCantChange = NERR_BASE + 143
63
+ NERR_PasswordHistConflict = NERR_BASE + 144
64
+ NERR_PasswordTooShort = NERR_BASE + 145
65
+ NERR_PasswordTooRecent = NERR_BASE + 146
66
+ NERR_InvalidDatabase = NERR_BASE + 147
67
+ NERR_DatabaseUpToDate = NERR_BASE + 148
68
+ NERR_SyncRequired = NERR_BASE + 149
69
+ NERR_UseNotFound = NERR_BASE + 150
70
+ NERR_BadAsgType = NERR_BASE + 151
71
+ NERR_DeviceIsShared = NERR_BASE + 152
72
+
73
+ MAX_PREFERRED_LENGTH = -1
74
+
75
+ # Taken from LMServer.h
76
+ SV_TYPE_WORKSTATION = 0x00000001
77
+ SV_TYPE_SERVER = 0x00000002
78
+ SV_TYPE_SQLSERVER = 0x00000004
79
+ SV_TYPE_DOMAIN_CTRL = 0x00000008
80
+ SV_TYPE_DOMAIN_BAKCTRL = 0x00000010
81
+ SV_TYPE_TIME_SOURCE = 0x00000020
82
+ SV_TYPE_AFP = 0x00000040
83
+ SV_TYPE_NOVELL = 0x00000080
84
+ SV_TYPE_DOMAIN_MEMBER = 0x00000100
85
+ SV_TYPE_PRINTQ_SERVER = 0x00000200
86
+ SV_TYPE_DIALIN_SERVER = 0x00000400
87
+ SV_TYPE_XENIX_SERVER = 0x00000800
88
+ SV_TYPE_SERVER_UNIX = SV_TYPE_XENIX_SERVER
89
+ SV_TYPE_NT = 0x00001000
90
+ SV_TYPE_WFW = 0x00002000
91
+ SV_TYPE_SERVER_MFPN = 0x00004000
92
+ SV_TYPE_SERVER_NT = 0x00008000
93
+ SV_TYPE_POTENTIAL_BROWSER = 0x00010000
94
+ SV_TYPE_BACKUP_BROWSER = 0x00020000
95
+ SV_TYPE_MASTER_BROWSER = 0x00040000
96
+ SV_TYPE_DOMAIN_MASTER = 0x00080000
97
+ SV_TYPE_SERVER_OSF = 0x00100000
98
+ SV_TYPE_SERVER_VMS = 0x00200000
99
+ SV_TYPE_WINDOWS = 0x00400000
100
+ SV_TYPE_DFS = 0x00800000
101
+ SV_TYPE_CLUSTER_NT = 0x01000000
102
+ SV_TYPE_TERMINALSERVER = 0x02000000
103
+ SV_TYPE_CLUSTER_VS_NT = 0x04000000
104
+ SV_TYPE_DCE = 0x10000000
105
+ SV_TYPE_ALTERNATE_XPORT = 0x20000000
106
+ SV_TYPE_LOCAL_LIST_ONLY = 0x40000000
107
+ SV_TYPE_DOMAIN_ENUM = 0x80000000
108
+ SV_TYPE_ALL = 0xFFFFFFFF
109
+
110
+ API.new('NetAlertRaise', 'PPL', 'L', 'netapi32')
111
+ API.new('NetAlertRaiseEx', 'PPLP', 'L', 'netapi32')
112
+ API.new('NetApiBufferAllocate', 'LP', 'L', 'netapi32')
113
+ API.new('NetApiBufferFree', 'P', 'L', 'netapi32')
114
+ API.new('NetApiBufferReallocate', 'PLP', 'L', 'netapi32')
115
+ API.new('NetApiBufferSize', 'PP', 'L', 'netapi32')
116
+ API.new('NetGetAnyDCName', 'PPP', 'L', 'netapi32')
117
+ API.new('NetGetDCName', 'PPP', 'L', 'netapi32')
118
+ API.new('NetGetDisplayInformationIndex', 'PLPP', 'L', 'netapi32')
119
+ API.new('NetGetJoinableOUs', 'PPPPPP', 'L', 'netapi32')
120
+ API.new('NetGetJoinInformation', 'PPP', 'L', 'netapi32')
121
+ API.new('NetGroupAdd', 'PLPP', 'L', 'netapi32')
122
+ API.new('NetGroupAddUser', 'PPP', 'L', 'netapi32')
123
+ API.new('NetGroupDel', 'PP', 'L', 'netapi32')
124
+ API.new('NetGroupDelUser', 'PPP', 'L', 'netapi32')
125
+ API.new('NetGroupEnum', 'PLPLPPP', 'L', 'netapi32')
126
+ API.new('NetGroupGetInfo', 'PPLP', 'L', 'netapi32')
127
+ API.new('NetGroupGetUsers', 'PPLPLPPP', 'L', 'netapi32')
128
+ API.new('NetGroupSetInfo', 'PPLPP', 'L', 'netapi32')
129
+ API.new('NetGroupSetUsers', 'PPLPL', 'L', 'netapi32')
130
+ API.new('NetJoinDomain', 'PPPPPL', 'L', 'netapi32')
131
+ API.new('NetLocalGroupAdd', 'PLPP', 'L', 'netapi32')
132
+ API.new('NetLocalGroupAddMembers', 'PPLPL', 'L', 'netapi32')
133
+ API.new('NetLocalGroupDel', 'PP', 'L', 'netapi32')
134
+ API.new('NetLocalGroupDelMembers', 'PPLPL', 'L', 'netapi32')
135
+ API.new('NetLocalGroupEnum', 'PLPLPPP', 'L', 'netapi32')
136
+ API.new('NetLocalGroupGetInfo', 'PPLP', 'L', 'netapi32')
137
+ API.new('NetLocalGroupGetMembers', 'PPLPLPPP', 'L', 'netapi32')
138
+ API.new('NetLocalGroupSetInfo', 'PPLPP', 'L', 'netapi32')
139
+ API.new('NetLocalGroupSetMembers', 'PPLPP', 'L', 'netapi32')
140
+ API.new('NetMessageBufferSend', 'PPPPL', 'L', 'netapi32')
141
+ API.new('NetMessageNameAdd', 'PP', 'L', 'netapi32')
142
+ API.new('NetMessageNameDel', 'PP', 'L', 'netapi32')
143
+ API.new('NetMessageNameEnum', 'PLPLPPP', 'L', 'netapi32')
144
+ API.new('NetMessageNameGetInfo', 'PPLP', 'L', 'netapi32')
145
+ API.new('NetQueryDisplayInformation', 'PLLLLPP', 'L', 'netapi32')
146
+ API.new('NetRemoteComputerSupports', 'PLP', 'L', 'netapi32')
147
+ API.new('NetRemoteTOD', 'PP', 'L', 'netapi32')
148
+ API.new('NetRenameMachineInDomain', 'PPPPL', 'L', 'netapi32')
149
+ API.new('NetScheduleJobAdd', 'PPP', 'L', 'netapi32')
150
+ API.new('NetScheduleJobDel', 'PLL', 'L', 'netapi32')
151
+ API.new('NetScheduleJobEnum', 'PPLPPP', 'L', 'netapi32')
152
+ API.new('NetScheduleJobGetInfo', 'PLP', 'L', 'netapi32')
153
+ API.new('NetServerComputerNameAdd', 'PPP', 'L', 'netapi32')
154
+ API.new('NetServerComputerNameDel', 'PP', 'L', 'netapi32')
155
+ API.new('NetServerDiskEnum', 'PLPLPPP', 'L', 'netapi32')
156
+ API.new('NetServerEnum', 'PLPLPPLPP', 'L', 'netapi32')
157
+ API.new('NetServerGetInfo', 'PLP', 'L', 'netapi32')
158
+ API.new('NetServerSetInfo', 'PLPP', 'L', 'netapi32')
159
+ API.new('NetServerTransportAdd', 'PLP', 'L', 'netapi32')
160
+ API.new('NetServerTransportAddEx', 'PLP', 'L', 'netapi32')
161
+ API.new('NetServerTransportDel', 'PLP', 'L', 'netapi32')
162
+ API.new('NetServerTransportEnum', 'PLPLPPP', 'L', 'netapi32')
163
+ API.new('NetUnjoinDomain', 'PPPL', 'L', 'netapi32')
164
+ API.new('NetUseAdd', 'PLPP', 'L', 'netapi32')
165
+ API.new('NetUseDel', 'PPL', 'L', 'netapi32')
166
+ API.new('NetUseEnum', 'PLPLPPP', 'L', 'netapi32')
167
+ API.new('NetUseGetInfo', 'PPLP', 'L', 'netapi32')
168
+ API.new('NetUserAdd', 'PLPP', 'L', 'netapi32')
169
+ API.new('NetUserChangePassword', 'PPPP', 'L', 'netapi32')
170
+ API.new('NetUserDel', 'PP', 'L', 'netapi32')
171
+ API.new('NetUserEnum', 'PLLPLPPP', 'L', 'netapi32')
172
+ API.new('NetUserGetGroups', 'PPLPLPP', 'L', 'netapi32')
173
+ API.new('NetUserGetInfo', 'PPLP', 'L', 'netapi32')
174
+ API.new('NetUserGetLocalGroups', 'PPLLPLPP', 'L', 'netapi32')
175
+ API.new('NetUserModalsGet', 'PLP', 'L', 'netapi32')
176
+ API.new('NetUserModalsSet', 'PLPP', 'L', 'netapi32')
177
+ API.new('NetUserSetGroups', 'PPLPL', 'L', 'netapi32')
178
+ API.new('NetUserSetInfo', 'PPLPP', 'L', 'netapi32')
179
+ API.new('NetValidateName', 'PPPPP', 'L', 'netapi32')
180
+ API.new('NetWkstaGetInfo', 'PLP', 'L', 'netapi32')
181
+ API.new('NetWkstaSetInfo', 'PLPP', 'L', 'netapi32')
182
+ API.new('NetWkstaTransportAdd', 'PLPP', 'L', 'netapi32')
183
+ API.new('NetWkstaTransportDel', 'PPL', 'L', 'netapi32')
184
+ API.new('NetWkstaTransportEnum', 'PLPLPPP', 'L', 'netapi32')
185
+ API.new('NetWkstaUserEnum', 'PLPLPPP', 'L', 'netapi32')
186
+ API.new('NetWkstaUserGetInfo', 'PLP', 'L', 'netapi32')
187
+ API.new('NetWkstaUserSetInfo', 'PPLP', 'L', 'netapi32')
188
+
189
+ # Windows XP or later.
190
+ begin
191
+ API.new('GetNetScheduleAccountInformation', 'PLP', 'L', 'mstask')
192
+ API.new('SetNetScheduleAccountInformation', 'PPP', 'L', 'netapi32')
193
+ rescue Exception
194
+ # Do nothing. Not supported on current platform.
195
+ end
196
+
197
+ def NetAlertRaise(name, buf, bufsize)
198
+ NetAlertRaise.call(name, buf, bufsize) == NERR_Success
199
+ end
200
+
201
+ def NetAlertRaiseEx(name, data, size, service)
202
+ NetAlertRaiseEx.call(name, data, size, service) == NERR_Success
203
+ end
204
+
205
+ def NetApiBufferAllocate(num_bytes, buf)
206
+ NetApiBufferAllocate.call(num_bytes, buf) == NERR_Success
207
+ end
208
+
209
+ def NetApiBufferFree(buf)
210
+ NetApiBufferFree.call(buf) == NERR_Success
211
+ end
212
+
213
+ def NetApiBufferReallocate(old_buf, count, new_buf)
214
+ NetApiBufferReallocate.call(old_buf, count, new_buf) == NERR_Success
215
+ end
216
+
217
+ def NetApiBufferSize(buf, count)
218
+ NetApiBufferSize.call(buf, count) == NERR_Success
219
+ end
220
+
221
+ def NetGetAnyDCName(server, domain, buf)
222
+ NetGetAnyDCName.call(server, domain, buf) == NERR_Success
223
+ end
224
+
225
+ def NetGetDCName(server, domain, buf)
226
+ NetGetDCName.call(server, domain, buf) == NERR_Success
227
+ end
228
+
229
+ def NetGetDisplayInformationIndex(server, level, prefix, index)
230
+ NetGetDisplayInformationIndex.call(server, level, prefix, index) == NERR_Success
231
+ end
232
+
233
+ def NetGetJoinableOUs(server, domain, account, password, count, ous)
234
+ NetGetJoinableOUs.call(server, domain, account, password, count, ous) == NERR_Success
235
+ end
236
+
237
+ def NetGetJoinInformation(server, buf, buf_type)
238
+ NetGetJoinInformation.call(server, buf, buf_type) == NERR_Success
239
+ end
240
+
241
+ def NetGroupAdd(server, level, buf, err)
242
+ NetGroupAdd.call(server, level, buf, err).call == NERR_Success
243
+ end
244
+
245
+ def NetGroupAddUser(server, group, user)
246
+ NetGroupAddUser.call(server, group, user) == NERR_Success
247
+ end
248
+
249
+ def NetGroupDel(server, group)
250
+ NetGroupDel.call(server, group) == NERR_Success
251
+ end
252
+
253
+ def NetGroupDelUser(server, group, user)
254
+ NetGroupDelUser.call(server, group, user) == NERR_Success
255
+ end
256
+
257
+ def NetGroupEnum(server, level, buf, max, entries, total_entries, resume)
258
+ NetGroupEnum.call(server, level, buf, max, entries, total_entries, resume) == NERR_Success
259
+ end
260
+
261
+ def NetGroupGetInfo(server, group, level, buf)
262
+ NetGroupGetInfo.call(server, group, level, buf) == NERR_Success
263
+ end
264
+
265
+ def NetGroupGetUsers(server, group, level, buf, max, entries, total_entries, resume)
266
+ NetGroupGetUsers.call(server, group, level, buf, max, entries, total_entries, resume) == NERR_Success
267
+ end
268
+
269
+ def NetGroupSetInfo(server, group, level, buf, err)
270
+ NetGroupSetInfo.call(server, group, level, buf, err) == NERR_Success
271
+ end
272
+
273
+ def NetGroupSetUsers(server, group, level, buf, total)
274
+ NetGroupSetUsers.call(server, group, level, buf, total) == NERR_Success
275
+ end
276
+
277
+ def NetJoinDomain(server, domain, account_ou, account, password, opts)
278
+ NetJoinDomain.call(server, domain, account_ou, account, password, opts) == NERR_Success
279
+ end
280
+
281
+ def NetLocalGroupAdd(server, level, buf, err)
282
+ NetLocalGroupAdd.call(server, level, buf, err) == NERR_Success
283
+ end
284
+
285
+ def NetLocalGroupAddMembers(server, group, level, buf, total)
286
+ NetLocalGroupAddMembers.call(server, group, level, buf, total) == NERR_Success
287
+ end
288
+
289
+ def NetLocalGroupDel(server, group)
290
+ NetLocalGroupDel.call(server, group) == NERR_Success
291
+ end
292
+
293
+ def NetLocalGroupDelMembers(server, group, level, buf, total)
294
+ NetLocalGroupDelMembers.call(server, group, level, buf, total) == NERR_Success
295
+ end
296
+
297
+ def NetLocalGroupEnum(server, level, buf, max, entries, total_entries, resume)
298
+ NetLocalGroupEnum.call(server, level, buf, max, entries, total_entries, resume) == NERR_Success
299
+ end
300
+
301
+ def NetLocalGroupGetInfo(server, group, level, buf)
302
+ NetLocalGroupGetInfo.call(server, group, level, buf) == NERR_Success
303
+ end
304
+
305
+ def NetLocalGroupGetMembers(server, group, level, buf, max, entries, total_entries, resume)
306
+ NetLocalGroupGetMembers.call(server, group, level, buf, max, entries, total_entries, resume) == NERR_Success
307
+ end
308
+
309
+ def NetLocalGroupSetInfo(server, group, level, buf, err)
310
+ NetLocalGroupSetInfo.call(server, group, level, buf, err) == NERR_Success
311
+ end
312
+
313
+ def NetLocalGroupSetMembers(server, group, level, buf, total)
314
+ NetLocalGroupSetMembers.call(server, group, level, buf, total) == NERR_Success
315
+ end
316
+
317
+ def NetMessageBufferSend(server, msg, from, buf, bufsize)
318
+ NetMessageBufferSend.call(server, msg, from, buf, bufsize) == NERR_Success
319
+ end
320
+
321
+ def NetMessageNameAdd(server, msg)
322
+ NetMessageNameAdd.call(server, msg) == NERR_Success
323
+ end
324
+
325
+ def NetMessageNameDel(server, msg)
326
+ NetMessageNameDel.call(server, msg) == NERR_Success
327
+ end
328
+
329
+ def NetMessageNameEnum(server, level, buf, max, entries, total_entries, resume)
330
+ NetMessageNameEnum.call(server, level, buf, max, entries, total_entries, resume) == NERR_Success
331
+ end
332
+
333
+ def NetMessageNameGetInfo(server, msg, level, buf)
334
+ NetMessageNameGetInfo.call(server, msg, level, buf) == NERR_Success
335
+ end
336
+
337
+ def NetQueryDisplayInformation(server, level, index, entries, max, count, buf)
338
+ NetQueryDisplayInformation.call(server, level, index, entries, max, count, buf) == NERR_Success
339
+ end
340
+
341
+ def NetRemoteComputerSupports(server, level, index, entries, max, count, buf)
342
+ NetRemoteComputerSupports.call(server, level, index, entries, max, count, buf) == NERR_Success
343
+ end
344
+
345
+ def NetRemoteTOD(server, buf)
346
+ NetRemoteTOD.call(server, buf) == NERR_Success
347
+ end
348
+
349
+ def NetRenameMachineInDomain(server, machine, account, password, options)
350
+ NetRenameMachineInDomain.call(server, machine, account, password, options) == NERR_Success
351
+ end
352
+
353
+ def NetScheduleJobAdd(server, buf, job)
354
+ NetScheduleJobAdd.call(server, buf, job) == NERR_Success
355
+ end
356
+
357
+ def NetScheduleJobDel(server, min, max)
358
+ NetScheduleJobDel.call(server, min, max) == NERR_Success
359
+ end
360
+
361
+ def NetScheduleJobEnum(server, buf, max, entries, total_entries, resume)
362
+ NetScheduleJobEnum.call(server, buf, max, entries, total_entries, resume) == NERR_Success
363
+ end
364
+
365
+ def NetScheduleJobGetInfo(server, job, buf)
366
+ NetScheduleJobGetInfo.call(server, job, buf) == NERR_Success
367
+ end
368
+
369
+ def NetServerComputerNameAdd(server, em_domain, em_server)
370
+ NetServerComputerNameAdd.call(server, em_domain, em_server) == NERR_Success
371
+ end
372
+
373
+ def NetServerComputerNameDel(server, em_server)
374
+ NetServerComputerNameDel.call(server, em_server) == NERR_Success
375
+ end
376
+
377
+ def NetServerDiskEnum(server, level, buf, maxlen, entries, total_entries, resume)
378
+ NetServerDiskEnum.call(server, level, buf, maxlen, entries, total_entries, resume) == NERR_Success
379
+ end
380
+
381
+ def NetServerEnum(server, level, ptr, maxlen, num, total, stype, domain, handle)
382
+ NetServerEnum.call(server, level, ptr, maxlen, num, total, stype, domain, handle) == NERR_Success
383
+ end
384
+
385
+ def NetServerGetInfo(server, level, buf)
386
+ NetServerGetInfo.call(server, level, buf) == NERR_Success
387
+ end
388
+
389
+ def NetServerSetInfo(server, level, buf, error)
390
+ NetServerSetInfo.call(server, level, buf, error) == NERR_Success
391
+ end
392
+
393
+ def NetServerTransportAdd(server, level, buf)
394
+ NetServerTransportAdd.call(server, level, buf) == NERR_Success
395
+ end
396
+
397
+ def NetServerTransportAddEx(server, level, buf)
398
+ NetServerTransportAddEx.call(server, level, buf) == NERR_Success
399
+ end
400
+
401
+ def NetServerTransportDel(server, level, buf)
402
+ NetServerTransportDel.call(server, level, buf) == NERR_Success
403
+ end
404
+
405
+ def NetServerTransportEnum(server, level, buf, maxlen, entries, total_entries, resume)
406
+ NetServerTransportEnum.call(server, level, buf, maxlen, entries, total_entries, resume) == NERR_Success
407
+ end
408
+
409
+ def NetUnjoinDomain(server, account, password, options)
410
+ NetUnjoinDomain.call(server, account, password, options) == NERR_Success
411
+ end
412
+
413
+ def NetUseAdd(server, level, buf, error)
414
+ NetUseAdd.call(server, level, buf, error) == NERR_Success
415
+ end
416
+
417
+ def NetUseDel(server, name, conn)
418
+ NetUseDel.call(server, name, conn) == NERR_Success
419
+ end
420
+
421
+ def NetUseEnum(server, level, buf, max, entries, total_entries, resume)
422
+ NetUseEnum.call(server, level, buf, max, entries, total_entries, resume) == NERR_Success
423
+ end
424
+
425
+ def NetUseGetInfo(server, name, level, buf)
426
+ NetUseGetInfo.call(server, name, level, buf) == NERR_Success
427
+ end
428
+
429
+ def NetUserAdd(server, level, buf, error)
430
+ NetUserAdd.call(server, level, buf, error) == NERR_Success
431
+ end
432
+
433
+ def NetUserChangePassword(domain, user, old, new)
434
+ NetUserChangePassword.call(domain, user, old, new) == NERR_Success
435
+ end
436
+
437
+ def NetUserDel(server, user)
438
+ NetUserDel.call(server, user) == NERR_Success
439
+ end
440
+
441
+ def NetUserEnum(server, level, filter, buf, max, entries, total_entries, resume)
442
+ NetUserEnum.call(server, level, filter, buf, max, entries, total_entries, resume) == NERR_Success
443
+ end
444
+
445
+ def NetUserGetGroups(server, user, level, buf, max, entries, total_entries)
446
+ NetUserGetGroups.call(server, user, level, buf, max, entries, total_entries) == NERR_Success
447
+ end
448
+
449
+ def NetUserGetInfo(server, user, level, buf)
450
+ NetUserGetInfo.call(server, user, level, buf) == NERR_Success
451
+ end
452
+
453
+ def NetUserGetLocalGroups(server, user, level, flags, buf, max, entries, total_entries)
454
+ NetUserGetLocalGroups.call(server, user, level, flags, buf, max, entries, total_entries) == NERR_Success
455
+ end
456
+
457
+ def NetUserModalsGet(server, level, buf)
458
+ NetUserModalsGet.call(server, level, buf) == NERR_Success
459
+ end
460
+
461
+ def NetUserModalsSet(server, level, buf, error)
462
+ NetUserModalsSet.call(server, level, buf, error) == NERR_Success
463
+ end
464
+
465
+ def NetUserSetGroups(server, user, level, buf, num)
466
+ NetUserSetGroups.call(server, user, level, buf, num) == NERR_Success
467
+ end
468
+
469
+ def NetUserSetInfo(server, user, level, buf, error)
470
+ NetUserSetInfo.call(server, user, level, buf, error) == NERR_Success
471
+ end
472
+
473
+ def NetValidateName(server, name, account, password, name_type)
474
+ NetValidateName.call(server, name, account, password, name_type) == NERR_Success
475
+ end
476
+
477
+ def NetWkstaGetInfo(server, level, buf)
478
+ NetWkstaGetInfo.call(server, level, buf) == NERR_Success
479
+ end
480
+
481
+ def NetWkstaSetInfo(server, level, buf, error)
482
+ NetWkstaSetInfo.call(server, level, buf, error) == NERR_Success
483
+ end
484
+
485
+ def NetWkstaTransportAdd(server, level, buf, error)
486
+ NetWkstaTransportAdd.call(server, level, buf, error) == NERR_Success
487
+ end
488
+
489
+ def NetWkstaTransportDel(server, name, cond)
490
+ NetWkstaTransportDel.call(server, name, cond) == NERR_Success
491
+ end
492
+
493
+ def NetWkstaTransportEnum(server, level, buf, maxlen, entries, total_entries, resume)
494
+ NetWkstaTransportEnum.call(server, level, buf, maxlen, entries, total_entries, resume) == NERR_Success
495
+ end
496
+
497
+ def NetWkstaUserEnum(server, level, buf, maxlen, entries, total_entries, resume)
498
+ NetWkstaUserEnum.call(server, level, buf, maxlen, entries, total_entries, resume) == NERR_Success
499
+ end
500
+
501
+ def NetWkstaUserGetInfo(res, level, buf)
502
+ NetWkstaUserGetInfo.call(res, level, buf) == NERR_Success
503
+ end
504
+
505
+ def NetWkstaUserSetInfo(res, level, buf, error)
506
+ NetWkstaUserSetInfo.call(res, level, buf, error) == NERR_Success
507
+ end
508
+
509
+ # Windows XP or later
510
+ begin
511
+ def GetNetScheduleAccountInformation(server, num_chars, chars)
512
+ GetNetScheduleAccountInformation.call(server, num_chars, chars) == NERR_Success
513
+ end
514
+
515
+ def SetNetScheduleAccountInformation(server, account, password)
516
+ SetNetScheduleAccountInformation.call(server, account, password) == NERR_Success
517
+ end
518
+ rescue Exception
519
+ # Do nothing. It's up to you to check for their existence.
520
+ end
521
+ end
522
+ end
523
+ end
@@ -0,0 +1,90 @@
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Network
5
+ module SNMP
6
+ API.auto_namespace = 'Windows::Network::SNMP'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = false
10
+
11
+ SNMPAPI_FAILURE = 0
12
+ SNMPAPI_SUCCESS = 1
13
+ SNMPAPI_ALLOC_ERROR = 2
14
+ SNMPAPI_CONTEXT_INVALID = 3
15
+ SNMPAPI_CONTEXT_UNKNOWN = 4
16
+ SNMPAPI_ENTITY_INVALID = 5
17
+ SNMPAPI_ENTITY_UNKNOWN = 6
18
+ SNMPAPI_INDEX_INVALID = 7
19
+ SNMPAPI_NOOP = 8
20
+ SNMPAPI_OID_INVALID = 9
21
+ SNMPAPI_OPERATION_INVALID = 10
22
+ SNMPAPI_OUTPUT_TRUNCATED = 11
23
+ SNMPAPI_PDU_INVALID = 12
24
+ SNMPAPI_SESSION_INVALID = 13
25
+ SNMPAPI_SYNTAX_INVALID = 14
26
+ SNMPAPI_VBL_INVALID = 15
27
+ SNMPAPI_MODE_INVALID = 16
28
+ SNMPAPI_SIZE_INVALID = 17
29
+ SNMPAPI_NOT_INITIALIZED = 18
30
+ SNMPAPI_MESSAGE_INVALID = 19
31
+ SNMPAPI_HWND_INVALID = 20
32
+ SNMPAPI_OTHER_ERROR = 99
33
+ SNMPAPI_TL_NOT_INITIALIZED = 100
34
+ SNMPAPI_TL_NOT_SUPPORTED = 101
35
+ SNMPAPI_TL_NOT_AVAILABLE = 102
36
+ SNMPAPI_TL_RESOURCE_ERROR = 103
37
+ SNMPAPI_TL_UNDELIVERABLE = 104
38
+ SNMPAPI_TL_SRC_INVALID = 105
39
+ SNMPAPI_TL_INVALID_PARAM = 106
40
+ SNMPAPI_TL_IN_USE = 107
41
+ SNMPAPI_TL_TIMEOUT = 108
42
+ SNMPAPI_TL_PDU_TOO_BIG = 109
43
+ SNMPAPI_TL_OTHER = 199
44
+
45
+ SNMPAPI_TRANSLATED = 0
46
+ SNMPAPI_UNTRANSLATED_V1 = 1
47
+ SNMPAPI_UNTRANSLATED_V2 = 2
48
+ SNMPAPI_NO_SUPPORT = 0
49
+ SNMPAPI_V1_SUPPORT = 1
50
+ SNMPAPI_V2_SUPPORT = 2
51
+ SNMPAPI_M2M_SUPPORT = 3
52
+ SNMPAPI_OFF = 0
53
+ SNMPAPI_ON = 1
54
+
55
+ API.new('SnmpCancelMsg', 'LI', 'I', 'wsnmp32')
56
+ API.new('SnmpCleanup', 'V', 'I', 'wsnmp32')
57
+ API.new('SnmpClose', 'L', 'I', 'wsnmp32')
58
+ API.new('SnmpContextToStr', 'LP', 'I', 'wsnmp32')
59
+ API.new('SnmpDecodeMsg', 'LPPPPP', 'I', 'wsnmp32')
60
+ API.new('SnmpEncodeMsg', 'LLLLLP', 'I', 'wsnmp32')
61
+ API.new('SnmpEntityToStr', 'LLP', 'I', 'wsnmp32')
62
+ API.new('SnmpFreeContext', 'L', 'I', 'wsnmp32')
63
+ API.new('SnmpFreeDescriptor', 'LP', 'I', 'wsnmp32')
64
+ API.new('SnmpFreeEntity', 'L', 'I', 'wsnmp32')
65
+ API.new('SnmpGetLastError', 'L', 'I', 'wsnmp32')
66
+ API.new('SnmpListen', 'LL', 'I', 'wsnmp32')
67
+ API.new('SnmpOidCompare', 'PPLP', 'I', 'wsnmp32')
68
+ API.new('SnmpOidCopy', 'PP', 'I', 'wsnmp32')
69
+ API.new('SnmpOidToStr', 'PLP', 'I', 'wsnmp32')
70
+ API.new('SnmpOpen', 'LL', 'L', 'wsnmp32')
71
+ API.new('SnmpRecvMsg', 'LPPPP', 'I', 'wsnmp32')
72
+ API.new('SnmpRegister', 'LLLLPL', 'I', 'wsnmp32')
73
+ API.new('SnmpSendMsg', 'LLLLL', 'I', 'wsnmp32')
74
+ API.new('SnmpSetPort', 'LL', 'I', 'wsnmp32')
75
+ API.new('SnmpStartup', 'PPPPP', 'I', 'wsnmp32')
76
+ API.new('SnmpStrToContext', 'LP', 'I', 'wsnmp32')
77
+ API.new('SnmpStrToEntity', 'LP', 'I', 'wsnmp32')
78
+ API.new('SnmpStrToOid', 'PP', 'I', 'wsnmp32')
79
+
80
+ # Windows 2003 Server or later and/or WinSNMP 2.0 or later
81
+ begin
82
+ API.new('SnmpCreateSession', 'LLKP', 'wsnmp32')
83
+ API.new('SnmpCleanupEx', 'V', 'I', 'wsnmp32')
84
+ API.new('SnmpStartupEx', 'PPPPP', 'L', 'wsnmp32')
85
+ rescue Exception
86
+ # Do nothing. It's up to you to check for their existence.
87
+ end
88
+ end
89
+ end
90
+ end