다음을 통해 공유


IDebugProperty3::GetStringChars

이 속성과 연결된 문자열을 검색하고 사용자 제공 버퍼에 저장합니다.

구문

int GetStringChars(
    uint       buflen,
    out string rgString,
    out uint   pceltFetched
);

매개 변수

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);
}

참고 항목