aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--ext/win32ole/win32ole.c12
2 files changed, 17 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index a5c2a5b03b..45deb7ca49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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();
}
}