IDebugProperty3 : : GetStringChars
Extrait la chaîne associée à cette propriété et l'enregistre dans une mémoire tampon fournie par l'utilisateur.
HRESULT GetStringChars(
ULONG buflen,
WCHAR* rgString,
ULONG* pceltFetched
);
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 stocker.rgString
[out] Retourne la chaîne.[C++] uniquement, rgString est un pointeur vers une mémoire tampon qui accepte les caractères de la chaîne. Cette mémoire tampon doit avoir au moins les caractères d' buflen (et non) en taille.
pceltFetched
[out] Emplacement où le nombre de caractères en réalité 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++, le veillez à assurer que la mémoire tampon est au moins les caractères Unicode d' buflen longtemps. Notez qu'un caractère Unicode est de 2 octets.
Notes
En C++, la chaîne retournée n'inclut pas de caractère NULL de fin.Si donné, pceltFetched spécifie le nombre de caractères dans la chaîne.
Exemple
[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);
}