Udostępnij za pośrednictwem


IDebugProperty3::GetStringChars

Pobiera ciąg skojarzony z tą właściwością i przechowuje go w buforze dostarczonym przez użytkownika.

Składnia

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

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

Zobacz też