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
@@ -64,9 +64,9 @@ create_win32ole_param(ITypeInfo *pTypeInfo, UINT method_index, UINT index, VALUE
64
64
  }
65
65
 
66
66
  /*
67
- * Document-class: WIN32OLE_PARAM
67
+ * Document-class: WIN32OLE::Param
68
68
  *
69
- * <code>WIN32OLE_PARAM</code> objects represent param information of
69
+ * +WIN32OLE::Param+ objects represent param information of
70
70
  * the OLE method.
71
71
  */
72
72
  static VALUE
@@ -131,15 +131,15 @@ oleparam_ole_param(VALUE self, VALUE olemethod, int n)
131
131
 
132
132
  /*
133
133
  * call-seq:
134
- * WIN32OLE_PARAM.new(method, n) -> WIN32OLE_PARAM object
134
+ * new(method, n) -> WIN32OLE::Param object
135
135
  *
136
- * Returns WIN32OLE_PARAM object which represents OLE parameter information.
137
- * 1st argument should be WIN32OLE_METHOD object.
136
+ * Returns WIN32OLE::Param object which represents OLE parameter information.
137
+ * 1st argument should be WIN32OLE::Method object.
138
138
  * 2nd argument `n' is n-th parameter of the method specified by 1st argument.
139
139
  *
140
- * tobj = WIN32OLE_TYPE.new('Microsoft Scripting Runtime', 'IFileSystem')
141
- * method = WIN32OLE_METHOD.new(tobj, 'CreateTextFile')
142
- * param = WIN32OLE_PARAM.new(method, 2) # => #<WIN32OLE_PARAM:Overwrite=true>
140
+ * tobj = WIN32OLE::Type.new('Microsoft Scripting Runtime', 'IFileSystem')
141
+ * method = WIN32OLE::Method.new(tobj, 'CreateTextFile')
142
+ * param = WIN32OLE::Param.new(method, 2) # => #<WIN32OLE::Param:Overwrite=true>
143
143
  *
144
144
  */
145
145
  static VALUE
