C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 194 - Поддержка MAPI вручную / MFC шаг за шагом / Visual C++

Шаг 194 - Поддержка MAPI вручную

Давайте попробуем реализовать поддержку MAPI без всяких волшебников, а вручную. Для этого создадим приложение AppWizard на базе диалогового окна и поместим кнопку, к которой и припишем код инициализации MAPI.

В первую очередь нам нужно поместить заголовочный файл с описанием функций MAPI.

// TestMapiDlg.cpp : implementation file
//
.........
#include "mapix.h"
.........

Вот теперь надо подключить библиотеку с самим функциями в Project Setting и имя ее Mapi32.lib, ну все можно писать код.

void CTestMapiDlg::OnButton1() 
{
HRESULT hR = MAPIInitialize(NULL); 
ASSERT(S_OK == hR); 
LPMAPISESSION pS = NULL; 
hR = MAPILogonEx(0,NULL,NULL,MAPI_LOGON_UI | 
		MAPI_ALLOW_OTHERS | MAPI_EXTENDED,&pS); 
if (S_OK == hR)  AfxMessageBox("Ok !"); 
else    AfxMessageBox("Bad !"); 
MAPIUninitialize(); 
}

Смотрим чего там написано. Первая функция MAPIInitialize производит инициализацию данных в системных модулях DLL. Сама функция вот такая.

HRESULT 
MAPIInitialize
(
  LPVOID lpMapiInit  
);

Но вместо структуры lpMapiInit можно передать NULL, что и делается. Если все нормально, то функция вернет S_OK. Следующим вызовом является MAPILogonEx. Эта функция регистрации клиента для работы с MAPI.

HRESULT MAPILogonEx
(
  ULONG ulUIParam,                
  LPTSTR lpszProfileName,         
  LPTSTR lpszPassword,            
  FLAGS flFlags,                  
  LPMAPISESSION FAR * lppSession  
);

И последняя функция - это деинициализация клиента MAPIUninitialize, эта функция обратная MAPIInitialize и количество вызовов той и другой должно совпадать.

void MAPIUninitialize()

| |
Автор Каев Артем.
[AD]