win32ole 1.8.9 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.document +4 -0
  3. data/{LICENSE.txt → BSDL} +3 -3
  4. data/COPYING +56 -0
  5. data/ext/win32ole/.document +1 -0
  6. data/ext/win32ole/win32ole.c +70 -134
  7. data/ext/win32ole/win32ole_error.c +13 -4
  8. data/ext/win32ole/win32ole_event.c +26 -25
  9. data/ext/win32ole/win32ole_method.c +64 -63
  10. data/ext/win32ole/win32ole_param.c +57 -56
  11. data/ext/win32ole/win32ole_record.c +26 -25
  12. data/ext/win32ole/win32ole_type.c +73 -69
  13. data/ext/win32ole/win32ole_typelib.c +38 -37
  14. data/ext/win32ole/win32ole_variable.c +19 -18
  15. data/ext/win32ole/win32ole_variant.c +34 -33
  16. data/ext/win32ole/win32ole_variant_m.c +7 -5
  17. data/lib/win32ole/property.rb +15 -3
  18. data/lib/win32ole.rb +1 -2
  19. data/{ext/win32ole/sample → sample/win32ole}/olegen.rb +2 -2
  20. metadata +22 -31
  21. data/.git-blame-ignore-revs +0 -7
  22. data/.github/dependabot.yml +0 -6
  23. data/.github/workflows/windows.yml +0 -24
  24. data/.gitignore +0 -8
  25. data/Gemfile +0 -7
  26. data/Rakefile +0 -19
  27. data/bin/console +0 -14
  28. data/bin/setup +0 -8
  29. data/rakelib/changelogs.rake +0 -34
  30. data/rakelib/epoch.rake +0 -5
  31. data/rakelib/sync_tool.rake +0 -6
  32. data/rakelib/version.rake +0 -45
  33. data/win32ole.gemspec +0 -22
  34. /data/{ext/win32ole/sample → sample/win32ole}/excel1.rb +0 -0
  35. /data/{ext/win32ole/sample → sample/win32ole}/excel2.rb +0 -0
  36. /data/{ext/win32ole/sample → sample/win32ole}/excel3.rb +0 -0
  37. /data/{ext/win32ole/sample → sample/win32ole}/ie.rb +0 -0
  38. /data/{ext/win32ole/sample → sample/win32ole}/ieconst.rb +0 -0
  39. /data/{ext/win32ole/sample → sample/win32ole}/ienavi.rb +0 -0
  40. /data/{ext/win32ole/sample → sample/win32ole}/ienavi2.rb +0 -0
  41. /data/{ext/win32ole/sample → sample/win32ole}/oledirs.rb +0 -0
  42. /data/{ext/win32ole/sample → sample/win32ole}/xml.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d156a7f6ac1d7d3f6c05bc340adbb2e65c7552cf374ee5a228280fc65d41d765
4
- data.tar.gz: 6dadf13f100523a96deb6f12741af3cbfa6ee2a459d0ca6b32858ad7b65b2310
3
+ metadata.gz: 3c9eb6d552cac131c2a19f600e387a50d40e69cc07dcca4d481e697509ea3689
4
+ data.tar.gz: 1c0adf4ba2890d7b4cb072dd50eccf7a1978e6fc57dfb1100d71278b0a6271b8
5
5
  SHA512:
6
- metadata.gz: fc5b216f7b92772b768cb60c6a346a4a7d7228d580499e60651d566ef585fdcb847e0f50a74490894c4b80da96d80279c22b0c5c8fd4fa3b96dadabe1bcb63b4
7
- data.tar.gz: fa9c0f21ce0b5b6f7835a1197dfd7d73be4c68ce6748b5cc2c151d81a2a7fc769441d57f68838fe59057d50c723a944c8e9bb93d85c7beb3c2e35c3673cc8b0d
6
+ metadata.gz: 0ffef61b6ab22005a27ddaeb2e1f6a85f994494d43899348573976a862c7deea5221430f6bb0539f9e9ccee1faf4e0ba86db1fc4c734d70bd1901ec3625977f9
7
+ data.tar.gz: e16cb7c1312b3654fde7f653368372262f786eba624d068196b0aea91419148ad212c3f9ac24b0cae12f8bbff3ca5b6769011292f18915da45ffed34ca688714
data/.document ADDED
@@ -0,0 +1,4 @@
1
+ LICENSE.txt
2
+ README.md
3
+ ext/
4
+ lib/
@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without
4
4
  modification, are permitted provided that the following conditions
5
5
  are met:
6
6
  1. Redistributions of source code must retain the above copyright
7
- notice, this list of conditions and the following disclaimer.
7
+ notice, this list of conditions and the following disclaimer.
8
8
  2. Redistributions in binary form must reproduce the above copyright
