mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/win32ole/win32ole.c (ole_set_byref): support VT_UI8|VT_BYREF,
VT_I8|VT_BYREF in cygwin and mingw. * ext/win32ole/win32ole.c (ole_variant2val): ditto. * test/win32ole/test_win32ole_variant.rb (test_s_new_with_i8_byref): ditto. * test/win32ole/test_win32ole_variant.rb (test_s_new_with_ui8_byref): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
ecd8abbda4
commit
92a7da1900
3 changed files with 31 additions and 22 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
Sat Jan 12 07:52:47 2013 Masaki Suketa <masaki.suketa@nifty.ne.jp>
|
||||||
|
|
||||||
|
* ext/win32ole/win32ole.c (ole_set_byref): support VT_UI8|VT_BYREF,
|
||||||
|
VT_I8|VT_BYREF in cygwin and mingw.
|
||||||
|
|
||||||
|
* ext/win32ole/win32ole.c (ole_variant2val): ditto.
|
||||||
|
|
||||||
|
* test/win32ole/test_win32ole_variant.rb (test_s_new_with_i8_byref):
|
||||||
|
ditto.
|
||||||
|
|
||||||
|
* test/win32ole/test_win32ole_variant.rb (test_s_new_with_ui8_byref):
|
||||||
|
ditto.
|
||||||
|
|
||||||
Sat Jan 12 02:45:00 2013 Zachary Scott <zachary@zacharyscott.net>
|
Sat Jan 12 02:45:00 2013 Zachary Scott <zachary@zacharyscott.net>
|
||||||
|
|
||||||
* man/ruby.1 (options): include --*-encoding from r38784
|
* man/ruby.1 (options): include --*-encoding from r38784
|
||||||
|
|
|
@ -143,7 +143,7 @@ const IID IID_IMultiLanguage2 = {0xDCCFC164, 0x2B38, 0x11d2, {0xB7, 0xEC, 0x00,
|
||||||
|
|
||||||
#define WC2VSTR(x) ole_wc2vstr((x), TRUE)
|
#define WC2VSTR(x) ole_wc2vstr((x), TRUE)
|
||||||
|
|
||||||
#define WIN32OLE_VERSION "1.5.3"
|
#define WIN32OLE_VERSION "1.5.4"
|
||||||
|
|
||||||
typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
|
typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
|
||||||
(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
|
(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
|
||||||
|
@ -1816,13 +1816,17 @@ ole_set_byref(VARIANT *realvar, VARIANT *var, VARTYPE vt)
|
||||||
V_R8REF(var) = &V_R8(realvar);
|
V_R8REF(var) = &V_R8(realvar);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if (_MSC_VER >= 1300)
|
#if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)
|
||||||
|
#ifdef V_I8REF
|
||||||
case VT_I8:
|
case VT_I8:
|
||||||
V_I8REF(var) = &V_I8(realvar);
|
V_I8REF(var) = &V_I8(realvar);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef V_UI8REF
|
||||||
case VT_UI8:
|
case VT_UI8:
|
||||||
V_UI8REF(var) = &V_UI8(realvar);
|
V_UI8REF(var) = &V_UI8(realvar);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
case VT_INT:
|
case VT_INT:
|
||||||
V_INTREF(var) = &V_INT(realvar);
|
V_INTREF(var) = &V_INT(realvar);
|
||||||
|
@ -2179,8 +2183,10 @@ ole_variant2val(VARIANT *pvar)
|
||||||
#if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)
|
#if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)
|
||||||
case VT_I8:
|
case VT_I8:
|
||||||
if(V_ISBYREF(pvar))
|
if(V_ISBYREF(pvar))
|
||||||
#if (_MSC_VER >= 1300)
|
#if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)
|
||||||
|
#ifdef V_I8REF
|
||||||
obj = I8_2_NUM(*V_I8REF(pvar));
|
obj = I8_2_NUM(*V_I8REF(pvar));
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
obj = Qnil;
|
obj = Qnil;
|
||||||
#endif
|
#endif
|
||||||
|
@ -2189,8 +2195,10 @@ ole_variant2val(VARIANT *pvar)
|
||||||
break;
|
break;
|
||||||
case VT_UI8:
|
case VT_UI8:
|
||||||
if(V_ISBYREF(pvar))
|
if(V_ISBYREF(pvar))
|
||||||
#if (_MSC_VER >= 1300)
|
#if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)
|
||||||
|
#ifdef V_UI8REF
|
||||||
obj = UI8_2_NUM(*V_UI8REF(pvar));
|
obj = UI8_2_NUM(*V_UI8REF(pvar));
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
obj = Qnil;
|
obj = Qnil;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -255,28 +255,16 @@ if defined?(WIN32OLE_VARIANT)
|
||||||
assert_equal(WIN32OLE::VARIANT::VT_UINT|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
|
assert_equal(WIN32OLE::VARIANT::VT_UINT|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
|
||||||
end
|
end
|
||||||
|
|
||||||
# This test is failed in cygwin.
|
|
||||||
# The tagVARIANT definition has no union member pllVal in cygwin.
|
|
||||||
def test_s_new_with_i8_byref
|
def test_s_new_with_i8_byref
|
||||||
if defined?(WIN32OLE::VARIANT::VT_I8) && /mswin/ =~ RUBY_PLATFORM
|
obj = WIN32OLE_VARIANT.new(-123456789012345, WIN32OLE::VARIANT::VT_I8|WIN32OLE::VARIANT::VT_BYREF)
|
||||||
obj = WIN32OLE_VARIANT.new(-123456789012345, WIN32OLE::VARIANT::VT_I8|WIN32OLE::VARIANT::VT_BYREF)
|
assert_equal(-123456789012345, obj.value)
|
||||||
assert_equal(-123456789012345, obj.value)
|
assert_equal(WIN32OLE::VARIANT::VT_I8|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
|
||||||
assert_equal(WIN32OLE::VARIANT::VT_I8|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
|
|
||||||
else
|
|
||||||
skip("WIN32OLE::VARIANT::VT_I8 is not available")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# This test is failed in cygwin.
|
|
||||||
# The tagVARIANT definition has no union member pullVal in cygwin.
|
|
||||||
def test_s_new_with_ui8_byref
|
def test_s_new_with_ui8_byref
|
||||||
if defined?(WIN32OLE::VARIANT::VT_UI8) && /mswin/ =~ RUBY_PLATFORM
|
obj = WIN32OLE_VARIANT.new(123456789012345, WIN32OLE::VARIANT::VT_UI8|WIN32OLE::VARIANT::VT_BYREF)
|
||||||
obj = WIN32OLE_VARIANT.new(123456789012345, WIN32OLE::VARIANT::VT_UI8|WIN32OLE::VARIANT::VT_BYREF)
|
assert_equal(123456789012345, obj.value)
|
||||||
assert_equal(123456789012345, obj.value)
|
assert_equal(WIN32OLE::VARIANT::VT_UI8|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
|
||||||
assert_equal(WIN32OLE::VARIANT::VT_UI8|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
|
|
||||||
else
|
|
||||||
skip("WIN32OLE::VARIANT::VT_UI8 is not available")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_value
|
def test_value
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue