📄 evcrelationdlg.cpp
字号:
// evcRelationDlg.cpp : implementation file
//
#include "stdafx.h"
#include "evcRelation.h"
#include "evcRelationDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#if 1 //Create 2009/4/11 luyunzhao FlyAudio
#include <wab.h>
typedef HRESULT (WINAPI *fWABOpen)(LPADRBOOK*,LPWABOBJECT*,LPWAB_PARAM,DWORD);
#endif //Create 2009/4/11 luyunzhao FlyAudio
/////////////////////////////////////////////////////////////////////////////
// CEvcRelationDlg dialog
CEvcRelationDlg::CEvcRelationDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEvcRelationDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEvcRelationDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CEvcRelationDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEvcRelationDlg)
DDX_Control(pDX, IDC_LIST1, m_ListEmail);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEvcRelationDlg, CDialog)
//{{AFX_MSG_MAP(CEvcRelationDlg)
#if 0
ON_BN_CLICKED(IDC_OK, OnOk)
#endif
ON_BN_CLICKED(IDC_CONTACTS, OnContacts)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEvcRelationDlg message handlers
BOOL CEvcRelationDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CEvcRelationDlg::OnOk()
{
// TODO: Add your control notification handler code here
#if 0 //Create 2009/4/11 luyunzhao FlyAudio
HRESULT hRes;
LPADRBOOK lpAdrBook;
LPWABOBJECT lpWABObject;
LPWAB_PARAM lpWABParam = NULL;
DWORD Reserved2 = NULL;
HINSTANCE hinstLib;
hinstLib = LoadLibrary(_T("c:\\Program Files\\Common Files\\System\\wab32"));
fWABOpen procWABOpen;
if (hinstLib != NULL)
{
// 获取"Wab32.dll"内部涵数WABOpen的进程地址
procWABOpen = (fWABOpen) GetProcAddress(hinstLib, _T("WABOpen"));
if (procWABOpen != NULL)
{
hRes = (procWABOpen)(&lpAdrBook,&lpWABObject,NULL,Reserved2);
_ASSERTE(hRes == S_OK);
if (hRes != S_OK) exit(1);
ULONG lpcbEntryID;
ENTRYID *lpEntryID;
hRes = lpAdrBook->GetPAB(
&lpcbEntryID,
&lpEntryID
);
_ASSERTE(hRes == S_OK);
if (hRes != S_OK) exit(2);
ULONG ulFlags = MAPI_BEST_ACCESS;
ULONG ulObjType = NULL;
LPUNKNOWN lpUnk = NULL;
hRes = lpAdrBook->OpenEntry(
lpcbEntryID,
lpEntryID,
NULL,
ulFlags,
&ulObjType,
&lpUnk
);
ulFlags = NULL;
if (ulObjType == MAPI_ABCONT)
{
IABContainer *lpContainer = static_cast <IABContainer *>(lpUnk);
LPMAPITABLE lpTable = NULL;
hRes = lpContainer->GetContentsTable(
ulFlags,
&lpTable
);
#if 0 //Change 2009/4/11 luyunzhao FlyAudio
_ASSERT(lpTable);
#else
ASSERT(lpTable);
#endif ////Change 2009/4/11 luyunzhao FlyAudio
ULONG ulRows;
hRes = lpTable->GetRowCount(0,&ulRows);
#if 0 //
_ASSERTE(hRes == S_OK);
#else
ASSERT(hRes == S_OK);
#endif //
SRowSet *lpRows;
hRes = lpTable->QueryRows(
ulRows, // 获取所有行
0,
&lpRows
);
m_ListEmail.ResetContent();
for(ULONG i=0;i<lpRows->cRows;i++)
{
SRow *lpRow = &lpRows->aRow[i];
CString strTemp;
for(ULONG j=0;j<lpRow->cValues;j++)
{
SPropValue *lpProp = &lpRow->lpProps[j];
if (lpProp->ulPropTag == PR_DISPLAY_NAME_A)
strTemp = strTemp + " NAME: " + (char *)lpProp->Value.lpszA;
if (lpProp->ulPropTag == PR_EMAIL_ADDRESS_A)
strTemp = strTemp + " Email: " + (char *)lpProp->Value.lpszA;
if (lpProp->ulPropTag == PR_NICKNAME_A)
strTemp = strTemp + " NIKE: " + (char *)lpProp->Value.lpszA;
if (lpProp->ulPropTag == PR_ADDRTYPE_A)
strTemp = strTemp + " CLASSFY: " + (char *)lpProp->Value.lpszA;
}
m_ListEmail.AddString(strTemp);
lpWABObject->FreeBuffer(lpRow);
}
lpWABObject->FreeBuffer(lpRows);
}
}
FreeLibrary(hinstLib);
// 读取成功后,置读取按钮无效
CButton* pBtn = (CButton*)GetDlgItem(IDOK);
pBtn->EnableWindow(FALSE);
}
#endif //Create 2009/4/11 luyunzhao FlyAudio
}
void CEvcRelationDlg::OnContacts()
{
// TODO: Add your control notification handler code here
#if 0 //Create 2009/4/11 luyunzhao FlyAudio
HRESULT hRes;
LPADRBOOK lpAdrBook;
LPWABOBJECT lpWABObject;
LPWAB_PARAM lpWABParam = NULL;
DWORD Reserved2 = NULL;
HINSTANCE hinstLib;
hinstLib = LoadLibrary(_T("c:\\Program Files\\Common Files\\System\\wab32"));
fWABOpen procWABOpen;
if (hinstLib != NULL)
{
// 获取"Wab32.dll"内部涵数WABOpen的进程地址
procWABOpen = (fWABOpen) GetProcAddress(hinstLib, _T("WABOpen"));
if (procWABOpen != NULL)
{
hRes = (procWABOpen)(&lpAdrBook,&lpWABObject,NULL,Reserved2);
_ASSERTE(hRes == S_OK);
if (hRes != S_OK) exit(1);
ULONG lpcbEntryID;
ENTRYID *lpEntryID;
hRes = lpAdrBook->GetPAB(
&lpcbEntryID,
&lpEntryID
);
_ASSERTE(hRes == S_OK);
if (hRes != S_OK) exit(2);
ULONG ulFlags = MAPI_BEST_ACCESS;
ULONG ulObjType = NULL;
LPUNKNOWN lpUnk = NULL;
hRes = lpAdrBook->OpenEntry(
lpcbEntryID,
lpEntryID,
NULL,
ulFlags,
&ulObjType,
&lpUnk
);
ulFlags = NULL;
if (ulObjType == MAPI_ABCONT)
{
IABContainer *lpContainer = static_cast <IABContainer *>(lpUnk);
LPMAPITABLE lpTable = NULL;
hRes = lpContainer->GetContentsTable(
ulFlags,
&lpTable
);
#if 0 //Change 2009/4/11 luyunzhao FlyAudio
_ASSERT(lpTable);
#else
ASSERT(lpTable);
#endif ////Change 2009/4/11 luyunzhao FlyAudio
ULONG ulRows;
hRes = lpTable->GetRowCount(0,&ulRows);
#if 0 //
_ASSERTE(hRes == S_OK);
#else
ASSERT(hRes == S_OK);
#endif //
SRowSet *lpRows;
hRes = lpTable->QueryRows(
ulRows, // 获取所有行
0,
&lpRows
);
m_ListEmail.ResetContent();
for(ULONG i=0;i<lpRows->cRows;i++)
{
SRow *lpRow = &lpRows->aRow[i];
CString strTemp;
for(ULONG j=0;j<lpRow->cValues;j++)
{
SPropValue *lpProp = &lpRow->lpProps[j];
if (lpProp->ulPropTag == PR_DISPLAY_NAME_A)
strTemp = strTemp + " NAME: " + (char *)lpProp->Value.lpszA;
if (lpProp->ulPropTag == PR_EMAIL_ADDRESS_A)
strTemp = strTemp + " Email: " + (char *)lpProp->Value.lpszA;
if (lpProp->ulPropTag == PR_NICKNAME_A)
strTemp = strTemp + " NIKE: " + (char *)lpProp->Value.lpszA;
if (lpProp->ulPropTag == PR_ADDRTYPE_A)
strTemp = strTemp + " CLASSFY: " + (char *)lpProp->Value.lpszA;
}
m_ListEmail.AddString(strTemp);
lpWABObject->FreeBuffer(lpRow);
}
lpWABObject->FreeBuffer(lpRows);
}
}
FreeLibrary(hinstLib);
// 读取成功后,置读取按钮无效
CButton* pBtn = (CButton*)GetDlgItem(IDOK);
pBtn->EnableWindow(FALSE);
}
#endif //Create 2009/4/11 luyunzhao FlyAudio
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -