Проверьте, реализует ли объект определенный интерфейс в VB6 - PullRequest
1 голос
/ 09 декабря 2010

Как я могу проверить, реализует ли объект определенный интерфейс в VB6? У меня есть следующий код:

Dim nodes As MSXML2.IXMLDOMNodeList
Dim node As MSXML2.IXMLDOMNode
Dim element As MSXML2.IXMLDOMElement

...

For Each node In nodes.childNodes
    If (node is MSXML2.IXMLDOMElement (how to do this?)) Then
        Set element = node
        ...
    Else
        ...
    End If

Ответы [ 3 ]

4 голосов
/ 09 декабря 2010

Заменить

If (node is MSXML2.IXMLDOMElement (how to do this?)) Then

с

If TypeOf node Is MSXML2.IXMLDOMElement Then

К вашему сведению: перед использованием TypeOf вы должны убедиться, что node не равно Nothing, иначе это вызовет ошибку времени выполнения Переменная объекта (или с блоком) не установлена ​​.

0 голосов
/ 09 декабря 2010

Просто назначьте его элементу, и если назначение возобновится по ошибке, попробуйте следующий интерфейс.

0 голосов
/ 09 декабря 2010

В этом случае вызов функции TypeName (узел) возвращает для вас "MSXML2.IXMLDOMElement"? Если так, то это может быть решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...