本文整理汇总了C++中LPMESSAGE::GetProps方法的典型用法代码示例。如果您正苦于以下问题:C++ LPMESSAGE::GetProps方法的具体用法?C++ LPMESSAGE::GetProps怎么用?C++ LPMESSAGE::GetProps使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LPMESSAGE
的用法示例。
在下文中一共展示了LPMESSAGE::GetProps方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadProperties
HRESULT ReadProperties(LPMESSAGE lpMessage, ULONG ulCount, ULONG *lpTag, LPSPropValue *lppPropertyArray)
{
HRESULT hr = hrSuccess;
LPSPropTagArray lpPropertyTagArray = NULL;
ULONG ulPropertyCount = 0;
hr = MAPIAllocateBuffer(sizeof(SPropTagArray) + (sizeof(ULONG) * ulCount), (void**)&lpPropertyTagArray);
if (hr != hrSuccess)
goto exit;
lpPropertyTagArray->cValues = ulCount;
for (ULONG i = 0; i < ulCount; i++)
lpPropertyTagArray->aulPropTag[i] = lpTag[i];
hr = lpMessage->GetProps(lpPropertyTagArray, 0, &ulPropertyCount, lppPropertyArray);
if (FAILED(hr)) {
cout << "Failed to obtain all properties." << endl;
goto exit;
}
exit:
if (lpPropertyTagArray)
MAPIFreeBuffer(lpPropertyTagArray);
return hr;
}
示例2: ReadNamedProperties
HRESULT ReadNamedProperties(LPMESSAGE lpMessage, ULONG ulCount, LPMAPINAMEID *lppTag,
LPSPropTagArray *lppPropertyTagArray, LPSPropValue *lppPropertyArray)
{
HRESULT hr = hrSuccess;
ULONG ulReadCount = 0;
hr = lpMessage->GetIDsFromNames(ulCount, lppTag, 0, lppPropertyTagArray);
if(hr != hrSuccess) {
cout << "Failed to obtain IDs from names." << endl;
/*
* Override status to make sure FAILED() will catch this,
* this is required to make sure the called won't attempt
* to access lppPropertyArray.
*/
hr = MAPI_E_CALL_FAILED;
goto exit;
}
hr = lpMessage->GetProps(*lppPropertyTagArray, 0, &ulReadCount, lppPropertyArray);
if (FAILED(hr)) {
cout << "Failed to obtain all properties." << endl;
goto exit;
}
exit:
return hr;
}
示例3: AddReportTag
HRESULT AddReportTag(LPMESSAGE lpMessage)
{
if (!lpMessage) return MAPI_E_INVALID_PARAMETER;
HRESULT hRes = S_OK;
ULONG cValues = 0;
LPSPropValue lpPropArray = NULL;
SizedSPropTagArray(2, sptaProps) = { 2, { PR_PARENT_ENTRYID, PR_SEARCH_KEY } };
hRes = lpMessage->GetProps((LPSPropTagArray)&sptaProps, 0, &cValues, &lpPropArray);
if (SUCCEEDED(hRes))
{
SPropValue sProp = { 0 };
sProp.ulPropTag = PR_REPORT_TAG;
hRes = BuildReportTag(NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
(lpPropArray[0].ulPropTag == PR_PARENT_ENTRYID) ? lpPropArray[0].Value.bin.cb : 0,
(lpPropArray[0].ulPropTag == PR_PARENT_ENTRYID) ? lpPropArray[0].Value.bin.lpb : 0,
(lpPropArray[1].ulPropTag == PR_SEARCH_KEY) ? lpPropArray[1].Value.bin.cb : 0,
(lpPropArray[1].ulPropTag == PR_SEARCH_KEY) ? lpPropArray[1].Value.bin.lpb : 0,
"",
&sProp.Value.bin.cb,
&sProp.Value.bin.lpb);
if (SUCCEEDED(hRes) && sProp.Value.bin.cb && sProp.Value.bin.lpb)
{
hRes = lpMessage->SetProps(1, &sProp, NULL);
}
delete[] sProp.Value.bin.lpb;
}
return hRes;
}