diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ext/win32ole/win32ole.c | 10 | ||||
-rw-r--r-- | test/win32ole/test_win32ole.rb | 17 | ||||
-rw-r--r-- | version.h | 6 |
4 files changed, 34 insertions, 6 deletions
@@ -1,3 +1,10 @@ +Sat Jan 20 11:18:49 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp> + + * ext/win32ole/win32ole.c (ole_invoke, ole_invoke2, ole_propertyput): + modify WIN32OLERuntimeError message. + + * test/win32ole/test_win32ole.rb: ditto. + Fri Jan 19 17:12:23 2007 Masaki Suketa <masaki.suketa@nifty.ne.jp> * ext/win32ole/win32ole.c (Init_win32ole): add WIN32OLE_VARIANT::Empty, diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index 5773b2473c..9eaa2f9661 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -2521,7 +2521,8 @@ ole_invoke(int argc, VALUE *argv, VALUE self, USHORT wFlags, BOOL is_bracket) if (FAILED(hr)) { v = ole_excepinfo2msg(&excepinfo); - ole_raise(hr, eWIN32OLE_RUNTIME_ERROR, "%s", + ole_raise(hr, eWIN32OLE_RUNTIME_ERROR, "(in OLE method `%s': )%s", + StringValuePtr(cmd), StringValuePtr(v)); } obj = ole_variant2val(&result); @@ -2723,7 +2724,8 @@ ole_invoke2(VALUE self, VALUE dispid, VALUE args, VALUE types, USHORT dispkind) if (FAILED(hr)) { v = ole_excepinfo2msg(&excepinfo); - ole_raise(hr, eWIN32OLE_RUNTIME_ERROR, "_invoke %s", + ole_raise(hr, eWIN32OLE_RUNTIME_ERROR, "(in OLE method `<dispatch id:%d>': )%s", + NUM2INT(dispid), StringValuePtr(v)); } @@ -2907,7 +2909,9 @@ ole_propertyput(VALUE self, VALUE property, VALUE value) } if (FAILED(hr)) { v = ole_excepinfo2msg(&excepinfo); - ole_raise(hr, eWIN32OLE_RUNTIME_ERROR, StringValuePtr(v)); + ole_raise(hr, eWIN32OLE_RUNTIME_ERROR, "(in setting property `%s': )%s", + StringValuePtr(property), + StringValuePtr(v)); } return Qnil; } diff --git a/test/win32ole/test_win32ole.rb b/test/win32ole/test_win32ole.rb index df33acb94f..81182372dc 100644 --- a/test/win32ole/test_win32ole.rb +++ b/test/win32ole/test_win32ole.rb @@ -39,6 +39,23 @@ if defined?(WIN32OLE) } end + def test_raise_message + exc = assert_raise(WIN32OLERuntimeError) { + @dict1.add + } + assert_match(/^\(in OLE method `add': \)/, exc.message) + + exc = assert_raise(WIN32OLERuntimeError) { + @dict1._invoke(1, [], []) + } + assert_match(/^\(in OLE method `<dispatch id:1>': \)/, exc.message) + + exc = assert_raise(WIN32OLERuntimeError) { + @dict1.compareMode = 100 + } + assert_match(/^\(in setting property `compareMode': \)/, exc.message) + end + def test_ole_methods methods = @dict1.ole_methods mnames = methods.collect {|m| @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2007-01-19" +#define RUBY_RELEASE_DATE "2007-01-20" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20070119 +#define RUBY_RELEASE_CODE 20070120 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2007 #define RUBY_RELEASE_MONTH 1 -#define RUBY_RELEASE_DAY 19 +#define RUBY_RELEASE_DAY 20 RUBY_EXTERN const char ruby_version[]; RUBY_EXTERN const char ruby_release_date[]; |