Group:  Microsoft Outlook ยป microsoft.public.outlook.interop
Thread: Problems with COM

Problems with COM
Dewey 6/5/2007 9:39:01 PM
Hi
I posted a quesiton earlier, but it hasn't showed up in over an hour, so
I'll post again, this time with more info.
So I'm tring to access the Outlook 2003 Address book from VB.net (using
VS.net 2005). I get the list open just fine using a call to
objSession.AddressBook( ). However, once a name is selected, I get an error
that reads:


"Unable to cast COM object of type 'System.__ComObject' to interface type
"Microsoft.Office.Interop.Outlook.Recipients'. This operation failed because
the QuesryInterface call on the COM component for the interface with IID
'{0006303B-0000-0000-C000-000000000046}' failed due to the following error:
No such interface supported (Exception from HRESULT: 0x80004002
(E_NOINTERFACE))."


According to older documentation I found for VBA, the AddressBook( )
function returns a Recipients object, but I'm not getting it back, even when
I explicitly try to cast the return using CType. Instead, I get the error
above. Can someone help me?

Here's my code:



Public Function AddressBook_Click(ByVal myChoice As String) As String

Dim objNS As Microsoft.Office.Interop.Outlook.NameSpace
Dim objSession As Object 'As MAPI.Session

Dim objRecipients As Microsoft.Office.Interop.Outlook.Recipients

objSession = CreateObject("MAPI.Session")
objSession.Logon(, , False, False)
objRecipients = objSession.AddressBook(, "Please select", True,
True, 1, "mychoice")

AddressBook_Click = objRecipients.Item(1).AddressEntry

End Function


Thanks for your help!
-Josh
Re: Problems with COM
"amitbhandari" <abhandari[ at ]opelin.com> 6/27/2007 5:44:17 AM
I guess there is problem with your code written here.

You should first create an object of Application and then using Session
property of application object, create the namespace object if you want to
this object otherwise you can always simply go for AppObj.Session
(....property list), then you can use AddressLists property to get the list
of all the recipients.

--
Regards,
Amit Bhandari

"Dewey" <Dewey[ at ]discussions.microsoft.com> wrote in message
news:33B1D26E-6409-480F-8DCE-2F26ACAFDD8A[ at ]microsoft.com...
[Quoted Text]
> Hi
> I posted a quesiton earlier, but it hasn't showed up in over an hour, so
> I'll post again, this time with more info.
> So I'm tring to access the Outlook 2003 Address book from VB.net (using
> VS.net 2005). I get the list open just fine using a call to
> objSession.AddressBook( ). However, once a name is selected, I get an
> error
> that reads:
>
>
> "Unable to cast COM object of type 'System.__ComObject' to interface type
> "Microsoft.Office.Interop.Outlook.Recipients'. This operation failed
> because
> the QuesryInterface call on the COM component for the interface with IID
> '{0006303B-0000-0000-C000-000000000046}' failed due to the following
> error:
> No such interface supported (Exception from HRESULT: 0x80004002
> (E_NOINTERFACE))."
>
>
> According to older documentation I found for VBA, the AddressBook( )
> function returns a Recipients object, but I'm not getting it back, even
> when
> I explicitly try to cast the return using CType. Instead, I get the error
> above. Can someone help me?
>
> Here's my code:
>
>
>
> Public Function AddressBook_Click(ByVal myChoice As String) As String
>
> Dim objNS As Microsoft.Office.Interop.Outlook.NameSpace
> Dim objSession As Object 'As MAPI.Session
>
> Dim objRecipients As Microsoft.Office.Interop.Outlook.Recipients
>
> objSession = CreateObject("MAPI.Session")
> objSession.Logon(, , False, False)
> objRecipients = objSession.AddressBook(, "Please select", True,
> True, 1, "mychoice")
>
> AddressBook_Click = objRecipients.Item(1).AddressEntry
>
> End Function
>
>
> Thanks for your help!
> -Josh

Home | Search | Terms | Imprint
Newsgroups Reader