windows-pr 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/CHANGES +408 -404
  2. data/MANIFEST +65 -65
  3. data/README +149 -149
  4. data/Rakefile +52 -52
  5. data/doc/conversion_guide.txt +37 -37
  6. data/lib/windows/clipboard.rb +59 -59
  7. data/lib/windows/com.rb +190 -189
  8. data/lib/windows/com/automation.rb +147 -147
  9. data/lib/windows/com/variant.rb +22 -22
  10. data/lib/windows/console.rb +112 -112
  11. data/lib/windows/debug.rb +33 -33
  12. data/lib/windows/device_io.rb +246 -246
  13. data/lib/windows/directory.rb +25 -25
  14. data/lib/windows/error.rb +482 -482
  15. data/lib/windows/eventlog.rb +78 -78
  16. data/lib/windows/file.rb +262 -262
  17. data/lib/windows/file_mapping.rb +23 -23
  18. data/lib/windows/filesystem.rb +13 -13
  19. data/lib/windows/gdi/bitmap.rb +63 -63
  20. data/lib/windows/gdi/device_context.rb +44 -44
  21. data/lib/windows/gdi/metafile.rb +38 -38
  22. data/lib/windows/gdi/painting_drawing.rb +113 -113
  23. data/lib/windows/handle.rb +21 -21
  24. data/lib/windows/library.rb +42 -42
  25. data/lib/windows/limits.rb +31 -31
  26. data/lib/windows/mailslot.rb +22 -22
  27. data/lib/windows/memory.rb +126 -126
  28. data/lib/windows/msvcrt/buffer.rb +73 -73
  29. data/lib/windows/msvcrt/directory.rb +29 -29
  30. data/lib/windows/msvcrt/file.rb +45 -45
  31. data/lib/windows/msvcrt/io.rb +71 -71
  32. data/lib/windows/msvcrt/time.rb +167 -167
  33. data/lib/windows/national.rb +578 -578
  34. data/lib/windows/network/management.rb +523 -523
  35. data/lib/windows/network/snmp.rb +90 -90
  36. data/lib/windows/network/winsock.rb +126 -126
  37. data/lib/windows/nio.rb +48 -47
  38. data/lib/windows/ntfs/winternl.rb +96 -96
  39. data/lib/windows/path.rb +141 -141
  40. data/lib/windows/pipe.rb +40 -40
  41. data/lib/windows/process.rb +174 -174
  42. data/lib/windows/registry.rb +126 -126
  43. data/lib/windows/security.rb +477 -477
  44. data/lib/windows/security/authentication.rb +30 -30
  45. data/lib/windows/service.rb +140 -140
  46. data/lib/windows/shell.rb +169 -169
  47. data/lib/windows/sound.rb +37 -37
  48. data/lib/windows/synchronize.rb +131 -131
  49. data/lib/windows/system_info.rb +227 -222
  50. data/lib/windows/thread.rb +62 -62
  51. data/lib/windows/time.rb +46 -46
  52. data/lib/windows/tool_helper.rb +34 -34
  53. data/lib/windows/volume.rb +59 -59
  54. data/lib/windows/window.rb +79 -79
  55. data/lib/windows/window/classes.rb +57 -57
  56. data/lib/windows/window/dialog.rb +89 -89
  57. data/lib/windows/window/menu.rb +100 -100
  58. data/lib/windows/window/message.rb +295 -295
  59. data/lib/windows/window/properties.rb +18 -18
  60. data/lib/windows/window/timer.rb +17 -17
  61. data/test/tc_clipboard.rb +41 -41
  62. data/test/tc_com.rb +32 -32
  63. data/test/tc_com_automation.rb +15 -15
  64. data/test/tc_console.rb +108 -108
  65. data/test/tc_debug.rb +48 -48
  66. data/test/tc_device_io.rb +29 -29
  67. data/test/tc_directory.rb +25 -25
  68. data/test/tc_error.rb +49 -49
  69. data/test/tc_eventlog.rb +58 -58
  70. data/test/tc_file.rb +67 -67
  71. data/test/tc_file_mapping.rb +38 -38
  72. data/test/tc_filesystem.rb +27 -27
  73. data/test/tc_gdi_bitmap.rb +25 -25
  74. data/test/tc_gdi_metafile.rb +23 -23
  75. data/test/tc_handle.rb +36 -36
  76. data/test/tc_library.rb +37 -37
  77. data/test/tc_limits.rb +34 -34
  78. data/test/tc_mailslot.rb +22 -22
  79. data/test/tc_memory.rb +44 -44
  80. data/test/tc_msvcrt_buffer.rb +68 -68
  81. data/test/tc_msvcrt_directory.rb +98 -98
  82. data/test/tc_msvcrt_file.rb +80 -80
  83. data/test/tc_msvcrt_io.rb +48 -48
  84. data/test/tc_msvcrt_string.rb +93 -93
  85. data/test/tc_msvcrt_time.rb +29 -29
  86. data/test/tc_national.rb +38 -38
  87. data/test/tc_network_management.rb +32 -32
  88. data/test/tc_network_snmp.rb +31 -31
  89. data/test/tc_network_winsock.rb +34 -34
  90. data/test/tc_nio.rb +32 -32
  91. data/test/tc_ntfs_winternl.rb +29 -29
  92. data/test/tc_path.rb +90 -90
  93. data/test/tc_pipe.rb +53 -53
  94. data/test/tc_process.rb +24 -24
  95. data/test/tc_registry.rb +29 -29
  96. data/test/tc_security.rb +104 -104
  97. data/test/tc_security_authentication.rb +34 -34
  98. data/test/tc_service.rb +57 -57
  99. data/test/tc_shell.rb +34 -34
  100. data/test/tc_sound.rb +37 -37
  101. data/test/tc_synchronize.rb +75 -75
  102. data/test/tc_system_info.rb +43 -43
  103. data/test/tc_thread.rb +29 -29
  104. data/test/tc_time.rb +32 -32
  105. data/test/tc_tool_helper.rb +29 -29
  106. data/test/tc_volume.rb +47 -47
  107. data/test/tc_window.rb +45 -45
  108. data/test/tc_window_classes.rb +33 -33
  109. data/test/tc_window_dialog.rb +33 -33
  110. data/test/tc_window_menu.rb +29 -29
  111. data/test/tc_window_message.rb +33 -33
  112. data/test/tc_window_properties.rb +29 -29
  113. data/test/tc_window_timer.rb +29 -29
  114. data/windows-pr.gemspec +34 -34
  115. metadata +4 -4
