本文整理汇总了C++中LPADRBOOK::Details方法的典型用法代码示例。如果您正苦于以下问题:C++ LPADRBOOK::Details方法的具体用法?C++ LPADRBOOK::Details怎么用?C++ LPADRBOOK::Details使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LPADRBOOK
的用法示例。
在下文中一共展示了LPADRBOOK::Details方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnOpenEntryID
void CBaseDialog::OnOpenEntryID(_In_opt_ LPSBinary lpBin)
{
HRESULT hRes = S_OK;
if (!m_lpMapiObjects) return;
CEditor MyEID(
this,
IDS_OPENEID,
IDS_OPENEIDPROMPT,
10,
CEDITOR_BUTTON_OK | CEDITOR_BUTTON_CANCEL);
MyEID.InitPane(0, CreateSingleLinePane(IDS_EID, BinToHexString(lpBin, false), false));
LPMDB lpMDB = m_lpMapiObjects->GetMDB(); // do not release
MyEID.InitPane(1, CreateCheckPane(IDS_USEMDB, lpMDB ? true : false, lpMDB ? false : true));
LPADRBOOK lpAB = m_lpMapiObjects->GetAddrBook(false); // do not release
MyEID.InitPane(2, CreateCheckPane(IDS_USEAB, lpAB ? true : false, lpAB ? false : true));
LPMAPISESSION lpMAPISession = m_lpMapiObjects->GetSession(); // do not release
MyEID.InitPane(3, CreateCheckPane(IDS_SESSION, lpMAPISession ? true : false, lpMAPISession ? false : true));
MyEID.InitPane(4, CreateCheckPane(IDS_PASSMAPIMODIFY, false, false));
MyEID.InitPane(5, CreateCheckPane(IDS_PASSMAPINOCACHE, false, false));
MyEID.InitPane(6, CreateCheckPane(IDS_PASSMAPICACHEONLY, false, false));
MyEID.InitPane(7, CreateCheckPane(IDS_EIDBASE64ENCODED, false, false));
MyEID.InitPane(8, CreateCheckPane(IDS_ATTEMPTIADDRBOOKDETAILSCALL, false, lpAB ? false : true));
MyEID.InitPane(9, CreateCheckPane(IDS_EIDISCONTAB, false, false));
WC_H(MyEID.DisplayDialog());
if (S_OK != hRes) return;
// Get the entry ID as a binary
LPENTRYID lpEnteredEntryID = NULL;
LPENTRYID lpEntryID = NULL;
size_t cbBin = NULL;
EC_H(MyEID.GetEntryID(0, MyEID.GetCheck(7), &cbBin, &lpEnteredEntryID));
if (MyEID.GetCheck(9) && lpEnteredEntryID)
{
(void)UnwrapContactEntryID((ULONG)cbBin, (LPBYTE)lpEnteredEntryID, (ULONG*)&cbBin, (LPBYTE*)&lpEntryID);
}
else
{
lpEntryID = lpEnteredEntryID;
}
if (MyEID.GetCheck(8) && lpAB) // Do IAddrBook->Details here
{
ULONG_PTR ulUIParam = (ULONG_PTR)(void*)m_hWnd;
EC_H_CANCEL(lpAB->Details(
&ulUIParam,
NULL,
NULL,
(ULONG)cbBin,
lpEntryID,
NULL,
NULL,
NULL,
DIALOG_MODAL)); // API doesn't like unicode
}
else
{
LPUNKNOWN lpUnk = NULL;
ULONG ulObjType = NULL;
EC_H(CallOpenEntry(
MyEID.GetCheck(1) ? lpMDB : 0,
MyEID.GetCheck(2) ? lpAB : 0,
NULL,
MyEID.GetCheck(3) ? lpMAPISession : 0,
(ULONG)cbBin,
lpEntryID,
NULL,
(MyEID.GetCheck(4) ? MAPI_MODIFY : MAPI_BEST_ACCESS) |
(MyEID.GetCheck(5) ? MAPI_NO_CACHE : 0) |
(MyEID.GetCheck(6) ? MAPI_CACHE_ONLY : 0),
&ulObjType,
&lpUnk));
if (lpUnk)
{
LPWSTR szFlags = NULL;
InterpretNumberAsStringProp(ulObjType, PR_OBJECT_TYPE, &szFlags);
DebugPrint(DBGGeneric, _T("OnOpenEntryID: Got object (%p) of type 0x%08X = %ws\n"), lpUnk, ulObjType, szFlags);
delete[] szFlags;
szFlags = NULL;
LPMAPIPROP lpTemp = NULL;
WC_MAPI(lpUnk->QueryInterface(IID_IMAPIProp, (LPVOID*)&lpTemp));
if (lpTemp)
{
WC_H(DisplayObject(
//.........这里部分代码省略.........