IDebugProperty3::GetStringChars
Recupera la stringa associata a questa proprietà e la archivia in un buffer fornito dall'utente.
Sintassi
Parametri
buflen
[in] Numero massimo di caratteri che il buffer fornito dall'utente può contenere.
rgString
[out] Restituisce la stringa.
[solo C++], rgString
è un puntatore a un buffer che riceve i caratteri Unicode della stringa. Questo buffer deve contenere almeno buflen
caratteri (non byte).
pceltFetched
[out] Dove viene restituito il numero di caratteri effettivamente archiviati nel buffer. (Può essere NULL
in C++).
Valore restituito
Se ha esito positivo, restituisce S_OK
. In caso contrario, restituisce un codice di errore.
Osservazioni:
In C++, è necessario assicurarsi che il buffer sia lungo almeno buflen
caratteri Unicode. Si noti che un carattere Unicode è lungo 2 byte.
Nota
In C++, la stringa restituita non include un carattere Null di terminazione. Se specificato, pceltFetched
specifica il numero di caratteri nella stringa.
Esempio
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);
}