Народ, подскажите, пожалуйста.
Работаю с Crystal Reports на Visual C++ через COM интерфейс. Открываю отчет, а затем пытаюсь его экспортировать в файл Word. Вот код:
IApplicationPtr app;
IReportPtr report;
IExportOptionsPtr export_opt;
HRESULT hr;
try
{
hr = app.CreateInstance( TEXT("CrystalRuntime.Application"), NULL, CLSCTX_INPROC_SERVER );
// открываем отчёт
report = app->OpenReport(_bstr_t(_T("c:\\1\\crKDOK_ZP01.rpt")));
if (report == 0)
printf("отчет не открыт");
export_opt = report->ExportOptions;
_bstr_t appfile(report->ApplicationName);
_tprintf(TEXT("%s \n"), (LPCTSTR)appfile);
export_opt->DestinationType = crEDTDiskFile;
export_opt->DiskFileName = _bstr_t("crExportFileName.doc");
export_opt->FormatType = crEFTWordForWindows;
report->Export(FALSE);
}
catch ( _com_error e )
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
printf("Error ");
printf(" Code = %08lx ", e.Error());
char bufdos[5000];
ZeroMemory(bufdos, 5000);
CharToOem(e.ErrorMessage(), bufdos);
printf(" Code meaning = %s ", bufdos);
printf(" Source = %s ", (LPCSTR) bstrSource);
ZeroMemory(bufdos, 5000);
CharToOem(e.Description(), bufdos);
printf(" Description = %s ", bufdos);
}
Но на функции Export() он зараза, пишет ошибку 80020005: Несовпадение типов.
Что я не так делаю? Подскажите, пожалуйста
03.10.06 20:28: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Добавлено форматирование — Кодт