windows-pr 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +4 -0
- data/README +9 -8
- data/doc/conversion_guide.txt +5 -2
- data/lib/windows/process.rb +1 -1
- data/lib/windows/synchronize.rb +4 -0
- data/windows-pr.gemspec +1 -1
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
= 0.8.1 - ???
|
2
|
+
* Added waitable timer functions to the Windows::Synchronize module.
|
3
|
+
* Fixed params 3 and 4 in the CreateProcess function.
|
4
|
+
|
1
5
|
= 0.8.0 - 20-Jan-2008
|
2
6
|
* Added the Windows::COM::Automation module.
|
3
7
|
* Moved Windows::NetworkManagement to Windows::Network::Management.
|
data/README
CHANGED
@@ -86,11 +86,11 @@
|
|
86
86
|
|
87
87
|
== What's the point?
|
88
88
|
I became tired of redefining Windows functions over and over whenever I
|
89
|
-
wanted to use the Win32API
|
90
|
-
have them predefined for me in a
|
89
|
+
wanted to use the Win32API library. I thought it would be very handy to
|
90
|
+
have them predefined for me in a library with convenient wrapper methods
|
91
91
|
to boot.
|
92
92
|
|
93
|
-
While it's true that Moonwolf has a
|
93
|
+
While it's true that Moonwolf has a library on the RAA that includes many
|
94
94
|
of these functions defined already, there are a few issues with it. First,
|
95
95
|
it puts *every* function and constant in one or two files. That's a waste
|
96
96
|
of memory, hard to organize & maintain, and impossible to test. Second,
|
@@ -122,9 +122,9 @@
|
|
122
122
|
|
123
123
|
In other cases library functions are not exported by the dll. For example,
|
124
124
|
my version of shlwapi.dll does not export the PathIsHTMLFile() function,
|
125
|
-
despite being well past the minimum version for that DLL
|
126
|
-
|
127
|
-
|
125
|
+
despite being well past the minimum version for that DLL. There is nothing
|
126
|
+
you or I can do about it short of rebuilding the DLL file from scratch
|
127
|
+
and/or reporting the issue to Microsoft.
|
128
128
|
|
129
129
|
== Supported Platforms
|
130
130
|
I only support the Windows NT family of Windows, and then only Windows
|
@@ -142,5 +142,6 @@
|
|
142
142
|
(C) 2006-2008, Daniel J. Berger
|
143
143
|
All Rights Reserved
|
144
144
|
|
145
|
-
== Author
|
146
|
-
Daniel Berger
|
145
|
+
== Author(s)
|
146
|
+
Daniel Berger
|
147
|
+
Park Heesob
|
data/doc/conversion_guide.txt
CHANGED
@@ -6,7 +6,7 @@ Void: 'V'
|
|
6
6
|
Callback: 'K' # win32-api only
|
7
7
|
|
8
8
|
= Windows Data Types
|
9
|
-
BOOL => 'I'
|
9
|
+
BOOL => 'I' (or 'B', win32-api only)
|
10
10
|
DWORD => 'L'
|
11
11
|
HANDLE => 'L'
|
12
12
|
LPDWORD => 'P' (or 'L')
|
@@ -28,4 +28,7 @@ struct* => 'P'
|
|
28
28
|
|
29
29
|
In practice most LPVOID types should be designated as 'L' because this
|
30
30
|
usually means the function is looking for an address. Check the documentation
|
31
|
-
for details.
|
31
|
+
for details.
|
32
|
+
|
33
|
+
If using the win32-api library, you can use 'B' instead of 'I' for the return
|
34
|
+
type for functions that return a BOOL.
|
data/lib/windows/process.rb
CHANGED
@@ -62,7 +62,7 @@ module Windows
|
|
62
62
|
|
63
63
|
SHUTDOWN_NORETRY = 0x00000001
|
64
64
|
|
65
|
-
API.new('CreateProcess', '
|
65
|
+
API.new('CreateProcess', 'PPPPLLLPPP', 'B')
|
66
66
|
API.new('CreateProcessAsUser', 'LPPLLILPPPP', 'B', 'advapi32')
|
67
67
|
API.new('CreateProcessWithLogonW', 'PPPLPPLLPPP', 'B', 'advapi32')
|
68
68
|
API.new('EnumProcesses', 'PLP', 'B', 'psapi')
|
data/lib/windows/synchronize.rb
CHANGED
@@ -50,9 +50,11 @@ module Windows
|
|
50
50
|
SEMAPHORE_ALL_ACCESS = 0x1F0003
|
51
51
|
SEMAPHORE_MODIFY_STATE = 0x0002
|
52
52
|
|
53
|
+
API.new('CancelWaitableTimer', 'L', 'B')
|
53
54
|
API.new('CreateEvent', 'PIIP', 'L')
|
54
55
|
API.new('CreateMutex', 'PIP', 'L')
|
55
56
|
API.new('CreateSemaphore', 'PLLP', 'L')
|
57
|
+
API.new('CreateWaitableTimer', 'PIP', 'L')
|
56
58
|
API.new('DeleteCriticalSection', 'P', 'V')
|
57
59
|
API.new('EnterCriticalSection', 'P', 'V')
|
58
60
|
API.new('GetOverlappedResult', 'LPPI', 'I')
|
@@ -64,10 +66,12 @@ module Windows
|
|
64
66
|
API.new('OpenEvent', 'LIP', 'L')
|
65
67
|
API.new('OpenMutex', 'LIP', 'L')
|
66
68
|
API.new('OpenSemaphore', 'LIP', 'L')
|
69
|
+
API.new('OpenWaitableTimer', 'LIP', 'L')
|
67
70
|
API.new('ReleaseMutex', 'L', 'B')
|
68
71
|
API.new('ReleaseSemaphore', 'LLP', 'B')
|
69
72
|
API.new('ResetEvent', 'L', 'B')
|
70
73
|
API.new('SetCriticalSectionSpinCount', 'PL', 'V')
|
74
|
+
API.new('SetWaitableTimer', 'LPLKPI', 'B')
|
71
75
|
API.new('SetEvent', 'L', 'B')
|
72
76
|
API.new('TryEnterCriticalSection', 'P', 'B')
|
73
77
|
API.new('WaitForMultipleObjects', 'LPIL', 'L')
|
data/windows-pr.gemspec
CHANGED
@@ -2,7 +2,7 @@ require "rubygems"
|
|
2
2
|
|
3
3
|
spec = Gem::Specification.new do |gem|
|
4
4
|
gem.name = "windows-pr"
|
5
|
-
gem.version = "0.8.
|
5
|
+
gem.version = "0.8.1"
|
6
6
|
gem.author = "Daniel J. Berger"
|
7
7
|
gem.email = "djberg96@gmail.com"
|
8
8
|
gem.homepage = "http://www.rubyforge.org/projects/win32utils"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: windows-pr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-03-27 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|