Module: Win32::CaptureIE::FFI::User32
- Extended by:
- Base
- Included in:
- Browser, ScreenCaptor, Window
- Defined in:
- lib/win32/capture_ie/ffi/user32.rb
Overview
:nodoc:
Constant Summary collapse
- GW_HWNDFIRST =
0- GW_HWNDLAST =
1- GW_HWNDNEXT =
2- GW_HWNDPREV =
3
Class Method Summary collapse
- .each_child_window(hwnd) ⇒ Object
- .get_class_name(hwnd) ⇒ Object
- .get_first_child(hwnd) ⇒ Object
- .get_first_sibling(hwnd) ⇒ Object
- .get_last_sibling(hwnd) ⇒ Object
- .get_next_sibling(hwnd) ⇒ Object
- .get_prev_sibling(hwnd) ⇒ Object
- .get_top_window(hwnd) ⇒ Object
- .get_window(hwnd, cmd) ⇒ Object
- .get_window_rect(hwnd) ⇒ Object
- .with_window_dc(hwnd) ⇒ Object
Methods included from Base
Class Method Details
.each_child_window(hwnd) ⇒ Object
90 91 92 93 94 95 96 97 98 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 90 def each_child_window(hwnd) child = get_first_child(hwnd) if child yield child while child = get_next_sibling(child) yield child end end end |
.get_class_name(hwnd) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 28 def get_class_name(hwnd) buf = "\0" * 255 r = GetClassName(hwnd, buf, buf.length) raise Win32APIError, "GetClassName failed" if r.nil? or r.zero? buf[0...r] end |
.get_first_child(hwnd) ⇒ Object
70 71 72 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 70 def get_first_child(hwnd) get_top_window(hwnd) end |
.get_first_sibling(hwnd) ⇒ Object
74 75 76 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 74 def get_first_sibling(hwnd) get_window(hwnd, GW_HWNDFIRST) end |
.get_last_sibling(hwnd) ⇒ Object
78 79 80 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 78 def get_last_sibling(hwnd) get_window(hwnd, GW_HWNDLAST) end |
.get_next_sibling(hwnd) ⇒ Object
82 83 84 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 82 def get_next_sibling(hwnd) get_window(hwnd, GW_HWNDNEXT) end |
.get_prev_sibling(hwnd) ⇒ Object
86 87 88 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 86 def get_prev_sibling(hwnd) get_window(hwnd, GW_HWNDPREV) end |
.get_top_window(hwnd) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 52 def get_top_window(hwnd) r = GetTopWindow(hwnd) if r.nil? or r.zero? nil else r end end |
.get_window(hwnd, cmd) ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 61 def get_window(hwnd, cmd) r = GetWindow(hwnd, cmd) if r.nil? or r.zero? nil else r end end |
.get_window_rect(hwnd) ⇒ Object
45 46 47 48 49 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 45 def get_window_rect(hwnd) buf = [0, 0, 0, 0].pack("L4") GetWindowRect(hwnd, buf) buf.unpack("L4") end |
.with_window_dc(hwnd) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/win32/capture_ie/ffi/user32.rb', line 35 def with_window_dc(hwnd) hdc = GetWindowDC(hwnd) raise Win32APIError, "GetDC failed" if hdc.nil? or hdc.zero? begin yield hdc ensure ReleaseDC(hwnd, hdc) end end |