Как использовать PowerPoint Automation в C++ Builder?
Я получаю это сообщение об ошибке при попытке открыть файл 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 - нет.
0 ответов
Эта ошибка возникает, когда свойство, функция или метод, на которые вы ссылаетесь, не существует. Application
объект не имеет Enabled
свойство MSDN. Открытьppt
вы должны использовать WideString
тип для ppt_filename
потому что этот тип совместим с BSTR
используется с COM-объектами, либо следует использовать StringToOleStr().