IDebugProperty3::GetStringChars
Ruft die Zeichenfolge ab, die dieser Eigenschaft zugeordnet sind, und speichert diese in einem vom Benutzer angegebenen Puffer.
HRESULT GetStringChars(
ULONG buflen,
WCHAR* rgString,
ULONG* pceltFetched
);
int GetStringChars(
uint buflen,
out string rgString,
out uint pceltFetched
);
Parameter
buflen
[in] Maximale Anzahl von Zeichen, die der vom Benutzer bereitgestellte Puffer aufnehmen kann.rgString
[out] Gibt die Zeichenfolge zurück.[C++] Es ist rgString ein Zeiger auf einen Puffer, der die Unicode-Zeichen der Zeichenfolge empfängt. Dieser Puffer muss buflen Zeichen (nicht Byte) mindestens der Größe an.
pceltFetched
[out] Wenn die Anzahl der Zeichen, die tatsächlich im Puffer gespeichert werden, zurückgegeben wurde. (Kann NULL in C++.)
Rückgabewert
Bei Erfolg gibt S_OKzurück. Andernfalls wird ein Fehlercode zurückgegeben.
Hinweise
In C++ muss Sorgfalt verwendet werden, um zu versichern, dass der Puffer mindestens buflen Unicode-Zeichen lang ist. Beachten Sie, dass ein Unicode-Zeichen 2 Bytes lang ist.
Hinweis
In C++ enthält die zurückgegebene Zeichenfolge kein NULL.Wenn angegeben, gibt pceltFetched die Anzahl der Zeichen in der Zeichenfolge an.
Beispiel
[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);
}