Commit graph

291 commits

Author SHA1 Message Date
suke
7f411d6ed4 * ext/win32ole/win32ole.c: use typed data for WIN32OLE.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_event.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-01 11:03:13 +00:00
suke
5d2ce2fb40 ext/win32ole/win32ole.c (ole_val2variant, ole_invoke): refactoring.
use ole_variant2variant to convert WIN32OLE_VARIANT object to
VARIANT object.

ext/win32ole/win32ole_variant.c: refactoring. add
ole_variant2variant.
ext/win32ole/win32ole_variant.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-25 22:46:15 +00:00
zzak
34fcb5dbee * ext/win32ole/win32ole.c: [DOC] Fix typo in :nodoc: reported by
@windwiny to [Fix GH-705] https://github.com/ruby/ruby/pull/705

* ext/pty/pty.c: ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-04 00:09:57 +00:00
nobu
28b9f11d5a protoize no-arguments functions
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-30 05:25:32 +00:00
suke
8bb93fc8ae ext/win32ole/win32ole.c (rbtime2vtdate, vtdate2rbtime): fix
the bug in conversion of milliseconds. [Bug #10258]

test/win32ole/test_win32ole_variant.rb
(test_conversion_dbl2date_with_msec,
test_conversion_time2date_with_msec): use assert_in_delta instead
of assert_equal to treat an acceptable error range.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-21 02:18:37 +00:00
suke
5b800bef9e * ext/win32ole/win32ole_event.c(ev_advise, ole_event_free,
fev_s_allocate, fev_unadvise): avoid segmentation fault when COM
  server freed before calling Unadvise from WIN32OLE_EVENT object.
* ext/win32ole/win32ole.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-13 02:28:47 +00:00
suke
6057695c87 * ext/win32ole/win32ole_variant.c (ole_val2variant_err,
ole_val2variantdata, Init_win32ole_variant): support VT_ERROR
  variant with error code. add WIN32OLE_VARIANT::NoParam.
* test/win32ole/test_win32ole_variant.rb(test_c_noparam,
  test_vt_error_noparam): ditto.
* ext/win32ole/win32ole.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-06 07:52:04 +00:00
suke
c5487618f5 * ext/win32ole/win32ole.c (rbtime2vtdate): try to convert millisecond
of Time object to millisecond of VT_DATE VARIANT.
* test/win32ole/test_win32ole_variant.rb
  (test_conversion_time2date_with_msec): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-01 11:16:57 +00:00
suke
ef7b9bf382 * ext/win32ole/win32ole.c (vtdate2rbtime): try to convert millisecond
of VT_DATE VARIANT to nsec of Time object.
* test/win32ole/test_win32ole_variant.rb
  (test_conversion_dbl2date_with_msec): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-27 10:57:28 +00:00
suke
108c4e4495 * ext/win32ole/win32ole.c(fole_s_connect, fole_initialize): raise a
security error with the tainted string object.
* ext/win32ole/win32ole_event.c(ev_advise): ditto.
* test/win32ole/test_win32ole.rb(test_s_new_exc_svr_tainted,
  test_s_new_exc_host_tainted): ditto.
* test/win32ole/test_win32ole_event.rb(test_s_new_exc_tainted): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-25 11:18:17 +00:00
nobu
f9b7a2a33f win32ole.c: check overflow
* ext/win32ole/win32ole.c (ole_invoke): check integer overflow on
  win64 platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-19 01:29:45 +00:00
suke
b62ce0e964 * ext/win32ole/win32ole.c (ole_invoke): use RHASH_SIZE instead of
calling Hash#length method.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-17 08:10:38 +00:00
suke
cd3d7fe846 * ext/win32ole/win32ole.c: seperate WIN32OLE_EVENT src from
win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_event.c: ditto.
* ext/win32ole/win32ole_event.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-15 11:36:12 +00:00
suke
96b27e5a97 * ext/win32ole/win32ole.c: seperate WIN32OLE_RECORD src from
win32ole.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_record.c: ditto.
* ext/win32ole/win32ole_record.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 15:28:26 +00:00
suke
51b4ccd618 * ext/win32ole/win32ole.c: seperate WIN32OLE_VARIANT src from
win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_variant.c: ditto.
* ext/win32ole/win32ole_variant.c: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 12:46:23 +00:00
suke
fe8b513378 * ext/win32ole/win32ole.c: remove unused variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 11:10:42 +00:00
suke
651b31e367 * ext/win32ole/win32ole.c(ole_search_handler_method, rescue_callback,
folerecord_inspect): use PRIsVALUE in rb_sprintf.

* ext/win32ole/win32ole_param.c(foleparam_inspect): ditto.

* ext/win32ole/win32ole_variable.c(folevariable_inspect): use
  PRIsVALUE in rb_sprintf, use rb_inspect.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 10:35:20 +00:00
suke
47b2057a02 * ext/win32ole/win32ole.c: seperate WIN32OLE_PARAM src from win32ole.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_param.c: ditto.
* ext/win32ole/win32ole_param.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 15:09:29 +00:00
suke
aeb8791dab * ext/win32ole/win32ole.c: refactoring. move some methods
into win32ole_type.c / win32ole_method.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_method.c: ditto.
* ext/win32ole/win32ole_method.h: ditto.
* ext/win32ole/win32ole_type.h: ditto.
* ext/win32ole/win32ole_type.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 14:21:22 +00:00
suke
7bf7bb84d3 * ext/win32ole/win32ole.c: refactoring. move
ole_typelib_from_itypeinfo into win32ole_typelib.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_typelib.h: ditto.
* ext/win32ole/win32ole_typelib.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 14:00:45 +00:00
suke
eac5e58bb4 * ext/win32ole/win32ole.c (ole_create_dcom): use the converted
result if the argument can be converted to a string, to get rid
  of invalid access. Thanks to nobu. [ruby-dev:48467] [Bug #10127]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-12 12:51:36 +00:00
suke
1a83b21189 * ext/win32ole/win32ole.c: seperate WIN32OLE_METHOD src from
win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_method.c: ditto.
* ext/win32ole/win32ole_method.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-11 21:20:10 +00:00
suke
0aa9e15ea0 * ext/win32ole/win32ole.c: seperate WIN32OLE_VARIABLE src from
win32ole.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_variable.c: ditto.
* ext/win32ole/win32ole_variable.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-11 11:50:17 +00:00
suke
98f1494664 * ext/win32ole/win32ole.c: separate WIN32OLE_TYPE src from win32ole.c.
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_type.c: ditto.
* ext/win32ole/win32ole_type.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-08 15:37:32 +00:00
suke
0e2410f47e * ext/win32ole/win32ole.c: separate src of WIN32OLE_TYPELIB from
win32ole.c

* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_typelib.c: ditto.
* ext/win32ole/win32ole_typelib.h: ditto.
* ext/win32ole/depend: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-06 12:00:09 +00:00
suke
f2ff35c83d * ext/win32ole/win32ole.c (olerecord_ivar_set): remove rb_str_subseq.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-06 11:09:59 +00:00
suke
75d1a6c9fc * ext/win32ole/win32ole.c: separate src of WIN32OLERuntimeError
from win32ole.c.

* ext/win32ole/win32ole.h: ditto
* ext/win32ole/depend: ditto.
* ext/win32ole/win32ole_error.c: ditto.
* ext/win32ole/win32ole_error.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-06 09:47:39 +00:00
suke
9670542af5 * ext/win32ole/win32ole.c (ole_invoke): skip VariantClear when
argument is VT_RECORD variant.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-05 10:31:00 +00:00
suke
8c3fb4929a * ext/win32ole/win32ole.c (ole_invoke): call rb_hash_foreach instead
of rb_block_call.

* ext/win32ole/win32ole.c: add comment for rdoc of WIN32OLE_VARIANT
  class.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-04 10:49:34 +00:00
nobu
1d670ab0f0 ext: prefer RB_TYPE_P over comparison TYPE with constants
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-03 01:56:01 +00:00
suke
4e7801a1aa * ext/win32ole/win32ole.c: separate WIN32OLE::VARIANT src file
from win32ole.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_variant_m.c: ditto.
* ext/win32ole/win32ole_variant_m.h: ditto.
* ext/win32ole/depend: ditto.
* ext/.document: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-02 14:55:36 +00:00
suke
cefef1f162 * ext/win32ole/win32ole.c: VERSION 1.7.0 -> 1.7.1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-02 05:41:39 +00:00
suke
dde71a3de8 * ext/win32ole/win32ole.c: add coments for rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-02 05:37:47 +00:00
suke
a13944dc1c * ext/win32ole/win32ole.c (folerecord_inititalize): accept
only 2 arguments. The 2nd argument should be WIN32OLE object or
  WIN32OLE_RECORD object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-01 13:32:54 +00:00
suke
2cce818552 * ext/win32ole/win32ole.c (ole_variant2val): call
folerecord_s_allocate instead of WIN32OLE_RECORD.new.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-01 11:20:05 +00:00
suke
9437332afd * ext/win32ole/win32ole.c: add WIN32OLE_RECORD#inspect.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-31 13:21:50 +00:00
suke
1069b277e4 * ext/win32ole/win32ole.c: add
WIN32OLE_RECORD#ole_instance_variable_set and
  WIN32OLE_RECORD#ole_instance_variable_get



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-31 11:38:57 +00:00
suke
1889a5b274 * ext/win32ole/win32ole.c (ole_invoke): pass WIN32OLE_RECORD variant
by reference when invoke OLE methods at first.

* ext/win32ole/win32ole.c (olerecord_set_ivar): release
  IRecordInfo interface before setting another IRecordInfo interface.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-30 12:35:15 +00:00
suke
db91d29f7c * ext/win32ole/win32ole.c (hash2olerec): ignore WIN32OLE_RECORD
instance variable if the variable is nil.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-29 13:25:02 +00:00
suke
ce4325f354 * ext/win32ole/win32ole.c (folerecord_method_missing): refactoring.
divide functionality of folerecord_method_missing into
  olerecord_ivar_set and olerecord_ivar_get.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-29 10:48:57 +00:00
suke
4d812cf6db * ext/win32ole/win23ole.c (folerecord_method_missing): support
setter of member of WIN32OLE_RECORD object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-28 11:26:43 +00:00
nobu
1bf4a34eec win32ole.c: suppress warning
* ext/win32ole/win32ole.c (ole_rec2variant): cast to suppress a
  format warning on x86_64-cygwin.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-27 20:51:46 +00:00
suke
6d877a9341 * ext/win32ole/win32ole.c (Init_win32ole): add WIN32OLE_RECORD#initialize
method.

* ext/win32ole/win32ole.c (ole_val2variant): convert WIN32OLE_RECORD
  object to VT_RECORD variant.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-24 13:51:22 +00:00
suke
cf55e34e30 * refactoring
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-18 21:20:43 +00:00
suke
d89c763528 * ext/win32ole/win32ole.c (folevariant_initialize): WIN32OLE_VARIANT
does not support VT_RECORD. VT_RECORD should be supported in
  WIN32OLE_RECORD.

* test/win32ole/test_win32ole_variant.rb (test_s_new_vt_record_exc):
  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-18 13:40:41 +00:00
suke
7ebb63f038 * ext/win32ole/win32ole.c (folevariant_initialize): remove unnecessary
code.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-18 10:56:31 +00:00
suke
686bd6b3ae * ext/win32ole/win32ole.c (ole_variant2val): support array of
VT_RECORD variant.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-16 14:05:52 +00:00
svn
25ece76ec8 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-16 10:35:00 +00:00
suke
eccc9886ea * ext/win32ole/win32ole.c (fole_record_method_missing): call
rb_hash_fetch instead of rb_hash_aref.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-16 10:34:57 +00:00
suke
a3f50234bc * ext/win32ole/win32ole.c: modify document for WIN32OLE_RECORD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-15 11:33:21 +00:00