IDebugProperty3::GetStringChars
Recupera la cadena asociada a esta propiedad y la almacena en un búfer proporcionado por el usuario.
Sintaxis
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);
}