Что-то совсем запутался

Win7 x64, Delphi 3
Идея - передавать в ListBox вместе со строкой ссылку на IXMLNode, дабы затем можно было посмотрить из чего оно состоит.
Добавляю так:
Код:
ListBox2.Items.AddObject(LNode.NodeName,TObject(LNode));
Получаю, соответственно так:
Код:
LNode:=IXMLNode(ListBox2.Items.Objects[ListBox2.ItemIndex]);
Компилятор ругается на несоответствие типов IXMLNode и TObject, притом, если делаю так:
Код:
var LNode: IXMLNode;
i : integer;
begin
i := integer(ListBox2.Items.Objects[ListBox2.ItemIndex]);
LNode:=IXMLNode(i);
end;
компилятор все проглатывает, ошибки начинаются уже на процессе выполнения
