獲取本機通訊薄的內容
編譯:徐景周
簡介
如果你想獲取本機通訊簿(outlook express和outlook2000)的內容,如:聯絡人名字、聯絡人郵件位址等時,可以試試下面的方法。下面是把此方法用vc6編寫的示例程式執行效果:
由於讀取outlook express(系統自帶)和outlook2000(office2000中所帶)中通訊薄內容所採取的方法不同,下面將分開簡述。
一、讀取系統自帶outlook express中通訊薄方法
基本思路
通重載入wab32.dll檔案(此檔案一般位於路徑「《碟符》\program files\common files\system\」下面),再獲取其內部涵數wabopen的程序位址加以呼叫,來讀出通訊薄中主要內容。
具體實現
#include // 通訊薄標頭檔案// 內部函式宣告
typedef hresult (winapi *fwabopen)(lpadrbook*,lpwabobject*,lpwab_param,dword);
// 讀取通訊薄內容(型別、呢稱、名字、email)附註:在包含進標頭檔案wab.h進行編釋時,有時會在wabtags.h等地方編釋不通,可按示例原始碼中所帶wabtags.h檔案加以修改,主要是原安裝檔案的內容有部分損壞。void cgetemaildlg::onok()
m_listemail.addstring(strtemp);
lpwabobject->freebuffer(lprow);
}lpwabobject->freebuffer(lprows);
}} freelibrary(hinstlib);
// 讀取成功後,置讀取按鈕無效
cbutton* pbtn = (cbutton*)getdlgitem(idok);
pbtn->enablewindow(false);
}}
二、讀取office2000中所帶outlook2k中通訊薄方法
基本思路
由於outlook2000下支援內部com介面,可以利用此介面來讀取其內部通訊薄中主要內容。
具體實現
// 匯入讀取outlook2000中通訊薄內容所需庫_itemsptr pitems;#import "e:\program files\microsoft office\office\mso9.dll" named_guids
#import "e:\program files\microsoft office\office\msoutl9.olb" \
no_namespace exclude("_irecipientcontrol", "_drecipientcontrol")
mapifolderptr pfolder;
_contactitemptr pcontact;
hresult hr;
try // 獲取預設outlook中聯絡人資料夾
if (pfolder==null)
else // 否則自行選擇outlook中一指定資料夾 }
pitems=pfolder->getitems();
if (pitems==null)
pcontact=pitems->getfirst();
m_listemail.resetcontent();
while(1) }
catch(_com_error &e)
獲取本機通訊薄的內容
第 一 讀取系統自帶outlook express中通訊薄方法 基本思路 通重載入wab32.dll檔案 此檔案一般位於路徑 碟符 program files common files system 下面 再獲取其內部涵數wabopen的程序位址加以呼叫,來讀出通訊薄中主要內容。具體實現 一 包含通...
QT 網路通訊篇 獲取本機資訊
今天carry對qt網路通訊的http有了一定的理解,可能了解的非常基礎,希望大家多提點意見哈!qt中的網路程式設計是由qt network提供的,它提供了許多類來實現網路應用中的各種功能,下面簡單實現一下獲取本機資訊 1,在ui介面新增如圖控制項 2,在.pro工程檔案中新增 qt network...
獲取本機的位址
剛學網路程式設計,試著做了乙個獲取本機的名及位址的方法,開始怎麼也獲取的不對,原來錯誤在這裡 i longint pointer p h addr list 這句開始少了 pointer 了,因為 h addr list 本來就是乙個指標 pchar,所以取得了這個指標的值後再去獲取這個指標所指向的...