9
- notice, this list of conditions and the following disclaimer in the
10
- documentation and/or other materials provided with the distribution.
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
11
 
12
12
  THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
13
  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
data/COPYING ADDED
@@ -0,0 +1,56 @@
1
+ Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
+ You can redistribute it and/or modify it under either the terms of the
3
+ 2-clause BSDL (see the file BSDL), or the conditions below:
4
+
5
+ 1. You may make and give away verbatim copies of the source form of the
6
+ software without restriction, provided that you duplicate all of the
7
+ original copyright notices and associated disclaimers.
8
+
9
+ 2. You may modify your copy of the software in any way, provided that
10
+ you do at least ONE of the following:
11
+
12
+ a. place your modifications in the Public Domain or otherwise
13
+ make them Freely Available, such as by posting said
14
+ modifications to Usenet or an equivalent medium, or by allowing
15
+ the author to include your modifications in the software.
16
+
17
+ b. use the modified software only within your corporation or
18
+ organization.
19
+
20
+ c. give non-standard binaries non-standard names, with
21
+ instructions on where to get the original software distribution.
22
+
23
+ d. make other distribution arrangements with the author.
24
+
25
+ 3. You may distribute the software in object code or binary form,
26
+ provided that you do at least ONE of the following:
27
+
28
+ a. distribute the binaries and library files of the software,
29
+ together with instructions (in the manual page or equivalent)
30
+ on where to get the original distribution.
31
+
32
+ b. accompany the distribution with the machine-readable source of
33
+ the software.
34
+
35
+ c. give non-standard binaries non-standard names, with
36
+ instructions on where to get the original software distribution.
37
+
38
+ d. make other distribution arrangements with the author.
39
+
40
+ 4. You may modify and include the part of the software into any other
41
+ software (possibly commercial). But some files in the distribution
42
+ are not written by the author, so that they are not under these terms.
43
+
44
+ For the list of those files and their copying conditions, see the
45
+ file LEGAL.
46
+
47
+ 5. The scripts and library files supplied as input to or produced as
48
+ output from the software do not automatically fall under the
49
+ copyright of the software, but belong to whomever generated them,
50
+ and may be sold commercially, and may be aggregated with this
51
+ software.
52
+
53
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
54
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
55
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
+ PURPOSE.
@@ -0,0 +1 @@
1
+ *.[ch]
@@ -27,7 +27,7 @@
27
27
  const IID IID_IMultiLanguage2 = {0xDCCFC164, 0x2B38, 0x11d2, {0xB7, 0xEC, 0x00, 0xC0, 0x4F, 0x8F, 0x5D, 0x9A}};
28
28
  #endif
29
29
 
30
- #define WIN32OLE_VERSION "1.8.8"
30
+ #define WIN32OLE_VERSION "1.9.0"
31
31
 
32
32
  typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
33
33
  (REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
@@ -1426,9 +1426,10 @@ ole_variant2val(VARIANT *pvar)
1426
1426
  vt = V_VT(pvar);
1427
1427
  }
1428
1428
 
