class Fzeet::Windows::HTMLDocument2
Attributes
handlers[R]
Public Instance Methods
all()
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 221 def all pdisp = nil FFI::MemoryPointer.new(:pointer) { |pdisp| get_all(pdisp) disp = Dispatch.new(pdisp.read_pointer) return disp.QueryInstance(HTMLElementCollection) } ensure pdisp.Release if pdisp end
createElement(tag)
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 237 def createElement(tag) bstr = nil FFI::MemoryPointer.new(:pointer) { |pelem| old_createElement(bstr = Windows.SysAllocString("#{tag}\0".encode('utf-16le')), pelem) return HTMLElement.new(pelem.read_pointer) } ensure Windows.SysFreeString(bstr) end
Also aliased as: old_createElement
on(event, &block)
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 134 def on(event, &block) _event, _block = if event == :ready [:readystatechange, -> *args { next unless readyState == 'complete'; block.(*args) }] else [event, block] end ((@handlers ||= {})[_event] ||= []) << _block @dcallbacks ||= [] send("put_on#{_event}", VARIANT.new.tap { |v| v[:vt] = VT_DISPATCH v[:pdispVal] = @dcallbacks.push(DCallback.new.tap { |dcb| dcb.instance_variable_set(:@document, self) dcb.instance_variable_set(:@event, _event) def dcb.Invoke(*args) @document.handlers[@event].each { |handler| (handler.arity == 0) ? handler.call : handler.call(*args) } S_OK end }).last }) unless @handlers[_event].length > 1 self end
parentWindow()
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 164 def parentWindow FFI::MemoryPointer.new(:pointer) { |pwindow| get_parentWindow(pwindow) return HTMLWindow2.new(pwindow.read_pointer) } end
Also aliased as: window
readyState()
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 213 def readyState FFI::MemoryPointer.new(:pointer) { |pstate| get_readyState(pstate) return Windows.WCSTOMBS(pstate.read_pointer) } end
request()
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 177 def request disp = nil window.QueryInstance(HTMLWindow5) { |htmlwindow5| disp = Dispatch.new(VARIANT.new.tap { |v| htmlwindow5.get_XMLHttpRequest(v) }[:pdispVal]) disp.QueryInstance(HTMLXMLHttpRequestFactory) { |factory| FFI::MemoryPointer.new(:pointer) { |prequest| factory.create(prequest) return HTMLXMLHttpRequest.new(prequest.read_pointer) } } } ensure disp.Release if disp end
request=(enabled)
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 175 def request=(enabled) Windows.DetonateHresult(:CoInternetSetFeatureEnabled, FEATURE_XMLHTTP, SET_FEATURE_ON_PROCESS, (enabled) ? 1 : 0) end
request?()
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 174 def request?; Windows.CoInternetIsFeatureEnabled(FEATURE_XMLHTTP, GET_FEATURE_FROM_PROCESS) == S_OK end
xrequest()
click to toggle source
# File lib/fzeet/windows/mshtml/Common.rb, line 195 def xrequest disp = nil window.QueryInstance(HTMLWindow6) { |htmlwindow6| disp = Dispatch.new(VARIANT.new.tap { |v| htmlwindow6.get_XDomainRequest(v) }[:pdispVal]) disp.QueryInstance(HTMLXDomainRequestFactory) { |factory| FFI::MemoryPointer.new(:pointer) { |pxrequest| factory.create(pxrequest) return HTMLXDomainRequest.new(pxrequest.read_pointer) } } } ensure disp.Release if disp end