Condividi tramite


IDebugProperty3::GetStringChars

Recupera la stringa associata a questa proprietà e la archivia in un buffer fornito dall'utente.

Sintassi

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

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

Vedi anche