本文整理汇总了C++中zimbra::util::ScopedInterface::MAPIToMime方法的典型用法代码示例。如果您正苦于以下问题:C++ ScopedInterface::MAPIToMime方法的具体用法?C++ ScopedInterface::MAPIToMime怎么用?C++ ScopedInterface::MAPIToMime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zimbra::util::ScopedInterface
的用法示例。
在下文中一共展示了ScopedInterface::MAPIToMime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ConvertIt
HRESULT ConvertIt(LPMESSAGE pMsg, IStream** ppszMimeMsg, UINT& mimeLength )
{
HRESULT hr = S_OK;
Zimbra::Util::ScopedInterface<IConverterSession> pConvSess;
hr = CreateConverterSession( pConvSess.getptr() );
if( FAILED(hr))
{
return hr;
}
pConvSess->SetSaveFormat( SAVE_RFC1521 );
IStream * iStream = NULL;
hr = OpenStreamOnFile(Zimbra::Mapi::Memory::AllocateBuffer, Zimbra::Mapi::Memory::FreeBuffer,
STGM_READWRITE | STGM_CREATE | SOF_UNIQUEFILENAME | STGM_DELETEONRELEASE,
NULL, (LPWSTR)L"mig", &iStream);
if( FAILED(hr))
{
return hr;
}
HGLOBAL hGlobal = GlobalAlloc(GMEM_FIXED, 0 );
Zimbra::Util::ScopedInterface<IStream> pStream;
CreateStreamOnHGlobal( hGlobal, TRUE, pStream.getptr() );
UINT uFlags = CCSF_NO_MSGID | CCSF_SMTP | CCSF_NOHEADERS ;
hr = pConvSess->MAPIToMime( pMsg, iStream, uFlags);
if( FAILED(hr) ) {
return hr;
}
if( !iStream) {
return E_FAIL;
}
// get the stream size
STATSTG stat;
LARGE_INTEGER li = { 0 };
hr = iStream->Seek( li, STREAM_SEEK_SET, NULL );
if( FAILED(hr) ) {
return hr;
}
hr = iStream->Stat( &stat, STATFLAG_DEFAULT );
if( FAILED(hr) ) {
return hr;
}
ULONG size = (UINT)stat.cbSize.QuadPart;
*ppszMimeMsg = iStream;
mimeLength = (UINT)size;
return hr;
}