IDebugProperty3:: GetStringChars
Recuperare la stringa associata a questa proprietà e la sono memorizzate in un buffer fornito dall'utente.
HRESULT GetStringChars(
ULONG buflen,
WCHAR* rgString,
ULONG* pceltFetched
);
int GetStringChars(
uint buflen,
out string rgString,
out uint pceltFetched
);
Parametri
buflen
[in] Numero massimo di caratteri dal buffer fornito dall'utente possibile utilizzare.rgString
[out] restituisce la stringa.[C++ solo], rgString è un puntatore a un buffer che riceve i caratteri unicode della stringa. Questo buffer deve essere almeno caratteri di buflen (non byte) nella dimensione.
pceltFetched
[out] Dove il numero di caratteri effettivamente archiviato nel buffer viene restituito. (Può essere NULL in C++.)
Valore restituito
Se l'operazione riesce, restituisce S_OK; in caso contrario restituisce un codice di errore.
Note
In C++, è necessario prestare attenzione per garantire che il buffer sia composta almeno caratteri unicode di buflen . si noti che un carattere unicode è di lunghezza di 2 byte.
Nota
In C++, la stringa restituita non include un carattere di terminazione null.Se specificato, pceltFetched specificherà il numero di caratteri della stringa.
Esempio
[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);
}