Compartir a través de


IDebugProperty3::GetStringChars

Recupera la cadena asociada a esta propiedad y la almacena en un búfer proporcionado por el usuario.

Sintaxis

int GetStringChars(
    uint       buflen,
    out string rgString,
    out uint   pceltFetched
);

Parámetros

buflen
[in] Número máximo de caracteres que puede contener el búfer proporcionado por el usuario.

rgString
[out] Devuelve la cadena.

[Solo C++], rgString es un puntero a un búfer que recibe los caracteres Unicode de la cadena. Este búfer debe tener al menos buflen caracteres (no bytes) de tamaño.

pceltFetched
[out] Donde se devuelve el número de caracteres almacenados en el búfer. (Puede estar NULL en C++).

Valor devuelto

Si la operación se realiza correctamente, devuelve S_OK; de lo contrario, devuelve un código de error.

Comentarios

En C++, se debe tener cuidado para asegurarse de que el búfer tenga al menos buflen caracteres Unicode largos. Tenga en cuenta que un carácter Unicode tiene 2 bytes de longitud.

Nota:

En C++, la cadena devuelta no incluye un carácter NULO de terminación. Si se especifica, pceltFetched especificará el número de caracteres de la cadena.

Ejemplo

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

Consulte también