summaryrefslogtreecommitdiff
path: root/extensions/test/ole/cpptest
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/test/ole/cpptest')
-rw-r--r--extensions/test/ole/cpptest/cpptest.cxx113
-rw-r--r--extensions/test/ole/cpptest/makefile.mk64
-rw-r--r--extensions/test/ole/cpptest/readme.txt6
3 files changed, 183 insertions, 0 deletions
diff --git a/extensions/test/ole/cpptest/cpptest.cxx b/extensions/test/ole/cpptest/cpptest.cxx
new file mode 100644
index 000000000000..e393142fd311
--- /dev/null
+++ b/extensions/test/ole/cpptest/cpptest.cxx
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_extensions.hxx"
+// cpptest.cpp : Defines the entry point for the console application.
+//
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#pragma warning(disable: 4917)
+#include <comdef.h>
+#include <tchar.h>
+#include<atlbase.h>
+#include<atlcom.h>
+
+HRESULT doTest();
+
+int main(int /*argc*/, char** /*argv*/)
+{
+ HRESULT hr;
+ if( FAILED( hr=CoInitialize(NULL)))
+ {
+ _tprintf(_T("CoInitialize failed \n"));
+ return -1;
+ }
+
+ if( FAILED(hr=doTest()))
+ {
+ _com_error err( hr);
+ const TCHAR * errMsg= err.ErrorMessage();
+ MessageBox( NULL, errMsg, "Test failed", MB_ICONERROR);
+ }
+
+ CoUninitialize();
+ return 0;
+}
+
+HRESULT doTest()
+{
+ HRESULT hr;
+ CComPtr<IUnknown> spUnkMgr;
+
+
+ if( FAILED(hr= spUnkMgr.CoCreateInstance(L"com.sun.star.ServiceManager")))
+ return hr;
+
+ IDispatchPtr starManager;
+ // var starManager=new ActiveXObject("com.sun.star.ServiceManager");
+ if (FAILED(hr= starManager.CreateInstance(_T("com.sun.star.ServiceManager"))))
+ {
+ fprintf(stderr, "creating ServiceManager failed\n");
+ return hr;
+ }
+ // var starDesktop=starManager.createInstance("com.sun.star.frame.Desktop");
+ _variant_t varP1(L"com.sun.star.frame.Desktop");
+ _variant_t varRet;
+ CComDispatchDriver dispMgr(starManager);
+ if (FAILED(hr= dispMgr.Invoke1(L"createInstance", &varP1, &varRet)))
+ {
+ fprintf(stderr,"createInstance of Desktop failed\n");
+ return hr;
+ }
+ CComDispatchDriver dispDesk(varRet.pdispVal);
+ varP1.Clear();
+ varRet.Clear();
+ // var bOK=new Boolean(true);
+
+ // var noArgs=new Array();
+ // var oDoc=starDesktop.loadComponentFromURL("private:factory/swriter", "Test", 40, noArgs);
+ IDispatchPtr oDoc;
+ SAFEARRAY* ar= SafeArrayCreateVector(VT_DISPATCH, 0, 0);
+ _variant_t args[4];
+ args[3]= _variant_t(L"private:factory/swriter");
+ args[2]= _variant_t(L"Test");
+ args[1]= _variant_t((long) 40);
+ args[0].vt= VT_ARRAY | VT_DISPATCH;;
+ args[0].parray= ar;
+ if (FAILED(hr= dispDesk.InvokeN(L"loadComponentFromURL", args, 4, &varRet)))
+ {
+ fprintf(stderr,"loadComponentFromURL failed\n");
+ return hr;
+ }
+ CComDispatchDriver dispDoc(varRet.pdispVal);
+ varRet.Clear();
+ return S_OK;
+
+}
diff --git a/extensions/test/ole/cpptest/makefile.mk b/extensions/test/ole/cpptest/makefile.mk
new file mode 100644
index 000000000000..af97b63c7c9d
--- /dev/null
+++ b/extensions/test/ole/cpptest/makefile.mk
@@ -0,0 +1,64 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=extensions
+TARGET=cppTest
+TARGETTYPE=CUI
+LIBTARGET=NO
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings ---
+
+.INCLUDE : settings.mk
+
+# --- Files ---
+
+INCPRE+=-I$(ATL_INCLUDE)
+
+
+APP1TARGET= $(TARGET)
+APP1OBJS= $(OBJ)$/cppTest.obj
+
+APP1STDLIBS= \
+ $(SALLIB) \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+ $(USER32LIB) \
+ $(KERNEL32LIB) \
+ $(OLE32LIB) \
+ $(OLEAUT32LIB) \
+ $(UUIDLIB) \
+ $(COMDLG32LIB) \
+ comsupp.lib
+
+APP1DEF= $(MISC)\$(APP1TARGET).def
+
+# --- Targets ---
+.INCLUDE : target.mk
diff --git a/extensions/test/ole/cpptest/readme.txt b/extensions/test/ole/cpptest/readme.txt
new file mode 100644
index 000000000000..4af8cfee39af
--- /dev/null
+++ b/extensions/test/ole/cpptest/readme.txt
@@ -0,0 +1,6 @@
+Creates the com.sun.star.ServiceManager with CoCreateInstance in a cpp program.
+This little program can be used as starting point for further tests.
+
+
+It needs uwinapi.dll, which is in the program folder of OOo (URE\bin in
+OOo 3.0)