IDebugProperty3::GetStringChars
Pobiera ciąg skojarzony z tą właściwością i przechowuje go w buforze dostarczonym przez użytkownika.
Składnia
Parametry
buflen
[in] Maksymalna liczba znaków, które może przechowywać bufor dostarczony przez użytkownika.
rgString
[out] Zwraca ciąg.
[Tylko C++] rgString
jest wskaźnikiem do buforu, który odbiera znaki Unicode ciągu. Ten bufor musi mieć rozmiar co najmniej znaków buflen
(nie bajtów).
pceltFetched
[out] Gdzie zwracana jest liczba znaków przechowywanych w buforze. (Może być NULL
w języku C++).
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość S_OK
; w przeciwnym razie zwraca kod błędu.
Uwagi
W języku C++należy zadbać o zapewnienie, że bufor ma co najmniej buflen
długość znaków Unicode. Należy pamiętać, że znak Unicode ma długość 2 bajtów.
Uwaga
W języku C++zwracany ciąg nie zawiera znaku zerowego zakończenia. Jeśli zostanie podana, pceltFetched
określi liczbę znaków w ciągu.
Przykład
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);
}