@@ -1,523 +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 = 0xFFFFFFFF
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', 'SPL', 'L', 'netapi32')
111
- API.new('NetAlertRaiseEx', 'SPLS', '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', 'SSP', 'L', 'netapi32')
117
- API.new('NetGetDCName', 'SSP', 'L', 'netapi32')
118
- API.new('NetGetDisplayInformationIndex', 'SLPP', 'L', 'netapi32')
119
- API.new('NetGetJoinableOUs', 'SSSSPP', 'L', 'netapi32')
120
- API.new('NetGetJoinInformation', 'SPP', 'L', 'netapi32')
121
- API.new('NetGroupAdd', 'SLPP', 'L', 'netapi32')
122
- API.new('NetGroupAddUser', 'SSS', 'L', 'netapi32')
123
- API.new('NetGroupDel', 'SS', 'L', 'netapi32')
124
- API.new('NetGroupDelUser', 'SSS', 'L', 'netapi32')
125
- API.new('NetGroupEnum', 'SLPLPPP', 'L', 'netapi32')
126
- API.new('NetGroupGetInfo', 'SSLP', 'L', 'netapi32')
127
- API.new('NetGroupGetUsers', 'SSLPLPPP', 'L', 'netapi32')
128
- API.new('NetGroupSetInfo', 'SSLPP', 'L', 'netapi32')
129
- API.new('NetGroupSetUsers', 'SSLPL', 'L', 'netapi32')
130
- API.new('NetJoinDomain', 'SSSSSL', 'L', 'netapi32')
131
- API.new('NetLocalGroupAdd', 'SLPP', 'L', 'netapi32')
132
- API.new('NetLocalGroupAddMembers', 'SSLPL', 'L', 'netapi32')
133
- API.new('NetLocalGroupDel', 'SS', 'L', 'netapi32')
134
- API.new('NetLocalGroupDelMembers', 'SSLPL', 'L', 'netapi32')
135
- API.new('NetLocalGroupEnum', 'SLPLPPP', 'L', 'netapi32')
136
- API.new('NetLocalGroupGetInfo', 'SSLP', 'L', 'netapi32')
137
- API.new('NetLocalGroupGetMembers', 'SSLPLPPP', 'L', 'netapi32')
138
- API.new('NetLocalGroupSetInfo', 'SSLPP', 'L', 'netapi32')
139
- API.new('NetLocalGroupSetMembers', 'SSLPP', 'L', 'netapi32')
140
- API.new('NetMessageBufferSend', 'SSSPL', 'L', 'netapi32')
141
- API.new('NetMessageNameAdd', 'SS', 'L', 'netapi32')
142
- API.new('NetMessageNameDel', 'SS', 'L', 'netapi32')
143
- API.new('NetMessageNameEnum', 'SLPLPPP', 'L', 'netapi32')
144
- API.new('NetMessageNameGetInfo', 'SSLP', 'L', 'netapi32')
145
- API.new('NetQueryDisplayInformation', 'SLLLLPP', 'L', 'netapi32')
146
- API.new('NetRemoteComputerSupports', 'SLP', 'L', 'netapi32')
147
- API.new('NetRemoteTOD', 'SP', 'L', 'netapi32')
148
- API.new('NetRenameMachineInDomain', 'SSSSL', 'L', 'netapi32')
149
- API.new('NetScheduleJobAdd', 'SPP', 'L', 'netapi32')
150
- API.new('NetScheduleJobDel', 'SLL', 'L', 'netapi32')
151
- API.new('NetScheduleJobEnum', 'SPLPPP', 'L', 'netapi32')
152
- API.new('NetScheduleJobGetInfo', 'SLP', 'L', 'netapi32')
153
- API.new('NetServerComputerNameAdd', 'SSS', 'L', 'netapi32')
154
- API.new('NetServerComputerNameDel', 'SS', 'L', 'netapi32')
155
- API.new('NetServerDiskEnum', 'SLPLPPP', 'L', 'netapi32')
156
- API.new('NetServerEnum', 'SLPLPPLPP', 'L', 'netapi32')
157
- API.new('NetServerGetInfo', 'SLP', 'L', 'netapi32')
158
- API.new('NetServerSetInfo', 'SLPP', 'L', 'netapi32')
159
- API.new('NetServerTransportAdd', 'SLP', 'L', 'netapi32')
160
- API.new('NetServerTransportAddEx', 'SLP', 'L', 'netapi32')
161
- API.new('NetServerTransportDel', 'SLP', 'L', 'netapi32')
162
- API.new('NetServerTransportEnum', 'SLPLPPP', 'L', 'netapi32')
163
- API.new('NetUnjoinDomain', 'SSSL', 'L', 'netapi32')
164
- API.new('NetUseAdd', 'SLPP', 'L', 'netapi32')
165
- API.new('NetUseDel', 'SSL', 'L', 'netapi32')
166
- API.new('NetUseEnum', 'SLPLPPP', 'L', 'netapi32')
167
- API.new('NetUseGetInfo', 'SSLP', 'L', 'netapi32')
168
- API.new('NetUserAdd', 'SLPP', 'L', 'netapi32')
169
- API.new('NetUserChangePassword', 'SSSS', 'L', 'netapi32')
170
- API.new('NetUserDel', 'SS', 'L', 'netapi32')
171
- API.new('NetUserEnum', 'SLLPLPPP', 'L', 'netapi32')
172
- API.new('NetUserGetGroups', 'SSLPLPP', 'L', 'netapi32')
173
- API.new('NetUserGetInfo', 'SSLP', 'L', 'netapi32')
174
- API.new('NetUserGetLocalGroups', 'SSLLPLPP', 'L', 'netapi32')
175
- API.new('NetUserModalsGet', 'SLP', 'L', 'netapi32')
176
- API.new('NetUserModalsSet', 'SLPP', 'L', 'netapi32')
177
- API.new('NetUserSetGroups', 'SSLPL', 'L', 'netapi32')
178
- API.new('NetUserSetInfo', 'SSLPP', 'L', 'netapi32')
179
- API.new('NetValidateName', 'SSSSP', 'L', 'netapi32')
180
- API.new('NetWkstaGetInfo', 'SLP', 'L', 'netapi32')
181
- API.new('NetWkstaSetInfo', 'SLPP', 'L', 'netapi32')
182
- API.new('NetWkstaTransportAdd', 'SLPP', 'L', 'netapi32')
183
- API.new('NetWkstaTransportDel', 'SSL', 'L', 'netapi32')
184
- API.new('NetWkstaTransportEnum', 'SLPLPPP', 'L', 'netapi32')
185
- API.new('NetWkstaUserEnum', 'SLPLPPP', '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 Win32::API::LoadLibraryError
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 Win32::API::LoadLibraryError
519
- # Do nothing. It's up to you to check for their existence.
520
- end
521
- end
522
- end
523
- end
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 = 0xFFFFFFFF
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', 'SPL', 'L', 'netapi32')
111
+ API.new('NetAlertRaiseEx', 'SPLS', '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', 'SSP', 'L', 'netapi32')
117
+ API.new('NetGetDCName', 'SSP', 'L', 'netapi32')
118
+ API.new('NetGetDisplayInformationIndex', 'SLPP', 'L', 'netapi32')
119
+ API.new('NetGetJoinableOUs', 'SSSSPP', 'L', 'netapi32')
120
+ API.new('NetGetJoinInformation', 'SPP', 'L', 'netapi32')
121
+ API.new('NetGroupAdd', 'SLPP', 'L', 'netapi32')
122
+ API.new('NetGroupAddUser', 'SSS', 'L', 'netapi32')
123
+ API.new('NetGroupDel', 'SS', 'L', 'netapi32')
124
+ API.new('NetGroupDelUser', 'SSS', 'L', 'netapi32')
125
+ API.new('NetGroupEnum', 'SLPLPPP', 'L', 'netapi32')
126
+ API.new('NetGroupGetInfo', 'SSLP', 'L', 'netapi32')
127
+ API.new('NetGroupGetUsers', 'SSLPLPPP', 'L', 'netapi32')
128
+ API.new('NetGroupSetInfo', 'SSLPP', 'L', 'netapi32')
129
+ API.new('NetGroupSetUsers', 'SSLPL', 'L', 'netapi32')
130
+ API.new('NetJoinDomain', 'SSSSSL', 'L', 'netapi32')
131
+ API.new('NetLocalGroupAdd', 'SLPP', 'L', 'netapi32')
132
+ API.new('NetLocalGroupAddMembers', 'SSLPL', 'L', 'netapi32')
133
+ API.new('NetLocalGroupDel', 'SS', 'L', 'netapi32')
134
+ API.new('NetLocalGroupDelMembers', 'SSLPL', 'L', 'netapi32')
135
+ API.new('NetLocalGroupEnum', 'SLPLPPP', 'L', 'netapi32')
136
+ API.new('NetLocalGroupGetInfo', 'SSLP', 'L', 'netapi32')
137
+ API.new('NetLocalGroupGetMembers', 'SSLPLPPP', 'L', 'netapi32')
138
+ API.new('NetLocalGroupSetInfo', 'SSLPP', 'L', 'netapi32')
139
+ API.new('NetLocalGroupSetMembers', 'SSLPP', 'L', 'netapi32')
140
+ API.new('NetMessageBufferSend', 'SSSPL', 'L', 'netapi32')
141
+ API.new('NetMessageNameAdd', 'SS', 'L', 'netapi32')
142
+ API.new('NetMessageNameDel', 'SS', 'L', 'netapi32')
143
+ API.new('NetMessageNameEnum', 'SLPLPPP', 'L', 'netapi32')
144
+ API.new('NetMessageNameGetInfo', 'SSLP', 'L', 'netapi32')
145
+ API.new('NetQueryDisplayInformation', 'SLLLLPP', 'L', 'netapi32')
146
+ API.new('NetRemoteComputerSupports', 'SLP', 'L', 'netapi32')
147
+ API.new('NetRemoteTOD', 'SP', 'L', 'netapi32')
148
+ API.new('NetRenameMachineInDomain', 'SSSSL', 'L', 'netapi32')
149
+ API.new('NetScheduleJobAdd', 'SPP', 'L', 'netapi32')
150
+ API.new('NetScheduleJobDel', 'SLL', 'L', 'netapi32')
151
+ API.new('NetScheduleJobEnum', 'SPLPPP', 'L', 'netapi32')
152
+ API.new('NetScheduleJobGetInfo', 'SLP', 'L', 'netapi32')
153
+ API.new('NetServerComputerNameAdd', 'SSS', 'L', 'netapi32')
154
+ API.new('NetServerComputerNameDel', 'SS', 'L', 'netapi32')
155
+ API.new('NetServerDiskEnum', 'SLPLPPP', 'L', 'netapi32')
156
+ API.new('NetServerEnum', 'SLPLPPLPP', 'L', 'netapi32')
157
+ API.new('NetServerGetInfo', 'SLP', 'L', 'netapi32')
158
+ API.new('NetServerSetInfo', 'SLPP', 'L', 'netapi32')
159
+ API.new('NetServerTransportAdd', 'SLP', 'L', 'netapi32')
160
+ API.new('NetServerTransportAddEx', 'SLP', 'L', 'netapi32')
161
+ API.new('NetServerTransportDel', 'SLP', 'L', 'netapi32')
162
+ API.new('NetServerTransportEnum', 'SLPLPPP', 'L', 'netapi32')
163
+ API.new('NetUnjoinDomain', 'SSSL', 'L', 'netapi32')
164
+ API.new('NetUseAdd', 'SLPP', 'L', 'netapi32')
165
+ API.new('NetUseDel', 'SSL', 'L', 'netapi32')
166
+ API.new('NetUseEnum', 'SLPLPPP', 'L', 'netapi32')
167
+ API.new('NetUseGetInfo', 'SSLP', 'L', 'netapi32')
168
+ API.new('NetUserAdd', 'SLPP', 'L', 'netapi32')
169
+ API.new('NetUserChangePassword', 'SSSS', 'L', 'netapi32')
170
+ API.new('NetUserDel', 'SS', 'L', 'netapi32')
171
+ API.new('NetUserEnum', 'SLLPLPPP', 'L', 'netapi32')
172
+ API.new('NetUserGetGroups', 'SSLPLPP', 'L', 'netapi32')
173
+ API.new('NetUserGetInfo', 'SSLP', 'L', 'netapi32')
174
+ API.new('NetUserGetLocalGroups', 'SSLLPLPP', 'L', 'netapi32')
175
+ API.new('NetUserModalsGet', 'SLP', 'L', 'netapi32')
176
+ API.new('NetUserModalsSet', 'SLPP', 'L', 'netapi32')
177
+ API.new('NetUserSetGroups', 'SSLPL', 'L', 'netapi32')
178
+ API.new('NetUserSetInfo', 'SSLPP', 'L', 'netapi32')
179
+ API.new('NetValidateName', 'SSSSP', 'L', 'netapi32')
180
+ API.new('NetWkstaGetInfo', 'SLP', 'L', 'netapi32')
181
+ API.new('NetWkstaSetInfo', 'SLPP', 'L', 'netapi32')
182
+ API.new('NetWkstaTransportAdd', 'SLPP', 'L', 'netapi32')
183
+ API.new('NetWkstaTransportDel', 'SSL', 'L', 'netapi32')
184
+ API.new('NetWkstaTransportEnum', 'SLPLPPP', 'L', 'netapi32')
185
+ API.new('NetWkstaUserEnum', 'SLPLPPP', '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 Win32::API::LoadLibraryError
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 Win32::API::LoadLibraryError
519
+ # Do nothing. It's up to you to check for their existence.
520
+ end
521
+ end
522
+ end
523
+ end