IDebugProperty3::GetStringChars

Récupère la chaîne associée à cette propriété et la stocke dans une mémoire tampon fournie par l’utilisateur.

Syntaxe

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

Paramètres

buflen
[in] Nombre maximal de caractères que la mémoire tampon fournie par l’utilisateur peut contenir.

rgString
[out] Retourne la chaîne.

[C++ uniquement], rgString est un pointeur vers une mémoire tampon qui reçoit les caractères Unicode de la chaîne. Cette mémoire tampon doit comporter au moins buflen des caractères (et non des octets) de taille.

pceltFetched
[out] Où le nombre de caractères réellement stockés dans la mémoire tampon est retourné. (Peut être NULL en C++.)

Valeur de retour

En cas de réussite, retourne S_OK ; sinon, retourne un code d’erreur.

Notes

En C++, vous devez veiller à ce que la mémoire tampon soit au moins buflen de caractères Unicode longs. Notez qu’un caractère Unicode est long de 2 octets.

Remarque

En C++, la chaîne retournée n’inclut pas de caractère null de fin. Si elle est donnée, pceltFetched spécifie le nombre de caractères dans la chaîne.

Exemple

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

Voir aussi