本文整理汇总了C++中IPicture::SaveAsFile方法的典型用法代码示例。如果您正苦于以下问题:C++ IPicture::SaveAsFile方法的具体用法?C++ IPicture::SaveAsFile怎么用?C++ IPicture::SaveAsFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPicture
的用法示例。
在下文中一共展示了IPicture::SaveAsFile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sizeof
std::vector<BYTE> NewGUI_SaveIcon(HICON hIcon)
{
std::vector<BYTE> v;
if(hIcon == NULL) { ASSERT(FALSE); return v; }
IStream* pStream = NULL;
if(FAILED(CreateStreamOnHGlobal(NULL, TRUE, &pStream))) { ASSERT(FALSE); return v; }
if(pStream == NULL) { ASSERT(FALSE); return v; }
PICTDESC pd;
ZeroMemory(&pd, sizeof(PICTDESC));
pd.cbSizeofstruct = sizeof(PICTDESC);
pd.picType = PICTYPE_ICON;
pd.icon.hicon = hIcon;
IPicture* pPic = NULL;
LONG lSize = 0;
bool bPic = SUCCEEDED(OleCreatePictureIndirect(&pd, IID_IPicture,
FALSE, (LPVOID *)&pPic));
bPic &= (pPic != NULL);
if(bPic)
{
if(SUCCEEDED(pPic->SaveAsFile(pStream, TRUE, &lSize)))
{
LARGE_INTEGER liMove;
ZeroMemory(&liMove, sizeof(LARGE_INTEGER));
VERIFY(SUCCEEDED(pStream->Seek(liMove, STREAM_SEEK_SET, NULL)));
v.resize(static_cast<size_t>(lSize));
ULONG cbRead = 0;
VERIFY(SUCCEEDED(pStream->Read(&v[0], static_cast<ULONG>(
lSize), &cbRead)));
if(cbRead == static_cast<ULONG>(lSize)) { } // Success
else { ASSERT(FALSE); v.clear(); }
}
pPic->Release();
}
pStream->Release();
return v;
}