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