转自:http://www.aqcoder.com/blog/detail/id/1579bb39-9bcd-4c0f-9b02-67a851148196/
前面片文章中我简要介绍了下 LibreOffice SDK 的环境配置,以及 cpp 中一个例子的编译。 接下来我们来看一下如何将 LibreOffice 嵌入到 MFC 的 View 中和 C# 的 Winform 中。先上两张效果图: MFC View:
C# Winform:
MFC View
这里我主要讲解 LibreOffice 的相关部分,MFC 相关的部分就要带过,特别注意环境设置(ps: 玩MFC 的童鞋都不用多说,不要闲我啰嗦 ^_^) 1.建立一个当文档程序
2.设置头文件包含目录
C:\LibreOffice4\sdk\include
C:\LibreOffice4\sdk\includecpp
注意第二个目录是编译 cpp 例子得到的,详见http://blog.csdn.net/my___dream/article/details/45176921
3.设置库目录 C:\LibreOffice4\sdk\lib
4.添加环境变量 PATH: C:\LibreOffice4\URE\bin
5.show you the code: 包含头文件以及命名空间
#include "sal/config.h"
#include <sal/main.h> #include <rtl/ustring.hxx> #include <osl/diagnose.h> #include <cppuhelper/bootstrap.hxx> #include <com/sun/star/bridge/XUnoUrlResolver.hpp> #include <com/sun/star/registry/XSimpleRegistry.hpp> #include <com/sun/star/lang/XMultiComponentFactory.hpp> #include <com/sun/star/frame/XDesktop.hpp> #include <com/sun/star/uno/Reference.h> #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/awt/XSystemChildFactory.hpp> #include <com/sun/star/util/URL.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/container/XEnumerationAccess.hpp> #include <com/sun/star/frame/XComponentLoader.hpp> #include <com/sun/star/frame/XTitle.hpp> #include <com/sun/star/util/URL.hpp> #include <com/sun/star/util/XCloseable.hpp> #include <com/sun/star/util/XCloseListener.hpp> #include <com/sun/star/util/CloseVetoException.hpp> #include <com/sun/star/uno/RuntimeException.hpp> #include <osl/file.hxx> #include <osl/process.h> #include <rtl/ustrbuf.hxx> #include <com/sun/star/awt/XSystemChildFactory.hpp> #include <com/sun/star/awt/XDialog2.hpp> #include <com/sun/star/awt/XControlModel.hpp> #include <com/sun/star/lang/SystemDependent.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/awt/XSystemDependentWindowPeer.hpp> #include <com/sun/star/util/XURLTransformer.hpp> #include <list> using namespace cppu; using namespace com::sun::star::uno; using namespace com::sun::star::lang; using namespace com::sun::star::beans; using namespace com::sun::star::frame; using ::rtl::OUString; using ::rtl::OUStringToOString; using namespace com::sun::star; using namespace container; using