we currently face a problem with the GW COM API.

I got the following lines from the GW Documentation:
AddressBookEntry Item(VARIANT Index)
DEFAULT. Returns the AddressBookEntry object specified by Index. Index may
be a Long, a
string representing a Long, or an Address object. If Index is a Long, or a
string representing a
Long, returns the AddressBookEntry object located at the given Index in the
collection. Valid
indexes are 1 through Count, inclusive. Throws an exception if the Index is
outside of this
range. If Index is an Address object, it should contain the DisplayName,
EmailType, and ObjType of the desired AddressBookEntry object.

As described in the Documentation, the Parameter can be a long, a string
(representing a long) or an Address object.

But it fails when I try it with the Address object.

Here my Code snippet:

vGroupWise:=CreateOleObject('NovellGroupWareSessio n');
vAccount := vGroupWise.Login;
vAddressBookEntry :=
vAccount.SystemAddressBook.AddressBookEntries.Item (vAccount.owner);

I always receive the following error:
Can't convert Variant of type (Dispatch) to type (OleStr).

The following line is working fine:
vAddressBookEntry :=
vAccount.SystemAddressBook.AddressBookEntries.Item ('1');

But this way, we have to go through all AddressBookEntries until we find the
one we need. This is very time and resource consuming. It would be more
efficient to directly pass the AddressBook Object to the Method.

So here my questions:
- Is it possible to use a AddressBookEntry object as parameter?
--> If so, could you provide us with an example?

- Is something wrong with our Code?

- Is it possible to use this method in Delphi? Or do we have to use a
different language?

We tried it with GW 7.1 and GW 8 (2008/10/25 Version)

Thanks in advance,