IDebugProperty3::GetStringChars

Recupera a cadeia de caracteres associada a essa propriedade e a armazena em um buffer fornecido pelo usuário.

Sintaxe

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

Parâmetros

buflen
[em] Número máximo de caracteres que o buffer fornecido pelo usuário pode conter.

rgString
[saiu] Retorna a cadeia de caracteres.

[Somente C++], rgString é um ponteiro para um buffer que recebe os caracteres Unicode da cadeia de caracteres. Esse buffer deve ter pelo menos buflen caracteres (não bytes) de tamanho.

pceltFetched
[saiu] Onde o número de caracteres realmente armazenados no buffer é retornado. (Pode ser NULL em C++.)

Valor de retorno

Se tiver êxito, retornará S_OK. Caso contrário, retornará um código de erro.

Comentários

Em C++, deve-se tomar cuidado para garantir que o buffer tenha pelo menos buflen caracteres Unicode. Observe que um caractere Unicode tem 2 bytes.

Observação

Em C++, a cadeia de caracteres retornada não inclui um caractere nulo de terminação. Se fornecido, pceltFetched especificará o número de caracteres na cadeia de caracteres.

Exemplo

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

Confira também