IDebugProperty3::GetStringChars
Načte řetězec přidružený k této vlastnosti a uloží ho do vyrovnávací paměti zadané uživatelem.
Syntaxe
Parametry
buflen
[v] Maximální početznakůch
rgString
[ven] Vrátí řetězec.
[Pouze C++] rgString
je ukazatel na vyrovnávací paměť, která přijímá znaky Unicode řetězce. Tato vyrovnávací paměť musí mít velikost alespoň buflen
znaků (nikoli bajtů).
pceltFetched
[ven] Kde se vrátí počet znaků skutečně uložených v vyrovnávací paměti. (Může být NULL
v jazyce C++.)
Vrácená hodnota
V případě úspěchu vrátí hodnotu S_OK
; v opačném případě vrátí kód chyby.
Poznámky
V jazyce C++ je potřeba dbát na to, aby vyrovnávací paměť byla alespoň buflen
dlouhá znaky Unicode. Všimněte si, že znak Unicode je dlouhý 2 bajty.
Poznámka:
Vrácený řetězec v jazyce C++ neobsahuje ukončující znak null. V případě zadání pceltFetched
zadá počet znaků v řetězci.
Příklad
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);
}