Re: Выбор адреса из адресной книги
От: algol Россия about:blank
Дата: 17.02.05 10:39
Оценка:
Здравствуйте, 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;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.