1429
+ #define ARG_AS(type, pvar) (V_ISBYREF(pvar) ? *V_##type##REF(pvar) : V_##type(pvar))
1429
1430
  if(V_ISARRAY(pvar)) {
1430
1431
  VARTYPE vt_base = vt & VT_TYPEMASK;
1431
- SAFEARRAY *psa = V_ISBYREF(pvar) ? *V_ARRAYREF(pvar) : V_ARRAY(pvar);
1432
+ SAFEARRAY *psa = ARG_AS(ARRAY, pvar);
1432
1433
  UINT i = 0;
1433
1434
  LONG *pid, *plb, *pub;
1434
1435
  VARIANT variant;
@@ -1495,109 +1496,58 @@ ole_variant2val(VARIANT *pvar)
1495
1496
  case VT_NULL:
1496
1497
  break;
1497
1498
  case VT_I1:
1498
- if(V_ISBYREF(pvar))
1499
- obj = RB_INT2NUM((long)*V_I1REF(pvar));
1500
- else
1501
- obj = RB_INT2NUM((long)V_I1(pvar));
1499
+ obj = RB_INT2NUM((long)ARG_AS(I1, pvar));
1502
1500
  break;
1503
1501
 
1504
1502
  case VT_UI1:
1505
- if(V_ISBYREF(pvar))
1506
- obj = RB_INT2NUM((long)*V_UI1REF(pvar));
1507
- else
1508
- obj = RB_INT2NUM((long)V_UI1(pvar));
1503
+ obj = RB_INT2NUM((long)ARG_AS(UI1, pvar));
1509
1504
  break;
1510
1505
 
1511
1506
  case VT_I2:
1512
- if(V_ISBYREF(pvar))
1513
- obj = RB_INT2NUM((long)*V_I2REF(pvar));
1514
- else
1515
- obj = RB_INT2NUM((long)V_I2(pvar));
1507
+ obj = RB_INT2NUM((long)ARG_AS(I2, pvar));
1516
1508
  break;
1517
1509
 
1518
1510
  case VT_UI2:
1519
- if(V_ISBYREF(pvar))
1520
- obj = RB_INT2NUM((long)*V_UI2REF(pvar));
1521
- else
1522
- obj = RB_INT2NUM((long)V_UI2(pvar));
1511
+ obj = RB_INT2NUM((long)ARG_AS(UI2, pvar));
1523
1512
  break;
1524
1513
 
1525
1514
  case VT_I4:
1526
- if(V_ISBYREF(pvar))
1527
- obj = RB_INT2NUM((long)*V_I4REF(pvar));
1528
- else
1529
- obj = RB_INT2NUM((long)V_I4(pvar));
1515
+ obj = RB_INT2NUM((long)ARG_AS(I4, pvar));
1530
1516
  break;
1531
1517
 
1532
1518
  case VT_UI4:
1533
- if(V_ISBYREF(pvar))
1534
- obj = RB_INT2NUM((long)*V_UI4REF(pvar));
1535
- else
1536
- obj = RB_INT2NUM((long)V_UI4(pvar));
1519
+ obj = RB_INT2NUM((long)ARG_AS(UI4, pvar));
1537
1520
  break;
1538
1521
 
1539
1522
  case VT_INT:
1540
- if(V_ISBYREF(pvar))
1541
- obj = RB_INT2NUM((long)*V_INTREF(pvar));
1542
- else
1543
- obj = RB_INT2NUM((long)V_INT(pvar));
1523
+ obj = RB_INT2NUM((long)ARG_AS(INT, pvar));
1544
1524
  break;
1545
1525
 
1546
1526
  case VT_UINT:
1547
- if(V_ISBYREF(pvar))
1548
- obj = RB_INT2NUM((long)*V_UINTREF(pvar));
1549
- else
1550
- obj = RB_INT2NUM((long)V_UINT(pvar));
1527
+ obj = RB_INT2NUM((long)ARG_AS(UINT, pvar));
1551
1528
  break;
1552
1529
 
1553
1530
  #if (defined(_MSC_VER) && (_MSC_VER >= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)
1554
1531
  case VT_I8:
1555
- if(V_ISBYREF(pvar))
1556
- #if (defined(_MSC_VER) && (_MSC_VER >= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)
1557
- #ifdef V_I8REF
1558
- obj = I8_2_NUM(*V_I8REF(pvar));
1559
- #endif
1560
- #else
1561
- obj = Qnil;
1562
- #endif
1563
- else
1564
- obj = I8_2_NUM(V_I8(pvar));
1532
+ obj = I8_2_NUM(ARG_AS(I8, pvar));
1565
1533
  break;
1566
1534
  case VT_UI8:
1567
- if(V_ISBYREF(pvar))
1568
- #if (defined(_MSC_VER) && (_MSC_VER >= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__)
1569
- #ifdef V_UI8REF
1570
- obj = UI8_2_NUM(*V_UI8REF(pvar));
1571
- #endif
1572
- #else
1573
- obj = Qnil;
1574
- #endif
1575
- else
1576
- obj = UI8_2_NUM(V_UI8(pvar));
1535
+ obj = UI8_2_NUM(ARG_AS(UI8, pvar));
1577
1536
  break;
1578
1537
  #endif /* (defined(_MSC_VER) && (_MSC_VER >= 1300)) || defined(__CYGWIN__) || defined(__MINGW32__) */
1579
1538
 
1580
1539
  case VT_R4:
1581
- if(V_ISBYREF(pvar))
1582
- obj = rb_float_new(*V_R4REF(pvar));
1583
- else
1584
- obj = rb_float_new(V_R4(pvar));
1540
+ obj = rb_float_new(ARG_AS(R4, pvar));
1585
1541
  break;
1586
1542
 
1587
1543
  case VT_R8:
1588
- if(V_ISBYREF(pvar))
1589
- obj = rb_float_new(*V_R8REF(pvar));
1590
- else
1591
- obj = rb_float_new(V_R8(pvar));
1544
+ obj = rb_float_new(ARG_AS(R8, pvar));
1592
1545
  break;
1593
1546
 
1594
1547
  case VT_BSTR:
1595
1548
  {
1596
1549
  BSTR bstr;
1597
- if(V_ISBYREF(pvar))
1598
- bstr = *V_BSTRREF(pvar);
1599
- else
1600
- bstr = V_BSTR(pvar);
1550
+ bstr = ARG_AS(BSTR, pvar);
1601
1551
  obj = (SysStringLen(bstr) == 0)
1602
1552
  ? rb_str_new2("")
1603
1553
  : ole_wc2vstr(bstr, FALSE);
@@ -1605,27 +1555,18 @@ ole_variant2val(VARIANT *pvar)
1605
1555
  }
1606
1556
 
1607
1557
  case VT_ERROR:
1608
- if(V_ISBYREF(pvar))
1609
- obj = RB_INT2NUM(*V_ERRORREF(pvar));
1610
- else
1611
- obj = RB_INT2NUM(V_ERROR(pvar));
1558
+ obj = RB_INT2NUM(ARG_AS(ERROR, pvar));
1612
1559
  break;
1613
1560
 
1614
1561
  case VT_BOOL:
1615
- if (V_ISBYREF(pvar))
1616
- obj = (*V_BOOLREF(pvar) ? Qtrue : Qfalse);
1617
- else
1618
- obj = (V_BOOL(pvar) ? Qtrue : Qfalse);
1562
+ obj = (ARG_AS(BOOL, pvar) ? Qtrue : Qfalse);
1619
1563
  break;
1620
1564
 
1621
1565
  case VT_DISPATCH:
1622
1566
  {
1623
1567
  IDispatch *pDispatch;
1624
1568
 
1625
- if (V_ISBYREF(pvar))
1626
- pDispatch = *V_DISPATCHREF(pvar);
1627
- else
1628
- pDispatch = V_DISPATCH(pvar);
1569
+ pDispatch = ARG_AS(DISPATCH, pvar);
1629
1570
 
1630
1571
  if (pDispatch != NULL ) {
1631
1572
  OLE_ADDREF(pDispatch);
@@ -1642,10 +1583,7 @@ ole_variant2val(VARIANT *pvar)
1642
1583
  void *p;
1643
1584
  HRESULT hr;
1644
1585
 
1645
- if (V_ISBYREF(pvar))
1646
- punk = *V_UNKNOWNREF(pvar);
1647
- else
1648
- punk = V_UNKNOWN(pvar);
1586
+ punk = ARG_AS(UNKNOWN, pvar);
1649
1587
 
1650
1588
  if(punk != NULL) {
1651
1589
  hr = punk->lpVtbl->QueryInterface(punk, &IID_IDispatch, &p);
@@ -1660,10 +1598,7 @@ ole_variant2val(VARIANT *pvar)
1660
1598
  case VT_DATE:
1661
1599
  {
1662
1600
  DATE date;
1663
- if(V_ISBYREF(pvar))
1664
- date = *V_DATEREF(pvar);
1665
- else
1666
- date = V_DATE(pvar);
1601
+ date = ARG_AS(DATE, pvar);
1667
1602
 
1668
1603
  obj = vtdate2rbtime(date);
1669
1604
  break;
@@ -1693,6 +1628,7 @@ ole_variant2val(VARIANT *pvar)
1693
1628
  }
1694
1629
  }
1695
1630
  return obj;
1631
+ #undef ARG_AS
1696
1632
  }
1697
1633
 
1698
1634
  LONG
@@ -1962,7 +1898,7 @@ ole_bind_obj(VALUE moniker, int argc, VALUE *argv, VALUE self)
1962
1898
 
1963
1899
  /*
1964
1900
  * call-seq:
1965
- * WIN32OLE.connect( ole ) --> aWIN32OLE
1901
+ * connect(ole) --> aWIN32OLE
1966
1902
  *
1967
1903
  * Returns running OLE Automation object or WIN32OLE object from moniker.
1968
1904
  * 1st argument should be OLE program id or class id or moniker.
@@ -2019,7 +1955,7 @@ fole_s_connect(int argc, VALUE *argv, VALUE self)
2019
1955
 
2020
1956
  /*
2021
1957
  * call-seq:
2022
- * WIN32OLE.const_load( ole, mod = WIN32OLE)
1958
+ * const_load(ole, mod = WIN32OLE)
2023
1959
  *
2024
1960
  * Defines the constants of OLE Automation server as mod's constants.
2025
1961
  * The first argument is WIN32OLE object or type library name.
@@ -2124,7 +2060,7 @@ reference_count(struct oledata * pole)
2124
2060
 
2125
2061
  /*
2126
2062
  * call-seq:
2127
- * WIN32OLE.ole_reference_count(aWIN32OLE) --> number
2063
+ * ole_reference_count(aWIN32OLE) --> number
2128
2064
  *
2129
2065
  * Returns reference counter of Dispatch interface of WIN32OLE object.
2130
2066
  * You should not use this method because this method
@@ -2140,7 +2076,7 @@ fole_s_reference_count(VALUE self, VALUE obj)
2140
2076
 
2141
2077
  /*
2142
2078
  * call-seq:
2143
- * WIN32OLE.ole_free(aWIN32OLE) --> number
2079
+ * ole_free(aWIN32OLE) --> number
2144
2080
  *
2145
2081
  * Invokes Release method of Dispatch interface of WIN32OLE object.
2146
2082
  * You should not use this method because this method
@@ -2184,10 +2120,10 @@ ole_show_help(VALUE helpfile, VALUE helpcontext)
2184
2120
 
2185
2121
  /*
2186
2122
  * call-seq:
2187
- * WIN32OLE.ole_show_help(obj [,helpcontext])
2123
+ * ole_show_help(obj [,helpcontext])
2188
2124
  *
2189
- * Displays helpfile. The 1st argument specifies WIN32OLE_TYPE
2190
- * object or WIN32OLE_METHOD object or helpfile.
2125
+ * Displays helpfile. The 1st argument specifies WIN32OLE::Type
2126
+ * object or WIN32OLE::Method object or helpfile.
2191
2127
  *
2192
2128
  * excel = WIN32OLE.new('Excel.Application')
2193
2129
  * typeobj = excel.ole_type
@@ -2215,7 +2151,7 @@ fole_s_show_help(int argc, VALUE *argv, VALUE self)
2215
2151
  helpfile = target;
2216
2152
  }
2217
2153
  if (!RB_TYPE_P(helpfile, T_STRING)) {
2218
- rb_raise(rb_eTypeError, "1st parameter must be (String|WIN32OLE_TYPE|WIN32OLE_METHOD)");
2154
+ rb_raise(rb_eTypeError, "1st parameter must be (String|WIN32OLE::Type|WIN32OLE::Method)");
2219
2155
  }
2220
2156
  hwnd = ole_show_help(helpfile, helpcontext);
2221
2157
  if(hwnd == 0) {
@@ -2227,7 +2163,7 @@ fole_s_show_help(int argc, VALUE *argv, VALUE self)
2227
2163
 
2228
2164
  /*
2229
2165
  * call-seq:
2230
- * WIN32OLE.codepage
2166
+ * codepage
2231
2167
  *
2232
2168
  * Returns current codepage.
2233
2169
  * WIN32OLE.codepage # => WIN32OLE::CP_ACP
@@ -2258,7 +2194,7 @@ code_page_installed(UINT cp)
2258
2194
 
2259
2195
  /*
2260
2196
  * call-seq:
2261
- * WIN32OLE.codepage = CP
2197
+ * codepage = CP
2262
2198
  *
2263
2199
  * Sets current codepage.
2264
2200
  * The WIN32OLE.codepage is initialized according to
@@ -2282,7 +2218,7 @@ fole_s_set_code_page(VALUE self, VALUE vcp)
2282
2218
 
2283
2219
  /*
2284
2220
  * call-seq:
2285
- * WIN32OLE.locale -> locale id.
2221
+ * locale -> locale id.
2286
2222
  *
2287
2223
  * Returns current locale id (lcid). The default locale is
2288
2224
  * WIN32OLE::LOCALE_SYSTEM_DEFAULT.
@@ -2316,12 +2252,12 @@ lcid_installed(LCID lcid)
2316
2252
 
2317
2253
  /*
2318
2254
  * call-seq:
2319
- * WIN32OLE.locale = lcid
2255
+ * locale = lcid
2320
2256
  *
2321
2257
  * Sets current locale id (lcid).
2322
2258
  *
2323
2259
  * WIN32OLE.locale = 1033 # set locale English(U.S)
2324
- * obj = WIN32OLE_VARIANT.new("$100,000", WIN32OLE::VARIANT::VT_CY)
2260
+ * obj = WIN32OLE::Variant.new("$100,000", WIN32OLE::VARIANT::VT_CY)
2325
2261
  *
2326
2262
  */
2327
2263
  static VALUE
@@ -2345,7 +2281,7 @@ fole_s_set_locale(VALUE self, VALUE vlcid)
2345
2281
 
2346
2282
  /*
2347
2283
  * call-seq:
2348
- * WIN32OLE.create_guid
2284
+ * create_guid
2349
2285
  *
2350
2286
  * Creates GUID.
2351
2287
  * WIN32OLE.create_guid # => {1CB530F1-F6B1-404D-BCE6-1959BF91F4A8}
@@ -2393,9 +2329,9 @@ fole_s_ole_uninitialize(VALUE self)
2393
2329
  /*
2394
2330
  * Document-class: WIN32OLE
2395
2331
  *
2396
- * <code>WIN32OLE</code> objects represent OLE Automation object in Ruby.
2332
+ * +WIN32OLE+ objects represent OLE Automation object in Ruby.
2397
2333
  *
2398
- * By using WIN32OLE, you can access OLE server like VBScript.
2334
+ * By using +WIN32OLE+, you can access OLE server like VBScript.
2399
2335
  *
2400
2336
  * Here is sample script.
2401
2337
  *
@@ -2419,18 +2355,18 @@ fole_s_ole_uninitialize(VALUE self)
2419
2355
  * excel.ActiveWorkbook.Close(0);
2420
2356
  * excel.Quit();
2421
2357
  *
2422
- * Unfortunately, Win32OLE doesn't support the argument passed by
2358
+ * Unfortunately, +WIN32OLE+ doesn't support the argument passed by
2423
2359
  * reference directly.
2424
- * Instead, Win32OLE provides WIN32OLE::ARGV or WIN32OLE_VARIANT object.
2360
+ * Instead, +WIN32OLE+ provides WIN32OLE::ARGV or WIN32OLE::Variant object.
2425
2361
  * If you want to get the result value of argument passed by reference,
2426
- * you can use WIN32OLE::ARGV or WIN32OLE_VARIANT.
2362
+ * you can use WIN32OLE::ARGV or WIN32OLE::Variant.
2427
2363
  *
2428
2364
  * oleobj.method(arg1, arg2, refargv3)
2429
2365
  * puts WIN32OLE::ARGV[2] # the value of refargv3 after called oleobj.method
2430
2366
  *
2431
2367
  * or
2432
2368
  *
2433
- * refargv3 = WIN32OLE_VARIANT.new(XXX,
2369
+ * refargv3 = WIN32OLE::Variant.new(XXX,
2434
2370
  * WIN32OLE::VARIANT::VT_BYREF|WIN32OLE::VARIANT::VT_XXX)
2435
2371
  * oleobj.method(arg1, arg2, refargv3)
2436
2372
  * p refargv3.value # the value of refargv3 after called oleobj.method.
@@ -2439,7 +2375,7 @@ fole_s_ole_uninitialize(VALUE self)
2439
2375
 
2440
2376
  /*
2441
2377
  * call-seq:
2442
- * WIN32OLE.new(server, [host]) -> WIN32OLE object
2378
+ * new(server, [host]) -> WIN32OLE object
2443
2379
  * WIN32OLE.new(server, license: 'key') -> WIN32OLE object
2444
2380
  *
2445
2381
  * Returns a new WIN32OLE object(OLE Automation object).
@@ -2826,7 +2762,7 @@ ole_invoke(int argc, VALUE *argv, VALUE self, USHORT wFlags, BOOL is_bracket)
2826
2762
 
2827
2763
  /*
2828
2764
  * call-seq:
2829
- * WIN32OLE#invoke(method, [arg1,...]) => return value of method.
2765
+ * invoke(method, [arg1,...]) => return value of method.
2830
2766
  *
2831
2767
  * Runs OLE method.
2832
2768
  * The first argument specifies the method name of OLE Automation object.
@@ -3038,7 +2974,7 @@ ole_invoke2(VALUE self, VALUE dispid, VALUE args, VALUE types, USHORT dispkind)
3038
2974
 
3039
2975
  /*
3040
2976
  * call-seq:
3041
- * WIN32OLE#_invoke(dispid, args, types)
2977
+ * _invoke(dispid, args, types)
3042
2978
  *
3043
2979
  * Runs the early binding method.
3044
2980
  * The 1st argument specifies dispatch ID,
@@ -3056,7 +2992,7 @@ fole_invoke2(VALUE self, VALUE dispid, VALUE args, VALUE types)
3056
2992
 
3057
2993
  /*
3058
2994
  * call-seq:
3059
- * WIN32OLE#_getproperty(dispid, args, types)
2995
+ * _getproperty(dispid, args, types)
3060
2996
  *
3061
2997
  * Runs the early binding method to get property.
3062
2998
  * The 1st argument specifies dispatch ID,
@@ -3074,7 +3010,7 @@ fole_getproperty2(VALUE self, VALUE dispid, VALUE args, VALUE types)
3074
3010
 
3075
3011
  /*
3076
3012
  * call-seq:
3077
- * WIN32OLE#_setproperty(dispid, args, types)
3013
+ * _setproperty(dispid, args, types)
3078
3014
  *
3079
3015
  * Runs the early binding method to set property.
3080
3016
  * The 1st argument specifies dispatch ID,
@@ -3120,7 +3056,7 @@ fole_setproperty_with_bracket(int argc, VALUE *argv, VALUE self)
3120
3056
 
3121
3057
  /*
3122
3058
  * call-seq:
3123
- * WIN32OLE.setproperty('property', [arg1, arg2,...] val)
3059
+ * setproperty('property', [arg1, arg2,...] val)
3124
3060
  *
3125
3061
  * Sets property of OLE object.
3126
3062
  * When you want to set property with argument, you can use this method.
@@ -3226,7 +3162,7 @@ ole_propertyput(VALUE self, VALUE property, VALUE value)
3226
3162
 
3227
3163
  /*
3228
3164
  * call-seq:
3229
- * WIN32OLE#ole_free
3165
+ * ole_free
3230
3166
  *
3231
3167
  * invokes Release method of Dispatch interface of WIN32OLE object.
3232
3168
  * Usually, you do not need to call this method because Release method
@@ -3269,7 +3205,7 @@ ole_ienum_free(VALUE pEnumV)
3269
3205
 
3270
3206
  /*
3271
3207
  * call-seq:
3272
- * WIN32OLE#each {|i|...}
3208
+ * each {|i|...}
3273
3209
  *
3274
3210
  * Iterates over each item of OLE collection which has IEnumVARIANT interface.
3275
3211
  *
@@ -3340,7 +3276,7 @@ fole_each(VALUE self)
3340
3276
 
3341
3277
  /*
3342
3278
  * call-seq:
3343
- * WIN32OLE#method_missing(id [,arg1, arg2, ...])
3279
+ * method_missing(id [,arg1, arg2, ...])
3344
3280
  *
3345
3281
  * Calls WIN32OLE#invoke method.
3346
3282
  */
@@ -3438,9 +3374,9 @@ ole_methods(VALUE self, int mask)
3438
3374
 
3439
3375
  /*
3440
3376
  * call-seq:
3441
- * WIN32OLE#ole_methods
3377
+ * ole_methods
3442
3378
  *
3443
- * Returns the array of WIN32OLE_METHOD object.
3379
+ * Returns the array of WIN32OLE::Method object.
3444
3380
  * The element is OLE method of WIN32OLE object.
3445
3381
  *
3446
3382
  * excel = WIN32OLE.new('Excel.Application')
@@ -3455,9 +3391,9 @@ fole_methods(VALUE self)
3455
3391
 
3456
3392
  /*
3457
3393
  * call-seq:
3458
- * WIN32OLE#ole_get_methods
3394
+ * ole_get_methods
3459
3395
  *
3460
- * Returns the array of WIN32OLE_METHOD object .
3396
+ * Returns the array of WIN32OLE::Method object .
3461
3397
  * The element of the array is property (gettable) of WIN32OLE object.
3462
3398
  *
3463
3399
  * excel = WIN32OLE.new('Excel.Application')
@@ -3471,9 +3407,9 @@ fole_get_methods(VALUE self)
3471
3407
 
3472
3408
  /*
3473
3409
  * call-seq:
3474
- * WIN32OLE#ole_put_methods
3410
+ * ole_put_methods
3475
3411
  *
3476
- * Returns the array of WIN32OLE_METHOD object .
3412
+ * Returns the array of WIN32OLE::Method object .
3477
3413
  * The element of the array is property (settable) of WIN32OLE object.
3478
3414
  *
3479
3415
  * excel = WIN32OLE.new('Excel.Application')
@@ -3487,9 +3423,9 @@ fole_put_methods(VALUE self)
3487
3423
 
3488
3424
  /*
3489
3425
  * call-seq:
3490
- * WIN32OLE#ole_func_methods
3426
+ * ole_func_methods
3491
3427
  *
3492
- * Returns the array of WIN32OLE_METHOD object .
3428
+ * Returns the array of WIN32OLE::Method object .
3493
3429
  * The element of the array is property (settable) of WIN32OLE object.
3494
3430
  *
3495
3431
  * excel = WIN32OLE.new('Excel.Application')
@@ -3504,9 +3440,9 @@ fole_func_methods(VALUE self)
3504
3440
 
3505
3441
  /*
3506
3442
  * call-seq:
3507
- * WIN32OLE#ole_type
3443
+ * ole_type
3508
3444
  *
3509
- * Returns WIN32OLE_TYPE object.
3445
+ * Returns WIN32OLE::Type object.
3510
3446
  *
3511
3447
  * excel = WIN32OLE.new('Excel.Application')
3512
3448
  * tobj = excel.ole_type
@@ -3529,16 +3465,16 @@ fole_type(VALUE self)
3529
3465
  type = ole_type_from_itypeinfo(pTypeInfo);
3530
3466
  OLE_RELEASE(pTypeInfo);
3531
3467
  if (type == Qnil) {
3532
- rb_raise(rb_eRuntimeError, "failed to create WIN32OLE_TYPE obj from ITypeInfo");
3468
+ rb_raise(rb_eRuntimeError, "failed to create WIN32OLE::Type obj from ITypeInfo");
3533
3469
  }
3534
3470
  return type;
3535
3471
  }
3536
3472
 
3537
3473
  /*
3538
3474
  * call-seq:
3539
- * WIN32OLE#ole_typelib -> The WIN32OLE_TYPELIB object
3475
+ * ole_typelib -> The WIN32OLE_TYPELIB object
3540
3476
  *
3541
- * Returns the WIN32OLE_TYPELIB object. The object represents the
3477
+ * Returns the WIN32OLE::TypeLib object. The object represents the
3542
3478
  * type library which contains the WIN32OLE object.
3543
3479
  *
3544
3480
  * excel = WIN32OLE.new('Excel.Application')
@@ -3570,7 +3506,7 @@ fole_typelib(VALUE self)
3570
3506
 
3571
3507
  /*
3572
3508
  * call-seq:
3573
- * WIN32OLE#ole_query_interface(iid) -> WIN32OLE object
3509
+ * ole_query_interface(iid) -> WIN32OLE object
3574
3510
  *
3575
3511
  * Returns WIN32OLE object for a specific dispatch or dual
3576
3512
  * interface specified by iid.
@@ -3616,7 +3552,7 @@ fole_query_interface(VALUE self, VALUE str_iid)
3616
3552
 
3617
3553
  /*
3618
3554
  * call-seq:
3619
- * WIN32OLE#ole_respond_to?(method) -> true or false
3555
+ * ole_respond_to?(method) -> true or false
3620
3556
  *
3621
3557
  * Returns true when OLE object has OLE method, otherwise returns false.
3622
3558
  *
@@ -3825,9 +3761,9 @@ ole_typedesc2val(ITypeInfo *pTypeInfo, TYPEDESC *pTypeDesc, VALUE typedetails)
3825
3761
 
3826
3762
  /*
3827
3763
  * call-seq:
3828
- * WIN32OLE#ole_method_help(method)
3764
+ * ole_method_help(method)
3829
3765
  *
3830
- * Returns WIN32OLE_METHOD object corresponding with method
3766
+ * Returns WIN32OLE::Method object corresponding with method
3831
3767
  * specified by 1st argument.
3832
3768
  *
3833
3769
  * excel = WIN32OLE.new('Excel.Application')
@@ -3859,7 +3795,7 @@ fole_method_help(VALUE self, VALUE cmdname)
3859
3795
 
3860
3796
  /*
3861
3797
  * call-seq:
3862
- * WIN32OLE#ole_activex_initialize() -> Qnil
3798
+ * ole_activex_initialize() -> Qnil
3863
3799
  *
3864
3800
  * Initialize WIN32OLE object(ActiveX Control) by calling
3865
3801
  * IPersistMemory::InitNew.
@@ -4073,7 +4009,7 @@ Init_win32ole(void)
4073
4009
  * p c # => 0
4074
4010
  * p WIN32OLE::ARGV # => [10, 20, 30]
4075
4011
  *
4076
- * You can use WIN32OLE_VARIANT object to retrieve the value of reference
4012
+ * You can use WIN32OLE::Variant object to retrieve the value of reference
4077
4013
  * arguments instead of referring WIN32OLE::ARGV.
4078
4014
  *
4079
4015
  */
@@ -67,7 +67,7 @@ void
67
67
  Init_win32ole_error(void)
68
68
  {
69
69
  /*
70
- * Document-class: WIN32OLERuntimeError
70
+ * Document-class: WIN32OLE::RuntimeError
71
71
  *
72
72
  * Raised when OLE processing failed.
73
73
  *
@@ -77,11 +77,20 @@ Init_win32ole_error(void)
77
77
  *
78
78
  * raises the exception:
79
79
  *
80
- * WIN32OLERuntimeError: unknown OLE server: `NonExistProgID'
80
+ * WIN32OLE::RuntimeError: unknown OLE server: `NonExistProgID'
81
81
  * HRESULT error code:0x800401f3
82
82
  * Invalid class string
83
83
  *
84
84
  */
85
- eWIN32OLERuntimeError = rb_define_class("WIN32OLERuntimeError", rb_eRuntimeError);
86
- eWIN32OLEQueryInterfaceError = rb_define_class("WIN32OLEQueryInterfaceError", eWIN32OLERuntimeError);
85
+ eWIN32OLERuntimeError = rb_define_class_under(cWIN32OLE, "RuntimeError", rb_eRuntimeError);
86
+ /* Alias of WIN32OLE::RuntimeError, for the backward compatibility */
87
+ rb_define_const(rb_cObject, "WIN32OLERuntimeError", eWIN32OLERuntimeError);
88
+ /*
89
+ * Document-class: WIN32OLE::QueryInterfaceError
90
+ *
91
+ * Raised when OLE query failed.
92
+ */
93
+ eWIN32OLEQueryInterfaceError = rb_define_class_under(cWIN32OLE, "QueryInterfaceError", eWIN32OLERuntimeError);
94
+ /* Alias of WIN32OLE::QueryInterfaceError, for the backward compatibility */
95
+ rb_define_const(rb_cObject, "WIN32OLEQueryInterfaceError", eWIN32OLEQueryInterfaceError);
87
96
  }