Справочное руководство по TDMS 5.0 API
C++
Смотри также Послать замечания

Glossary Item Box

Исходный код

//---------------------------------------------------------
// Интеграция с AutoCAD.
// Запускает AutoCAD и открывает в нем документ.
//---------------------------------------------------------

// получить диалог открытия файла
CComPtr<ITDMSDialogs> pDialogs;
CheckError(pApp->get_Dialogs(&pDialogs));
CComPtr<ITDMSFileDlg> pFileDialog;
CheckError(pDialogs->get_FileDlg(&pFileDialog));
CheckError(pFileDialog->put_OpenFileDialog(TRUE));

// расширение по умолчанию
BSTR bsDefExt = A2BSTR(".dwg");
CheckError(pFileDialog->put_DefaultExt(bsDefExt));
SysFreeString(bsDefExt);

// фильтр
BSTR bsFilter = A2BSTR("Drawing (*.dwg)|*.dwg|DXF (*.dxf)|*.dxf|All Files (*.*)|*.*||");
CheckError(pFileDialog->put_Filter(bsFilter));
SysFreeString(bsFilter);

// parent window
CheckError(pFileDialog->put_ParentWindow((long)GetActiveWindow()));

// показать диалог
VARIANT_BOOL bResult;
pFileDialog->Show(&bResult);

// получить утилиты
CComPtr<ITDMSUtility> pUtility;
CheckError(pApp->get_Utility(&pUtility));

// запустить текущую версию автокада
CComPtr<ITDMSAcad> pAcad;
VARIANT varAcadName;
varAcadName.vt = VT_EMPTY;
CheckError(pUtility->StartAutoCAD(varAcadName, &pAcad));

// запустить конкрентную версию автокада
CComPtr<ITDMSAcad> pAcad;
VARIANT varAcadName;
varAcadName.vt = VT_BSTR;
varAcadName.bstrVal = A2BSTR("Autodesk Architectural Desktop 3.3");
CheckError(pUtility->StartAutoCAD(varAcadName, &pAcad));
SysFreeString(varAcadName.bstrVal);

// открыть документ в автокаде
if (bResult) {
    BSTR bsFileName;
    pFileDialog->get_FileName(&bsFileName);
    CheckError(pAcad->OpenDocument(bsFileName));
}
© 2016 CSoft Development. Все права защищены.