summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT OLE Win32
diff options
context:
space:
mode:
authorFelipe Heidrich <fheidric>2010-08-12 19:59:06 +0000
committerFelipe Heidrich <fheidric>2010-08-12 19:59:06 +0000
commit47ea763aad43226217c0485ea4fe7c8125c3c554 (patch)
tree84f586c0a36e6821d455cbe0c404279ccab19216 /bundles/org.eclipse.swt/Eclipse SWT OLE Win32
parentbcb8c5d7f663003ad3fc43bf1aa4aaec5bd3bdaf (diff)
downloadeclipse.platform.swt-47ea763aad43226217c0485ea4fe7c8125c3c554.tar.gz
eclipse.platform.swt-47ea763aad43226217c0485ea4fe7c8125c3c554.tar.xz
eclipse.platform.swt-47ea763aad43226217c0485ea4fe7c8125c3c554.zip
Bug 318942 - [OLE] new OleAutomation(progId) fails because of missing flag
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT OLE Win32')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleAutomation.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleAutomation.java b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleAutomation.java
index 96856e3345..62cf4b11c4 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleAutomation.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleAutomation.java
@@ -150,9 +150,10 @@ public OleAutomation(String progId) {
OS.OleUninitialize();
OLE.error(OLE.ERROR_INVALID_CLASSID);
}
-
+ int flags = COM.CLSCTX_INPROC_SERVER;
+ if (progId.startsWith("Excel")) flags |= COM.CLSCTX_LOCAL_SERVER; //$NON-NLS-1$
int /*long*/[] ppvObject = new int /*long*/[1];
- int result = COM.CoCreateInstance(appClsid, 0, COM.CLSCTX_INPROC_SERVER, COM.IIDIUnknown, ppvObject);
+ int result = COM.CoCreateInstance(appClsid, 0, flags, COM.IIDIUnknown, ppvObject);
if (result != COM.S_OK) {
OS.OleUninitialize();
OLE.error(OLE.ERROR_CANNOT_CREATE_OBJECT, result);