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

Glossary Item Box

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

//---------------------------------------------------------
// Создает объект любого разрешенного типа в составе 
// выбранного объекта с помощью диалога создания объекта.
//---------------------------------------------------------

VARIANT var;
CComPtr<ITDMSObjectDef> pObjDef;
CComPtr<ITDMSObject> pParentObject;

// получить диалог создания объекта
CComPtr<ITDMSDialogs> pDialogs;
CheckError(pApp->get_Dialogs(&pDialogs));
CComPtr<ITDMSCreateObjectDlg> pCreateObjectDlg;
CheckError(pDialogs->get_CreateObjectDlg(&pCreateObjectDlg));
    
// выбрать объект-контейнер
MessageBox(NULL, "Укажите объект в составе которого будет создан новый объект", "TDMS Example", MB_OK | MB_ICONINFORMATION);
if (SelectObject(&pParentObject, pApp)) {
    CheckError(pCreateObjectDlg->put_ParentObject(pParentObject));
    // получить первый из разрешенных для создания в этом объекте типов объектов
    CComPtr<ITDMSObjectDef> pParentObjDef;
    CheckError(pParentObject->get_ObjectDef(&pParentObjDef));
    CComPtr<ITDMSObjectDefs> pObjDefs;
    CheckError(pParentObjDef->get_ObjectDefs(&pObjDefs));
    var.vt = VT_I4;
    var.lVal = 0;
    CheckError(pObjDefs->get_Item(var, &pObjDef));
}

// получить первый попавшийся тип объекта
else {
    CComPtr<ITDMSObjectDefs> pObjDefs;
    CheckError(pApp->get_ObjectDefs(&pObjDefs));
    VARIANT var;
    var.vt = VT_I4;
    var.lVal = 0;
    CheckError(pObjDefs->get_Item(var, &pObjDef));
}

// установить тип объекта
var.vt = VT_DISPATCH;
CheckError(pObjDef->QueryInterface(IID_IDispatch, (void**)&var.pdispVal));
CheckError(pCreateObjectDlg->put_ObjectDef(var));
VariantClear(&var);

// показать диалог создания объекта
VARIANT_BOOL bResult;
CheckError(pCreateObjectDlg->Show(&bResult));
© 2023 CSoft Development. Все права защищены.