windows-pr 0.6.6 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +7 -0
- data/MANIFEST +1 -0
- data/lib/windows/clipboard.rb +17 -52
- data/lib/windows/com.rb +54 -0
- data/lib/windows/console.rb +62 -281
- data/lib/windows/debug.rb +36 -0
- data/lib/windows/device_io.rb +9 -7
- data/lib/windows/directory.rb +20 -75
- data/lib/windows/error.rb +51 -36
- data/lib/windows/eventlog.rb +20 -101
- data/lib/windows/file.rb +59 -295
- data/lib/windows/file_mapping.rb +14 -32
- data/lib/windows/filesystem.rb +8 -10
- data/lib/windows/handle.rb +15 -11
- data/lib/windows/library.rb +21 -63
- data/lib/windows/memory.rb +28 -106
- data/lib/windows/msvcrt/buffer.rb +20 -15
- data/lib/windows/msvcrt/file.rb +38 -7
- data/lib/windows/msvcrt/io.rb +180 -80
- data/lib/windows/msvcrt/string.rb +20 -15
- data/lib/windows/national.rb +16 -39
- data/lib/windows/network_management.rb +93 -92
- data/lib/windows/nio.rb +26 -0
- data/lib/windows/path.rb +68 -349
- data/lib/windows/pipe.rb +18 -56
- data/lib/windows/process.rb +28 -110
- data/lib/windows/registry.rb +27 -142
- data/lib/windows/security.rb +34 -142
- data/lib/windows/service.rb +34 -80
- data/lib/windows/shell.rb +10 -16
- data/lib/windows/sound.rb +17 -31
- data/lib/windows/synchronize.rb +24 -90
- data/lib/windows/system_info.rb +16 -47
- data/lib/windows/unicode.rb +21 -41
- data/lib/windows/volume.rb +23 -83
- data/lib/windows/window.rb +11 -17
- data/windows-pr.gemspec +3 -2
- metadata +17 -5
data/lib/windows/nio.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'windows/api'
|
2
|
+
include Windows
|
3
|
+
|
4
|
+
module Windows
|
5
|
+
module NIO
|
6
|
+
API.auto_namespace = 'Windows::NIO'
|
7
|
+
API.auto_constant = true
|
8
|
+
API.auto_method = true
|
9
|
+
API.auto_unicode = false
|
10
|
+
|
11
|
+
API.new('CancelIo', 'L', 'B')
|
12
|
+
API.new('CreateIoCompletionPort', 'LLPL', 'L')
|
13
|
+
API.new('FlushFileBuffers', 'L', 'B')
|
14
|
+
API.new('GetQueuedCompletionStatus', 'LPPPL', 'B')
|
15
|
+
API.new('PostQueuedCompletionStatus', 'LLPP', 'B')
|
16
|
+
API.new('ReadFile', 'LPLPP', 'B')
|
17
|
+
API.new('ReadFileEx', 'LPLPP', 'B')
|
18
|
+
API.new('ReadFileScatter', 'LPLPP', 'B')
|
19
|
+
API.new('SetEndOfFile', 'L', 'B')
|
20
|
+
API.new('SetFilePointer', 'LLPL', 'L')
|
21
|
+
API.new('SetFilePointerEx', 'LLPL', 'L')
|
22
|
+
API.new('WriteFile', 'LPLPP', 'B')
|
23
|
+
API.new('WriteFileEx', 'LPLPP', 'B')
|
24
|
+
API.new('WriteFileGather', 'LPLPP', 'B')
|
25
|
+
end
|
26
|
+
end
|
data/lib/windows/path.rb
CHANGED
@@ -1,355 +1,74 @@
|
|
1
|
-
require '
|
1
|
+
require 'windows/api'
|
2
|
+
include Windows
|
2
3
|
|
3
4
|
module Windows
|
4
5
|
module Path
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
GCT_WILD = 0x0004 # The character is a wildcard character.
|
10
|
-
GCT_SEPARATOR = 0x0008 # The character is a path separator.
|
11
|
-
|
12
|
-
PathAddBackslash = Win32API.new('shlwapi', 'PathAddBackslash', 'P', 'P')
|
13
|
-
PathAddBackslashA = Win32API.new('shlwapi', 'PathAddBackslashA', 'P', 'P')
|
14
|
-
PathAddBackslashW = Win32API.new('shlwapi', 'PathAddBackslashW', 'P', 'P')
|
15
|
-
|
16
|
-
PathAddExtension = Win32API.new('shlwapi', 'PathAddExtension', 'PP', 'I')
|
17
|
-
PathAddExtensionA = Win32API.new('shlwapi', 'PathAddExtensionA', 'PP', 'I')
|
18
|
-
PathAddExtensionW = Win32API.new('shlwapi', 'PathAddExtensionW', 'PP', 'I')
|
19
|
-
|
20
|
-
PathAppend = Win32API.new('shlwapi', 'PathAppend', 'PP', 'I')
|
21
|
-
PathAppendA = Win32API.new('shlwapi', 'PathAppendA', 'PP', 'I')
|
22
|
-
PathAppendW = Win32API.new('shlwapi', 'PathAppendW', 'PP', 'I')
|
23
|
-
|
24
|
-
PathBuildRoot = Win32API.new('shlwapi', 'PathBuildRoot', 'PI', 'P')
|
25
|
-
PathBuildRootA = Win32API.new('shlwapi', 'PathBuildRootA', 'PI', 'P')
|
26
|
-
PathBuildRootW = Win32API.new('shlwapi', 'PathBuildRootW', 'PI', 'P')
|
27
|
-
|
28
|
-
PathCanonicalize = Win32API.new('shlwapi', 'PathCanonicalize', 'PP', 'I')
|
29
|
-
PathCanonicalizeA = Win32API.new('shlwapi', 'PathCanonicalizeA', 'PP', 'I')
|
30
|
-
PathCanonicalizeW = Win32API.new('shlwapi', 'PathCanonicalizeW', 'PP', 'I')
|
31
|
-
|
32
|
-
PathCombine = Win32API.new('shlwapi', 'PathCombine', 'PPP', 'P')
|
33
|
-
PathCombineA = Win32API.new('shlwapi', 'PathCombineA', 'PPP', 'P')
|
34
|
-
PathCombineW = Win32API.new('shlwapi', 'PathCombineW', 'PPP', 'P')
|
35
|
-
|
36
|
-
PathCommonPrefix = Win32API.new('shlwapi', 'PathCommonPrefix', 'PPP', 'I')
|
37
|
-
PathCommonPrefixA = Win32API.new('shlwapi', 'PathCommonPrefixA', 'PPP', 'I')
|
38
|
-
PathCommonPrefixW = Win32API.new('shlwapi', 'PathCommonPrefixW', 'PPP', 'I')
|
39
|
-
|
40
|
-
PathCompactPath = Win32API.new('shlwapi', 'PathCompactPath', 'PPI', 'I')
|
41
|
-
PathCompactPathA = Win32API.new('shlwapi', 'PathCompactPathA', 'PPI', 'I')
|
42
|
-
PathCompactPathW = Win32API.new('shlwapi', 'PathCompactPathW', 'PPI', 'I')
|
43
|
-
|
44
|
-
PathCompactPathEx = Win32API.new('shlwapi', 'PathCompactPathEx', 'PPIL', 'I')
|
45
|
-
PathCompactPathExA = Win32API.new('shlwapi', 'PathCompactPathExA', 'PPIL', 'I')
|
46
|
-
PathCompactPathExW = Win32API.new('shlwapi', 'PathCompactPathExW', 'PPIL', 'I')
|
47
|
-
|
48
|
-
PathCreateFromUrl = Win32API.new('shlwapi', 'PathCreateFromUrl', 'PPPL', 'L')
|
49
|
-
PathCreateFromUrlA = Win32API.new('shlwapi', 'PathCreateFromUrlA', 'PPPL', 'L')
|
50
|
-
PathCreateFromUrlW = Win32API.new('shlwapi', 'PathCreateFromUrlW', 'PPPL', 'L')
|
51
|
-
|
52
|
-
PathFileExists = Win32API.new('shlwapi', 'PathFileExists', 'P', 'I')
|
53
|
-
PathFileExistsA = Win32API.new('shlwapi', 'PathFileExistsA', 'P', 'I')
|
54
|
-
PathFileExistsW = Win32API.new('shlwapi', 'PathFileExistsW', 'P', 'I')
|
55
|
-
|
56
|
-
PathFindExtension = Win32API.new('shlwapi', 'PathFindExtension', 'P', 'P')
|
57
|
-
PathFindExtensionA = Win32API.new('shlwapi', 'PathFindExtensionA', 'P', 'P')
|
58
|
-
PathFindExtensionW = Win32API.new('shlwapi', 'PathFindExtensionW', 'P', 'P')
|
59
|
-
|
60
|
-
PathFindFileName = Win32API.new('shlwapi', 'PathFindFileName', 'P', 'P')
|
61
|
-
PathFindFileNameA = Win32API.new('shlwapi', 'PathFindFileNameA', 'P', 'P')
|
62
|
-
PathFindFileNameW = Win32API.new('shlwapi', 'PathFindFileNameW', 'P', 'P')
|
63
|
-
|
64
|
-
PathFindNextComponent = Win32API.new('shlwapi', 'PathFindNextComponent', 'P', 'P')
|
65
|
-
PathFindNextComponentA = Win32API.new('shlwapi', 'PathFindNextComponentA', 'P', 'P')
|
66
|
-
PathFindNextComponentW = Win32API.new('shlwapi', 'PathFindNextComponentW', 'P', 'P')
|
67
|
-
|
68
|
-
PathFindOnPath = Win32API.new('shlwapi', 'PathFindOnPath', 'PP', 'I')
|
69
|
-
PathFindOnPathA = Win32API.new('shlwapi', 'PathFindOnPathA', 'PP', 'I')
|
70
|
-
PathFindOnPathW = Win32API.new('shlwapi', 'PathFindOnPathW', 'PP', 'I')
|
71
|
-
|
72
|
-
PathFindSuffixArray = Win32API.new('shlwapi', 'PathFindSuffixArray', 'PPI', 'P')
|
73
|
-
PathFindSuffixArrayA = Win32API.new('shlwapi', 'PathFindSuffixArrayA', 'PPI', 'P')
|
74
|
-
PathFindSuffixArrayW = Win32API.new('shlwapi', 'PathFindSuffixArrayW', 'PPI', 'P')
|
75
|
-
|
76
|
-
PathGetArgs = Win32API.new('shlwapi', 'PathGetArgs', 'P', 'P')
|
77
|
-
PathGetArgsA = Win32API.new('shlwapi', 'PathGetArgsA', 'P', 'P')
|
78
|
-
PathGetArgsW = Win32API.new('shlwapi', 'PathGetArgsW', 'P', 'P')
|
79
|
-
|
80
|
-
PathGetCharType = Win32API.new('shlwapi', 'PathGetCharType', 'P', 'I')
|
81
|
-
PathGetCharTypeA = Win32API.new('shlwapi', 'PathGetCharTypeA', 'P', 'I')
|
82
|
-
PathGetCharTypeW = Win32API.new('shlwapi', 'PathGetCharTypeW', 'P', 'I')
|
83
|
-
|
84
|
-
PathGetDriveNumber = Win32API.new('shlwapi', 'PathGetDriveNumber', 'P', 'I')
|
85
|
-
PathGetDriveNumberA = Win32API.new('shlwapi', 'PathGetDriveNumberA', 'P', 'I')
|
86
|
-
PathGetDriveNumberW = Win32API.new('shlwapi', 'PathGetDriveNumberW', 'P', 'I')
|
87
|
-
|
88
|
-
PathIsContentType = Win32API.new('shlwapi', 'PathIsContentType', 'PP', 'I')
|
89
|
-
PathIsContentTypeA = Win32API.new('shlwapi', 'PathIsContentTypeA', 'PP', 'I')
|
90
|
-
PathIsContentTypeW = Win32API.new('shlwapi', 'PathIsContentTypeW', 'PP', 'I')
|
91
|
-
|
92
|
-
PathIsDirectory = Win32API.new('shlwapi', 'PathIsDirectory', 'P', 'I')
|
93
|
-
PathIsDirectoryEmpty = Win32API.new('shlwapi', 'PathIsDirectoryEmpty', 'P', 'I')
|
94
|
-
PathIsFileSpec = Win32API.new('shlwapi', 'PathIsFileSpec', 'P', 'I')
|
95
|
-
#PathIsHTMLFile = Win32API.new('shlwapi', 'PathIsHTMLFile', 'P', 'I')
|
96
|
-
PathIsLFNFileSpec = Win32API.new('shlwapi', 'PathIsLFNFileSpec', 'P', 'I')
|
97
|
-
PathIsNetworkPath = Win32API.new('shlwapi', 'PathIsNetworkPath', 'P', 'I')
|
98
|
-
PathIsPrefix = Win32API.new('shlwapi', 'PathIsPrefix', 'PP', 'I')
|
99
|
-
PathIsRelative = Win32API.new('shlwapi', 'PathIsRelative', 'P', 'I')
|
100
|
-
PathIsRoot = Win32API.new('shlwapi', 'PathIsRoot', 'P', 'I')
|
101
|
-
PathIsSameRoot = Win32API.new('shlwapi', 'PathIsSameRoot', 'PP', 'I')
|
102
|
-
PathIsSystemFolder = Win32API.new('shlwapi', 'PathIsSystemFolder', 'PL', 'I')
|
103
|
-
PathIsUNC = Win32API.new('shlwapi', 'PathIsUNC', 'P', 'I')
|
104
|
-
PathIsUNCServer = Win32API.new('shlwapi', 'PathIsUNCServer', 'P', 'I')
|
105
|
-
PathIsUNCServerShare = Win32API.new('shlwapi', 'PathIsUNCServerShare','P','I')
|
106
|
-
PathIsURL = Win32API.new('shlwapi', 'PathIsURL', 'P', 'I')
|
107
|
-
PathMakePretty = Win32API.new('shlwapi', 'PathMakePretty', 'P', 'I')
|
108
|
-
PathMakeSystemFolder = Win32API.new('shlwapi', 'PathMakeSystemFolder', 'P', 'I')
|
109
|
-
PathMatchSpec = Win32API.new('shlwapi', 'PathMatchSpec', 'PP', 'I')
|
110
|
-
PathParseIconLocation = Win32API.new('shlwapi', 'PathParseIconLocation', 'P', 'I')
|
111
|
-
PathQuoteSpaces = Win32API.new('shlwapi', 'PathQuoteSpaces', 'P', 'V')
|
112
|
-
PathRelativePathTo = Win32API.new('shlwapi', 'PathRelativePathTo', 'PPLPL', 'I')
|
113
|
-
PathRemoveArgs = Win32API.new('shlwapi', 'PathRemoveArgs', 'P', 'V')
|
114
|
-
PathRemoveBackslash = Win32API.new('shlwapi', 'PathRemoveBackslash', 'P', 'P')
|
115
|
-
PathRemoveBlanks = Win32API.new('shlwapi', 'PathRemoveBlanks', 'P', 'V')
|
116
|
-
PathRemoveExtension = Win32API.new('shlwapi', 'PathRemoveExtension', 'P','V')
|
117
|
-
PathRemoveFileSpec = Win32API.new('shlwapi', 'PathRemoveFileSpec', 'P', 'L')
|
118
|
-
PathRenameExtension = Win32API.new('shlwapi', 'PathRenameExtension', 'PP','I')
|
119
|
-
PathSearchAndQualify = Win32API.new('shlwapi', 'PathSearchAndQualify', 'PPI', 'I')
|
120
|
-
PathSetDlgItemPath = Win32API.new('shlwapi', 'PathSetDlgItemPath', 'LIP', 'V')
|
121
|
-
PathSkipRoot = Win32API.new('shlwapi', 'PathSkipRoot', 'P', 'P')
|
122
|
-
PathStripPath = Win32API.new('shlwapi', 'PathStripPath', 'P', 'V')
|
123
|
-
PathStripToRoot = Win32API.new('shlwapi', 'PathStripToRoot', 'P', 'I')
|
124
|
-
PathUndecorate = Win32API.new('shlwapi', 'PathUndecorate', 'P', 'V')
|
125
|
-
PathUnExpandEnvStrings = Win32API.new('shlwapi', 'PathUnExpandEnvStrings', 'PPI', 'I')
|
126
|
-
PathUnmakeSystemFolder = Win32API.new('shlwapi', 'PathUnmakeSystemFolder', 'P', 'I')
|
127
|
-
PathUnquoteSpaces = Win32API.new('shlwapi', 'PathUnquoteSpaces', 'P', 'V')
|
128
|
-
|
129
|
-
def PathAddBackslash(path)
|
130
|
-
PathAddBackslash.call(path)
|
131
|
-
end
|
132
|
-
|
133
|
-
def PathAddExtension(path, ext)
|
134
|
-
PathAddExtension.call(path, ext) > 0
|
135
|
-
end
|
136
|
-
|
137
|
-
def PathAppend(path, more)
|
138
|
-
PathAppend.call(path, more) > 0
|
139
|
-
end
|
140
|
-
|
141
|
-
def PathBuildRoot(root, drive)
|
142
|
-
PathBuildRoot.call(root, drive)
|
143
|
-
end
|
144
|
-
|
145
|
-
def PathCanonicalize(dst, src)
|
146
|
-
PathCanonicalize.call(dst, src) > 0
|
147
|
-
end
|
148
|
-
|
149
|
-
def PathCombine(dest, dir, file)
|
150
|
-
PathCombine.call(dest, dir, file)
|
151
|
-
end
|
152
|
-
|
153
|
-
def PathCommonPrefix(path1, path2, buf)
|
154
|
-
PathCommonPrefix.call(path1, path2, buf)
|
155
|
-
end
|
156
|
-
|
157
|
-
def PathCompactPath(handle, path, px_width)
|
158
|
-
PathCompactPath.call(handle, path, px_width) > 0
|
159
|
-
end
|
160
|
-
|
161
|
-
def PathCompactPathEx(out, src, max, flags = nil)
|
162
|
-
PathCompactPathEx.call(out, src, max, flags) > 0
|
163
|
-
end
|
164
|
-
|
165
|
-
def PathCreateFromUrl(url, path, path_size, reserved = nil)
|
166
|
-
PathCreateFromUrl.call(url, path, path_size, reserved) >= 0
|
167
|
-
end
|
168
|
-
|
169
|
-
def PathFileExists(path)
|
170
|
-
PathFileExists.call(path) > 0
|
171
|
-
end
|
172
|
-
|
173
|
-
def PathFindExtension(path)
|
174
|
-
PathFindExtension.call(path)
|
175
|
-
end
|
176
|
-
|
177
|
-
def PathFindFileName(path)
|
178
|
-
PathFindFileName.call(path)
|
179
|
-
end
|
6
|
+
API.auto_namespace = 'Windows::Path'
|
7
|
+
API.auto_constant = true
|
8
|
+
API.auto_method = true
|
9
|
+
API.auto_unicode = true
|
180
10
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
def PathIsRoot(path)
|
244
|
-
PathIsRoot.call(path) > 0
|
245
|
-
end
|
246
|
-
|
247
|
-
def PathIsSameRoot(path1, path2)
|
248
|
-
PathIsSameRoot.call(path1, path2) > 0
|
249
|
-
end
|
250
|
-
|
251
|
-
def PathIsSystemFolder(path)
|
252
|
-
PathIsSystemFolder.call(path) > 0
|
253
|
-
end
|
254
|
-
|
255
|
-
def PathIsUNC(path)
|
256
|
-
PathIsUNC.call(path) > 0
|
257
|
-
end
|
258
|
-
|
259
|
-
def PathIsUNCServer(path)
|
260
|
-
PathIsUNCServer.call(path) > 0
|
261
|
-
end
|
262
|
-
|
263
|
-
def PathIsUNCServerShare(path)
|
264
|
-
PathIsUNCServerShare.call(path) > 0
|
265
|
-
end
|
266
|
-
|
267
|
-
def PathIsURL(path)
|
268
|
-
PathIsURL.call(path) > 0
|
269
|
-
end
|
270
|
-
|
271
|
-
def PathMakePretty(path)
|
272
|
-
PathMakePretty.call(path) > 0
|
273
|
-
end
|
274
|
-
|
275
|
-
def PathMakeSystemFolder(path)
|
276
|
-
PathMakeSystemFolder.call(path) > 0
|
277
|
-
end
|
278
|
-
|
279
|
-
def PathMatchSpec(path, spec)
|
280
|
-
PathMatchSpec.call(path, spec) > 0
|
281
|
-
end
|
282
|
-
|
283
|
-
def PathParseIconLocation(path)
|
284
|
-
PathParseIconLocation.call(path)
|
285
|
-
end
|
286
|
-
|
287
|
-
def PathQuoteSpaces(path)
|
288
|
-
PathQuoteSpaces.call(path)
|
289
|
-
end
|
290
|
-
|
291
|
-
def PathRelativePathTo(path, from, from_attr, to, to_attr)
|
292
|
-
PathRelativePathTo.call(path, from, from_attr, to, to_attr) > 0
|
293
|
-
end
|
294
|
-
|
295
|
-
def PathRemoveArgs(path)
|
296
|
-
PathRemoveArgs.call(path)
|
297
|
-
end
|
298
|
-
|
299
|
-
def PathRemoveBackslash(path)
|
300
|
-
PathRemoveBackslash.call(path)
|
301
|
-
end
|
302
|
-
|
303
|
-
def PathRemoveBlanks(path)
|
304
|
-
PathRemoveBlanks.call(path)
|
305
|
-
end
|
306
|
-
|
307
|
-
def PathRemoveExtension(path)
|
308
|
-
PathRemoveExtension.call(path)
|
309
|
-
end
|
310
|
-
|
311
|
-
def PathRemoveFileSpec(path)
|
312
|
-
PathRemoveFileSpec.call(path) > 0
|
313
|
-
end
|
314
|
-
|
315
|
-
def PathRenameExtension(path, ext)
|
316
|
-
PathRenameExtension.call(path, ext) > 0
|
317
|
-
end
|
318
|
-
|
319
|
-
def PathSearchAndQualify(path, full_path, full_path_size)
|
320
|
-
PathSearchAndQualify.call(path, full_path, full_path_size) > 0
|
321
|
-
end
|
322
|
-
|
323
|
-
def PathSetDlgItemPath(handle, id, path)
|
324
|
-
PathSetDlgItemPath.call(handle, id, path)
|
325
|
-
end
|
326
|
-
|
327
|
-
def PathSkipRoot(path)
|
328
|
-
PathSkipRoot.call(path)
|
329
|
-
end
|
330
|
-
|
331
|
-
def PathStripPath(path)
|
332
|
-
PathStripPath.call(path)
|
333
|
-
end
|
334
|
-
|
335
|
-
def PathStripToRoot(path)
|
336
|
-
PathStripToRoot.call(path) > 0
|
337
|
-
end
|
338
|
-
|
339
|
-
def PathUndecorate(path)
|
340
|
-
PathUndecorate.call(path)
|
341
|
-
end
|
342
|
-
|
343
|
-
def PathUnExpandEnvStrings(path, buf, buf_size)
|
344
|
-
PathUnExpandEnvStrings.call(path, buf, buf_size) > 0
|
345
|
-
end
|
346
|
-
|
347
|
-
def PathUnmakeSystemFolder(path)
|
348
|
-
PathUnmakeSystemFolder.call(path) > 0
|
349
|
-
end
|
350
|
-
|
351
|
-
def PathUnquoteSpaces(path)
|
352
|
-
PathUnquoteSpaces.call(path)
|
353
|
-
end
|
11
|
+
# These constants are for use by the PathGetCharType() function.
|
12
|
+
GCT_INVALID = 0x0000 # Character is not valid in a path.
|
13
|
+
GCT_LFNCHAR = 0x0001 # Character is valid in a long file name.
|
14
|
+
GCT_SHORTCHAR = 0x0002 # Character is valid in a short (8.3) file name.
|
15
|
+
GCT_WILD = 0x0004 # Character is a wildcard character.
|
16
|
+
GCT_SEPARATOR = 0x0008 # Character is a path separator.
|
17
|
+
|
18
|
+
API.new('PathAddBackslash', 'P', 'P', 'shlwapi')
|
19
|
+
API.new('PathAddExtension', 'PP', 'B', 'shlwapi')
|
20
|
+
API.new('PathAppend', 'PP', 'B', 'shlwapi')
|
21
|
+
API.new('PathBuildRoot', 'PI', 'P', 'shlwapi')
|
22
|
+
API.new('PathCanonicalize', 'PP', 'B', 'shlwapi')
|
23
|
+
API.new('PathCombine', 'PPP', 'P', 'shlwapi')
|
24
|
+
API.new('PathCommonPrefix', 'PPP', 'I', 'shlwapi')
|
25
|
+
API.new('PathCompactPath', 'PPI', 'B', 'shlwapi')
|
26
|
+
API.new('PathCompactPathEx', 'PPIL', 'B', 'shlwapi')
|
27
|
+
API.new('PathCreateFromUrl', 'PPPL', 'B', 'shlwapi')
|
28
|
+
API.new('PathFileExists', 'P', 'B', 'shlwapi')
|
29
|
+
API.new('PathFindExtension', 'P', 'P', 'shlwapi')
|
30
|
+
API.new('PathFindFileName', 'P', 'P', 'shlwapi')
|
31
|
+
API.new('PathFindNextComponent', 'P', 'P', 'shlwapi')
|
32
|
+
API.new('PathFindOnPath', 'PP', 'B', 'shlwapi')
|
33
|
+
API.new('PathFindSuffixArray', 'PPI', 'P', 'shlwapi')
|
34
|
+
API.new('PathGetArgs', 'P', 'P', 'shlwapi')
|
35
|
+
API.new('PathGetCharType', 'P', 'I', 'shlwapi')
|
36
|
+
API.new('PathGetDriveNumber', 'P', 'I', 'shlwapi')
|
37
|
+
API.new('PathIsContentType', 'PP', 'B', 'shlwapi')
|
38
|
+
API.new('PathIsDirectory', 'P', 'B', 'shlwapi')
|
39
|
+
API.new('PathIsDirectoryEmpty', 'P', 'B', 'shlwapi')
|
40
|
+
API.new('PathIsFileSpec', 'P', 'B', 'shlwapi')
|
41
|
+
API.new('PathIsLFNFileSpec', 'P', 'B', 'shlwapi')
|
42
|
+
API.new('PathIsNetworkPath', 'P', 'B', 'shlwapi')
|
43
|
+
API.new('PathIsPrefix', 'PP', 'B', 'shlwapi')
|
44
|
+
API.new('PathIsRelative', 'P', 'B', 'shlwapi')
|
45
|
+
API.new('PathIsRoot', 'P', 'B', 'shlwapi')
|
46
|
+
API.new('PathIsSameRoot', 'PP', 'B', 'shlwapi')
|
47
|
+
API.new('PathIsSystemFolder', 'PL', 'B', 'shlwapi')
|
48
|
+
API.new('PathIsUNC', 'P', 'B', 'shlwapi')
|
49
|
+
API.new('PathIsUNCServer', 'P', 'B', 'shlwapi')
|
50
|
+
API.new('PathIsUNCServerShare', 'P', 'B', 'shlwapi')
|
51
|
+
API.new('PathIsURL', 'P', 'B', 'shlwapi')
|
52
|
+
API.new('PathMakePretty', 'P', 'B', 'shlwapi')
|
53
|
+
API.new('PathMakeSystemFolder', 'P', 'B', 'shlwapi')
|
54
|
+
API.new('PathMatchSpec', 'PP', 'B', 'shlwapi')
|
55
|
+
API.new('PathParseIconLocation', 'P', 'I', 'shlwapi')
|
56
|
+
API.new('PathQuoteSpaces', 'P', 'V', 'shlwapi')
|
57
|
+
API.new('PathRelativePathTo', 'PPLPL', 'B', 'shlwapi')
|
58
|
+
API.new('PathRemoveArgs', 'P', 'V', 'shlwapi')
|
59
|
+
API.new('PathRemoveBackslash', 'P', 'P', 'shlwapi')
|
60
|
+
API.new('PathRemoveBlanks', 'P', 'V', 'shlwapi')
|
61
|
+
API.new('PathRemoveExtension', 'P','V', 'shlwapi')
|
62
|
+
API.new('PathRemoveFileSpec', 'P', 'B', 'shlwapi')
|
63
|
+
API.new('PathRenameExtension', 'PP', 'B', 'shlwapi')
|
64
|
+
API.new('PathSearchAndQualify', 'PPI', 'B', 'shlwapi')
|
65
|
+
API.new('PathSetDlgItemPath', 'LIP', 'V', 'shlwapi')
|
66
|
+
API.new('PathSkipRoot', 'P', 'P', 'shlwapi')
|
67
|
+
API.new('PathStripPath', 'P', 'V', 'shlwapi')
|
68
|
+
API.new('PathStripToRoot', 'P', 'B', 'shlwapi')
|
69
|
+
API.new('PathUndecorate', 'P', 'V', 'shlwapi')
|
70
|
+
API.new('PathUnExpandEnvStrings', 'PPI', 'B', 'shlwapi')
|
71
|
+
API.new('PathUnmakeSystemFolder', 'P', 'B', 'shlwapi')
|
72
|
+
API.new('PathUnquoteSpaces', 'P', 'V', 'shlwapi')
|
354
73
|
end
|
355
74
|
end
|
data/lib/windows/pipe.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
|
-
require '
|
1
|
+
require 'windows/api'
|
2
|
+
include Windows
|
2
3
|
|
3
4
|
module Windows
|
4
5
|
module Pipe
|
6
|
+
API.auto_namespace = 'Windows::Pipe'
|
7
|
+
API.auto_constant = true
|
8
|
+
API.auto_method = true
|
9
|
+
API.auto_unicode = true
|
10
|
+
|
5
11
|
NMPWAIT_NOWAIT = 0x00000001
|
6
12
|
NMPWAIT_WAIT_FOREVER = 0xffffffff
|
7
13
|
NMPWAIT_USE_DEFAULT_WAIT = 0x00000000
|
@@ -20,60 +26,16 @@ module Windows
|
|
20
26
|
|
21
27
|
PIPE_UNLIMITED_INSTANCES = 255
|
22
28
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
def CallNamedPipe(name, buf, buf_size, out, out_size, read, timeout)
|
36
|
-
CallNamedPipe.call(name, buf, buf_size, out, out_size, read, timeout) != 0
|
37
|
-
end
|
38
|
-
|
39
|
-
def ConnectNamedPipe(pipe, overlapped = 0)
|
40
|
-
ConnectNamedPipe.call(pipe, overlapped) != 0
|
41
|
-
end
|
42
|
-
|
43
|
-
def CreateNamedPipe(name, open_mode, pipe_mode, max, out_size, in_size, timeout, sec_attr)
|
44
|
-
CreateNamedPipe.call(name, open_mode, pipe_mode, max, out_size, in_size, timeout, sec_attr)
|
45
|
-
end
|
46
|
-
|
47
|
-
def CreatePipe(read_pipe, write_pipe, pipe_attr, size)
|
48
|
-
CreatePipe.call(read_pipe, write_pipe, pipe_attr, size) != 0
|
49
|
-
end
|
50
|
-
|
51
|
-
def DisconnectNamedPipe(name)
|
52
|
-
DisconnectNamedPipe.call(name) != 0
|
53
|
-
end
|
54
|
-
|
55
|
-
def GetNamedPipeHandleState(name, state, instances, count, timeout, user, size)
|
56
|
-
GetNamedPipeHandleState.call(name, state, instances, count, timeout, user, size) != 0
|
57
|
-
end
|
58
|
-
|
59
|
-
def GetNamedPipeInfo(name, flags, out_size, in_size, max)
|
60
|
-
GetNamedPipeInfo.call(name, flags, out_size, in_size, max) != 0
|
61
|
-
end
|
62
|
-
|
63
|
-
def PeekNamedPipe(name, buf, buf_size, bytes_read, bytes_avail, bytes_left)
|
64
|
-
PeekNamedPipe.call(name, buf, buf_size, bytes_read, bytes_avail, bytes_left) != 0
|
65
|
-
end
|
66
|
-
|
67
|
-
def SetNamedPipeHandleState(name, mode, max, timeout)
|
68
|
-
SetNamedPipeHandleState.call(name, mode, max, timeout) != 0
|
69
|
-
end
|
70
|
-
|
71
|
-
def TransactNamedPipe(name, in_buf, in_buf_size, out_buf, out_buf_size, read, overlapped)
|
72
|
-
TransactNamedPipe.call(name, in_buf, in_buf_size, out_buf, out_buf_size, read, overlapped) != 0
|
73
|
-
end
|
74
|
-
|
75
|
-
def WaitNamedPipe(name, timeout)
|
76
|
-
WaitNamedPipe.call(name, timeout) != 0
|
77
|
-
end
|
29
|
+
API.new('CallNamedPipe', 'PPLPLPL', 'B')
|
30
|
+
API.new('ConnectNamedPipe', 'LP', 'B')
|
31
|
+
API.new('CreateNamedPipe', 'PLLLLLLL', 'L')
|
32
|
+
API.new('CreatePipe', 'PPPL', 'B')
|
33
|
+
API.new('DisconnectNamedPipe', 'L', 'B')
|
34
|
+
API.new('GetNamedPipeHandleState', 'LPPPPPL', 'B')
|
35
|
+
API.new('GetNamedPipeInfo', 'LPPPP', 'B')
|
36
|
+
API.new('PeekNamedPipe', 'LPLPPP', 'B')
|
37
|
+
API.new('SetNamedPipeHandleState', 'LPPP', 'B')
|
38
|
+
API.new('TransactNamedPipe', 'LPLPLPP', 'B')
|
39
|
+
API.new('WaitNamedPipe', 'PL', 'B')
|
78
40
|
end
|
79
41
|
end
|