获取本机通讯薄的内容
作者:徐景周
下载示例源码(http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=737)
(http://www.vckbase.com/document/viewdoc.asp?id=660)
简介
如果你想获取本机通讯簿(Outlook Express和Outlook2000)的内容,如:联系人名字、联系人邮件地址等时,可以试试下面的方法。
由于读取Outlook Express(系统自带)和Outlook2000(Office2000中所带)中通讯薄内容所采取的方法不同,下面将分开简述。
第一、读取系统自带Outlook Express中通讯薄方法
基本思路
通过载入Wab32.dll文件(此文件一般位于路径“<盘符>/Program Files/Common Files/System/”下面),再获取其内部涵数WABOpen的进程地址加以调用,来读出通讯薄中主要内容。
具体实现
一、 包含通讯薄头文件及声明内部涵数
#include <wab.h> // 通讯薄头文件
// 内部涵数声明
typedef HRESULT (WINAPI *fWABOpen)(LPADRBOOK*,LPWABOBJECT*,LPWAB_PARAM,DWORD);
二、 读取具体内容的详细代码
// 读取通讯薄内容(类型、呢称、名字、EMAIL)
void CGetEmailDlg::OnOK()
{
HRESULT hRes;
LPADRBOOK lpAdrBook;
LPWABOBJECT lpWABObject;
LPWAB_PARAM lpWABParam = NULL;
DWORD Reserved2 = NULL;
HINSTANCE hinstLib;
hinstLib = LoadLibrary("D://Program Files//Common Files//System//wab32");
fWABOpen procWABOpen;
if (hinstLib != NULL)