IDebugProperty3::GetStringChars
이 속성과 연결된 문자열을 검색하고 사용자 제공 버퍼에 저장합니다.
구문
매개 변수
buflen
[in] 사용자가 제공한 버퍼가 보유할 수 있는 최대 문자 수입니다.
rgString
[out] 문자열을 반환합니다.
[C++ only], rgString
은 문자열의 유니코드 문자를 받는 버퍼에 대한 포인터입니다. 이 버퍼의 크기는 buflen
자(바이트 아님) 이상이어야 합니다.
pceltFetched
[out] 버퍼에 실제로 저장된 문자 수가 반환되는 위치입니다. (C++에서는 NULL
일 수 있습니다.)
Return Value
성공하면 S_OK
를 반환하고, 그러지 않으면 오류 코드를 반환합니다.
설명
C++에서는 버퍼가 적어도 buflen
유니코드 문자 길이가 되도록 해야 합니다. 유니코드 문자의 길이는 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);
}