本文整理汇总了C++中CComQIPtr::GetDescription方法的典型用法代码示例。如果您正苦于以下问题:C++ CComQIPtr::GetDescription方法的具体用法?C++ CComQIPtr::GetDescription怎么用?C++ CComQIPtr::GetDescription使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CComQIPtr
的用法示例。
在下文中一共展示了CComQIPtr::GetDescription方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoCapture
void CWindowDlg::DoCapture(LONG hWnd)
{
CComPtr<ITextCaptureX7> pCapture;
HRESULT hr = pCapture.CoCreateInstance(CLSID_TextCaptureX);
if(FAILED(hr) || !pCapture)
{
AfxMessageBox(IDS_ERR_CREATE_CAPTURE_OBJ, MB_OK | MB_ICONERROR);
return;
}
CComPtr<IFontDisp> pFont;
CComBSTR bstrRes;
try
{
pCapture->FormattedText = m_bUseFormatting ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE;
DWORD dwStart = ::GetTickCount();;
if(0 == m_nType)
bstrRes = (BSTR)pCapture->CaptureWindowWithFont(hWnd, &pFont);
else
bstrRes = (BSTR)pCapture->GetFullTextAA(hWnd);
DWORD dwEnd = ::GetTickCount();
m_strDuration.Format(IDS_DURATION, dwEnd-dwStart);
//fill the values
m_strResult = bstrRes;
m_strFont.Empty();
m_nFontSize = 0;
if(bstrRes.Length() > 0)
{
LOGFONT lf;
theApp.DecodeFont(pFont, m_strFont, m_nFontSize, lf);
ModifyFont(lf);
}
}
catch(_com_error e)
{
//display error
CComQIPtr<IErrorInfo> pErrInfo = e.ErrorInfo();
CString strErr = e.ErrorMessage();
if(pErrInfo)
{
CComBSTR bstrErr;
if(S_OK == pErrInfo->GetDescription(&bstrErr))
strErr = bstrErr;
}
AfxMessageBox(strErr, MB_OK | MB_ICONERROR);
}
catch(...)
{
//display error
AfxMessageBox(IDS_CAPTURE_ERROR, MB_OK | MB_ICONERROR);
}
}