本文整理汇总了C++中_bstr_t::AllocSysString方法的典型用法代码示例。如果您正苦于以下问题:C++ _bstr_t::AllocSysString方法的具体用法?C++ _bstr_t::AllocSysString怎么用?C++ _bstr_t::AllocSysString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类_bstr_t
的用法示例。
在下文中一共展示了_bstr_t::AllocSysString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _LogError
HRESULT CTCPropBagOnRegKey::_LogError(const _bstr_t& strFn,
const _bstr_t& strDesc, HRESULT hr, LPCOLESTR pszPropName,
IErrorLog* pErrorLog)
{
// Create the source string
_bstr_t strSrc, strSubkey(GetSubkey());
if (!strSubkey.length())
strSrc.Format(_T("CTCPropBagOnRegKey::_%s(\"%ls\")"), strFn,
pszPropName);
else
strSrc.Format(_T("CTCPropBagOnRegKey::_%s(\"%s\\%ls\")"), strFn,
strSubkey, pszPropName);
// Output a trace message under _DEBUG builds
TRACE2("%s: %s\n", strSrc, strDesc);
// Log an error, if an IErrorLog interface is specified
if (NULL != pErrorLog)
{
// Allocate BSTR's from the formatted strings
BSTR bstrSrc = strSrc.AllocSysString();
BSTR bstrDesc = strDesc.AllocSysString();
// Create an EXCEPINFO structure and log the error
EXCEPINFO ei = {0, 0, bstrSrc, bstrDesc, NULL, 0, NULL, NULL, hr};
HRESULT hrAdd = pErrorLog->AddError(pszPropName, &ei);
// Free the allocated BSTR's
SysFreeString(bstrDesc);
SysFreeString(bstrSrc);
// Handle an unsuccessful IErrorLog::AddError call
if (FAILED(hrAdd))
{
TRACE1("%s: pErrorLog->AddError() failed!\n", strSrc);
AfxThrowOleException(hrAdd);
}
}
// Indicate failure
return hr;
}