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

Glossary Item Box

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

//---------------------------------------------------------
// Выполняет команду "Test" над выбранным объектом.
// Если команды нет, создает ее.
//---------------------------------------------------------

// получить команды
CComPtr<ITDMSCommands> pCommands;
CheckError(pApp->get_Commands(&pCommands));

// получить команду "Test"
CComPtr<ITDMSCommand> pCommand;
VARIANT varItem;
varItem.vt = VT_BSTR;
varItem.bstrVal = A2BSTR("Test");
HRESULT hr = pCommands->get_Item(varItem, &pCommand);

if (FAILED(hr)) 
{
    // создать команду "Test"
    CheckError(pCommands->Create(&pCommand));
    CheckError(pCommand->put_SysName(varItem.bstrVal));
    CheckError(pCommand->put_Description(varItem.bstrVal));
    CheckError(pCommand->put_Class(tdmView));
    CheckError(pCommand->put_Type(tdmVBScript));
    BSTR bsCommand = A2BSTR("MsgBox ThisObject.Description\n");
    CheckError(pCommand->put_Command(bsCommand));
}


// выбрать объект
CComPtr<ITDMSObject> pObject;
if (SelectObject(&pObject, pApp, NULL)) 
{
    // разрешить выполнение команды над объектами этого типа
    CComPtr<ITDMSObjectDef> pObjDef;
    CheckError(pObject->get_ObjectDef(&pObjDef));
    CComPtr<ITDMSCommands> pObjComs;
    CheckError(pObjDef->get_Commands(&pObjComs));
    pObjComs->Add(pCommand);

    // выполнить команду
    CheckError(pApp->ExecuteCommand(varItem.bstrVal, pObject));
    VariantClear(&varItem);
}
© 2023 CSoft Development. Все права защищены.