Тема: Открытие-dwg файла из внешнего приложения

Пишу exe модуль из которого необходимо открыть существующий dwg файл, имеющий пароль. Пароль известен.
Файл пытаюсь открыть с помощью метода IAcadDocuments::Open(BSTR Name, VARIANT ReadOnly, VARIANT Password, IAcadDocument **pDispDoc). Метод нормально работает, если открывать dwg-файл, не имеющий пароля. Если файл имеет пароль, метод выдает ошибку. Параметр Password передаю как Password.vt = VT_BSTR; vPassword.bstrVal = SysAllocString(L"333") (пароль = "333");

Re: Открытие-dwg файла из внешнего приложения

Версия AutoCAD?

Re: Открытие-dwg файла из внешнего приложения

2009

(изменено: Александр Ривилис, 24 февраля 2010г. 16:48:42)

Re: Открытие-dwg файла из внешнего приложения

Проверил в 2008 (2009-го под руками нет):

#import "acax17enu.tlb" auto_rename 
void CbbbDlg::OnBnClickedOk()
{
  // TODO: Add your control notification handler code here
    ::CoInitialize(NULL);
    try
    {
      CLSID clsid ;
      _com_util::CheckError(CLSIDFromProgID (L"AutoCAD.Application", &clsid));
      AutoCAD::IAcadApplicationPtr pApp;
      if (FAILED(pApp.GetActiveObject(clsid)))
      {
        _com_util::CheckError(pApp.CreateInstance(clsid));
      }
      pApp->put_Visible(VARIANT_TRUE);
      AutoCAD::IAcadDocumentsPtr pDocs;
      _com_util::CheckError(pApp->get_Documents(&pDocs));
      AutoCAD::IAcadDocumentPtr pDoc = pDocs->Open(_bstr_t("E:\\333.dwg"),_variant_t(false),_bstr_t(L"12345"));
    }
    catch(const _com_error e)
    {
      if (e.ErrorMessage()!=NULL)
        ::MessageBox(NULL,e.ErrorMessage(),L"Error",MB_OK);

    }
    ::CoUninitialize();
  OnOK();
}

Все нормально открывается.

Re: Открытие-dwg файла из внешнего приложения

Огромное спасибо за помощь. Вставил Ваш код в программу. Все работает до вызова метода Open(..). При вызове компилятор выдал сообщение
error C2660: 'AutoCAD::IAcadDocuments::Open' : function does not take 3 arguments, т.е. компилятор не может вызвать Ваш вариант функции Open, а ссылается на
IAcadDocuments::Open(BSTR Name, VARIANT ReadOnly, VARIANT Password, IAcadDocument **pDispDoc).

Re: Открытие-dwg файла из внешнего приложения

Все разобрался все работает. Большое спасибо, Александр :D

Re: Открытие-dwg файла из внешнего приложения

Алексей Журавков пишет:

Все разобрался все работает.

Так в чем была проблема?