lib/watir/win32.rb in watir-1.6.2 vs lib/watir/win32.rb in watir-1.6.5
- old
+ new
@@ -1,29 +1,36 @@
-module Watir
- module Win32
- # this will find the IEDialog.dll file in its build location
- @@iedialog_file = (File.expand_path(File.dirname(__FILE__) + '/..') + "/watir/IEDialog/Release/IEDialog.dll").gsub('/', '\\')
-
- GetUnknown = Win32API.new(@@iedialog_file, 'GetUnknown', ['l', 'p'], 'v')
- User32 = DL.dlopen('user32')
- FindWindowEx = User32['FindWindowEx', 'LLLpp']
- # method for this found in wet-winobj/wet/winobjects/WinUtils.rb
- GetWindow = User32['GetWindow', 'ILL']
-
- ## GetWindows Constants
- GW_HWNDFIRST = 0
- GW_HWNDLAST = 1
- GW_HWNDNEXT = 2
- GW_HWNDPREV = 3
- GW_OWNER = 4
- GW_CHILD = 5
- GW_ENABLEDPOPUP = 6
- GW_MAX = 6
-
- IsWindow = User32['IsWindow', 'II']
- # Does the window with the specified window handle (hwnd) exist?
- def self.window_exists? hwnd
- rtn, junk = IsWindow[hwnd]
- rtn == 1
- end
- end
+module Watir
+ module Win32
+ # this will find the IEDialog.dll file in its build location
+ @@iedialog_file = (File.expand_path(File.dirname(__FILE__) + '/..') + "/watir/IEDialog/Release/IEDialog.dll").gsub('/', '\\')
+
+ GetUnknown = Win32API.new(@@iedialog_file, 'GetUnknown', ['l', 'p'], 'v')
+ User32 = DL.dlopen('user32')
+ if RUBY_VERSION =~ /^1\.8/
+ FindWindowEx = User32['FindWindowEx', 'LLLpp']
+ # method for this found in wet-winobj/wet/winobjects/WinUtils.rb
+ GetWindow = User32['GetWindow', 'ILL']
+ IsWindow = User32['IsWindow', 'II']
+ else
+ FindWindowEx = GetWindow = IsWindow = lambda do |*args|
+ raise NotImplementedError, "1.9's DL API not compatible with 1.8, see http://www.ruby-forum.com/topic/138277"
+ end
+ end
+
+ ## GetWindows Constants
+ GW_HWNDFIRST = 0
+ GW_HWNDLAST = 1
+ GW_HWNDNEXT = 2
+ GW_HWNDPREV = 3
+ GW_OWNER = 4
+ GW_CHILD = 5
+ GW_ENABLEDPOPUP = 6
+ GW_MAX = 6
+
+
+ # Does the window with the specified window handle (hwnd) exist?
+ def self.window_exists? hwnd
+ rtn, junk = IsWindow[hwnd]
+ rtn == 1
+ end
+ end
end
\ No newline at end of file