windows-pr 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,13 @@
1
+ = 1.0.1 - 9-Feb-2009
2
+ * Added the Windows::Window::Menu module.
3
+ * Added the Windows::Window::Classes module.
4
+ * Added tests for several Windows::Window::XXX modules that weren't
5
+ previously covered.
6
+ * Now properly wraps some methods in the Windows::Network::Winsock module
7
+ that weren't supported on Windows 2000.
8
+ * Added the IsWow64Process function to the Windows::Process module.
9
+ * Added the windows_64? helper method to the Windows::Process module.
10
+
1
11
  = 1.0.0 - 5-Feb-2009
2
12
  * Fixed the prototype for DuplicateHandle() in the Windows::Handle module.
3
13
 
data/MANIFEST CHANGED
@@ -56,7 +56,9 @@ lib/windows/network/winsock.rb
56
56
 
57
57
  lib/windows/ntfs/winternl.rb
58
58
 
59
+ lib/windows/window/classes.rb
59
60
  lib/windows/window/dialog.rb
61
+ lib/windows/window/menu.rb
60
62
  lib/windows/window/message.rb
61
63
  lib/windows/window/properties.rb
62
64
  lib/windows/window/timer.rb
data/Rakefile CHANGED
@@ -5,18 +5,22 @@ include Config
5
5
 
6
6
  desc "Install the windows-pr package (non-gem)"
7
7
  task :install do
8
- sitelibdir = CONFIG["sitelibdir"]
9
- installdir = File.join(sitelibdir, 'windows')
10
- installdir_msvcrt = File.join(installdir, 'msvcrt')
11
- installdir_gdi = File.join(installdir, 'gdi')
12
- installdir_com = File.join(installdir, 'com')
8
+ sitelibdir = CONFIG["sitelibdir"]
9
+ installdir = File.join(sitelibdir, 'windows')
10
+ installdir_msvcrt = File.join(installdir, 'msvcrt')
11
+ installdir_gdi = File.join(installdir, 'gdi')
12
+ installdir_com = File.join(installdir, 'com')
13
13
  installdir_network = File.join(installdir, 'network')
14
+ installdir_window = File.join(installdir, 'window')
15
+ installdir_ntfs = File.join(installdir, 'ntfs')
14
16
 
15
17
  FileUtils.mkdir_p(installdir)
16
18
  FileUtils.mkdir_p(installdir_msvcrt)
17
19
  FileUtils.mkdir_p(installdir_gdi)
18
20
  FileUtils.mkdir_p(installdir_com)
19
21
  FileUtils.mkdir_p(installdir_network)
22
+ FileUtils.mkdir_p(installdir_window)
23
+ FileUtils.mkdir_p(installdir_ntfs)
20
24
 
21
25
  Dir["lib/windows/*.rb"].each{ |file|
22
26
  FileUtils.cp(file, installdir, :verbose => true)
@@ -36,7 +40,15 @@ task :install do
36
40
 
37
41
  Dir["lib/windows/network/*.rb"].each{ |file|
38
42
  FileUtils.cp(file, installdir_network, :verbose => true)
39
- }
43
+ }
44
+
45
+ Dir["lib/windows/window/*.rb"].each{ |file|
46
+ FileUtils.cp(file, installdir_window, :verbose => true)
47
+ }
48
+
49
+ Dir["lib/windows/ntfs/*.rb"].each{ |file|
50
+ FileUtils.cp(file, installdir_ntfs, :verbose => true)
51
+ }
40
52
  end
41
53
 
42
54
  desc "Install the windows-pr package as a gem"
@@ -15,6 +15,7 @@ UINT => 'I'
15
15
  VOID => 'V'
16
16
  WORD => 'I'
17
17
  LPVOID => 'L' (or 'P')
18
+ CALLBACK => 'K'
18
19
 
19
20
  = C Data Types
20
21
  void => 'V'
@@ -37,16 +37,12 @@ module Windows
37
37
  API.new('closesocket', 'L', 'I', 'ws2_32')
38
38
  API.new('connect', 'LPI', 'I', 'ws2_32')
39
39
  API.new('EnumProtocols', 'PPP', 'I', 'mswsock')
