Доброго всем здравия.
Появилась нужда в собственном OPC DA клиенте.
Задача читать тэги с сервера и в дальнейшем передавать по сети на другие компьютеры.
Для тестирования клиента использую бесплатный Matrikon.OPC.Simulation.1

Код ниже успешно подключается к серверу который можно указать в программе в ручную, по умолчанию Matrikon.OPC.Simulation.1.

Код:
; Включаем нужные библиотеки
IncludeFile "ComHelper.pb"
IncludeFile "OPC-Automation-1.pbi"
IncludeFile "VariantHelper_Include.pb"

Global *OpcAutomation.IUnknown
Global *OpcServer.IOPCAutoServer

; Функция для обработки ошибок
Procedure HandleError(errorCode, message.s)
    If errorCode
        Debug "Ошибка: " + message + " | Код ошибки: " + FormatMessage(errorCode)
    EndIf
    ProcedureReturn errorCode
EndProcedure

; Запрос имени OPC сервера у пользователя
Define ServerName.s
ServerName = InputRequester("Подключение к OPC серверу", "Введите имя OPC сервера (например, Matrikon.OPC.Simulation.1):", "Matrikon.OPC.Simulation.1")

If ServerName = ""
    Debug "Имя OPC сервера не введено."
    End
EndIf

Debug "*** Создание объекта OPC Automation ***"
*OpcAutomation = CreateObject("OPC.Automation.1")
If *OpcAutomation = 0
    HandleError(1, "Ошибка при создании объекта OPC Automation")
    End
EndIf

Debug "Запрос интерфейса OPCAutoServer"
r1 = *OpcAutomation\QueryInterface(?IID_IOPCAutoServer, @*OpcServer)
If HandleError(r1, "Ошибка при запросе интерфейса IOPCAutoServer")
    End
EndIf

Debug "Подключение к серверу OPC"
Define Node.Variant
r1 = *OpcServer\Connect(ServerName, Node)
If HandleError(r1, "Ошибка подключения к OPC серверу: " + ServerName)
    End
Else
    Debug "Успешное подключение к OPC серверу: " + ServerName
EndIf

; Завершение работы.

; Отключаемся от сервера
r1 = *OpcServer\Disconnect()
If HandleError(r1, "Ошибка при отключении от OPC сервера")
    End
EndIf

; Освобождаем ресурсы
*OpcServer\Release()
*OpcAutomation\Release()

End

Далее интересует чтение и отображение существующих тегов с сервера, для этого существует метод CreateBrowser()

Не могу разобраться как правильно организовать этот CreateBrowser()

Приветствуется любая помощь.
Есть варианты сделать данную задачу на VB, но PureBasic больше симпатизирует)))).

Все дополнительные файлы и библиотеки по ссылке:
Файлы проекта