Здравствуйте, AlexEagle, Вы писали:
AE>Есть небольная утилитка, которая работает с почтой, и в ней нужно указать адрес получателя.
AE>Хотелось бы сделать это как в самом Аутлуке, с использванием его адресной книги, и с минимальными трудозатратами.
#import "C:\Program Files\Common Files\Microsoft Shared\Office11\mso.dll" named_guids no_namespace \
rename("DocumentProperties", "DocProps")
#import "C:\Program Files\Microsoft Office\Office11\msoutl.olb" named_guids no_namespace
_ApplicationPtr outlook;
if (FAILED(outlook.CreateInstance(L"Outlook.Application", NULL, CLSCTX_LOCAL_SERVER)))
return false;
try
{
_NameSpacePtr namesp = outlook->GetNamespace(L"MAPI");
MAPIFolderPtr folder = namesp->GetDefaultFolder(olFolderContacts);
_ItemsPtr contacts = folder->Items;
long cnt = contacts->Count;
for (long i = 1; i <= cnt; i++)
{
_ContactItemPtr contact = contacts->Item(i);
CString DisplayName = (LPCTSTR)contact->FullName;
CString FirstName = (LPCTSTR)contact->FirstName;
CString LastName = (LPCTSTR)contact->LastName;
CString Email = (LPCTSTR)contact->Email1Address;
// Do smth with contact data
}
}
catch (...)
{
outlook->Quit();
return false;
}
outlook->Quit();
return true;