40
- API.new('freeaddrinfo', 'P', 'V', 'ws2_32')
41
- API.new('FreeAddrInfoW', 'P', 'V', 'ws2_32')
42
40
  API.new('GetAcceptExSockaddrs', 'PLLLPPPP', 'V', 'mswsock')
43
41
  API.new('GetAddressByName', 'LPPPLPPPPP', 'V', 'mswsock')
44
- API.new('getaddrinfo', 'PPPP', 'I', 'ws2_32')
45
42
  API.new('gethostbyaddr', 'PII', 'L', 'ws2_32')
46
43
  API.new('gethostbyname', 'P', 'L', 'ws2_32')
47
44
  API.new('gethostname', 'PI', 'I', 'ws2_32')
48
45
  API.new('GetNameByType', 'PPL', 'I', 'mswsock')
49
- API.new('getnameinfo', 'PLPLPLI', 'I', 'ws2_32')
50
46
  API.new('getpeername', 'LPP', 'I', 'ws2_32')
51
47
  API.new('getprotobyname', 'P', 'L', 'ws2_32')
52
48
  API.new('getprotobynumber', 'L', 'L', 'ws2_32')
@@ -104,7 +100,11 @@ module Windows
104
100
  begin
105
101
  API.new('ConnectEx', 'LPIPLPP', 'B', 'mswsock')
106
102
  API.new('DisconnectEx', 'LPLL', 'B', 'mswsock')
103
+ API.new('freeaddrinfo', 'P', 'V', 'ws2_32')
104
+ API.new('FreeAddrInfoW', 'P', 'V', 'ws2_32')
105
+ API.new('getaddrinfo', 'PPPP', 'I', 'ws2_32')
107
106
  API.new('GetAddrInfoW', 'PPPP', 'I', 'mswsock')
107
+ API.new('getnameinfo', 'PLPLPLI', 'I', 'ws2_32')
108
108
  API.new('GetNameInfoW', 'PLPLPLI', 'I', 'ws2_32')
109
109
  rescue Win32::API::LoadLibraryError
110
110
  # Do nothing, not supported on your platform.
@@ -9,6 +9,8 @@ module Windows
9
9
  API.auto_constant = true
10
10
  API.auto_method = true
11
11
  API.auto_unicode = true
12
+
13
+ # Process access rights
12
14
 
13
15
  PROCESS_ALL_ACCESS = 0x1F0FFF
14
16
  PROCESS_CREATE_PROCESS = 0x0080
@@ -26,6 +28,8 @@ module Windows
26
28
  SYNCHRONIZE = 1048576
27
29
  STILL_ACTIVE = 259
28
30
 
31
+ # Process priority flags
32
+
29
33
  ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000
30
34
  BELOW_NORMAL_PRIORITY_CLASS = 0x00004000
31
35
  HIGH_PRIORITY_CLASS = 0x00000080
@@ -34,6 +38,7 @@ module Windows
34
38
  REALTIME_PRIORITY_CLASS = 0x00000100
35
39
 
36
40
  # Process creation flags
41
+
37
42
  CREATE_BREAKAWAY_FROM_JOB = 0x01000000
38
43
  CREATE_DEFAULT_ERROR_MODE = 0x04000000
39
44
  CREATE_NEW_CONSOLE = 0x00000010
@@ -96,12 +101,29 @@ module Windows
96
101
  API.new('TerminateProcess', 'LL', 'B')
97
102
  API.new('WaitForInputIdle', 'LL', 'L', 'user32')
98
103
  API.new('WTSEnumerateProcesses', 'LLLPP', 'B', 'wtsapi32')
99
-
104
+
100
105
  begin
101
106
  API.new('GetProcessId', 'L', 'L')
102
107
  API.new('GetProcessHandleCount', 'LP', 'B')
108
+ API.new('IsWow64Process', 'LP', 'B')
103
109
  rescue Win32::API::LoadLibraryError
104
110
  # Windows XP or later
105
111
  end
112
+
113
+ # Helper method to determine if you're on a 64 bit version of Windows
114
+ def windows_64?
115
+ bool = false
116
+
117
+ if defined? IsWow64Process
118
+ buf = 0.chr * 4
119
+ if IsWow64Process(GetCurrentProcess(), buf)
120
+ if buf.unpack('I')[0] == 1
121
+ bool = true
122
+ end
123
+ end
124
+ end
125
+
126
+ bool
127
+ end
106
128
  end
