From 92a7da1900323139bb678dcde62a8c821cf301f9 Mon Sep 17 00:00:00 2001 From: suke Date: Fri, 11 Jan 2013 22:59:51 +0000 Subject: * 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 --- ext/win32ole/win32ole.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'ext') diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index acc2fea39d..3d085e5467 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -143,7 +143,7 @@ const IID IID_IMultiLanguage2 = {0xDCCFC164, 0x2B38, 0x11d2, {0xB7, 0xEC, 0x00, #define WC2VSTR(x) ole_wc2vstr((x), TRUE) -#define WIN32OLE_VERSION "1.5.3" +#define WIN32OLE_VERSION "1.5.4" typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX) (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); break; -#if (_MSC_VER >= 1300) +#if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__) +#ifdef V_I8REF case VT_I8: V_I8REF(var) = &V_I8(realvar); break; +#endif +#ifdef V_UI8REF case VT_UI8: V_UI8REF(var) = &V_UI8(realvar); break; +#endif #endif case VT_INT: V_INTREF(var) = &V_INT(realvar); @@ -2179,8 +2183,10 @@ ole_variant2val(VARIANT *pvar) #if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__) case VT_I8: 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)); +#endif #else obj = Qnil; #endif @@ -2189,8 +2195,10 @@ ole_variant2val(VARIANT *pvar) break; case VT_UI8: 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)); +#endif #else obj = Qnil; #endif -- cgit v1.2.3