IDebugProperty3::GetStringChars
이 속성에 연결 문자열을 검색 하 고 사용자가 제공한 버퍼에 저장 합니다.
HRESULT GetStringChars(
ULONG buflen,
WCHAR* rgString,
ULONG* pceltFetched
);
int GetStringChars(
uint buflen,
out string rgString,
out uint pceltFetched
);
매개 변수
buflen
[in] 최대 문자 수는 사용자가 제공한 버퍼를 보유할 수 있습니다.rgString
[out] 문자열을 반환합니다.[C + +만], rgString 를 문자열의 유니코드 문자를 수신 하는 버퍼에 대 한 포인터입니다. 이 버퍼는 buflen 의 크기 (바이트) 문자입니다.
pceltFetched
[out] 버퍼에 실제로 저장 되는 문자 수가 반환 되는 위치입니다. (Can be NULL in C++.)
반환 값
성공 하면 반환 S_OK. 그렇지 않으면 오류 코드를 반환 합니다.
설명
C + +에서는 버퍼 적어도 되도록 주의 해야 buflen 유니코드 문자입니다. 참고 유니코드 문자가 2 바이트 길이입니다.
참고
C + +에서 반환 되는 문자열 null 종결 문자를 포함 하지 않습니다.지정 된 경우 pceltFetched 는 문자열에서 문자 수를 지정 합니다.
예제
[cpp]
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);
}