107
129
  end
@@ -0,0 +1,48 @@
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Window
5
+ module Classes
6
+ API.auto_namespace = 'Windows::Window::Classes'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = true
10
+
11
+ # Class Field Offsets
12
+
13
+ GCL_MENUNAME = -8
14
+ GCL_HBRBACKGROUND = -10
15
+ GCL_HCURSOR = -12
16
+ GCL_HICON = -14
17
+ GCL_HMODULE = -16
18
+ GCL_CBWNDEXTRA = -18
19
+ GCL_CBCLSEXTRA = -20
20
+ GCL_WNDPROC = -24
21
+ GCL_STYLE = -26
22
+ GCW_ATOM = -32
23
+
24
+ # Window Field Offsets
25
+
26
+ GWL_WNDPROC = -4
27
+ GWL_HINSTANCE = -6
28
+ GWL_HWNDPARENT = -8
29
+ GWL_STYLE = -16
30
+ GWL_EXSTYLE = -20
31
+ GWL_USERDATA = -21
32
+ GWL_ID = -12
33
+
34
+ API.new('GetClassInfo', 'LPP', 'B', 'user32')
35
+ API.new('GetClassInfoEx', 'LPP', 'B', 'user32')
36
+ API.new('GetClassLong', 'LI', 'L', 'user32')
37
+ API.new('GetClassName', 'LPI', 'I', 'user32')
38
+ API.new('GetClassWord', 'LI', 'L', 'user32')
39
+ API.new('GetWindowLong', 'LI', 'L', 'user32')
40
+ API.new('RegisterClass', 'P', 'L', 'user32')
41
+ API.new('RegisterClassEx', 'P', 'L', 'user32')
42
+ API.new('SetClassLong', 'LIL', 'L', 'user32')
43
+ API.new('SetClassWord', 'LIL', 'L', 'user32')
44
+ API.new('SetWindowLong', 'LIL', 'L', 'user32')
45
+ API.new('UnregisterClass', 'PL', 'B', 'user32')
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,100 @@
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Window
5
+ module Menu
6
+ API.auto_namespace = 'Windows::Window::Menu'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = true
10
+
11
+ # Menu Flags
12
+
13
+ MF_INSERT = 0x00000000
14
+ MF_CHANGE = 0x00000080
15
+ MF_APPEND = 0x00000100
16
+ MF_DELETE = 0x00000200
17
+ MF_REMOVE = 0x00001000
18
+ MF_BYCOMMAND = 0x00000000
19
+ MF_BYPOSITION = 0x00000400
20
+ MF_SEPARATOR = 0x00000800
21
+ MF_ENABLED = 0x00000000
22
+ MF_GRAYED = 0x00000001
23
+ MF_DISABLED = 0x00000002
24
+ MF_UNCHECKED = 0x00000000
25
+ MF_CHECKED = 0x00000008
26
+ MF_USECHECKBITMAPS = 0x00000200
27
+ MF_STRING = 0x00000000
28
+ MF_BITMAP = 0x00000004
29
+ MF_OWNERDRAW = 0x00000100
30
+ MF_POPUP = 0x00000010
31
+ MF_MENUBARBREAK = 0x00000020
32
+ MF_MENUBREAK = 0x00000040
33
+ MF_UNHILITE = 0x00000000
34
+ MF_HILITE = 0x00000080
35
+ MF_DEFAULT = 0x00001000
36
+ MF_SYSMENU = 0x00002000
37
+ MF_HELP = 0x00004000
38
+ MF_RIGHTJUSTIFY = 0x00004000
39
+ MF_MOUSESELECT = 0x00008000
40
+ MF_END = 0x00000080
41
+
42
+ # System Objects
43
+
44
+ OBJID_WINDOW = 0x00000000
45
+ OBJID_SYSMENU = 0xFFFFFFFF
46
+ OBJID_TITLEBAR = 0xFFFFFFFE
47
+ OBJID_MENU = 0xFFFFFFFD
48
+ OBJID_CLIENT = 0xFFFFFFFC
49
+ OBJID_VSCROLL = 0xFFFFFFFB
50
+ OBJID_HSCROLL = 0xFFFFFFFA
51
+ OBJID_SIZEGRIP = 0xFFFFFFF9
52
+ OBJID_CARET = 0xFFFFFFF8
53
+ OBJID_CURSOR = 0xFFFFFFF7
54
+ OBJID_ALERT = 0xFFFFFFF6
55
+ OBJID_SOUND = 0xFFFFFFF5
56
+ OBJID_QUERYCLASSNAMEIDX = 0xFFFFFFF4
57
+ OBJID_NATIVEOM = 0xFFFFFFF0
58
+
59
+ API.new('AppendMenu', 'LIPP', 'B', 'user32')
60
+ API.new('CheckMenuItem', 'LII', 'L', 'user32')
61
+ API.new('CheckMenuRadioItem', 'LIIII', 'B', 'user32')
62
+ API.new('CreateMenu', 'V', 'L', 'user32')
63
+ API.new('CreatePopupMenu', 'V', 'L', 'user32')
64
+ API.new('DeleteMenu', 'LII', 'B', 'user32')
65
+ API.new('DestroyMenu', 'L', 'B', 'user32')
66
+ API.new('DrawMenuBar', 'L', 'B', 'user32')
67
+ API.new('EnableMenuItem', 'LII', 'B', 'user32')
68
+ API.new('EndMenu', 'V', 'B', 'user32')
69
+ API.new('GetMenu', 'L', 'L', 'user32')
70
+ API.new('GetMenuBarInfo', 'LLLP', 'B', 'user32')
71
+ API.new('GetMenuCheckMarkDimensions', 'V', 'L', 'user32')
72
+ API.new('GetMenuDefaultItem', 'LII', 'I', 'user32')
73
+ API.new('GetMenuInfo', 'LP', 'B', 'user32')
74
+ API.new('GetMenuItemCount', 'L', 'I', 'user32')
75
+ API.new('GetMenuItemID', 'LI', 'I', 'user32')
76
+ API.new('GetMenuItemInfo', 'LIIP', 'B', 'user32')
77
+ API.new('GetMenuItemRect', 'LLIP', 'B', 'user32')
78
+ API.new('GetMenuState', 'LLI', 'I', 'user32')
79
+ API.new('GetMenuString', 'LIPII', 'I', 'user32')
80
+ API.new('GetSubMenu', 'LI', 'L', 'user32')
81
+ API.new('GetSystemMenu', 'LI', 'L', 'user32')
82
+ API.new('HiliteMenuItem', 'LLII', 'B', 'user32')
83
+ API.new('InsertMenu', 'LIIPP', 'B', 'user32')
84
+ API.new('InsertMenuItem', 'LIIP', 'B', 'user32')
85
+ API.new('IsMenu', 'L', 'B', 'user32')
86
+ API.new('LoadMenu', 'LP', 'L', 'user32')
87
+ API.new('LoadMenuIndirect', 'P', 'L', 'user32')
88
+ API.new('MenuItemFromPoint', 'LLP', 'I', 'user32')
89
+ API.new('ModifyMenu', 'LIIPP', 'B', 'user32')
90
+ API.new('RemoveMenu', 'LII', 'B', 'user32')
91
+ API.new('SetMenu', 'LL', 'B', 'user32')
92
+ API.new('SetMenuDefaultItem', 'LLL', 'B', 'user32')
93
+ API.new('SetMenuInfo', 'LP', 'B', 'user32')
94
+ API.new('SetMenuItemBitmaps', 'LIILL', 'B', 'user32')
95
+ API.new('SetMenuItemInfo', 'LIIP', 'B', 'user32')
96
+ API.new('TrackPopupMenu', 'LIIIILP', 'B', 'user32')
97
+ API.new('TrackPopupMenuEx', 'LIIILP', 'B', 'user32')
98
+ end
99
+ end
100
+ end
@@ -261,7 +261,6 @@ module Windows
261
261
  end
