diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | ext/win32ole/win32ole.c | 12 |
2 files changed, 17 insertions, 5 deletions
@@ -1,3 +1,13 @@ +Thu Aug 14 20:03:34 2003 Masaki Suketa <masaki.suketa@nifty.ne.jp> + + * ext/win32ole/win32ole.c (OLE_FREE): should not call + ole_message_loop. + + * ext/win32ole/win32ole.c (ole_event_free): ditto. + + * ext/win32ole/win32ole.c (ole_initialize): stop calling + OleUninitialize at exit. + Thu Aug 14 11:27:37 2003 NAKAMURA Usaku <usa@ruby-lang.org> * gc.c (rb_data_object_alloc): check type of 1st argument. diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index 2429663a5f..e380df8379 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -66,7 +66,6 @@ (x) = 0;\ }\ }\ - ole_msg_loop();\ CoFreeUnusedLibraries();\ } @@ -79,7 +78,7 @@ #define WC2VSTR(x) ole_wc2vstr((x), TRUE) -#define WIN32OLE_VERSION "0.5.4" +#define WIN32OLE_VERSION "0.5.5" typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX) (REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*); @@ -463,7 +462,6 @@ static void ole_initialize() { HRESULT hr; - int rc; if(gOLEInitialized == Qfalse) { hr = OleInitialize(NULL); @@ -471,7 +469,12 @@ ole_initialize() ole_raise(hr, rb_eRuntimeError, "Fail : OLE initialize"); } gOLEInitialized = Qtrue; - rc = atexit((void (*)(void))ole_uninitialize); + /* + * In some situation, OleUninitialize does not work fine. ;-< + */ + /* + atexit((void (*)(void))ole_uninitialize); + */ } } @@ -5088,7 +5091,6 @@ ole_event_free(poleev) pcp->lpVtbl->Unadvise(pcp, poleev->pEvent->m_dwCookie); OLE_RELEASE(pcp); } - ole_msg_loop(); CoFreeUnusedLibraries(); } } |