IDebugProperty3::GetStringCharsIDebugProperty3::GetStringChars

Recupera la cadena asociada a esta propiedad y lo almacena en un búfer proporcionado por el usuario.Retrieves the string associated with this property and stores it in a user-supplied buffer.

SintaxisSyntax

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

ParámetrosParameters

buflen
[in] Número máximo de caracteres que puede contener el búfer proporcionado por el usuario.[in] Maximum number of characters the user-supplied buffer can hold.

rgString
[out] Devuelve la cadena.[out] Returns the string.

[Solo en C++], rgString es un puntero a un búfer que recibe los caracteres Unicode de la cadena.[C++ only], rgString is a pointer to a buffer that receives the Unicode characters of the string. Este búfer debe ser al menos buflen caracteres (no bytes) de tamaño.This buffer must be at least buflen characters (not bytes) in size.

pceltFetched
[out] Donde se devuelve el número de caracteres que se almacenan en realidad en el búfer.[out] Where the number of characters actually stored in the buffer is returned. (Puede ser NULL en C++.)(Can be NULL in C++.)

Valor devueltoReturn Value

Si se realiza correctamente, devuelve S_OK; en caso contrario, devuelve un código de error.If successful, returns S_OK; otherwise returns an error code.

ComentariosRemarks

En C++, debe tener cuidado para asegurarse de que el búfer sea al menos buflen caracteres Unicode de longitud.In C++, care must be taken to insure that the buffer is at least buflen Unicode characters long. Tenga en cuenta que un carácter Unicode es una longitud de 2 bytes.Note that a Unicode character is 2 bytes long.

Nota

En C++, la cadena devuelta no incluye un carácter nulo de terminación.In C++, the returned string does not include a terminating null character. Si no especifica, pceltFetched especificará el número de caracteres en la cadena.If given, pceltFetched will specify the number of characters in the string.

EjemploExample

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

Vea tambiénSee Also

GetStringCharLength GetStringCharLength
IDebugProperty3 IDebugProperty3
IDebugProperty2IDebugProperty2