@@ -147,7 +147,7 @@ foleparam_initialize(VALUE self, VALUE olemethod, VALUE n)
147
147
  {
148
148
  int idx;
149
149
  if (!rb_obj_is_kind_of(olemethod, cWIN32OLE_METHOD)) {
150
- rb_raise(rb_eTypeError, "1st parameter must be WIN32OLE_METHOD object");
150
+ rb_raise(rb_eTypeError, "1st parameter must be WIN32OLE::Method object");
151
151
  }
152
152
  idx = RB_FIX2INT(n);
153
153
  return oleparam_ole_param(self, olemethod, idx);
@@ -155,11 +155,11 @@ foleparam_initialize(VALUE self, VALUE olemethod, VALUE n)
155
155
 
156
156
  /*
157
157
  * call-seq:
158
- * WIN32OLE_PARAM#name
158
+ * name
159
159
  *
160
160
  * Returns name.
161
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook')
162
- * method = WIN32OLE_METHOD.new(tobj, 'SaveAs')
161
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'Workbook')
162
+ * method = WIN32OLE::Method.new(tobj, 'SaveAs')
163
163
  * param1 = method.params[0]
164
164
  * puts param1.name # => Filename
165
165
  */
@@ -186,11 +186,11 @@ ole_param_ole_type(ITypeInfo *pTypeInfo, UINT method_index, UINT index)
186
186
 
187
187
  /*
188
188
  * call-seq:
189
- * WIN32OLE_PARAM#ole_type
189
+ * ole_type
190
190
  *
191
- * Returns OLE type of WIN32OLE_PARAM object(parameter of OLE method).
192
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook')
193
- * method = WIN32OLE_METHOD.new(tobj, 'SaveAs')
191
+ * Returns OLE type of WIN32OLE::Param object(parameter of OLE method).
192
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'Workbook')
193
+ * method = WIN32OLE::Method.new(tobj, 'SaveAs')
194
194
  * param1 = method.params[0]
195
195
  * puts param1.ole_type # => VARIANT
196
196
  */
@@ -220,11 +220,11 @@ ole_param_ole_type_detail(ITypeInfo *pTypeInfo, UINT method_index, UINT index)
220
220
 
221
221
  /*
222
222
  * call-seq:
223
- * WIN32OLE_PARAM#ole_type_detail
223
+ * ole_type_detail
224
224
  *
225
225
  * Returns detail information of type of argument.
226
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'IWorksheetFunction')
227
- * method = WIN32OLE_METHOD.new(tobj, 'SumIf')
226
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'IWorksheetFunction')
227
+ * method = WIN32OLE::Method.new(tobj, 'SumIf')
228
228
  * param1 = method.params[0]
229
229
  * p param1.ole_type_detail # => ["PTR", "USERDEFINED", "Range"]
230
230
  */
@@ -254,11 +254,11 @@ ole_param_flag_mask(ITypeInfo *pTypeInfo, UINT method_index, UINT index, USHORT
254
254
 
255
255
  /*
256
256
  * call-seq:
257
- * WIN32OLE_PARAM#input?
257
+ * input?
258
258
  *
259
259
  * Returns true if the parameter is input.
260
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook')
261
- * method = WIN32OLE_METHOD.new(tobj, 'SaveAs')
260
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'Workbook')
261
+ * method = WIN32OLE::Method.new(tobj, 'SaveAs')
262
262
  * param1 = method.params[0]
263
263
  * puts param1.input? # => true
264
264
  */
@@ -273,22 +273,22 @@ foleparam_input(VALUE self)
273
273
 
274
274
  /*
275
275
  * call-seq:
276
- * WIN32OLE#output?
276
+ * output?
277
277
  *
278
278
  * Returns true if argument is output.
279
- * tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', 'DWebBrowserEvents')
280
- * method = WIN32OLE_METHOD.new(tobj, 'NewWindow')
279
+ * tobj = WIN32OLE::Type.new('Microsoft Internet Controls', 'DWebBrowserEvents')
280
+ * method = WIN32OLE::Method.new(tobj, 'NewWindow')
281
281
  * method.params.each do |param|
282
282
  * puts "#{param.name} #{param.output?}"
283
283
  * end
284
284
  *
285
- * The result of above script is following:
286
- * URL false
287
- * Flags false
288
- * TargetFrameName false
289
- * PostData false
290
- * Headers false
291
- * Processed true
285
+ * The result of above script is following:
286
+ * URL false
287
+ * Flags false
288
+ * TargetFrameName false
289
+ * PostData false
290
+ * Headers false
291
+ * Processed true
292
292
  */
293
293
  static VALUE
294
294
  foleparam_output(VALUE self)
@@ -301,11 +301,11 @@ foleparam_output(VALUE self)
301
301
 
302
302
  /*
303
303
  * call-seq:
304
- * WIN32OLE_PARAM#optional?
304
+ * optional?
305
305
  *
306
306
  * Returns true if argument is optional.
307
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook')
308
- * method = WIN32OLE_METHOD.new(tobj, 'SaveAs')
307
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'Workbook')
308
+ * method = WIN32OLE::Method.new(tobj, 'SaveAs')
309
309
  * param1 = method.params[0]
310
310
  * puts "#{param1.name} #{param1.optional?}" # => Filename true
311
311
  */
@@ -320,12 +320,12 @@ foleparam_optional(VALUE self)
320
320
 
321
321
  /*
322
322
  * call-seq:
323
- * WIN32OLE_PARAM#retval?
323
+ * retval?
324
324
  *
325
325
  * Returns true if argument is return value.
326
- * tobj = WIN32OLE_TYPE.new('DirectX 7 for Visual Basic Type Library',
327
- * 'DirectPlayLobbyConnection')
328
- * method = WIN32OLE_METHOD.new(tobj, 'GetPlayerShortName')
326
+ * tobj = WIN32OLE::Type.new('DirectX 7 for Visual Basic Type Library',
327
+ * 'DirectPlayLobbyConnection')
328
+ * method = WIN32OLE::Method.new(tobj, 'GetPlayerShortName')
329
329
  * param = method.params[0]
330
330
  * puts "#{param.name} #{param.retval?}" # => name true
331
331
  */
@@ -363,12 +363,12 @@ ole_param_default(ITypeInfo *pTypeInfo, UINT method_index, UINT index)
363
363
 
364
364
  /*
365
365
  * call-seq:
366
- * WIN32OLE_PARAM#default
366
+ * default
367
367
  *
368
368
  * Returns default value. If the default value does not exist,
369
369
  * this method returns nil.
370
- * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook')
371
- * method = WIN32OLE_METHOD.new(tobj, 'SaveAs')
370
+ * tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'Workbook')
371
+ * method = WIN32OLE::Method.new(tobj, 'SaveAs')
372
372
  * method.params.each do |param|
373
373
  * if param.default
374
374
  * puts "#{param.name} (= #{param.default})"
@@ -377,18 +377,18 @@ ole_param_default(ITypeInfo *pTypeInfo, UINT method_index, UINT index)
377
377
  * end
378
378
  * end
379
379
  *
380
- * The above script result is following:
381
- * Filename
382
- * FileFormat
383
- * Password
384
- * WriteResPassword
385
- * ReadOnlyRecommended
386
- * CreateBackup
387
- * AccessMode (= 1)
388
- * ConflictResolution
389
- * AddToMru
390
- * TextCodepage
391
- * TextVisualLayout
380
+ * The above script result is following:
381
+ * Filename
382
+ * FileFormat
383
+ * Password
384
+ * WriteResPassword
385
+ * ReadOnlyRecommended
386
+ * CreateBackup
387
+ * AccessMode (= 1)
388
+ * ConflictResolution
389
+ * AddToMru
390
+ * TextCodepage
391
+ * TextVisualLayout
392
392
  */
393
393
  static VALUE
394
394
  foleparam_default(VALUE self)
@@ -401,7 +401,7 @@ foleparam_default(VALUE self)
401
401
 
402
402
  /*
403
403
  * call-seq:
404
- * WIN32OLE_PARAM#inspect -> String
404
+ * inspect -> String
405
405
  *
406
406
  * Returns the parameter name with class name. If the parameter has default value,
407
407
  * then returns name=value string with class name.
@@ -416,13 +416,14 @@ foleparam_inspect(VALUE self)
416
416
  rb_str_cat2(detail, "=");
417
417
  rb_str_concat(detail, rb_inspect(defval));
418
418
  }
419
- return make_inspect("WIN32OLE_PARAM", detail);
419
+ return make_inspect("WIN32OLE::Param", detail);
420
420
  }
421
421
 
422
422
  void
423
423
  Init_win32ole_param(void)
424
424
  {
425
425
  cWIN32OLE_PARAM = rb_define_class_under(cWIN32OLE, "Param", rb_cObject);
426
+ /* Alias of WIN32OLE::Param, for the backward compatibility */
426
427
  rb_define_const(rb_cObject, "WIN32OLE_PARAM", cWIN32OLE_PARAM);
427
428
  rb_define_alloc_func(cWIN32OLE_PARAM, foleparam_s_allocate);
428
429
  rb_define_method(cWIN32OLE_PARAM, "initialize", foleparam_initialize, 2);
@@ -177,10 +177,10 @@ create_win32ole_record(IRecordInfo *pri, void *prec)
177
177
  }
178
178
 
179
179
  /*
180
- * Document-class: WIN32OLE_RECORD
180
+ * Document-class: WIN32OLE::Record
181
181
  *
182
- * <code>WIN32OLE_RECORD</code> objects represents VT_RECORD OLE variant.
183
- * Win32OLE returns WIN32OLE_RECORD object if the result value of invoking
182
+ * +WIN32OLE::Record+ objects represents VT_RECORD OLE variant.
183
+ * Win32OLE returns WIN32OLE::Record object if the result value of invoking
184
184
  * OLE methods.
185
185
  *
186
186
  * If COM server in VB.NET ComServer project is the following:
@@ -206,7 +206,7 @@ create_win32ole_record(IRecordInfo *pri, void *prec)
206
206
  * require 'win32ole'
207
207
  * obj = WIN32OLE.new('ComServer.ComClass')
208
208
  * book = obj.getBook
209
- * book.class # => WIN32OLE_RECORD
209
+ * book.class # => WIN32OLE::Record
210
210
  * book.title # => "The Ruby Book"
211
211
  * book.cost # => 20
212
212
  *
@@ -253,11 +253,11 @@ folerecord_s_allocate(VALUE klass) {
253
253
 
254
254
  /*
255
255
  * call-seq:
256
- * WIN32OLE_RECORD.new(typename, obj) -> WIN32OLE_RECORD object
256
+ * new(typename, obj) -> WIN32OLE::Record object
257
257
  *
258
- * Returns WIN32OLE_RECORD object. The first argument is struct name (String
258
+ * Returns WIN32OLE::Record object. The first argument is struct name (String
259
259
  * or Symbol).
260
- * The second parameter obj should be WIN32OLE object or WIN32OLE_TYPELIB object.
260
+ * The second parameter obj should be WIN32OLE object or WIN32OLE::TypeLib object.
261
261
  * If COM server in VB.NET ComServer project is the following:
262
262
  *
263
263
  * Imports System.Runtime.InteropServices
@@ -269,13 +269,13 @@ folerecord_s_allocate(VALUE klass) {
269
269
  * End Structure
270
270
  * End Class
271
271
  *
272
- * then, you can create WIN32OLE_RECORD object is as following:
272
+ * then, you can create WIN32OLE::Record object is as following:
273
273
  *
274
274
  * require 'win32ole'
275
275
  * obj = WIN32OLE.new('ComServer.ComClass')
276
- * book1 = WIN32OLE_RECORD.new('Book', obj) # => WIN32OLE_RECORD object
276
+ * book1 = WIN32OLE::Record.new('Book', obj) # => WIN32OLE::Record object
277
277
  * tlib = obj.ole_typelib
278
- * book2 = WIN32OLE_RECORD.new('Book', tlib) # => WIN32OLE_RECORD object
278
+ * book2 = WIN32OLE::Record.new('Book', tlib) # => WIN32OLE::Record object
279
279
  *
280
280
  */
281
281
  static VALUE
@@ -303,7 +303,7 @@ folerecord_initialize(VALUE self, VALUE typename, VALUE oleobj) {
303
303
  hr = E_FAIL;
304
304
  }
305
305
  } else {
306
- rb_raise(rb_eArgError, "2nd argument should be WIN32OLE object or WIN32OLE_TYPELIB object");
306
+ rb_raise(rb_eArgError, "2nd argument should be WIN32OLE object or WIN32OLE::TypeLib object");
307
307
  }