262
262
 
263
263
  API.new('BroadcastSystemMessage', 'LPILL', 'L', 'user32')
264
- API.new('BroadcastSystemMessageEx', 'LPILLP', 'L', 'user32')
265
264
  API.new('DispatchMessage', 'P', 'L', 'user32')
266
265
  API.new('GetInputState', 'V', 'B', 'user32')
267
266
  API.new('GetMessage', 'PLII', 'B', 'user32')
@@ -284,6 +283,12 @@ module Windows
284
283
  API.new('SetMessageExtraInfo', 'L', 'L', 'user32')
285
284
  API.new('TranslateMessage', 'P', 'B', 'user32')
286
285
  API.new('WaitMessage', 'V', 'B', 'user32')
286
+
287
+ begin
288
+ API.new('BroadcastSystemMessageEx', 'LPILLP', 'L', 'user32')
289
+ rescue Win32::API::LoadLibraryError
290
+ # Windows XP or later
291
+ end
287
292
  end
288
293
  end
289
294
  end
@@ -9,8 +9,8 @@ module Windows
9
9
  API.auto_unicode = false
10
10
 
11
11
  API.new('KillTimer', 'LP', 'B', 'user32')
12
- API.new('QueryPerformanceCounter', 'P', 'B', 'user32')
13
- API.new('QueryPerformanceFrequency', 'P', 'B', 'user32')
12
+ API.new('QueryPerformanceCounter', 'P', 'B')
13
+ API.new('QueryPerformanceFrequency', 'P', 'B')
14
14
  API.new('SetTimer', 'LIIK', 'P', 'user32')
