Поделиться через


IDebugProperty3::GetStringChars

Извлекает строку, связанную с этим свойством и сохраняет ее в пользователь-поставленном буфере.

HRESULT GetStringChars(
   ULONG  buflen,
   WCHAR* rgString,
   ULONG* pceltFetched
);
int GetStringChars(
   uint       buflen, 
   out string rgString, 
   out uint   pceltFetched
);

Параметры

  • buflen
    [in] максимальное число символов, которые могут храниться в заданный пользователем буфер.

  • rgString
    [out] возвращает строку.

    Только [C++] rgString указатель на буфер, получающий символов юникода в длину строки. Этот буфер должен иметь хотя бы buflen символы (а не в байтах).

  • pceltFetched
    [out] возвращает число символов в действительности, хранящегося в буфере. (Может иметь NULL в C++.)

Возвращаемое значение

В случае успеха возвращает S_OK; в противном случае возвращает код ошибки.

Заметки

В C++, следует соблюдать осторожность для обеспечения, что размер буфера не менее buflen Символ юникода. Обратите внимание, что в юникоде длиной 2 байта.

Примечание

В C++, возвращаемая строка не включает конечный нуль-символ.Если данным, pceltFetched определяет количество символов в строке.

Пример

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

}

См. также

Ссылки

IDebugProperty3::GetStringCharLength

IDebugProperty3

IDebugProperty2