Справочное руководство по TDMS 7.0 API
C++
Смотри также Отправить замечание

Glossary Item Box

Исходный текст

//---------------------------------------------------------
// Добавляет файл к объекту
//---------------------------------------------------------

// выбрать объект
CComPtr<ITDMSObject> pObject;
if (SelectObject(&pObject, pApp, NULL)) 
{
    // получить диалог открытия файла
    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;
    CheckError(pFileDialog->Show(&bResult));
    if (bResult) 
    {
        // получить тип файла
        CComPtr<ITDMSFileDefs> pFileDefs;
        CheckError(pApp->get_FileDefs(&pFileDefs));
        CComPtr<ITDMSFileDef> pFileDef;
        // первый
        VARIANT var;
        var.vt = VT_I4;
        var.lVal = 0;
        CheckError(pFileDefs->get_Item(var, &pFileDef));
        // по имени
        //VARIANT var;
        //var.vt = VT_BSTR;
        //var.bstrVal = A2BSTR("FILE_PT");
        //CheckError(pFileDefs->get_Item(var, &pFileDef));
        //VariantClear(&var);

        // получить файлы объекта
        CComPtr<ITDMSFiles> pFiles;
        CheckError(pObject->get_Files(&pFiles));

        // создать новый файл
        CComPtr<ITDMSFile> pFile;
        var.vt = VT_DISPATCH;
        CheckError(pFileDef->QueryInterface(IID_IDispatch, (void**)&var.pdispVal));
        CheckError(pFiles->Create(var, &pFile));
        VariantClear(&var);

        // имя файла
        BSTR bsFileName;
        CheckError(pFileDialog->get_FileName(&bsFileName));

        // поднять файл в базу TDMS
        CheckError(pFile->CheckIn(bsFileName));

        SysFreeString(bsFileName);
    }
}
© 2023 CSoft Development. Все права защищены.