15
15
  end
16
16
  end
@@ -0,0 +1,15 @@
1
+ #####################################################################
2
+ # tc_com_automation.rb
3
+ #
4
+ # Test case for the Windows::COM::Automation module.
5
+ #####################################################################
6
+ require 'windows/com/automation'
7
+ require 'test/unit'
8
+
9
+ class TC_Windows_COM_Automation < Test::Unit::TestCase
10
+ include Windows::COM::Automation
11
+
12
+ def test_method_constants
13
+ assert_respond_to(self, :BstrFromVector)
14
+ end
15
+ end
@@ -0,0 +1,34 @@
1
+ #####################################################################
2
+ # tc_network_winsock.rb
3
+ #
4
+ # Test case for the Windows::Winsock module.
5
+ #####################################################################
6
+ require 'windows/network/winsock'
7
+ require 'test/unit'
8
+
9
+ class WinsockFoo
10
+ include Windows::Network::Winsock
11
+ end
12
+
13
+ class TC_Windows_Network_Winsock < Test::Unit::TestCase
14
+ def setup
15
+ @foo = WinsockFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(0, WinsockFoo::NS_DEFAULT)
20
+ end
21
+
22
+ def test_method_constants
23
+ assert_not_nil(WinsockFoo::GetTypeByName)
24
+ end
25
+
26
+ def test_method_mixins
27
+ assert_respond_to(@foo, :gethostbyname)
28
+ assert_respond_to(@foo, :GetTypeByName)
29
+ end
30
+
31
+ def teardown
32
+ @foo = nil
33
+ end
34
+ end
data/test/tc_process.rb CHANGED
@@ -6,24 +6,19 @@
6
6
  require 'windows/process'
7
7
  require 'test/unit'
8
8
 
9
- class ProcessFoo
10
- include Windows::Process
11
- end
12
-
13
9
  class TC_Windows_Process < Test::Unit::TestCase
14
- def setup
15
- @foo = ProcessFoo.new
16
- end
10
+ include Windows::Process
17
11
 
18
- def test_numeric_constants
19
- assert_equal(0x1F0FFF, ProcessFoo::PROCESS_ALL_ACCESS)
12
+ def test_constants
13
+ assert_equal(0x1F0FFF, PROCESS_ALL_ACCESS)
20
14
  end
21
15
 
22
- def test_method_constants
23
- assert_not_nil(ProcessFoo::CreateProcess)
16
+ def test_methods
17
+ assert_respond_to(self, :CreateProcess)
24
18
  end
25
19
 
26
- def teardown
27
- @foo = nil
20
+ def test_helper_methods
21
+ assert_respond_to(self, :windows_64?)
22
+ assert_equal(true, [true, false].include?(windows_64?))
28
23
  end
29
24
  end
