本文整理汇总了C++中LPMESSAGE::QueryInterface方法的典型用法代码示例。如果您正苦于以下问题:C++ LPMESSAGE::QueryInterface方法的具体用法?C++ LPMESSAGE::QueryInterface怎么用?C++ LPMESSAGE::QueryInterface使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LPMESSAGE
的用法示例。
在下文中一共展示了LPMESSAGE::QueryInterface方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MAPIAllocateBuffer
LPSPropValue Workshare::Mail::Mapi::GetMessageTag(LPMESSAGE lpMessage, const std::tstring& sTag)
{
LPSPropValue pPropVal = 0;
IMAPIPropPtr spMapiProp;
HRESULT hr = lpMessage->QueryInterface(IID_IMAPIProp, (void**) &spMapiProp);
if(SUCCEEDED(hr))
{
LPMAPINAMEID pTagName = 0;
hr = MAPIAllocateBuffer(sizeof(MAPINAMEID), (LPVOID*)&pTagName);
if(SUCCEEDED(hr))
{
pTagName[0].lpguid = (LPGUID)&PS_PUBLIC_STRINGS;
pTagName[0].ulKind = MNID_STRING;
_bstr_t bsTag(sTag.c_str());
pTagName[0].Kind.lpwstrName = bsTag;
LPSPropTagArray pPropTag = 0;
hr = spMapiProp->GetIDsFromNames(1, &pTagName, 0, &pPropTag);
if (!FAILED(hr))
{
if(1 == pPropTag->cValues && PT_ERROR != PROP_TYPE(pPropTag->aulPropTag[0]))
{
ULONG ulCount = 0;
spMapiProp->GetProps(pPropTag, 0, &ulCount, &pPropVal);
}
MAPIFreeBuffer(pPropTag);
}
MAPIFreeBuffer(pTagName);
}
}
return pPropVal;
}