Добрый день, подскажите, я же правильно понимаю что все используемые в вашем примере методы и классы это переопределенные (c добавлением частично вашего индекса) NET.Framework ?
Возможно ли дать ссылки на оригинал ?
Например: TreeItemHlp

Пространство имен:
System.Windows.Automation
Assembly:
UIAutomationTypes.dll
Определяет узел в элементе управления TreeItem.


Пример
public override void Execute()
{
Аппарат1=Аппарат2=Аппарат3=Аппарат4=false; //сбрасываем все выходы
foreach (IDocumentHlp document in HostFB.TreeItemHlp.Project.Documents) //
IAttributeHlp attribute = document.Attribute;
if (attribute.Opened) //проверяем загружено ли окно
{
var mnemoInfo = attribute.CurrentCallInfo;
var callType = mnemoInfo.CurrentCallType;
//проверяем что окно открыто и оно имеет тип "документ"
if (attribute.DocumentInfo.Handle != 0 && callType == MasterSCADA.Interfaces.ECallType.ctDocument )
{
//взводим определенный выход в зависимости от имени объекта у которого открыто окно
if (attribute.TreeItem.Name=="Аппарат1") Аппарат1=true;
if (attribute.TreeItem.Name=="Аппарат2") Аппарат2=true;
if (attribute.TreeItem.Name=="Аппарат3") Аппарат3=true;
if (attribute.TreeItem.Name=="Аппарат4") Аппарат4=true;
}
}
}