@@ -0,0 +1,33 @@
1
+ #####################################################################
2
+ # tc_window_classes.rb
3
+ #
4
+ # Test case for the Windows::Window::Classes module.
5
+ #####################################################################
6
+ require 'windows/window/classes'
7
+ require 'test/unit'
8
+
9
+ class WindowClassesFoo
10
+ include Windows::Window::Classes
11
+ end
12
+
13
+ class TC_Windows_Window_Classes < Test::Unit::TestCase
14
+ def setup
15
+ @foo = WindowClassesFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(-8, WindowClassesFoo::GCL_MENUNAME)
20
+ end
21
+
22
+ def test_method_constants
23
+ assert_not_nil(WindowClassesFoo::GetClassInfo)
24
+ end
25
+
26
+ def test_method_mixin
27
+ assert_respond_to(@foo, :GetClassInfo)
28
+ end
29
+
30
+ def teardown
31
+ @foo = nil
32
+ end
33
+ end
@@ -0,0 +1,33 @@
1
+ #####################################################################
2
+ # tc_window_dialog.rb
3
+ #
4
+ # Test case for the Windows::Window::Dialog module.
5
+ #####################################################################
6
+ require 'windows/window/dialog'
7
+ require 'test/unit'
8
+
9
+ class WindowDialogFoo
10
+ include Windows::Window::Dialog
11
+ end
12
+
13
+ class TC_Windows_Window_Dialog < Test::Unit::TestCase
14
+ def setup
15
+ @foo = WindowDialogFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(0, WindowDialogFoo::MB_OK)
20
+ end
21
+
22
+ def test_method_constants
23
+ assert_not_nil(WindowDialogFoo::MessageBox)
24
+ end
25
+
26
+ def test_method_mixin
27
+ assert_respond_to(@foo, :MessageBox)
28
+ end
29
+
30
+ def teardown
31
+ @foo = nil
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ #####################################################################
2
+ # tc_window_menu.rb
3
+ #
4
+ # Test case for the Windows::Window::Menu module.
5
+ #####################################################################
6
+ require 'windows/window/menu'
7
+ require 'test/unit'
8
+
9
+ class WindowMenuFoo
10
+ include Windows::Window::Menu
11
+ end
12
+
13
+ class TC_Windows_Window_Menu < Test::Unit::TestCase
14
+ def setup
15
+ @foo = WindowMenuFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(0, WindowMenuFoo::MF_INSERT)
20
+ end
21
+
22
+ def test_method_constants
23
+ assert_not_nil(WindowMenuFoo::AppendMenu)
24
+ end
25
+
26
+ def teardown
27
+ @foo = nil
28
+ end
29
+ end
@@ -0,0 +1,33 @@
1
+ #####################################################################
2
+ # tc_window_message.rb
3
+ #
4
+ # Test case for the Windows::Window::Message module.
5
+ #####################################################################
6
+ require 'windows/window/message'
7
+ require 'test/unit'
8
+
9
+ class WindowMessageFoo
10
+ include Windows::Window::Message
11
+ end
12
+
13
+ class TC_Windows_Window_Message < Test::Unit::TestCase
14
+ def setup
15
+ @foo = WindowMessageFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(5, WindowMessageFoo::WM_SIZE)
20
+ end
21
+
22
+ def test_method_constants
23
+ assert_not_nil(WindowMessageFoo::PostMessage)
24
+ end
25
+
26
+ def test_method_mixin
27
+ assert_respond_to(@foo, :PostMessage)
28
+ end
29
+
30
+ def teardown
31
+ @foo = nil
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ #####################################################################
2
+ # tc_window_properties.rb
3
+ #
4
+ # Test case for the Windows::Window::Properties module.
5
+ #####################################################################
6
+ require 'windows/window/properties'
7
+ require 'test/unit'
8
+
9
+ class WindowPropertiesFoo
10
+ include Windows::Window::Properties
11
+ end
12
+
13
+ class TC_Windows_Window_Properties < Test::Unit::TestCase
14
+ def setup
15
+ @foo = WindowPropertiesFoo.new
16
+ end
17
+
18
+ def test_method_constants
19
+ assert_not_nil(WindowPropertiesFoo::EnumProps)
20
+ end
21
+
22
+ def test_method_mixin
23
+ assert_respond_to(@foo, :EnumProps)
24
+ end
25
+
26
+ def teardown
27
+ @foo = nil
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ #####################################################################
2
+ # tc_window_timer.rb
3
+ #
4
+ # Test case for the Windows::Window::Timer module.
5
+ #####################################################################
6
+ require 'windows/window/timer'
7
+ require 'test/unit'
8
+
9
+ class WindowTimerFoo
10
+ include Windows::Window::Timer
11
+ end
12
+
13
+ class TC_Windows_Window_Timer < Test::Unit::TestCase
14
+ def setup
15
+ @foo = WindowTimerFoo.new
16
+ end
17
+
18
+ def test_method_constants
19
+ assert_not_nil(WindowTimerFoo::KillTimer)
20
+ end
21
+
22
+ def test_method_mixin
23
+ assert_respond_to(@foo, :KillTimer)
24
+ end
25
+
26
+ def teardown
27
+ @foo = nil
28
+ end
29
+ end
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 = '1.0.0'
5
+ gem.version = '1.0.1'
6
6
  gem.authors = ['Daniel J. Berger', 'Park Heesob']
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: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-02-05 00:00:00 -07:00
13
+ date: 2009-02-09 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -91,13 +91,16 @@ files:
91
91
  - lib/windows/tool_helper.rb
