IDebugProperty3::GetStringChars
检索与此属性关联的字符串,并将其存储在用户提供的缓冲区中。
语法
参数
buflen
[in]用户提供的缓冲区可以容纳的最大字符数。
rgString
[out]返回字符串。
[仅限 C++] rgString
是指向接收字符串 Unicode 字符的缓冲区的指针。 此缓冲区的大小必须至少 buflen
为字符(而不是字节)。
pceltFetched
[out]返回缓冲区中实际存储的字符数。 (可以 NULL
位于 C++中)。
返回值
如果成功,则返回 S_OK
;否则,返回错误代码。
备注
在 C++ 中,必须注意确保缓冲区长度至少 buflen
为 Unicode 字符。 请注意,Unicode 字符长度为 2 字节。
注意
在 C++ 中,返回的字符串不包括终止 null 字符。 如果给定, pceltFetched
将指定字符串中的字符数。
示例
CStringW RetrievePropertyString(IDebugProperty2 *pPropInfo)
{
CStringW returnString = L"";
CComQIPtr<IDebugProperty3> pProp3 = pPropInfo->pProperty;
If (pProp3 != NULL) {
ULONG dwStrLen = 0;
HRESULT hr;
hr = pProp3->GetStringCharLength(&dwStrLen);
if (SUCCEEDED(hr) && dwStrLen > 0) {
ULONG dwRead;
CStrBufW buf(returnString,dwStrLen,CStrBuf::SET_LENGTH);
hr = pProp3->GetStringChars(dwStrLen,
reinterpret_cast<WCHAR*>(static_cast<CStringW::PXSTR>(buf)),
&dwRead);
}
}
return(returnString);
}