IDebugProperty3::GetStringChars
Recupera a cadeia de caracteres associada a essa propriedade e a armazena em um buffer fornecido pelo usuário.
Sintaxe
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);
}