summaryrefslogtreecommitdiff
path: root/sample
diff options
context:
space:
mode:
Diffstat (limited to 'sample')
-rw-r--r--sample/all-ruby-quine.rb24
-rw-r--r--sample/coverage.rb2
-rw-r--r--sample/dir.rb11
-rw-r--r--sample/drb/README.rdoc2
-rw-r--r--sample/from.rb2
-rwxr-xr-xsample/mine.rb8
-rw-r--r--sample/mpart.rb44
-rw-r--r--sample/net-imap.rb167
-rw-r--r--sample/trick2015/kinaba/entry.rb4
-rw-r--r--sample/trick2018/02-mame/entry.rb4
-rw-r--r--sample/trick2022/01-tompng/Gemfile2
-rw-r--r--sample/trick2022/01-tompng/Gemfile.lock13
-rw-r--r--sample/trick2022/01-tompng/authors.markdown3
-rw-r--r--sample/trick2022/01-tompng/entry.rb40
-rw-r--r--sample/trick2022/01-tompng/remarks.markdown51
-rw-r--r--sample/trick2022/02-tompng/authors.markdown3
-rw-r--r--sample/trick2022/02-tompng/entry.rb32
-rw-r--r--sample/trick2022/02-tompng/remarks.markdown32
-rw-r--r--sample/trick2022/03-mame/authors.markdown3
-rw-r--r--sample/trick2022/03-mame/entry.rb27
-rw-r--r--sample/trick2022/03-mame/remarks.markdown96
-rw-r--r--sample/trick2022/03-mame/test.txt13
-rw-r--r--sample/trick2022/README.md14
-rw-r--r--sample/uumerge.rb2
-rw-r--r--sample/win32ole/excel1.rb37
-rw-r--r--sample/win32ole/excel2.rb31
-rw-r--r--sample/win32ole/excel3.rb21
-rw-r--r--sample/win32ole/ie.rb12
-rw-r--r--sample/win32ole/ieconst.rb33
-rw-r--r--sample/win32ole/ienavi.rb41
-rw-r--r--sample/win32ole/ienavi2.rb41
-rw-r--r--sample/win32ole/oledirs.rb24
-rw-r--r--sample/win32ole/olegen.rb348
-rw-r--r--sample/win32ole/xml.rb7307
34 files changed, 8290 insertions, 204 deletions
diff --git a/sample/all-ruby-quine.rb b/sample/all-ruby-quine.rb
new file mode 100644
index 0000000000..7686121468
--- /dev/null
+++ b/sample/all-ruby-quine.rb
@@ -0,0 +1,24 @@
+ eval($s=("t='eval($s=('+d=34.chr;s=3
+ 2.chr+$s*i=8;v=$VERSION||eval('begin;v=V
+ ERSION;rescue;v||RUBY_VERSION;end');f=('?'*8
+ +'A|'+'?'*20+'G?c'+'?'*15+'A@CXx@~@_`OpGxCxp@~pO
+ xS|O~G?c?q?xC`AP|q?x_|C_xC_xO@H@cG?G?qA|_|_`GCpOxC|H
+NFccqq@`_|OF@`?q?x_@x_x_`GB`O``O~G?C@qCxCxP@D@|G~C?pO|C?
+ pO|C?AP|A~HNN`ccxC|Q@L@B"+"GpGpc@p?x_`GB`???_@FO|OB@
+ xC|P`@?c?q?HPx@~@_`G@`????@L^`?q?x?xq@|_|O~GC`
+ xA~@_@GBD').unpack('c*');w=4+v.length*u=
+ 15;r=10.chr;j=0;while-24+w*u>i=1+i
+ ;x=i%w;x>0||t=t+d+'+'+r+d;k=
+ i/w%12>2&&x%u>3&&x%u+i
+ /w*11-34+('-._'.
+ index(c=v[
+ x/u,1]
+ )||c.hex +3)*99|
+ |0; k=f [k/6 ][k%
+ 6]; t=t +s[
+ k*j =k+ j,1
+ ]end;pr int (t+
+ d+' ).s pli
+ t.j oin [0,
+ 609 ])# Y.E. '+r)
+ ").split .join)#
diff --git a/sample/coverage.rb b/sample/coverage.rb
index 8e8d6167e2..42ba89fd50 100644
--- a/sample/coverage.rb
+++ b/sample/coverage.rb
@@ -49,7 +49,7 @@ at_exit do
end
end
- open(cfile, "w") do |out|
+ File.open(cfile, "w") do |out|
covs.zip(sources, pcovs).each_with_index do |(cov, line, pcov), idx|
cov += pcov || 0 if cov
cov = (cov ? (cov == 0 ? "#####" : cov.to_s) : "-").rjust(9)
diff --git a/sample/dir.rb b/sample/dir.rb
index 0c55078973..81257cd917 100644
--- a/sample/dir.rb
+++ b/sample/dir.rb
@@ -1,12 +1,7 @@
# directory access
# list all files but .*/*~/*.o
-dirp = Dir.open(".")
-for f in dirp
- case f
- when /\A\./, /~\z/, /\.o\z/
- # do not print
- else
- print f, "\n"
+Dir.foreach(".") do |file|
+ unless file.start_with?('.') or file.end_with?('~', '.o')
+ puts file
end
end
-dirp.close
diff --git a/sample/drb/README.rdoc b/sample/drb/README.rdoc
index fcb4182410..e6b457bc5c 100644
--- a/sample/drb/README.rdoc
+++ b/sample/drb/README.rdoc
@@ -1,6 +1,6 @@
= Sample scripts
-* array and iteretor
+* array and iterator
* darray.rb --- server
* darrayc.rb --- client
diff --git a/sample/from.rb b/sample/from.rb
index db1299c869..0e5a08de5f 100644
--- a/sample/from.rb
+++ b/sample/from.rb
@@ -62,7 +62,7 @@ def from_main
if File.exist?(file)
atime = File.atime(file)
mtime = File.mtime(file)
- open(file, "r") do |f|
+ File.open(file, "r") do |f|
until f.eof?
header = {}
f.each_line do |line|
diff --git a/sample/mine.rb b/sample/mine.rb
index a841d1a60a..77e0204bf6 100755
--- a/sample/mine.rb
+++ b/sample/mine.rb
@@ -1,6 +1,8 @@
#! /usr/bin/ruby -Ku
# -*- coding: utf-8 -*-
+require 'io/console'
+
class Board
def clr
print "\e[2J"
@@ -143,8 +145,8 @@ class Board
end
bd=Board.new(10,10,10)
-system("stty raw -echo")
-begin
+
+IO.console.raw do
loop do
case STDIN.getc
when ?n # new game
@@ -170,7 +172,5 @@ begin
bd.reset
end
end
-ensure
- system("stty -raw echo")
end
print "\n"
diff --git a/sample/mpart.rb b/sample/mpart.rb
index a88eba0ef6..eeb895d3de 100644
--- a/sample/mpart.rb
+++ b/sample/mpart.rb
@@ -2,11 +2,29 @@
# split into multi part
# usage: mpart.rb [-nnn] file..
+class MPart < File
+ def self.new(basename, extname, part, parts)
+ super(sprintf("%s.%s%02d", basename, extname, part), "w").
+ begin_mpart(basename, part, parts)
+ end
+
+ def begin_mpart(basename, part, parts)
+ printf("%s part%02d/%02d\n", basename, part, parts)
+ write("BEGIN--cut here--cut here\n")
+ self
+ end
+
+ def close
+ write("END--cut here--cut here\n")
+ super
+ end
+end
+
lines = 1000
if (ARGV[0] =~ /^-(\d+)$/ )
- lines = $1.to_i;
- ARGV.shift;
+ lines = $1.to_i
+ ARGV.shift
end
basename = ARGV[0]
@@ -14,31 +32,23 @@ extname = "part"
part = 1
line = 0
+ofp = nil
fline = 0
-for i in ifp = open(basename)
- fline = fline + 1
-end
-ifp.close
+File.foreach(basename) {fline += 1}
parts = fline / lines + 1
-for i in ifp = open(basename)
+File.foreach(basename) do |i|
if line == 0
- ofp = open(sprintf("%s.%s%02d", basename, extname, part), "w")
- printf(ofp, "%s part%02d/%02d\n", basename, part, parts)
- ofp.write("BEGIN--cut here--cut here\n")
+ ofp = MPart.new(basename, extname, part, parts)
end
ofp.write(i)
- line = line + 1
- if line >= lines and !ifp.eof?
- ofp.write("END--cut here--cut here\n")
+ line += 1
+ if line >= lines
ofp.close
- part = part + 1
+ part += 1
line = 0
end
end
-ofp.write("END--cut here--cut here\n")
ofp.close
-
-ifp.close
diff --git a/sample/net-imap.rb b/sample/net-imap.rb
deleted file mode 100644
index b93ecb746e..0000000000
--- a/sample/net-imap.rb
+++ /dev/null
@@ -1,167 +0,0 @@
-require 'net/imap'
-require "getoptlong"
-
-$stdout.sync = true
-$port = nil
-$user = ENV["USER"] || ENV["LOGNAME"]
-$auth = "login"
-$ssl = false
-$starttls = false
-
-def usage
- <<EOF
-usage: #{$0} [options] <host>
-
- --help print this message
- --port=PORT specifies port
- --user=USER specifies user
- --auth=AUTH specifies auth type
- --starttls use starttls
- --ssl use ssl
-EOF
-end
-
-begin
- require 'io/console'
-rescue LoadError
- def _noecho(&block)
- system("stty", "-echo")
- begin
- yield STDIN
- ensure
- system("stty", "echo")
- end
- end
-else
- def _noecho(&block)
- STDIN.noecho(&block)
- end
-end
-
-def get_password
- print "password: "
- begin
- return _noecho(&:gets).chomp
- ensure
- puts
- end
-end
-
-def get_command
- printf("%s@%s> ", $user, $host)
- if line = gets
- return line.strip.split(/\s+/)
- else
- return nil
- end
-end
-
-parser = GetoptLong.new
-parser.set_options(['--debug', GetoptLong::NO_ARGUMENT],
- ['--help', GetoptLong::NO_ARGUMENT],
- ['--port', GetoptLong::REQUIRED_ARGUMENT],
- ['--user', GetoptLong::REQUIRED_ARGUMENT],
- ['--auth', GetoptLong::REQUIRED_ARGUMENT],
- ['--starttls', GetoptLong::NO_ARGUMENT],
- ['--ssl', GetoptLong::NO_ARGUMENT])
-begin
- parser.each_option do |name, arg|
- case name
- when "--port"
- $port = arg
- when "--user"
- $user = arg
- when "--auth"
- $auth = arg
- when "--ssl"
- $ssl = true
- when "--starttls"
- $starttls = true
- when "--debug"
- Net::IMAP.debug = true
- when "--help"
- usage
- exit
- end
- end
-rescue
- abort usage
-end
-
-$host = ARGV.shift
-unless $host
- abort usage
-end
-
-imap = Net::IMAP.new($host, :port => $port, :ssl => $ssl)
-begin
- imap.starttls if $starttls
- class << password = method(:get_password)
- alias to_str call
- end
- imap.authenticate($auth, $user, password)
- while true
- cmd, *args = get_command
- break unless cmd
- begin
- case cmd
- when "list"
- for mbox in imap.list("", args[0] || "*")
- if mbox.attr.include?(Net::IMAP::NOSELECT)
- prefix = "!"
- elsif mbox.attr.include?(Net::IMAP::MARKED)
- prefix = "*"
- else
- prefix = " "
- end
- print prefix, mbox.name, "\n"
- end
- when "select"
- imap.select(args[0] || "inbox")
- print "ok\n"
- when "close"
- imap.close
- print "ok\n"
- when "summary"
- unless messages = imap.responses["EXISTS"][-1]
- puts "not selected"
- next
- end
- if messages > 0
- for data in imap.fetch(1..-1, ["ENVELOPE"])
- print data.seqno, ": ", data.attr["ENVELOPE"].subject, "\n"
- end
- else
- puts "no message"
- end
- when "fetch"
- if args[0]
- data = imap.fetch(args[0].to_i, ["RFC822.HEADER", "RFC822.TEXT"])[0]
- puts data.attr["RFC822.HEADER"]
- puts data.attr["RFC822.TEXT"]
- else
- puts "missing argument"
- end
- when "logout", "exit", "quit"
- break
- when "help", "?"
- print <<EOF
-list [pattern] list mailboxes
-select [mailbox] select mailbox
-close close mailbox
-summary display summary
-fetch [msgno] display message
-logout logout
-help, ? display help message
-EOF
- else
- print "unknown command: ", cmd, "\n"
- end
- rescue Net::IMAP::Error
- puts $!
- end
- end
-ensure
- imap.logout
- imap.disconnect
-end
diff --git a/sample/trick2015/kinaba/entry.rb b/sample/trick2015/kinaba/entry.rb
index aa077dc240..2a75888ef5 100644
--- a/sample/trick2015/kinaba/entry.rb
+++ b/sample/trick2015/kinaba/entry.rb
@@ -54,8 +54,8 @@ while 0x00012345 >= $counter
srand +big && $counter >> 0b1
Enumerable
- Fixnum
- Bignum
+ String
+ Struct
Math
Complex
Comparable
diff --git a/sample/trick2018/02-mame/entry.rb b/sample/trick2018/02-mame/entry.rb
index cc4ef9cbc4..ced791aa3d 100644
--- a/sample/trick2018/02-mame/entry.rb
+++ b/sample/trick2018/02-mame/entry.rb
@@ -1,11 +1,11 @@
'';eval(r=%q(->z{r="'';eval(r=\
-%q(#{r}))[%q`#{z}`]";i=-040;30.
+%q(#{r}))[%q`#{z}`]";i=-040;31.
times{|n|(15+n%2*15-n/2).times{
r<<r[i+=(1.-n&2)*(32-n%2*31)]}}
i=r[524,0]=?\0;eval(r[479..-1])
c['"']}))[%q`GFEDCBA"+"[e\"'"'t
kE*;;\";" TRICK2018 ";tb,;{{r
-2E0$ob[us@*0)[90,336])_#i\n}s#i
+2E0$ob[us@*0)[90,336])#_i\n}s#i
0H}>["t]];};o[1,?\n*8];ex"-}eac
1Hl<1[-1]*2*t=n%2];o[14-n,0)mvk
8M$<4,?\n];15.times{|n|;o[35ie2
diff --git a/sample/trick2022/01-tompng/Gemfile b/sample/trick2022/01-tompng/Gemfile
new file mode 100644
index 0000000000..982b9de67f
--- /dev/null
+++ b/sample/trick2022/01-tompng/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'matrix'
diff --git a/sample/trick2022/01-tompng/Gemfile.lock b/sample/trick2022/01-tompng/Gemfile.lock
new file mode 100644
index 0000000000..8bb3c69025
--- /dev/null
+++ b/sample/trick2022/01-tompng/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ matrix (0.4.2)
+
+PLATFORMS
+ x86_64-darwin-20
+
+DEPENDENCIES
+ matrix
+
+BUNDLED WITH
+ 2.3.3
diff --git a/sample/trick2022/01-tompng/authors.markdown b/sample/trick2022/01-tompng/authors.markdown
new file mode 100644
index 0000000000..26ebe24da6
--- /dev/null
+++ b/sample/trick2022/01-tompng/authors.markdown
@@ -0,0 +1,3 @@
+* Tomoya Ishida (tompng)
+ * tomoyapenguin@gmail.com
+ * cctld: jp
diff --git a/sample/trick2022/01-tompng/entry.rb b/sample/trick2022/01-tompng/entry.rb
new file mode 100644
index 0000000000..97beacc684
--- /dev/null
+++ b/sample/trick2022/01-tompng/entry.rb
@@ -0,0 +1,40 @@
+ eval((s=%~c=(0..35
+ ).map{s[2*_1+1]}*'';class$Inte
+ ger;def$quXinclude(Math ;spXo(a)=self*
+ a.pow(87X=h=32.chr;g=PI/480;ls=(sp*31X,89)%89;
+ def$abX+'eval((s=%'+(n=? .next)+s*88.chr+[nXs()=[a
+ =self%X+'.split(',sp*25+'?'+88.chr+');(0..36).mapX89,89-
+ a].miX{s[2*_1].split}',sp*31+".join.tr('$',$/)))"]*$/)Xn;end
+ ;reqX.split$/;trap(:INT){puts;exit};q=->t,i{a,y=((t+i*99)Xuire
+ 'matrX%960). ivmod(80);[(a*(7+i)+i*23)%79+(y+a)/(5+i%4)%2,39Xix';1
+ 5.tiX-y/2]};p=->t,u{a=->b,c{(0..5).sum{(u%2-1)*E**(t*(b+c*_1)*gXmes{
+ |i,*X.i+ i*u+=5+sin(u*u))}};x,z=a[5,3]. 5,3].rect;x+=y.Xv|z=
+ *?!Xi a[19,4];z+=w;r=(4+(x.abs+z.i).ab };t=(0..959).fX..?
+ W,?Xind{|t|(0..29).all?{x,y=q[t,_1];(x 2||h=ls[y][x]X[,*
+ ?]..X[/[^!-}]/]}};h=($**h+h).chr;eval( []} ->(x,yX?};a
+ =(0X,a,b){x=x*36+39.5;y=19.5-y*18;b*=1 |i|((yX..1
+ 34)X-b).ceil..y+b).map{|j|((x-i)/a+(y j)/ .times{X.ma
+ p{zXx,z=p[t,_1];l=u```=0;while``````(l<1)``; u+```=0 ;d=x-y;X.in
+dex(Xl+=(d.abs+(z-w``)``.i).ab``s*1.``1 ;x``,z=y``,w;o[v``=``x.r d.imag/Xc[i+
+15*Xd.abs*l*sin(2*``l-t``*g*80``-_1) l*(``1-l)/``6,a``=l*( -l)**2*0.X_1]
+)};X7,a*2]&&o[v,z,``0.0``3,l**`` ``times``{|i``|(8+i).times{|Xw=*
+MatXj|o[sin(i)/2+````` ```sin( `/2.0`````````)*j/200,j*0.0Xrix
+[*(X5-1,0.02,0.1]``}} ``. q[t,``_1];m``[y][x]= };i=-X0..
+44).X1;$><<(['%%','[H .map{|j|(0..79).map{|k|x=(Xmap{
+ |i,X -39.5)/35.8;y=( i+=1;m[j][k]?h:c[i]):ls[j]X*b|
+ v<<X[k];}*''}*$/<<0) 1)%9 te"`")#qv.jSaL{=;q(Q}4fXa.z
+ ip(Xjs(:#tK`Jm))FKO /A9(2'%iorvf7 eEa0uV xv+Q@qUU](L@&Py .1v'X0..
+ ).suXydSEH{-GI|-5(,z G5evpq,[b50 D[ t {on,I?VStS`?G@LoqFCXm{|j
+ ,k|Xj1.QnxKz!mH%o# )b2Seut,]! 48 lBieJGi 5jeNPD#b}H3X-(p
+ =(iXaVz#8*+US,hgF 5#6]y-` 4hy HN hF75WjD!0IxJ$sX+k)
+ .powX+UP"cNUE9- G< tHvV;Ib <-s U T ? vlE xylg=x#X(i+k
+ ,88)XV9u$9lKb9 @C do7+-w >l { v9 { P l ga%]AK<e&'X+1)*
+ (j||(X4ifK/6S+ k} @@*a} 6rS xn"Q[M 8 `|g>$#BrjXb<<p;
+ 0))}XtbDp'Kc t2 Dat9C s C rL+ g,j]Tf B< eMI+zzkWX;b}]
+ .lup.XtVP<ak IM E/+)B jwv uB (Twqed D* dyf_dT7Xsolve
+ (v);13Xn:8 #_ RiSTO, [Fk m O]O#"+ a_ cT_.X5.time
+ s{c[i+X e5 T`FBEC q*f 2 o@{a<eUG aW PX15*_1]
+ =z[a[_1]X z_@`nll 7F1 2 [=^uS0z^ 6X||w.shif
+ t]}};eval(Xfg K#R N bp-E_Xc)~.split(
+ ?X);(0..36).map{s[2*_1].split}
+ .join.tr('$',$/)))
diff --git a/sample/trick2022/01-tompng/remarks.markdown b/sample/trick2022/01-tompng/remarks.markdown
new file mode 100644
index 0000000000..70601908b7
--- /dev/null
+++ b/sample/trick2022/01-tompng/remarks.markdown
@@ -0,0 +1,51 @@
+### Remarks
+
+Just run it with no argument:
+
+ ruby entry.rb
+
+Or run it with one non-ascii half-width character argument:
+
+ ruby entry.rb ⬮
+ ruby entry.rb 𓆡
+
+I confirmed the following implementations/platforms:
+
+* ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
+* ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-darwin20]
+
+### Description
+
+This program is an aquatic quine.
+Some characters in the code are overwritten with `" "`, but this program can restore the missing parts.
+Every frame of this animation is an executable ruby program that let fishes start swimming again from their current position.
+
+### Internals
+
+#### Error Correction
+
+Error correction is performed for each block of length 135.
+It consists of 89 kinds of characters(`[*('!'..'W'), '[', *(']'..'}')]`) and satisfies the following constraint.
+
+```
+matrix(size: 45x135) * block_vector(size: 135) % 89 == zero_vector(size: 45)
+```
+
+To restore the missing characters in the block, we need to solve a linear equation problem in modulo 89.
+This can be achieved by using bundled gem 'matrix' and overwriting some methods.
+
+```ruby
+require 'matrix'
+matrix = Matrix[[3, 1, 4], [1, 5, 9], [2, 6, 5]]
+class Integer
+ def quo(x) = self * x.pow(87, 89) % 89 # Fermat's little theorem. 89 is a prime number.
+ def abs() = [self % 89, 89 - self % 89].min # To avoid division by multiple of 89.
+end
+answer = matrix.lup.solve([1, 2, 3]) #=> Vector[24, 42, 83]
+(matrix * answer).map { _1 % 89 } #=> Vector[1, 2, 3]
+```
+
+#### Resuming Animation
+
+The entire animation of this fish tank is a loop of 960 frames.
+This program uses position of the floating bubbles to detect current frame number from the executed source code.
diff --git a/sample/trick2022/02-tompng/authors.markdown b/sample/trick2022/02-tompng/authors.markdown
new file mode 100644
index 0000000000..26ebe24da6
--- /dev/null
+++ b/sample/trick2022/02-tompng/authors.markdown
@@ -0,0 +1,3 @@
+* Tomoya Ishida (tompng)
+ * tomoyapenguin@gmail.com
+ * cctld: jp
diff --git a/sample/trick2022/02-tompng/entry.rb b/sample/trick2022/02-tompng/entry.rb
new file mode 100644
index 0000000000..2e2e2bcf74
--- /dev/null
+++ b/sample/trick2022/02-tompng/entry.rb
@@ -0,0 +1,32 @@
+ q=->{!sleep _1/1e2};p=(
+ c=0..2).map{[_1/9r ,0,5**_1.i/3,1,0]}
+ require'socket';puts'op' "en http://localhost:#{(
+ w=TCPServer.new$*[0]||0).addr[1]}";Thread.new{q[2];f=[-1
+ ]*s=3;t=Time.now.to_f;p.select!{0<_1[3]=[_1[3]+_1[4]/8.0,1
+ ].min};9.times{h=p.map{[2**(_1*t.i)/_4**0.5/(1+Math.sin(2*t-
+ 9*_1%2)**32/16),_2+_4*( _3-_2)]};r=[s*3/2,84].min;g=->{x,y=
+(s*(1+_1+1i)/2).rect;x<0 ||x>=s-1||y<0||y>=s-1?0:((l=f[y+1])[
+x+1]*(a=x%1)+(1-a)*l[x] )*(b=y%1)+(1-b)*((l=f[y])[x+1]*a+(1-
+a)*l[x])};f=(1..r).map {|y|(1..r).map{|x|z=1.5+1.5i-3.0*(y
+.i+x)/r;[h.sum{g[_1.*z +_2]}*0.9,1].min}};s=r};c=f.flatten
+redo};loop{s=w.accept ; Thread.new{r=s.gets;h='HTTP/1.1 '+
+"200 OK\r\nContent-" 'T' "ype:text/html\r\n\r\n";r['/ ']?s.
+ <<(h+'<style>ifram' 'e{' 'opacity:0;height:0;}input{wid'+
+ 'th:252px;}</styl' 'e>' '<form target="i"><input src="'+
+ "g#{rand}\" type" '="im' 'age"><iframe name="i"></ifra'+
+ 'me></form>'):r ['/g'] ?(h[/:.+l/]=?:'image/gif';s<<
+ h+'GIF8' '7a'+[84,
+ 84,246,0,*(0..383).map {15*_1. /(383r)**(3-_1%
+ 3)*17}].pack('v3c*'); loop{ s<<[67434785,5,
+ 44,84,84,7,c.map{_1* 127} .each_slice(126
+ ).map{[127,128,*_1 ] .pack'c*'}*'',
+ 1,129].pack('V3x' 'v2na*c2x');q[
+ 5];q.[]1while(r ==r=c)}):(x,y,
+ z=r.scan(/\d+/).map{_1.to_f/
+ 126-1};z&&p<<[rand-0.5,(
+ z=x+y.i)*1.5,z/(z.
+ abs+0.9),0,-p[
+ -3][4]=-1]
+ s.<<h);s
+ .close
+ }}
diff --git a/sample/trick2022/02-tompng/remarks.markdown b/sample/trick2022/02-tompng/remarks.markdown
new file mode 100644
index 0000000000..3b2d3fd84b
--- /dev/null
+++ b/sample/trick2022/02-tompng/remarks.markdown
@@ -0,0 +1,32 @@
+### Remarks
+
+1. Run it with `ruby entry.rb 8080`
+
+2. Open "http://localhost:8080"
+
+3. Click on the screen and interact with it
+
+I confirmed the following implementations/platforms:
+
+* Ruby Version
+ * ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-darwin20]
+* Browser
+ * Chrome(macOS, Android)
+ * Firefox(macOS)
+ * Edge(macOS)
+
+### Description
+
+This program is an HTTP server that provides a fractal creature playground.
+You can see the heartbeat of a mysterious fractal creature. Clicking on the screen will change the shape of the creature.
+Surprisingly, this interactive webpage is built without JavaScript.
+
+### Internals
+
+Fractal: Iterated function system
+Rendering from server: Streaming animated GIF
+Sending click event to server: `<input type="image" src="streaming.gif">` with `<form target="invisible_iframe">`
+
+### Limitations
+
+Does not work on Safari and iOS.
diff --git a/sample/trick2022/03-mame/authors.markdown b/sample/trick2022/03-mame/authors.markdown
new file mode 100644
index 0000000000..0e420fdf5d
--- /dev/null
+++ b/sample/trick2022/03-mame/authors.markdown
@@ -0,0 +1,3 @@
+* Yusuke Endoh
+ * mame@ruby-lang.org
+ * cctld: jp
diff --git a/sample/trick2022/03-mame/entry.rb b/sample/trick2022/03-mame/entry.rb
new file mode 100644
index 0000000000..f24595dfa9
--- /dev/null
+++ b/sample/trick2022/03-mame/entry.rb
@@ -0,0 +1,27 @@
+2022;"#
+
+.chars} {puts'TRICK+2022'
+ \ { ;
+#';$><< b
+ ?!
+};#{s=' ' # 0
+! s[0]? ( b=$<.read ;'
+} ub( ,''}
+';a= ''<<32
+b.lines {puts( ?.. *(
+b.size) .gsub(/./) {
+b.sub!( /^#$`\K(\S)
+ /x,a)?$1:a }
+ .rstrip)}):
+ ( [ 12,1,12,11].
+cycle { | i | t = ( s *
+
+10<<
+10)*
+10+ %(\e[A)*
+10
+10. times{t[i*
+ _1 ] = 'TRICK+2022'[
+ _1 ] };$><<t
+ sleep 1})
+ }"
diff --git a/sample/trick2022/03-mame/remarks.markdown b/sample/trick2022/03-mame/remarks.markdown
new file mode 100644
index 0000000000..c38279f016
--- /dev/null
+++ b/sample/trick2022/03-mame/remarks.markdown
@@ -0,0 +1,96 @@
+Execute the program normally.
+
+```
+$ ruby entry.rb
+```
+
+It shakes a string.
+
+... Wait! This is not all.
+
+Next, please apply "leftward gravity" to each letter in the file.
+IOW, if there is a space to the left of a letter, move it to the left.
+Here, you may want to use the following command.
+
+```
+$ sed "s/ //g" entry.rb | tee up.rb
+```
+
+This program applies "upward gravity" to each letter in an input text.
+The following demo will help you understand what this means.
+
+```
+$ cat test.txt
+$ ruby up.rb test.txt
+```
+
+Now, here's where we come in.
+Please apply "upward gravity" to entry.rb.
+
+```
+$ ruby up.rb entry.rb | tee left.rb
+```
+
+I think that you already noticed that.
+This program applies "leftward gravity" to an input text.
+
+```
+$ cat test.txt
+$ ruby left.rb test.txt
+```
+
+`sed` is no longer required to create `up.rb`; just use `left.rb`.
+
+```
+$ ruby left.rb entry.rb > up.rb
+```
+
+We've come to the final stage.
+Please apply `left.rb` to `left.rb`.
+
+```
+$ ruby left.rb left.rb | tee horizontal.rb
+$ ruby horizontal.rb
+```
+
+Of course, it is also possible to apply `up.rb` to `up.rb`.
+
+```
+$ ruby up.rb up.rb | tee vertical.rb
+$ ruby vertical.rb
+```
+
+Can you tell how they work? Enjoy analyzing!
+
+
+
+---
+Code reading tips (spoiler)
+
+Some code fragments are highly reused between the programs.
+For example, note that this program has one code fragment to input a text
+(`b=$>.read`); `up.rb` and `left.rb` share and use this code fragment.
+Also, `horizontal.rb` and `vertical.rb` share the fragment `puts'TRICK+2022'`.
+Sometimes letters in very distant places are reused all over the place.
+
+Can you tell how it detects if it is already aligned or not yet?
+Here is a simplified version of the gimmick to switch behavior when
+left-aligned:
+
+```
+"\ #{puts('not left-aligned yet')}
+ # {puts('left-aligned')}"
+```
+
+And for top-aligned:
+
+```
+"#
+xx{puts('top-aligned')}
+x#{puts('not top-aligned yet')}
+"
+```
+
+It is also necessary to detect "top-left-aligned" and "left-top-aligned".
+I made tons of subtle adjustments and trial-and-error to create the program.
+I no longer know precisely how it works.
diff --git a/sample/trick2022/03-mame/test.txt b/sample/trick2022/03-mame/test.txt
new file mode 100644
index 0000000000..18802153a9
--- /dev/null
+++ b/sample/trick2022/03-mame/test.txt
@@ -0,0 +1,13 @@
+T
+ R
+ I
+ C
+ K
+ |
+ |
+ |
+ |
+ 2
+ 0
+ 2
+ 2
diff --git a/sample/trick2022/README.md b/sample/trick2022/README.md
new file mode 100644
index 0000000000..3b2af6f86b
--- /dev/null
+++ b/sample/trick2022/README.md
@@ -0,0 +1,14 @@
+This directory contains the award-winning entries of
+the 4th Transcendental Ruby Imbroglio Contest for rubyKaigi (TRICK 2022).
+
+THESE ARE BAD EXAMPLES! You must NOT use them as a sample code.
+
+* 01-tompng/entry.rb: "Best fishbowl" -- Tomoya Ishida (tompng)
+* 02-tompng/entry.rb: "Most interactive code" -- Tomoya Ishida (tompng)
+* 03-mame/entry.rb: "Most anti-gravity" -- Yusuke Endoh
+
+These files are licensed under MIT license.
+
+For the contest outline and other winning entries, see:
+
+https://github.com/tric/trick2022
diff --git a/sample/uumerge.rb b/sample/uumerge.rb
index 2576bcb864..1b81582c24 100644
--- a/sample/uumerge.rb
+++ b/sample/uumerge.rb
@@ -15,7 +15,7 @@ while line = gets()
if out_stdout
out = STDOUT
else
- out = open($file, "w") if $file != ""
+ out = File.open($file, "w") if $file != ""
end
out.binmode
break
diff --git a/sample/win32ole/excel1.rb b/sample/win32ole/excel1.rb
new file mode 100644
index 0000000000..4fe1d0c2a9
--- /dev/null
+++ b/sample/win32ole/excel1.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: false
+require 'win32ole'
+
+application = WIN32OLE.new('Excel.Application')
+
+application.visible = true
+workbook = application.Workbooks.Add();
+worksheet = workbook.Worksheets(1);
+
+=begin
+worksheet.Range("A1:D1").value = ["North","South","East","West"];
+worksheet.Range("A2:B2").value = [5.2, 10];
+
+worksheet.Range("C2").value = 8;
+worksheet.Range("D2").value = 20;
+=end
+
+worksheet.Range("A1:B2").value = [["North","South"],
+ [5.2, 10]];
+
+vals = WIN32OLE_VARIANT.new([["East","West"],
+ [8, 20]],
+ WIN32OLE::VARIANT::VT_ARRAY)
+worksheet.Range("C1:D2").value = vals
+
+range = worksheet.Range("A1:D2");
+range.Select
+chart = workbook.Charts.Add;
+
+workbook.saved = true;
+
+print "Now quit Excel... Please enter."
+gets
+
+application.ActiveWorkbook.Close(0);
+application.Quit();
+
diff --git a/sample/win32ole/excel2.rb b/sample/win32ole/excel2.rb
new file mode 100644
index 0000000000..47a5715f84
--- /dev/null
+++ b/sample/win32ole/excel2.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: false
+require 'win32ole'
+
+# -4100 is the value for the Excel constant xl3DColumn.
+ChartTypeVal = -4100;
+
+# Creates OLE object to Excel
+excel = WIN32OLE.new("excel.application")
+
+# Create and rotate the chart
+excel.visible = true;
+excel.Workbooks.Add();
+excel.Range("a1").value = 3;
+excel.Range("a2").value = 2;
+excel.Range("a3").value = 1;
+excel.Range("a1:a3").Select();
+excelchart = excel.Charts.Add();
+excelchart.type = ChartTypeVal;
+
+i = 0
+i.step(180, 10) do |rot|
+ excelchart.rotation=rot;
+ sleep 0.1
+end
+# Done, bye
+
+print "Now quit Excel... Please enter."
+gets
+
+excel.ActiveWorkbook.Close(0);
+excel.Quit();
diff --git a/sample/win32ole/excel3.rb b/sample/win32ole/excel3.rb
new file mode 100644
index 0000000000..72aee2a929
--- /dev/null
+++ b/sample/win32ole/excel3.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: false
+require 'win32ole'
+
+#application = WIN32OLE.new('Excel.Application.5')
+application = WIN32OLE.new('Excel.Application')
+
+application.visible = true
+workbook = application.Workbooks.Add();
+sheet = workbook.Worksheets(1);
+sheetS = workbook.Worksheets
+puts "The number of sheets is #{sheetS.count}"
+puts "Now add 2 sheets after of `#{sheet.name}`"
+sheetS.add({'count'=>2, 'after'=>sheet})
+puts "The number of sheets is #{sheetS.count}"
+
+print "Now quit Excel... Please enter."
+gets
+
+application.ActiveWorkbook.Close(0);
+application.Quit();
+
diff --git a/sample/win32ole/ie.rb b/sample/win32ole/ie.rb
new file mode 100644
index 0000000000..4db64eed30
--- /dev/null
+++ b/sample/win32ole/ie.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: false
+require 'win32ole'
+url = 'http://www.ruby-lang.org/'
+ie = WIN32OLE.new('InternetExplorer.Application')
+ie.visible = true
+ie.gohome
+print "Now navigate Ruby home page... Please enter."
+gets
+ie.navigate(url)
+print "Now quit Internet Explorer... Please enter."
+gets
+ie.Quit()
diff --git a/sample/win32ole/ieconst.rb b/sample/win32ole/ieconst.rb
new file mode 100644
index 0000000000..363a4f8153
--- /dev/null
+++ b/sample/win32ole/ieconst.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: false
+require 'win32ole'
+
+ie = WIN32OLE.new('InternetExplorer.Application')
+=begin
+WIN32OLE.const_load(ie)
+WIN32OLE.constants.sort.each do |c|
+ puts "#{c} = #{WIN32OLE.const_get(c)}"
+end
+=end
+
+module IE_CONST
+end
+
+WIN32OLE.const_load(ie, IE_CONST)
+IE_CONST.constants.sort.each do |c|
+ puts "#{c} = #{IE_CONST.const_get(c)}"
+end
+
+#------------------------------------------------------------
+# Remark!!! CONSTANTS has not tested enoughly!!!
+# CONSTANTS is alpha release.
+# If there are constants which first letter is not [a-zA-Z],
+# like a '_Foo', then maybe you can access the value by
+# using CONSTANTS['_Foo']
+#------------------------------------------------------------
+IE_CONST::CONSTANTS.each do |k, v|
+ puts "#{k} = #{v}"
+end
+
+puts WIN32OLE::VERSION
+ie.quit
+
diff --git a/sample/win32ole/ienavi.rb b/sample/win32ole/ienavi.rb
new file mode 100644
index 0000000000..5d0536028b
--- /dev/null
+++ b/sample/win32ole/ienavi.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: false
+require 'win32ole'
+
+$urls = []
+
+def navigate(url)
+ $urls << url
+end
+
+def stop_msg_loop
+ puts "Now Stop IE..."
+ $LOOP = false;
+end
+
+def default_handler(event, *args)
+ case event
+ when "BeforeNavigate"
+ puts "Now Navigate #{args[0]}..."
+ end
+end
+
+ie = WIN32OLE.new('InternetExplorer.Application')
+ie.visible = true
+ie.gohome
+
+ev = WIN32OLE_EVENT.new(ie, 'DWebBrowserEvents')
+
+ev.on_event {|*args| default_handler(*args)}
+ev.on_event("NavigateComplete") {|url| navigate(url)}
+ev.on_event("Quit") {|*args| stop_msg_loop}
+
+$LOOP = true
+while ($LOOP)
+ WIN32OLE_EVENT.message_loop
+end
+
+puts "You Navigated the URLs ..."
+$urls.each_with_index do |url, i|
+ puts "(#{i+1}) #{url}"
+end
+
diff --git a/sample/win32ole/ienavi2.rb b/sample/win32ole/ienavi2.rb
new file mode 100644
index 0000000000..3248393077
--- /dev/null
+++ b/sample/win32ole/ienavi2.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: false
+require 'win32ole'
+
+class IEHandler
+ attr_reader :loop
+ def initialize
+ @urls = []
+ @loop = true
+ end
+ def method_missing(event, *args)
+ case event
+ when "BeforeNavigate2"
+ puts "Now Navigate #{args[1]}..."
+ end
+ end
+ def onNavigateComplete2(pdisp, url)
+ @urls << url
+ end
+ def onOnQuit
+ puts "Now Stop IE..."
+ @loop = false
+ end
+ def put_urls
+ puts "You Navigated the URLs ..."
+ @urls.each_with_index do |url, i|
+ puts "(#{i+1}) #{url}"
+ end
+ end
+end
+
+ie = WIN32OLE.new('InternetExplorer.Application')
+ie.visible = true
+ie.gohome
+
+ev = WIN32OLE_EVENT.new(ie)
+ev.handler = IEHandler.new
+
+while (ev.handler.loop)
+ WIN32OLE_EVENT.message_loop
+end
+ev.handler.put_urls
diff --git a/sample/win32ole/oledirs.rb b/sample/win32ole/oledirs.rb
new file mode 100644
index 0000000000..e52a0fd7ac
--- /dev/null
+++ b/sample/win32ole/oledirs.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: false
+#
+# You need WSH(Windows Scripting Host) to run this script.
+#
+
+require "win32ole"
+
+def listup(items)
+# items.each do |i|
+ for i in items
+ puts i.name
+ end
+end
+
+fs = WIN32OLE.new("Scripting.FileSystemObject")
+
+folder = fs.GetFolder(".")
+
+puts "--- folder of #{folder.path} ---"
+listup(folder.SubFolders)
+
+puts "--- files of #{folder.path} ---"
+listup(folder.Files)
+
diff --git a/sample/win32ole/olegen.rb b/sample/win32ole/olegen.rb
new file mode 100644
index 0000000000..9398194cf1
--- /dev/null
+++ b/sample/win32ole/olegen.rb
@@ -0,0 +1,348 @@
+# frozen_string_literal: false
+#-----------------------------
+# olegen.rb
+# $Revision$
+#-----------------------------
+
+require 'win32ole'
+
+class WIN32COMGen
+ def initialize(typelib)
+ @typelib = typelib
+ @receiver = ""
+ end
+ attr_reader :typelib
+
+ def ole_classes(typelib)
+ begin
+ @ole = WIN32OLE.new(typelib)
+ [@ole.ole_obj_help]
+ rescue
+ WIN32OLE_TYPE.ole_classes(typelib)
+ end
+ end
+
+ def generate_args(method)
+ args = []
+ if method.size_opt_params >= 0
+ size_required_params = method.size_params - method.size_opt_params
+ else
+ size_required_params = method.size_params - 1
+ end
+ size_required_params.times do |i|
+ if method.params[i] && method.params[i].optional?
+ args.push "arg#{i}=nil"
+ else
+ args.push "arg#{i}"
+ end
+ end
+ if method.size_opt_params >= 0
+ method.size_opt_params.times do |i|
+ args.push "arg#{i + size_required_params}=nil"
+ end
+ else
+ args.push "*arg"
+ end
+ args.join(", ")
+ end
+
+ def generate_argtype(typedetails)
+ ts = ''
+ typedetails.each do |t|
+ case t
+ when 'CARRAY', 'VOID', 'UINT', 'RESULT', 'DECIMAL', 'I8', 'UI8'
+# raise "Sorry type\"" + t + "\" not supported"
+ ts << "\"??? NOT SUPPORTED TYPE:`#{t}'\""
+ when 'USERDEFINED', 'Unknown Type 9'
+ ts << 'VT_DISPATCH'
+ break;
+ when 'SAFEARRAY'
+ ts << 'VT_ARRAY|'
+ when 'PTR'
+ ts << 'VT_BYREF|'
+ when 'INT'
+ ts << 'VT_I4'
+ else
+ if String === t
+ ts << 'VT_' + t
+ end
+ end
+ end
+ if ts.empty?
+ ts = 'VT_VARIANT'
+ elsif ts.end_with?(?|)
+ ts += 'VT_VARIANT'
+ end
+ ts
+ end
+
+ def generate_argtypes(method, proptypes)
+ types = method.params.collect{|param|
+ generate_argtype(param.ole_type_detail)
+ }.join(", ")
+ if proptypes
+ types += ", " if types.size > 0
+ types += generate_argtype(proptypes)
+ end
+ types
+ end
+
+ def generate_method_body(method, disptype, types=nil)
+ " ret = #{@receiver}#{disptype}(#{method.dispid}, [" +
+ generate_args(method).gsub("=nil", "") +
+ "], [" +
+ generate_argtypes(method, types) +
+ "])\n" +
+ " @lastargs = WIN32OLE::ARGV\n" +
+ " ret"
+ end
+
+ def generate_method_help(method, type = nil)
+ str = " # "
+ if type
+ str += type
+ else
+ str += method.return_type
+ end
+ str += " #{method.name}"
+ if method.event?
+ str += " EVENT"
+ str += " in #{method.event_interface}"
+ end
+ if method.helpstring && method.helpstring != ""
+ str += "\n # "
+ str += method.helpstring
+ end
+ args_help = generate_method_args_help(method)
+ if args_help
+ str += "\n"
+ str += args_help
+ end
+ str
+ end
+
+ def generate_method_args_help(method)
+ args = []
+ method.params.each_with_index {|param, i|
+ h = " # #{param.ole_type} arg#{i} --- #{param.name}"
+ inout = []
+ inout.push "IN" if param.input?
+ inout.push "OUT" if param.output?
+ h += " [#{inout.join('/')}]"
+ h += " ( = #{param.default})" if param.default
+ args.push h
+ }
+ if args.size > 0
+ args.join("\n")
+ else
+ nil
+ end
+ end
+
+ def generate_method(method, disptype, io = STDOUT, types = nil)
+ io.puts "\n"
+ io.puts generate_method_help(method)
+ if method.invoke_kind == 'PROPERTYPUT'
+ io.print " def #{method.name}=("
+ else
+ io.print " def #{method.name}("
+ end
+ io.print generate_args(method)
+ io.puts ")"
+ io.puts generate_method_body(method, disptype, types)
+ io.puts " end"
+ end
+
+ def generate_propputref_methods(klass, io = STDOUT)
+ klass.ole_methods.select {|method|
+ method.invoke_kind == 'PROPERTYPUTREF' && method.visible?
+ }.each do |method|
+ generate_method(method, io)
+ end
+ end
+
+ def generate_properties_with_args(klass, io = STDOUT)
+ klass.ole_methods.select {|method|
+ method.invoke_kind == 'PROPERTYGET' &&
+ method.visible? &&
+ method.size_params > 0
+ }.each do |method|
+ types = method.return_type_detail
+ io.puts "\n"
+ io.puts generate_method_help(method, types[0])
+ io.puts " def #{method.name}"
+ if klass.ole_type == "Class"
+ io.print " OLEProperty.new(@dispatch, #{method.dispid}, ["
+ else
+ io.print " OLEProperty.new(self, #{method.dispid}, ["
+ end
+ io.print generate_argtypes(method, nil)
+ io.print "], ["
+ io.print generate_argtypes(method, types)
+ io.puts "])"
+ io.puts " end"
+ end
+ end
+
+ def generate_propput_methods(klass, io = STDOUT)
+ klass.ole_methods.select {|method|
+ method.invoke_kind == 'PROPERTYPUT' && method.visible? &&
+ method.size_params == 1
+ }.each do |method|
+ ms = klass.ole_methods.select {|m|
+ m.invoke_kind == 'PROPERTYGET' &&
+ m.dispid == method.dispid
+ }
+ types = []
+ if ms.size == 1
+ types = ms[0].return_type_detail
+ end
+ generate_method(method, '_setproperty', io, types)
+ end
+ end
+
+ def generate_propget_methods(klass, io = STDOUT)
+ klass.ole_methods.select {|method|
+ method.invoke_kind == 'PROPERTYGET' && method.visible? &&
+ method.size_params == 0
+ }.each do |method|
+ generate_method(method, '_getproperty', io)
+ end
+ end
+
+ def generate_func_methods(klass, io = STDOUT)
+ klass.ole_methods.select {|method|
+ method.invoke_kind == "FUNC" && method.visible?
+ }.each do |method|
+ generate_method(method, '_invoke', io)
+ end
+ end
+
+ def generate_methods(klass, io = STDOUT)
+ generate_propget_methods(klass, io)
+ generate_propput_methods(klass, io)
+ generate_properties_with_args(klass, io)
+ generate_func_methods(klass, io)
+# generate_propputref_methods(klass, io)
+ end
+
+ def generate_constants(klass, io = STDOUT)
+ klass.variables.select {|v|
+ v.visible? && v.variable_kind == 'CONSTANT'
+ }.each do |v|
+ io.print " "
+ io.print v.name.sub(/^./){$&.upcase}
+ io.print " = "
+ io.puts v.value
+ end
+ end
+
+ def class_name(klass)
+ klass_name = klass.name
+ if klass.ole_type == "Class" &&
+ klass.guid &&
+ klass.progid
+ klass_name = klass.progid.gsub(/\./, '_')
+ end
+ if /^[A-Z]/ !~ klass_name || Module.constants.include?(klass_name)
+ klass_name = 'OLE' + klass_name
+ end
+ klass_name
+ end
+
+ def define_initialize(klass)
+ <<STR
+
+ def initialize(obj = nil)
+ @clsid = "#{klass.guid}"
+ @progid = "#{klass.progid}"
+ if obj.nil?
+ @dispatch = WIN32OLE.new @progid
+ else
+ @dispatch = obj
+ end
+ end
+STR
+ end
+
+ def define_include
+ " include WIN32OLE::VARIANT"
+ end
+
+ def define_instance_variables
+ " attr_reader :lastargs"
+ end
+
+ def define_method_missing
+ <<STR
+
+ def method_missing(cmd, *arg)
+ @dispatch.method_missing(cmd, *arg)
+ end
+STR
+ end
+
+ def define_class(klass, io = STDOUT)
+ io.puts "class #{class_name(klass)} # #{klass.name}"
+ io.puts define_include
+ io.puts define_instance_variables
+ io.puts " attr_reader :dispatch"
+ io.puts " attr_reader :clsid"
+ io.puts " attr_reader :progid"
+ io.puts define_initialize(klass)
+ io.puts define_method_missing
+ end
+
+ def define_module(klass, io = STDOUT)
+ io.puts "module #{class_name(klass)}"
+ io.puts define_include
+ io.puts define_instance_variables
+ end
+
+ def generate_class(klass, io = STDOUT)
+ io.puts "\n# #{klass.helpstring}"
+ if klass.ole_type == "Class" &&
+ klass.guid &&
+ klass.progid
+ @receiver = "@dispatch."
+ define_class(klass, io)
+ else
+ @receiver = ""
+ define_module(klass, io)
+ end
+ generate_constants(klass, io)
+ generate_methods(klass, io)
+ io.puts "end"
+ end
+
+ def generate(io = STDOUT)
+ io.puts "require 'win32ole'"
+ io.puts "require 'win32ole/property'"
+
+ ole_classes(typelib).select{|klass|
+ klass.visible? &&
+ (klass.ole_type == "Class" ||
+ klass.ole_type == "Interface" ||
+ klass.ole_type == "Dispatch" ||
+ klass.ole_type == "Enum")
+ }.each do |klass|
+ generate_class(klass, io)
+ end
+ begin
+ @ole.quit if @ole
+ rescue
+ end
+ end
+end
+
+require 'win32ole'
+if __FILE__ == $0
+ if ARGV.size == 0
+ $stderr.puts "usage: #{$0} Type Library [...]"
+ exit 1
+ end
+ ARGV.each do |typelib|
+ comgen = WIN32COMGen.new(typelib)
+ comgen.generate
+ end
+end
diff --git a/sample/win32ole/xml.rb b/sample/win32ole/xml.rb
new file mode 100644
index 0000000000..5a239c9336
--- /dev/null
+++ b/sample/win32ole/xml.rb
@@ -0,0 +1,7307 @@
+# frozen_string_literal: false
+#
+# This file created by olegen.rb as following.
+# ruby olegen.rb 'Microsoft XML, version 2.0' > xml.rb
+#
+require 'win32ole'
+require 'win32ole/property'
+
+#
+module IXMLDOMImplementation
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BOOL hasFeature
+ # BSTR arg0 --- feature [IN]
+ # BSTR arg1 --- version [IN]
+ def hasFeature(arg0, arg1)
+ ret = _invoke(145, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# Core DOM node interface
+module IXMLDOMNode
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# Constants that define a node's type
+module OLEtagDOMNodeType
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+ NODE_INVALID = 0
+ NODE_ELEMENT = 1
+ NODE_ATTRIBUTE = 2
+ NODE_TEXT = 3
+ NODE_CDATA_SECTION = 4
+ NODE_ENTITY_REFERENCE = 5
+ NODE_ENTITY = 6
+ NODE_PROCESSING_INSTRUCTION = 7
+ NODE_COMMENT = 8
+ NODE_DOCUMENT = 9
+ NODE_DOCUMENT_TYPE = 10
+ NODE_DOCUMENT_FRAGMENT = 11
+ NODE_NOTATION = 12
+end
+
+#
+module IXMLDOMNodeList
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # I4 length
+ # number of nodes in the collection
+ def length()
+ ret = _getproperty(74, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # PTR item
+ # collection of nodes
+ # I4 arg0 --- index [IN]
+ def item
+ OLEProperty.new(self, 0, [VT_I4], [VT_I4, VT_BYREF|VT_DISPATCH])
+ end
+
+ # IXMLDOMNode nextNode
+ # get next node from iterator
+ def nextNode()
+ ret = _invoke(76, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID reset
+ # reset the position of iterator
+ def reset()
+ ret = _invoke(77, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMNamedNodeMap
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # I4 length
+ # number of nodes in the collection
+ def length()
+ ret = _getproperty(74, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # PTR item
+ # collection of nodes
+ # I4 arg0 --- index [IN]
+ def item
+ OLEProperty.new(self, 0, [VT_I4], [VT_I4, VT_BYREF|VT_DISPATCH])
+ end
+
+ # IXMLDOMNode getNamedItem
+ # lookup item by name
+ # BSTR arg0 --- name [IN]
+ def getNamedItem(arg0)
+ ret = _invoke(83, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode setNamedItem
+ # set item by name
+ # IXMLDOMNode arg0 --- newItem [IN]
+ def setNamedItem(arg0)
+ ret = _invoke(84, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeNamedItem
+ # remove item by name
+ # BSTR arg0 --- name [IN]
+ def removeNamedItem(arg0)
+ ret = _invoke(85, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode getQualifiedItem
+ # lookup the item by name and namespace
+ # BSTR arg0 --- baseName [IN]
+ # BSTR arg1 --- namespaceURI [IN]
+ def getQualifiedItem(arg0, arg1)
+ ret = _invoke(87, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeQualifiedItem
+ # remove the item by name and namespace
+ # BSTR arg0 --- baseName [IN]
+ # BSTR arg1 --- namespaceURI [IN]
+ def removeQualifiedItem(arg0, arg1)
+ ret = _invoke(88, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextNode
+ # get next node from iterator
+ def nextNode()
+ ret = _invoke(89, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID reset
+ # reset the position of iterator
+ def reset()
+ ret = _invoke(90, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMDocument
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocumentType doctype
+ # node corresponding to the DOCTYPE
+ def doctype()
+ ret = _getproperty(38, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMImplementation implementation
+ # info on this DOM implementation
+ def implementation()
+ ret = _getproperty(39, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMElement documentElement
+ # the root of the tree
+ def documentElement()
+ ret = _getproperty(40, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 readyState
+ # get the state of the XML document
+ def readyState()
+ ret = _getproperty(-525, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMParseError parseError
+ # get the last parser error
+ def parseError()
+ ret = _getproperty(59, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR url
+ # get the URL for the loaded XML document
+ def url()
+ ret = _getproperty(60, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL async
+ # flag for asynchronous download
+ def async()
+ ret = _getproperty(61, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL validateOnParse
+ # indicates whether the parser performs validation
+ def validateOnParse()
+ ret = _getproperty(65, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL resolveExternals
+ # indicates whether the parser resolves references to external DTD/Entities/Schema
+ def resolveExternals()
+ ret = _getproperty(66, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL preserveWhiteSpace
+ # indicates whether the parser preserves whitespace
+ def preserveWhiteSpace()
+ ret = _getproperty(67, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID async
+ # flag for asynchronous download
+ def async=(arg0)
+ ret = _setproperty(61, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID validateOnParse
+ # indicates whether the parser performs validation
+ def validateOnParse=(arg0)
+ ret = _setproperty(65, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID resolveExternals
+ # indicates whether the parser resolves references to external DTD/Entities/Schema
+ def resolveExternals=(arg0)
+ ret = _setproperty(66, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID preserveWhiteSpace
+ # indicates whether the parser preserves whitespace
+ def preserveWhiteSpace=(arg0)
+ ret = _setproperty(67, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID onreadystatechange
+ # register a readystatechange event handler
+ def onreadystatechange=(arg0)
+ ret = _setproperty(68, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID ondataavailable
+ # register an ondataavailable event handler
+ def ondataavailable=(arg0)
+ ret = _setproperty(69, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID ontransformnode
+ # register an ontransformnode event handler
+ def ontransformnode=(arg0)
+ ret = _setproperty(70, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMElement createElement
+ # create an Element node
+ # BSTR arg0 --- tagName [IN]
+ def createElement(arg0)
+ ret = _invoke(41, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocumentFragment createDocumentFragment
+ # create a DocumentFragment node
+ def createDocumentFragment()
+ ret = _invoke(42, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMText createTextNode
+ # create a text node
+ # BSTR arg0 --- data [IN]
+ def createTextNode(arg0)
+ ret = _invoke(43, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMComment createComment
+ # create a comment node
+ # BSTR arg0 --- data [IN]
+ def createComment(arg0)
+ ret = _invoke(44, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMCDATASection createCDATASection
+ # create a CDATA section node
+ # BSTR arg0 --- data [IN]
+ def createCDATASection(arg0)
+ ret = _invoke(45, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMProcessingInstruction createProcessingInstruction
+ # create a processing instruction node
+ # BSTR arg0 --- target [IN]
+ # BSTR arg1 --- data [IN]
+ def createProcessingInstruction(arg0, arg1)
+ ret = _invoke(46, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMAttribute createAttribute
+ # create an attribute node
+ # BSTR arg0 --- name [IN]
+ def createAttribute(arg0)
+ ret = _invoke(47, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMEntityReference createEntityReference
+ # create an entity reference node
+ # BSTR arg0 --- name [IN]
+ def createEntityReference(arg0)
+ ret = _invoke(49, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList getElementsByTagName
+ # build a list of elements by name
+ # BSTR arg0 --- tagName [IN]
+ def getElementsByTagName(arg0)
+ ret = _invoke(50, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode createNode
+ # create a node of the specified node type and name
+ # VARIANT arg0 --- type [IN]
+ # BSTR arg1 --- name [IN]
+ # BSTR arg2 --- namespaceURI [IN]
+ def createNode(arg0, arg1, arg2)
+ ret = _invoke(54, [arg0, arg1, arg2], [VT_VARIANT, VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nodeFromID
+ # retrieve node from it's ID
+ # BSTR arg0 --- idString [IN]
+ def nodeFromID(arg0)
+ ret = _invoke(56, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL load
+ # load document from the specified XML source
+ # VARIANT arg0 --- xmlSource [IN]
+ def load(arg0)
+ ret = _invoke(58, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID abort
+ # abort an asynchronous download
+ def abort()
+ ret = _invoke(62, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL loadXML
+ # load the document from a string
+ # BSTR arg0 --- bstrXML [IN]
+ def loadXML(arg0)
+ ret = _invoke(63, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID save
+ # save the document to a specified destination
+ # VARIANT arg0 --- destination [IN]
+ def save(arg0)
+ ret = _invoke(64, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMDocumentType
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR name
+ # name of the document type (root of the tree)
+ def name()
+ ret = _getproperty(131, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap entities
+ # a list of entities in the document
+ def entities()
+ ret = _getproperty(132, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap notations
+ # a list of notations in the document
+ def notations()
+ ret = _getproperty(133, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMElement
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR tagName
+ # get the tagName of the element
+ def tagName()
+ ret = _getproperty(97, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT getAttribute
+ # look up the string value of an attribute by name
+ # BSTR arg0 --- name [IN]
+ def getAttribute(arg0)
+ ret = _invoke(99, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID setAttribute
+ # set the string value of an attribute by name
+ # BSTR arg0 --- name [IN]
+ # VARIANT arg1 --- value [IN]
+ def setAttribute(arg0, arg1)
+ ret = _invoke(100, [arg0, arg1], [VT_BSTR, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID removeAttribute
+ # remove an attribute by name
+ # BSTR arg0 --- name [IN]
+ def removeAttribute(arg0)
+ ret = _invoke(101, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMAttribute getAttributeNode
+ # look up the attribute node by name
+ # BSTR arg0 --- name [IN]
+ def getAttributeNode(arg0)
+ ret = _invoke(102, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMAttribute setAttributeNode
+ # set the specified attribute on the element
+ # IXMLDOMAttribute arg0 --- DOMAttribute [IN]
+ def setAttributeNode(arg0)
+ ret = _invoke(103, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMAttribute removeAttributeNode
+ # remove the specified attribute
+ # IXMLDOMAttribute arg0 --- DOMAttribute [IN]
+ def removeAttributeNode(arg0)
+ ret = _invoke(104, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList getElementsByTagName
+ # build a list of elements by name
+ # BSTR arg0 --- tagName [IN]
+ def getElementsByTagName(arg0)
+ ret = _invoke(105, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID normalize
+ # collapse all adjacent text nodes in sub-tree
+ def normalize()
+ ret = _invoke(106, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMAttribute
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR name
+ # get name of the attribute
+ def name()
+ ret = _getproperty(118, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT value
+ # string value of the attribute
+ def value()
+ ret = _getproperty(120, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID value
+ # string value of the attribute
+ def value=(arg0)
+ ret = _setproperty(120, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMDocumentFragment
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMText
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR data
+ # value of the node
+ def data()
+ ret = _getproperty(109, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 length
+ # number of characters in value
+ def length()
+ ret = _getproperty(110, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID data
+ # value of the node
+ def data=(arg0)
+ ret = _setproperty(109, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR substringData
+ # retrieve substring of value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def substringData(arg0, arg1)
+ ret = _invoke(111, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID appendData
+ # append string to value
+ # BSTR arg0 --- data [IN]
+ def appendData(arg0)
+ ret = _invoke(112, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID insertData
+ # insert string into value
+ # I4 arg0 --- offset [IN]
+ # BSTR arg1 --- data [IN]
+ def insertData(arg0, arg1)
+ ret = _invoke(113, [arg0, arg1], [VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID deleteData
+ # delete string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def deleteData(arg0, arg1)
+ ret = _invoke(114, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID replaceData
+ # replace string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ # BSTR arg2 --- data [IN]
+ def replaceData(arg0, arg1, arg2)
+ ret = _invoke(115, [arg0, arg1, arg2], [VT_I4, VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMText splitText
+ # split the text node into two text nodes at the position specified
+ # I4 arg0 --- offset [IN]
+ def splitText(arg0)
+ ret = _invoke(123, [arg0], [VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMCharacterData
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR data
+ # value of the node
+ def data()
+ ret = _getproperty(109, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 length
+ # number of characters in value
+ def length()
+ ret = _getproperty(110, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID data
+ # value of the node
+ def data=(arg0)
+ ret = _setproperty(109, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR substringData
+ # retrieve substring of value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def substringData(arg0, arg1)
+ ret = _invoke(111, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID appendData
+ # append string to value
+ # BSTR arg0 --- data [IN]
+ def appendData(arg0)
+ ret = _invoke(112, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID insertData
+ # insert string into value
+ # I4 arg0 --- offset [IN]
+ # BSTR arg1 --- data [IN]
+ def insertData(arg0, arg1)
+ ret = _invoke(113, [arg0, arg1], [VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID deleteData
+ # delete string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def deleteData(arg0, arg1)
+ ret = _invoke(114, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID replaceData
+ # replace string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ # BSTR arg2 --- data [IN]
+ def replaceData(arg0, arg1, arg2)
+ ret = _invoke(115, [arg0, arg1, arg2], [VT_I4, VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMComment
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR data
+ # value of the node
+ def data()
+ ret = _getproperty(109, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 length
+ # number of characters in value
+ def length()
+ ret = _getproperty(110, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID data
+ # value of the node
+ def data=(arg0)
+ ret = _setproperty(109, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR substringData
+ # retrieve substring of value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def substringData(arg0, arg1)
+ ret = _invoke(111, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID appendData
+ # append string to value
+ # BSTR arg0 --- data [IN]
+ def appendData(arg0)
+ ret = _invoke(112, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID insertData
+ # insert string into value
+ # I4 arg0 --- offset [IN]
+ # BSTR arg1 --- data [IN]
+ def insertData(arg0, arg1)
+ ret = _invoke(113, [arg0, arg1], [VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID deleteData
+ # delete string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def deleteData(arg0, arg1)
+ ret = _invoke(114, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID replaceData
+ # replace string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ # BSTR arg2 --- data [IN]
+ def replaceData(arg0, arg1, arg2)
+ ret = _invoke(115, [arg0, arg1, arg2], [VT_I4, VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMCDATASection
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR data
+ # value of the node
+ def data()
+ ret = _getproperty(109, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 length
+ # number of characters in value
+ def length()
+ ret = _getproperty(110, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID data
+ # value of the node
+ def data=(arg0)
+ ret = _setproperty(109, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR substringData
+ # retrieve substring of value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def substringData(arg0, arg1)
+ ret = _invoke(111, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID appendData
+ # append string to value
+ # BSTR arg0 --- data [IN]
+ def appendData(arg0)
+ ret = _invoke(112, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID insertData
+ # insert string into value
+ # I4 arg0 --- offset [IN]
+ # BSTR arg1 --- data [IN]
+ def insertData(arg0, arg1)
+ ret = _invoke(113, [arg0, arg1], [VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID deleteData
+ # delete string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ def deleteData(arg0, arg1)
+ ret = _invoke(114, [arg0, arg1], [VT_I4, VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID replaceData
+ # replace string within the value
+ # I4 arg0 --- offset [IN]
+ # I4 arg1 --- count [IN]
+ # BSTR arg2 --- data [IN]
+ def replaceData(arg0, arg1, arg2)
+ ret = _invoke(115, [arg0, arg1, arg2], [VT_I4, VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMText splitText
+ # split the text node into two text nodes at the position specified
+ # I4 arg0 --- offset [IN]
+ def splitText(arg0)
+ ret = _invoke(123, [arg0], [VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMProcessingInstruction
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR target
+ # the target
+ def target()
+ ret = _getproperty(127, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR data
+ # the data
+ def data()
+ ret = _getproperty(128, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID data
+ # the data
+ def data=(arg0)
+ ret = _setproperty(128, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMEntityReference
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# structure for reporting parser errors
+module IXMLDOMParseError
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # I4 errorCode
+ # the error code
+ def errorCode()
+ ret = _getproperty(0, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR url
+ # the URL of the XML document containing the error
+ def url()
+ ret = _getproperty(179, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR reason
+ # the cause of the error
+ def reason()
+ ret = _getproperty(180, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR srcText
+ # the data where the error occurred
+ def srcText()
+ ret = _getproperty(181, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 line
+ # the line number in the XML document where the error occurred
+ def line()
+ ret = _getproperty(182, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 linepos
+ # the character position in the line containing the error
+ def linepos()
+ ret = _getproperty(183, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 filepos
+ # the absolute file position in the XML document containing the error
+ def filepos()
+ ret = _getproperty(184, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMNotation
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT publicId
+ # the public ID
+ def publicId()
+ ret = _getproperty(136, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT systemId
+ # the system ID
+ def systemId()
+ ret = _getproperty(137, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+#
+module IXMLDOMEntity
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT publicId
+ # the public ID
+ def publicId()
+ ret = _getproperty(140, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT systemId
+ # the system ID
+ def systemId()
+ ret = _getproperty(141, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR notationName
+ # the name of the notation
+ def notationName()
+ ret = _getproperty(142, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# XTL runtime object
+module IXTLRuntime
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = _getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = _getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = _getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = _getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = _getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = _getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = _getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = _getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = _getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = _getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = _getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = _getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = _getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = _getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = _getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = _getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = _setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = _setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = _setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = _setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = _invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = _invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = _invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = _invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = _invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = _invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = _invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = _invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = _invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = _invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 uniqueID
+ # IXMLDOMNode arg0 --- pNode [IN]
+ def uniqueID(arg0)
+ ret = _invoke(187, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 depth
+ # IXMLDOMNode arg0 --- pNode [IN]
+ def depth(arg0)
+ ret = _invoke(188, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 childNumber
+ # IXMLDOMNode arg0 --- pNode [IN]
+ def childNumber(arg0)
+ ret = _invoke(189, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 ancestorChildNumber
+ # BSTR arg0 --- bstrNodeName [IN]
+ # IXMLDOMNode arg1 --- pNode [IN]
+ def ancestorChildNumber(arg0, arg1)
+ ret = _invoke(190, [arg0, arg1], [VT_BSTR, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 absoluteChildNumber
+ # IXMLDOMNode arg0 --- pNode [IN]
+ def absoluteChildNumber(arg0)
+ ret = _invoke(191, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR formatIndex
+ # I4 arg0 --- lIndex [IN]
+ # BSTR arg1 --- bstrFormat [IN]
+ def formatIndex(arg0, arg1)
+ ret = _invoke(192, [arg0, arg1], [VT_I4, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR formatNumber
+ # R8 arg0 --- dblNumber [IN]
+ # BSTR arg1 --- bstrFormat [IN]
+ def formatNumber(arg0, arg1)
+ ret = _invoke(193, [arg0, arg1], [VT_R8, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR formatDate
+ # VARIANT arg0 --- varDate [IN]
+ # BSTR arg1 --- bstrFormat [IN]
+ # VARIANT arg2 --- varDestLocale [IN]
+ def formatDate(arg0, arg1, arg2=nil)
+ ret = _invoke(194, [arg0, arg1, arg2], [VT_VARIANT, VT_BSTR, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR formatTime
+ # VARIANT arg0 --- varTime [IN]
+ # BSTR arg1 --- bstrFormat [IN]
+ # VARIANT arg2 --- varDestLocale [IN]
+ def formatTime(arg0, arg1, arg2=nil)
+ ret = _invoke(195, [arg0, arg1, arg2], [VT_VARIANT, VT_BSTR, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# W3C-DOM XML Document
+class Microsoft_XMLDOM_1_0 # DOMDocument
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+ attr_reader :dispatch
+ attr_reader :clsid
+ attr_reader :progid
+
+ def initialize(obj = nil)
+ @clsid = "{2933BF90-7B36-11D2-B20E-00C04F983E60}"
+ @progid = "Microsoft.XMLDOM.1.0"
+ if obj.nil?
+ @dispatch = WIN32OLE.new(@progid)
+ else
+ @dispatch = obj
+ end
+ end
+
+ def method_missing(cmd, *arg)
+ @dispatch.method_missing(cmd, *arg)
+ end
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = @dispatch._getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = @dispatch._getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = @dispatch._getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = @dispatch._getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = @dispatch._getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = @dispatch._getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = @dispatch._getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = @dispatch._getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = @dispatch._getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = @dispatch._getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = @dispatch._getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = @dispatch._getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = @dispatch._getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = @dispatch._getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = @dispatch._getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = @dispatch._getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = @dispatch._getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = @dispatch._getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = @dispatch._getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = @dispatch._getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = @dispatch._getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = @dispatch._getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocumentType doctype
+ # node corresponding to the DOCTYPE
+ def doctype()
+ ret = @dispatch._getproperty(38, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMImplementation implementation
+ # info on this DOM implementation
+ def implementation()
+ ret = @dispatch._getproperty(39, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMElement documentElement
+ # the root of the tree
+ def documentElement()
+ ret = @dispatch._getproperty(40, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 readyState
+ # get the state of the XML document
+ def readyState()
+ ret = @dispatch._getproperty(-525, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMParseError parseError
+ # get the last parser error
+ def parseError()
+ ret = @dispatch._getproperty(59, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR url
+ # get the URL for the loaded XML document
+ def url()
+ ret = @dispatch._getproperty(60, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL async
+ # flag for asynchronous download
+ def async()
+ ret = @dispatch._getproperty(61, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL validateOnParse
+ # indicates whether the parser performs validation
+ def validateOnParse()
+ ret = @dispatch._getproperty(65, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL resolveExternals
+ # indicates whether the parser resolves references to external DTD/Entities/Schema
+ def resolveExternals()
+ ret = @dispatch._getproperty(66, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL preserveWhiteSpace
+ # indicates whether the parser preserves whitespace
+ def preserveWhiteSpace()
+ ret = @dispatch._getproperty(67, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = @dispatch._setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = @dispatch._setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = @dispatch._setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = @dispatch._setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID async
+ # flag for asynchronous download
+ def async=(arg0)
+ ret = @dispatch._setproperty(61, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID validateOnParse
+ # indicates whether the parser performs validation
+ def validateOnParse=(arg0)
+ ret = @dispatch._setproperty(65, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID resolveExternals
+ # indicates whether the parser resolves references to external DTD/Entities/Schema
+ def resolveExternals=(arg0)
+ ret = @dispatch._setproperty(66, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID preserveWhiteSpace
+ # indicates whether the parser preserves whitespace
+ def preserveWhiteSpace=(arg0)
+ ret = @dispatch._setproperty(67, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID onreadystatechange
+ # register a readystatechange event handler
+ def onreadystatechange=(arg0)
+ ret = @dispatch._setproperty(68, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID ondataavailable
+ # register an ondataavailable event handler
+ def ondataavailable=(arg0)
+ ret = @dispatch._setproperty(69, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID ontransformnode
+ # register an ontransformnode event handler
+ def ontransformnode=(arg0)
+ ret = @dispatch._setproperty(70, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = @dispatch._invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = @dispatch._invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = @dispatch._invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = @dispatch._invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = @dispatch._invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = @dispatch._invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = @dispatch._invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = @dispatch._invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = @dispatch._invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = @dispatch._invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMElement createElement
+ # create an Element node
+ # BSTR arg0 --- tagName [IN]
+ def createElement(arg0)
+ ret = @dispatch._invoke(41, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocumentFragment createDocumentFragment
+ # create a DocumentFragment node
+ def createDocumentFragment()
+ ret = @dispatch._invoke(42, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMText createTextNode
+ # create a text node
+ # BSTR arg0 --- data [IN]
+ def createTextNode(arg0)
+ ret = @dispatch._invoke(43, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMComment createComment
+ # create a comment node
+ # BSTR arg0 --- data [IN]
+ def createComment(arg0)
+ ret = @dispatch._invoke(44, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMCDATASection createCDATASection
+ # create a CDATA section node
+ # BSTR arg0 --- data [IN]
+ def createCDATASection(arg0)
+ ret = @dispatch._invoke(45, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMProcessingInstruction createProcessingInstruction
+ # create a processing instruction node
+ # BSTR arg0 --- target [IN]
+ # BSTR arg1 --- data [IN]
+ def createProcessingInstruction(arg0, arg1)
+ ret = @dispatch._invoke(46, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMAttribute createAttribute
+ # create an attribute node
+ # BSTR arg0 --- name [IN]
+ def createAttribute(arg0)
+ ret = @dispatch._invoke(47, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMEntityReference createEntityReference
+ # create an entity reference node
+ # BSTR arg0 --- name [IN]
+ def createEntityReference(arg0)
+ ret = @dispatch._invoke(49, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList getElementsByTagName
+ # build a list of elements by name
+ # BSTR arg0 --- tagName [IN]
+ def getElementsByTagName(arg0)
+ ret = @dispatch._invoke(50, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode createNode
+ # create a node of the specified node type and name
+ # VARIANT arg0 --- type [IN]
+ # BSTR arg1 --- name [IN]
+ # BSTR arg2 --- namespaceURI [IN]
+ def createNode(arg0, arg1, arg2)
+ ret = @dispatch._invoke(54, [arg0, arg1, arg2], [VT_VARIANT, VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nodeFromID
+ # retrieve node from it's ID
+ # BSTR arg0 --- idString [IN]
+ def nodeFromID(arg0)
+ ret = @dispatch._invoke(56, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL load
+ # load document from the specified XML source
+ # VARIANT arg0 --- xmlSource [IN]
+ def load(arg0)
+ ret = @dispatch._invoke(58, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID abort
+ # abort an asynchronous download
+ def abort()
+ ret = @dispatch._invoke(62, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL loadXML
+ # load the document from a string
+ # BSTR arg0 --- bstrXML [IN]
+ def loadXML(arg0)
+ ret = @dispatch._invoke(63, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID save
+ # save the document to a specified destination
+ # VARIANT arg0 --- destination [IN]
+ def save(arg0)
+ ret = @dispatch._invoke(64, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # HRESULT ondataavailable EVENT in XMLDOMDocumentEvents
+ def ondataavailable()
+ ret = @dispatch._invoke(198, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # HRESULT onreadystatechange EVENT in XMLDOMDocumentEvents
+ def onreadystatechange()
+ ret = @dispatch._invoke(-609, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# W3C-DOM XML Document (Apartment)
+class Microsoft_FreeThreadedXMLDOM_1_0 # DOMFreeThreadedDocument
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+ attr_reader :dispatch
+ attr_reader :clsid
+ attr_reader :progid
+
+ def initialize(obj = nil)
+ @clsid = "{2933BF91-7B36-11D2-B20E-00C04F983E60}"
+ @progid = "Microsoft.FreeThreadedXMLDOM.1.0"
+ if obj.nil?
+ @dispatch = WIN32OLE.new(@progid)
+ else
+ @dispatch = obj
+ end
+ end
+
+ def method_missing(cmd, *arg)
+ @dispatch.method_missing(cmd, *arg)
+ end
+
+ # BSTR nodeName
+ # name of the node
+ def nodeName()
+ ret = @dispatch._getproperty(2, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeValue
+ # value stored in the node
+ def nodeValue()
+ ret = @dispatch._getproperty(3, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DOMNodeType nodeType
+ # the node's type
+ def nodeType()
+ ret = @dispatch._getproperty(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode parentNode
+ # parent of the node
+ def parentNode()
+ ret = @dispatch._getproperty(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList childNodes
+ # the collection of the node's children
+ def childNodes()
+ ret = @dispatch._getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode firstChild
+ # first child of the node
+ def firstChild()
+ ret = @dispatch._getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode lastChild
+ # first child of the node
+ def lastChild()
+ ret = @dispatch._getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode previousSibling
+ # left sibling of the node
+ def previousSibling()
+ ret = @dispatch._getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nextSibling
+ # right sibling of the node
+ def nextSibling()
+ ret = @dispatch._getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNamedNodeMap attributes
+ # the collection of the node's attributes
+ def attributes()
+ ret = @dispatch._getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocument ownerDocument
+ # document that contains the node
+ def ownerDocument()
+ ret = @dispatch._getproperty(18, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR nodeTypeString
+ # the type of node in string form
+ def nodeTypeString()
+ ret = @dispatch._getproperty(21, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR text
+ # text content of the node and subtree
+ def text()
+ ret = @dispatch._getproperty(24, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL specified
+ # indicates whether node is a default value
+ def specified()
+ ret = @dispatch._getproperty(22, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode definition
+ # pointer to the definition of the node in the DTD or schema
+ def definition()
+ ret = @dispatch._getproperty(23, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue()
+ ret = @dispatch._getproperty(25, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT dataType
+ # the data type of the node
+ def dataType()
+ ret = @dispatch._getproperty(26, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR xml
+ # return the XML source for the node and each of its descendants
+ def xml()
+ ret = @dispatch._getproperty(27, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL parsed
+ # has sub-tree been completely parsed
+ def parsed()
+ ret = @dispatch._getproperty(31, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR namespaceURI
+ # the URI for the namespace applying to the node
+ def namespaceURI()
+ ret = @dispatch._getproperty(32, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR prefix
+ # the prefix for the namespace applying to the node
+ def prefix()
+ ret = @dispatch._getproperty(33, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR baseName
+ # the base name of the node (nodename with the prefix stripped off)
+ def baseName()
+ ret = @dispatch._getproperty(34, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocumentType doctype
+ # node corresponding to the DOCTYPE
+ def doctype()
+ ret = @dispatch._getproperty(38, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMImplementation implementation
+ # info on this DOM implementation
+ def implementation()
+ ret = @dispatch._getproperty(39, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMElement documentElement
+ # the root of the tree
+ def documentElement()
+ ret = @dispatch._getproperty(40, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 readyState
+ # get the state of the XML document
+ def readyState()
+ ret = @dispatch._getproperty(-525, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMParseError parseError
+ # get the last parser error
+ def parseError()
+ ret = @dispatch._getproperty(59, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR url
+ # get the URL for the loaded XML document
+ def url()
+ ret = @dispatch._getproperty(60, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL async
+ # flag for asynchronous download
+ def async()
+ ret = @dispatch._getproperty(61, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL validateOnParse
+ # indicates whether the parser performs validation
+ def validateOnParse()
+ ret = @dispatch._getproperty(65, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL resolveExternals
+ # indicates whether the parser resolves references to external DTD/Entities/Schema
+ def resolveExternals()
+ ret = @dispatch._getproperty(66, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL preserveWhiteSpace
+ # indicates whether the parser preserves whitespace
+ def preserveWhiteSpace()
+ ret = @dispatch._getproperty(67, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeValue
+ # value stored in the node
+ def nodeValue=(arg0)
+ ret = @dispatch._setproperty(3, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID text
+ # text content of the node and subtree
+ def text=(arg0)
+ ret = @dispatch._setproperty(24, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID nodeTypedValue
+ # get the strongly typed value of the node
+ def nodeTypedValue=(arg0)
+ ret = @dispatch._setproperty(25, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID dataType
+ # the data type of the node
+ def dataType=(arg0)
+ ret = @dispatch._setproperty(26, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID async
+ # flag for asynchronous download
+ def async=(arg0)
+ ret = @dispatch._setproperty(61, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID validateOnParse
+ # indicates whether the parser performs validation
+ def validateOnParse=(arg0)
+ ret = @dispatch._setproperty(65, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID resolveExternals
+ # indicates whether the parser resolves references to external DTD/Entities/Schema
+ def resolveExternals=(arg0)
+ ret = @dispatch._setproperty(66, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID preserveWhiteSpace
+ # indicates whether the parser preserves whitespace
+ def preserveWhiteSpace=(arg0)
+ ret = @dispatch._setproperty(67, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID onreadystatechange
+ # register a readystatechange event handler
+ def onreadystatechange=(arg0)
+ ret = @dispatch._setproperty(68, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID ondataavailable
+ # register an ondataavailable event handler
+ def ondataavailable=(arg0)
+ ret = @dispatch._setproperty(69, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID ontransformnode
+ # register an ontransformnode event handler
+ def ontransformnode=(arg0)
+ ret = @dispatch._setproperty(70, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode insertBefore
+ # insert a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # VARIANT arg1 --- refChild [IN]
+ def insertBefore(arg0, arg1)
+ ret = @dispatch._invoke(13, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode replaceChild
+ # replace a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ # IXMLDOMNode arg1 --- oldChild [IN]
+ def replaceChild(arg0, arg1)
+ ret = @dispatch._invoke(14, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode removeChild
+ # remove a child node
+ # IXMLDOMNode arg0 --- childNode [IN]
+ def removeChild(arg0)
+ ret = @dispatch._invoke(15, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode appendChild
+ # append a child node
+ # IXMLDOMNode arg0 --- newChild [IN]
+ def appendChild(arg0)
+ ret = @dispatch._invoke(16, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL hasChildNodes
+ def hasChildNodes()
+ ret = @dispatch._invoke(17, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode cloneNode
+ # BOOL arg0 --- deep [IN]
+ def cloneNode(arg0)
+ ret = @dispatch._invoke(19, [arg0], [VT_BOOL])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR transformNode
+ # apply the stylesheet to the subtree
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ def transformNode(arg0)
+ ret = @dispatch._invoke(28, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList selectNodes
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectNodes(arg0)
+ ret = @dispatch._invoke(29, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode selectSingleNode
+ # execute query on the subtree
+ # BSTR arg0 --- queryString [IN]
+ def selectSingleNode(arg0)
+ ret = @dispatch._invoke(30, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID transformNodeToObject
+ # apply the stylesheet to the subtree, returning the result through a document or a stream
+ # IXMLDOMNode arg0 --- stylesheet [IN]
+ # VARIANT arg1 --- outputObject [IN]
+ def transformNodeToObject(arg0, arg1)
+ ret = @dispatch._invoke(35, [arg0, arg1], [VT_BYREF|VT_DISPATCH, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMElement createElement
+ # create an Element node
+ # BSTR arg0 --- tagName [IN]
+ def createElement(arg0)
+ ret = @dispatch._invoke(41, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMDocumentFragment createDocumentFragment
+ # create a DocumentFragment node
+ def createDocumentFragment()
+ ret = @dispatch._invoke(42, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMText createTextNode
+ # create a text node
+ # BSTR arg0 --- data [IN]
+ def createTextNode(arg0)
+ ret = @dispatch._invoke(43, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMComment createComment
+ # create a comment node
+ # BSTR arg0 --- data [IN]
+ def createComment(arg0)
+ ret = @dispatch._invoke(44, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMCDATASection createCDATASection
+ # create a CDATA section node
+ # BSTR arg0 --- data [IN]
+ def createCDATASection(arg0)
+ ret = @dispatch._invoke(45, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMProcessingInstruction createProcessingInstruction
+ # create a processing instruction node
+ # BSTR arg0 --- target [IN]
+ # BSTR arg1 --- data [IN]
+ def createProcessingInstruction(arg0, arg1)
+ ret = @dispatch._invoke(46, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMAttribute createAttribute
+ # create an attribute node
+ # BSTR arg0 --- name [IN]
+ def createAttribute(arg0)
+ ret = @dispatch._invoke(47, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMEntityReference createEntityReference
+ # create an entity reference node
+ # BSTR arg0 --- name [IN]
+ def createEntityReference(arg0)
+ ret = @dispatch._invoke(49, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNodeList getElementsByTagName
+ # build a list of elements by name
+ # BSTR arg0 --- tagName [IN]
+ def getElementsByTagName(arg0)
+ ret = @dispatch._invoke(50, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode createNode
+ # create a node of the specified node type and name
+ # VARIANT arg0 --- type [IN]
+ # BSTR arg1 --- name [IN]
+ # BSTR arg2 --- namespaceURI [IN]
+ def createNode(arg0, arg1, arg2)
+ ret = @dispatch._invoke(54, [arg0, arg1, arg2], [VT_VARIANT, VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # IXMLDOMNode nodeFromID
+ # retrieve node from it's ID
+ # BSTR arg0 --- idString [IN]
+ def nodeFromID(arg0)
+ ret = @dispatch._invoke(56, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL load
+ # load document from the specified XML source
+ # VARIANT arg0 --- xmlSource [IN]
+ def load(arg0)
+ ret = @dispatch._invoke(58, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID abort
+ # abort an asynchronous download
+ def abort()
+ ret = @dispatch._invoke(62, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BOOL loadXML
+ # load the document from a string
+ # BSTR arg0 --- bstrXML [IN]
+ def loadXML(arg0)
+ ret = @dispatch._invoke(63, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID save
+ # save the document to a specified destination
+ # VARIANT arg0 --- destination [IN]
+ def save(arg0)
+ ret = @dispatch._invoke(64, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # HRESULT ondataavailable EVENT in XMLDOMDocumentEvents
+ def ondataavailable()
+ ret = @dispatch._invoke(198, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # HRESULT onreadystatechange EVENT in XMLDOMDocumentEvents
+ def onreadystatechange()
+ ret = @dispatch._invoke(-609, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# IXMLHttpRequest Interface
+module IXMLHttpRequest
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+
+ # I4 status
+ # Get HTTP status code
+ def status()
+ ret = _getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR statusText
+ # Get HTTP status text
+ def statusText()
+ ret = _getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DISPATCH responseXML
+ # Get response body
+ def responseXML()
+ ret = _getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR responseText
+ # Get response body
+ def responseText()
+ ret = _getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT responseBody
+ # Get response body
+ def responseBody()
+ ret = _getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT responseStream
+ # Get response body
+ def responseStream()
+ ret = _getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 readyState
+ # Get ready state
+ def readyState()
+ ret = _getproperty(13, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID onreadystatechange
+ # Register a complete event handler
+ def onreadystatechange=(arg0)
+ ret = _setproperty(14, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID open
+ # Open HTTP connection
+ # BSTR arg0 --- bstrMethod [IN]
+ # BSTR arg1 --- bstrUrl [IN]
+ # VARIANT arg2 --- varAsync [IN]
+ # VARIANT arg3 --- bstrUser [IN]
+ # VARIANT arg4 --- bstrPassword [IN]
+ def open(arg0, arg1, arg2=nil, arg3=nil, arg4=nil)
+ ret = _invoke(1, [arg0, arg1, arg2, arg3, arg4], [VT_BSTR, VT_BSTR, VT_VARIANT, VT_VARIANT, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID setRequestHeader
+ # Add HTTP request header
+ # BSTR arg0 --- bstrHeader [IN]
+ # BSTR arg1 --- bstrValue [IN]
+ def setRequestHeader(arg0, arg1)
+ ret = _invoke(2, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR getResponseHeader
+ # Get HTTP response header
+ # BSTR arg0 --- bstrHeader [IN]
+ def getResponseHeader(arg0)
+ ret = _invoke(3, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR getAllResponseHeaders
+ # Get all HTTP response headers
+ def getAllResponseHeaders()
+ ret = _invoke(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID send
+ # Send HTTP request
+ # VARIANT arg0 --- varBody [IN]
+ def send(arg0=nil)
+ ret = _invoke(5, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID abort
+ # Abort HTTP request
+ def abort()
+ ret = _invoke(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# XML HTTP Request class.
+class Microsoft_XMLHTTP_1 # XMLHTTPRequest
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+ attr_reader :dispatch
+ attr_reader :clsid
+ attr_reader :progid
+
+ def initialize(obj = nil)
+ @clsid = "{ED8C108E-4349-11D2-91A4-00C04F7969E8}"
+ @progid = "Microsoft.XMLHTTP.1"
+ if obj.nil?
+ @dispatch = WIN32OLE.new(@progid)
+ else
+ @dispatch = obj
+ end
+ end
+
+ def method_missing(cmd, *arg)
+ @dispatch.method_missing(cmd, *arg)
+ end
+
+ # I4 status
+ # Get HTTP status code
+ def status()
+ ret = @dispatch._getproperty(7, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR statusText
+ # Get HTTP status text
+ def statusText()
+ ret = @dispatch._getproperty(8, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # DISPATCH responseXML
+ # Get response body
+ def responseXML()
+ ret = @dispatch._getproperty(9, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR responseText
+ # Get response body
+ def responseText()
+ ret = @dispatch._getproperty(10, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT responseBody
+ # Get response body
+ def responseBody()
+ ret = @dispatch._getproperty(11, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VARIANT responseStream
+ # Get response body
+ def responseStream()
+ ret = @dispatch._getproperty(12, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 readyState
+ # Get ready state
+ def readyState()
+ ret = @dispatch._getproperty(13, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID onreadystatechange
+ # Register a complete event handler
+ def onreadystatechange=(arg0)
+ ret = @dispatch._setproperty(14, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID open
+ # Open HTTP connection
+ # BSTR arg0 --- bstrMethod [IN]
+ # BSTR arg1 --- bstrUrl [IN]
+ # VARIANT arg2 --- varAsync [IN]
+ # VARIANT arg3 --- bstrUser [IN]
+ # VARIANT arg4 --- bstrPassword [IN]
+ def open(arg0, arg1, arg2=nil, arg3=nil, arg4=nil)
+ ret = @dispatch._invoke(1, [arg0, arg1, arg2, arg3, arg4], [VT_BSTR, VT_BSTR, VT_VARIANT, VT_VARIANT, VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID setRequestHeader
+ # Add HTTP request header
+ # BSTR arg0 --- bstrHeader [IN]
+ # BSTR arg1 --- bstrValue [IN]
+ def setRequestHeader(arg0, arg1)
+ ret = @dispatch._invoke(2, [arg0, arg1], [VT_BSTR, VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR getResponseHeader
+ # Get HTTP response header
+ # BSTR arg0 --- bstrHeader [IN]
+ def getResponseHeader(arg0)
+ ret = @dispatch._invoke(3, [arg0], [VT_BSTR])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # BSTR getAllResponseHeaders
+ # Get all HTTP response headers
+ def getAllResponseHeaders()
+ ret = @dispatch._invoke(4, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID send
+ # Send HTTP request
+ # VARIANT arg0 --- varBody [IN]
+ def send(arg0=nil)
+ ret = @dispatch._invoke(5, [arg0], [VT_VARIANT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID abort
+ # Abort HTTP request
+ def abort()
+ ret = @dispatch._invoke(6, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# XML Data Source Object
+class Microsoft_XMLDSO_1_0 # XMLDSOControl
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+ attr_reader :dispatch
+ attr_reader :clsid
+ attr_reader :progid
+
+ def initialize(obj = nil)
+ @clsid = "{550DDA30-0541-11D2-9CA9-0060B0EC3D39}"
+ @progid = "Microsoft.XMLDSO.1.0"
+ if obj.nil?
+ @dispatch = WIN32OLE.new(@progid)
+ else
+ @dispatch = obj
+ end
+ end
+
+ def method_missing(cmd, *arg)
+ @dispatch.method_missing(cmd, *arg)
+ end
+
+ # IXMLDOMDocument XMLDocument
+ def XMLDocument()
+ ret = @dispatch._getproperty(65537, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 JavaDSOCompatible
+ def JavaDSOCompatible()
+ ret = @dispatch._getproperty(65538, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # I4 readyState
+ def readyState()
+ ret = @dispatch._getproperty(-525, [], [])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID XMLDocument
+ def XMLDocument=(arg0)
+ ret = @dispatch._setproperty(65537, [arg0], [VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # VOID JavaDSOCompatible
+ def JavaDSOCompatible=(arg0)
+ ret = @dispatch._setproperty(65538, [arg0], [VT_I4])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end
+
+# Constants that define types for IXMLElement.
+module OLEtagXMLEMEM_TYPE
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+ XMLELEMTYPE_ELEMENT = 0
+ XMLELEMTYPE_TEXT = 1
+ XMLELEMTYPE_COMMENT = 2
+ XMLELEMTYPE_DOCUMENT = 3
+ XMLELEMTYPE_DTD = 4
+ XMLELEMTYPE_PI = 5
+ XMLELEMTYPE_OTHER = 6
+end
+
+# XMLDocument extends IXML Document. It is obsolete. You should use DOMDocument. This object should not be confused with the XMLDocument property on the XML data island.
+class Msxml # XMLDocument
+ include WIN32OLE::VARIANT
+ attr_reader :lastargs
+ attr_reader :dispatch
+ attr_reader :clsid
+ attr_reader :progid
+
+ def initialize(obj = nil)
+ @clsid = "{CFC399AF-D876-11D0-9C10-00C04FC99C8E}"
+ @progid = "Msxml"
+ if obj.nil?
+ @dispatch = WIN32OLE.new(@progid)
+ else
+ @dispatch = obj
+ end
+ end
+
+ def method_missing(cmd, *arg)
+ @dispatch.method_missing(cmd, *arg)
+ end
+
+ # HRESULT url
+ # set URL to load an XML document from the URL.
+ # BSTR arg0 --- p [IN]
+ def url=(arg0)
+ ret = @dispatch._setproperty(65641, [arg0], [VT_BSTR, VT_HRESULT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # HRESULT charset
+ # get encoding.
+ # BSTR arg0 --- p [IN]
+ def charset=(arg0)
+ ret = @dispatch._setproperty(65645, [arg0], [VT_BSTR, VT_HRESULT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # HRESULT async
+ # get asynchronous loading flag.
+ # BOOL arg0 --- pf [IN]
+ def async=(arg0)
+ ret = @dispatch._setproperty(65649, [arg0], [VT_BOOL, VT_HRESULT])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+
+ # HRESULT root
+ # get root IXMLElement of the XML document.
+ # IXMLElement2,IXMLElement2 arg0 --- p [OUT]
+ def root
+ OLEProperty.new(@dispatch, 65637, [VT_BYREF|VT_BYREF|VT_DISPATCH], [VT_BYREF|VT_BYREF|VT_DISPATCH, VT_HRESULT])
+ end
+
+ # HRESULT url
+ # set URL to load an XML document from the URL.
+ # BSTR arg0 --- p [OUT]
+ def url
+ OLEProperty.new(@dispatch, 65641, [VT_BYREF|VT_BSTR], [VT_BYREF|VT_BSTR, VT_HRESULT])
+ end
+
+ # HRESULT readyState
+ # get ready state.
+ # I4 arg0 --- pl [OUT]
+ def readyState
+ OLEProperty.new(@dispatch, 65643, [VT_BYREF|VT_I4], [VT_BYREF|VT_I4, VT_HRESULT])
+ end
+
+ # HRESULT charset
+ # get encoding.
+ # BSTR arg0 --- p [OUT]
+ def charset
+ OLEProperty.new(@dispatch, 65645, [VT_BYREF|VT_BSTR], [VT_BYREF|VT_BSTR, VT_HRESULT])
+ end
+
+ # HRESULT version
+ # get XML version number.
+ # BSTR arg0 --- p [OUT]
+ def version
+ OLEProperty.new(@dispatch, 65646, [VT_BYREF|VT_BSTR], [VT_BYREF|VT_BSTR, VT_HRESULT])
+ end
+
+ # HRESULT doctype
+ # get document type.
+ # BSTR arg0 --- p [OUT]
+ def doctype
+ OLEProperty.new(@dispatch, 65647, [VT_BYREF|VT_BSTR], [VT_BYREF|VT_BSTR, VT_HRESULT])
+ end
+
+ # HRESULT async
+ # get asynchronous loading flag.
+ # BOOL arg0 --- pf [OUT]
+ def async
+ OLEProperty.new(@dispatch, 65649, [VT_BYREF|VT_BOOL], [VT_BYREF|VT_BOOL, VT_HRESULT])
+ end
+
+ # HRESULT createElement
+ # create different types of IXMLElements.
+ # VARIANT arg0 --- vType [IN]
+ # VARIANT arg1 --- var1 [IN]
+ # IXMLElement2,IXMLElement2 arg2 --- ppElem [OUT]
+ def createElement(arg0, arg1=nil, arg2=nil)
+ ret = @dispatch._invoke(65644, [arg0, arg1, arg2], [VT_VARIANT, VT_VARIANT, VT_BYREF|VT_BYREF|VT_DISPATCH])
+ @lastargs = WIN32OLE::ARGV
+ ret
+ end
+end