如何在C++生成器中使用PowerPoint Automation?



当我尝试使用变体自动化打开PowerPoint文件(ppt(时收到此错误消息:

未知名称

我尝试使用自动化:

// Open PPT File
void TMainForm::OpenPPTFile(UnicodeString APPTFile)
{
UnicodeString ppt_path = ExtractFilePath(Application->ExeName)+"ppt\";
UnicodeString ppt_filename = ppt_path+APPTFile;
Variant PowerPoint;
if ( !DirectoryExists(ppt_path) )
{
Application->MessageBoxW(L"The specified Directory does't exist!", L"Error", MB_OK);
return;
}
if ( !FileExists(ppt_filename) )
{
Application->MessageBoxW(L"The specified File does't exist!", L"Error", MB_OK);
return;
}
PowerPoint = CreateOleObject("PowerPoint.Application");
if ( PowerPoint.IsEmpty() )
{
Application->MessageBoxW(L"Unable to open Powerpoint, please check if installed!", L"Error", MB_OK);
return;
}
PowerPoint.OlePropertySet("Enabled", true);
PowerPoint.OlePropertySet("Visible", true);
PowerPoint.OlePropertyGet("Presentations").OleProcedure("Open", ppt_filename, false, false, true);
}

这段代码给了我上面的错误。注意:PowerPoint在后台打开时没有任何错误,但ppt没有。

当您引用的属性、函数或方法不存在时,会发生此错误。Application对象没有Enabled属性 MSDN。若要打开ppt应使用WideString类型进行ppt_filename,因为此类型与 COM 对象一起使用的类型兼容BSTR或者应使用 StringToOleStr((。

相关内容

  • 没有找到相关文章

最新更新