summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-06-23 12:41:26 +0000
committersuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-06-23 12:41:26 +0000
commit0864df17fbc41780e51e100ad64bd264f970d386 (patch)
tree1a92039f0f3782f147dba164397b08bdbb6779ee
parenteab33b597d7f1460566fbe3c3a3e8f47024ce71f (diff)
* ext/win32ole/win32ole.c (reg_get_typelib_file_path): try win64
registry entry at first. [ruby-dev:41674] [Bug #3464] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--ext/win32ole/win32ole.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 52c424576a..8c29c08827 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jun 23 21:32:08 2010 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+
+ * ext/win32ole/win32ole.c (reg_get_typelib_file_path): try win64
+ registry entry at first. [ruby-dev:41674] [Bug #3464]
+
Wed Jun 23 21:17:32 2010 Tanaka Akira <akr@fsij.org>
* ext/socket/raddrinfo.c (ruby_getaddrinfo__darwin): new workaround for
diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c
index f92c0dd4b6..98a93802d1 100644
--- a/ext/win32ole/win32ole.c
+++ b/ext/win32ole/win32ole.c
@@ -130,7 +130,7 @@ const IID IID_IMultiLanguage2 = {0xDCCFC164, 0x2B38, 0x11d2, {0xB7, 0xEC, 0x00,
#define WC2VSTR(x) ole_wc2vstr((x), TRUE)
-#define WIN32OLE_VERSION "1.4.8"
+#define WIN32OLE_VERSION "1.4.9"
typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
(REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
@@ -2353,10 +2353,15 @@ static VALUE
reg_get_typelib_file_path(HKEY hkey)
{
VALUE path = Qnil;
+ path = reg_get_val2(hkey, "win64");
+ if (path != Qnil) {
+ return path;
+ }
path = reg_get_val2(hkey, "win32");
- if (path == Qnil) {
- path = reg_get_val2(hkey, "win16");
+ if (path != Qnil) {
+ return path;
}
+ path = reg_get_val2(hkey, "win16");
return path;
}