我在哪里可以找到MS Office接口在C++和COM中执行一些自动化

问题描述:

我找到MSPPT.OLB文件,但无法使用Oleview.exe打开它。我在哪里可以找到MS Office接口在C++和COM中执行一些自动化

MSDN上没有这个文档,我只能找到C#接口。 (可能是我错过了/或者不是谷歌的一个非常好的用户)

+0

试图打开EXCEL.EXE等类型图书馆? –

+0

不..我仍然得到相同的错误,'MkParseDisplayName(...)失败。无效语法(MK_E_SYNTAX)'然后'命令行POWERPNT.EXE不包含有效的持久性OLE对象ProgID或类型库文件(TYPE_E_CANTLOADLIBRARY)' –

+0

阅读错误消息。它表示您正在尝试查看POWERPNT.EXE。错误的文件。 Oleview.exe暂时停用了一段时间,SDK版本7.0中的iirc(VS2010年份)。无论如何,它不会帮助你,在C++程序中使用#import指令来导入类型库。使用C#进行互操作将是明智之举,你会发现更多的帮助,并且必须编写更少的代码。 –

寻找.OLB文件。例如,Office 2010的:

 
C:\Program Files (x86)\Microsoft Office\Office14>dir *.olb 

Directory of C:\Program Files (x86)\Microsoft Office\Office14 

10/20/2010 03:36 PM   677,248 MSACC.OLB 
03/22/2010 08:29 PM   417,144 MSOUTL.OLB 
03/08/2010 06:23 PM   402,824 MSPPT.OLB 
03/26/2010 08:52 PM   901,464 MSWORD.OLB 

另外:C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL

一些调整,你可以使用MSVC++ #import侦探生成C++包装:

#import "TypeLib\MSWORD.OLB" \ 
    raw_interfaces_only, \ 
    rename("ExitWindows","MsoExitWindows"), \ 
    rename("FindText","MsoFindText"), \ 
    named_guids 
+1

这个#import指令将帮助他的几率为零。从错误的路径和错误的类型库开始。你必须让这个人有机会找到与谷歌命中的比赛,聪明的指针和_com_error是非常重要的,以防止他的麻烦。 –

+0

@HansPassant,我鼓励OP自己研究'#import'的威力。在这里我贴上了曾经为我工作过的东西。 – Noseratio

+0

@Noseratio,与.olb文件也得到相同的错误,所以不能用'Oleview.exe'打开它们。将尝试#import指令并在此处更新结果。谢谢。 –