diff options
author | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-28 10:23:31 +0000 |
---|---|---|
committer | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-28 10:23:31 +0000 |
commit | c77984a420b19433f7881222e6521a870388f739 (patch) | |
tree | 5e8a748a814a4401fb2e524d2e70c611fd59c786 /ext/win32ole | |
parent | 9cac1a4cdabaa554547a3148128e4aef0971652b (diff) | |
download | ruby-c77984a420b19433f7881222e6521a870388f739.tar.gz ruby-c77984a420b19433f7881222e6521a870388f739.tar.xz ruby-c77984a420b19433f7881222e6521a870388f739.zip |
* ext/win32ole/win32ole.c (ole_type_progid): progid getted by
ProgIDFromCLSID should be freed by CoTaskMemFree. Thanks, arton.
* test/win32ole/test_win32ole.rb (test_raise_message): set negative
compareMode value to raise WIN32OLERuntimeError.
* test/win32ole/test_win32ole_type.rb (test_implemented_ole_types):
support some environment which returns IShellDispatch5 instead
of IShellDispatch.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/win32ole')
-rw-r--r-- | ext/win32ole/win32ole.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index 329dd9be2..8c890d898 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -116,7 +116,7 @@ #define WC2VSTR(x) ole_wc2vstr((x), TRUE) -#define WIN32OLE_VERSION "1.0.6" +#define WIN32OLE_VERSION "1.0.7" typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX) (REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); @@ -5192,8 +5192,10 @@ ole_type_progid(ITypeInfo *pTypeInfo) if (FAILED(hr)) return progid; hr = ProgIDFromCLSID(&pTypeAttr->guid, &pbuf); - if (SUCCEEDED(hr)) + if (SUCCEEDED(hr)) { progid = ole_wc2vstr(pbuf, FALSE); + CoTaskMemFree(pbuf); + } OLE_RELEASE_TYPEATTR(pTypeInfo, pTypeAttr); return progid; } |