308
308
 
309
309
  if (FAILED(hr)) {
@@ -323,7 +323,7 @@ folerecord_initialize(VALUE self, VALUE typename, VALUE oleobj) {
323
323
 
324
324
  /*
325
325
  * call-seq:
326
- * WIN32OLE_RECORD#to_h #=> Ruby Hash object.
326
+ * WIN32OLE::Record#to_h #=> Ruby Hash object.
327
327
  *
328
328
  * Returns Ruby Hash object which represents VT_RECORD variable.
329
329
  * The keys of Hash object are member names of VT_RECORD OLE variable and
@@ -346,7 +346,7 @@ folerecord_initialize(VALUE self, VALUE typename, VALUE oleobj) {
346
346
  * End Function
347
347
  * End Class
348
348
  *
349
- * then, the result of WIN32OLE_RECORD#to_h is the following:
349
+ * then, the result of WIN32OLE::Record#to_h is the following:
350
350
  *
351
351
  * require 'win32ole'
352
352
  * obj = WIN32OLE.new('ComServer.ComClass')
@@ -362,7 +362,7 @@ folerecord_to_h(VALUE self)
362
362
 
363
363
  /*
364
364
  * call-seq:
365
- * WIN32OLE_RECORD#typename #=> String object
365
+ * typename #=> String object
366
366
  *
367
367
  * Returns the type name of VT_RECORD OLE variable.
368
368
  *
@@ -383,7 +383,7 @@ folerecord_to_h(VALUE self)
383
383
  * End Function
384
384
  * End Class
385
385
  *
386
- * then, the result of WIN32OLE_RECORD#typename is the following:
386
+ * then, the result of WIN32OLE::Record#typename is the following:
387
387
  *
388
388
  * require 'win32ole'
389
389
  * obj = WIN32OLE.new('ComServer.ComClass')
@@ -423,7 +423,7 @@ olerecord_ivar_set(VALUE self, VALUE name, VALUE val)
423
423
 
424
424
  /*
425
425
  * call-seq:
426
- * WIN32OLE_RECORD#method_missing(name)
426
+ * method_missing(name)
427
427
  *
428
428
  * Returns value specified by the member name of VT_RECORD OLE variable.
429
429
  * Or sets value specified by the member name of VT_RECORD OLE variable.
@@ -443,7 +443,7 @@ olerecord_ivar_set(VALUE self, VALUE name, VALUE val)
443
443
  * Then getting/setting value from Ruby is as the following:
444
444
  *
445
445
  * obj = WIN32OLE.new('ComServer.ComClass')
446
- * book = WIN32OLE_RECORD.new('Book', obj)
446
+ * book = WIN32OLE::Record.new('Book', obj)
447
447
  * book.title # => nil ( book.method_missing(:title) is invoked. )
448
448
  * book.title = "Ruby" # ( book.method_missing(:title=, "Ruby") is invoked. )
449
449
  */
@@ -473,7 +473,7 @@ folerecord_method_missing(int argc, VALUE *argv, VALUE self)
473
473
 
474
474
  /*
475
475
  * call-seq:
476
- * WIN32OLE_RECORD#ole_instance_variable_get(name)
476
+ * ole_instance_variable_get(name)
477
477
  *
478
478
  * Returns value specified by the member name of VT_RECORD OLE object.
479
479
  * If the member name is not correct, KeyError exception is raised.
@@ -494,7 +494,7 @@ folerecord_method_missing(int argc, VALUE *argv, VALUE self)
494
494
  * then accessing object_id of ComObject from Ruby is as the following:
495
495
  *
496
496
  * srver = WIN32OLE.new('ComServer.ComClass')
497
- * obj = WIN32OLE_RECORD.new('ComObject', server)
497
+ * obj = WIN32OLE::Record.new('ComObject', server)
498
498
  * # obj.object_id returns Ruby Object#object_id
499
499
  * obj.ole_instance_variable_get(:object_id) # => nil
500
500
  *
@@ -515,7 +515,7 @@ folerecord_ole_instance_variable_get(VALUE self, VALUE name)
515
515
 
516
516
  /*
517
517
  * call-seq:
518
- * WIN32OLE_RECORD#ole_instance_variable_set(name, val)
518
+ * ole_instance_variable_set(name, val)
519
519
  *
520
520
  * Sets value specified by the member name of VT_RECORD OLE object.
521
521
  * If the member name is not correct, KeyError exception is raised.
@@ -534,7 +534,7 @@ folerecord_ole_instance_variable_get(VALUE self, VALUE name)
534
534
  * then setting value of the `title' member is as following:
535
535
  *
536
536
  * srver = WIN32OLE.new('ComServer.ComClass')
537
- * obj = WIN32OLE_RECORD.new('Book', server)
537
+ * obj = WIN32OLE::Record.new('Book', server)
538
538
  * obj.ole_instance_variable_set(:title, "The Ruby Book")
539
539
  *
540
540
  */
@@ -554,7 +554,7 @@ folerecord_ole_instance_variable_set(VALUE self, VALUE name, VALUE val)
554
554
 
555
555
  /*
556
556
  * call-seq:
557
- * WIN32OLE_RECORD#inspect -> String
557
+ * inspect -> String
558
558
  *
559
559
  * Returns the OLE struct name and member name and the value of member
560
560
  *
@@ -570,8 +570,8 @@ folerecord_ole_instance_variable_set(VALUE self, VALUE name, VALUE val)
570
570
  * then
571
571
  *
572
572
  * srver = WIN32OLE.new('ComServer.ComClass')
573
- * obj = WIN32OLE_RECORD.new('Book', server)
574
- * obj.inspect # => <WIN32OLE_RECORD(ComClass) {"title" => nil, "cost" => nil}>
573
+ * obj = WIN32OLE::Record.new('Book', server)
574
+ * obj.inspect # => <WIN32OLE::Record(ComClass) {"title" => nil, "cost" => nil}>
575
575
  *
576
576
  */
577
577
  static VALUE
@@ -584,7 +584,7 @@ folerecord_inspect(VALUE self)
584
584
  tname = rb_inspect(tname);
585
585
  }
586
586
  field = rb_inspect(folerecord_to_h(self));
587
- return rb_sprintf("#<WIN32OLE_RECORD(%"PRIsVALUE") %"PRIsVALUE">",
587
+ return rb_sprintf("#<WIN32OLE::Record(%"PRIsVALUE") %"PRIsVALUE">",
588
588
  tname,
589
589
  field);
590
590
  }
@@ -595,6 +595,7 @@ void
595
595
  Init_win32ole_record(void)
596
596
  {
597
597
  cWIN32OLE_RECORD = rb_define_class_under(cWIN32OLE, "Record", rb_cObject);
598
+ /* Alias of WIN32OLE::Record, for the backward compatibility */
598
599
  rb_define_const(rb_cObject, "WIN32OLE_RECORD", cWIN32OLE_RECORD);
599
600
  rb_define_alloc_func(cWIN32OLE_RECORD, folerecord_s_allocate);
600
601
  rb_define_method(cWIN32OLE_RECORD, "initialize", folerecord_initialize, 2);