92
92
  - lib/windows/unicode.rb
93
93
  - lib/windows/volume.rb
94
+ - lib/windows/window/classes.rb
94
95
  - lib/windows/window/dialog.rb
96
+ - lib/windows/window/menu.rb
95
97
  - lib/windows/window/message.rb
96
98
  - lib/windows/window/properties.rb
97
99
  - lib/windows/window/timer.rb
98
100
  - lib/windows/window.rb
99
101
  - test/tc_clipboard.rb
100
102
  - test/tc_com.rb
103
+ - test/tc_com_automation.rb
101
104
  - test/tc_console.rb
102
105
  - test/tc_debug.rb
103
106
  - test/tc_device_io.rb
@@ -120,6 +123,7 @@ files:
120
123
  - test/tc_national.rb
121
124
  - test/tc_network_management.rb
122
125
  - test/tc_network_snmp.rb
126
+ - test/tc_network_winsock.rb
123
127
  - test/tc_nio.rb
124
128
  - test/tc_ntfs_winternl.rb
125
129
  - test/tc_path.rb
@@ -138,6 +142,12 @@ files:
138
142
  - test/tc_unicode.rb
139
143
  - test/tc_volume.rb
140
144
  - test/tc_window.rb
145
+ - test/tc_window_classes.rb
146
+ - test/tc_window_dialog.rb
147
+ - test/tc_window_menu.rb
148
+ - test/tc_window_message.rb
149
+ - test/tc_window_properties.rb
150
+ - test/tc_window_timer.rb
141
151
  - CHANGES
142
152
  - doc
143
153
  - lib
@@ -175,6 +185,7 @@ summary: Windows functions and constants bundled via Win32::API
175
185
  test_files:
176
186
  - test/tc_clipboard.rb
177
187
  - test/tc_com.rb
188
+ - test/tc_com_automation.rb
178
189
  - test/tc_console.rb
179
190
  - test/tc_debug.rb
180
191
  - test/tc_device_io.rb
@@ -197,6 +208,7 @@ test_files:
197
208
  - test/tc_national.rb
198
209
  - test/tc_network_management.rb
199
210
  - test/tc_network_snmp.rb
211
+ - test/tc_network_winsock.rb
200
212
  - test/tc_nio.rb
201
213
  - test/tc_ntfs_winternl.rb
202
214
  - test/tc_path.rb
@@ -215,3 +227,9 @@ test_files:
215
227
  - test/tc_unicode.rb
216
228
  - test/tc_volume.rb
217
229
  - test/tc_window.rb
230
+ - test/tc_window_classes.rb
231
+ - test/tc_window_dialog.rb
232
+ - test/tc_window_menu.rb
233
+ - test/tc_window_message.rb
234
+ - test/tc_window_properties.rb
235
+ - test/tc_window_timer.rb