Método IViewObject::GetColorSet (oleidl.h)

Devuelve la paleta lógica que el objeto usará para dibujar en su método IViewObject::D raw con los parámetros correspondientes.

Sintaxis

HRESULT GetColorSet(
  [in]  DWORD          dwDrawAspect,
  [in]  LONG           lindex,
  [in]  void           *pvAspect,
  [in]  DVTARGETDEVICE *ptd,
  [in]  HDC            hicTargetDev,
  [out] LOGPALETTE     **ppColorSet
);

Parámetros

[in] dwDrawAspect

Especifica cómo se va a representar el objeto. Las representaciones incluyen contenido, un icono, una miniatura o un documento impreso. Los valores válidos se toman de la enumeración DVASPECT. Consulte la enumeración DVASPECT para obtener más información.

[in] lindex

Parte del objeto que es de interés para la operación de dibujo. Su interpretación varía con dwDrawAspect. Consulte la enumeración DVASPECT para obtener más información.

[in] pvAspect

Puntero a información adicional sobre la vista del objeto especificado en dwDrawAspect. Puesto que ninguno de los aspectos actuales admite información adicional, pvAspect siempre debe ser NULL.

[in] ptd

Puntero a la estructura DVTARGETDEVICE que describe el dispositivo para el que se va a representar el objeto. Si es NULL, la vista debe representarse para el dispositivo de destino predeterminado (normalmente la pantalla). Un valor distinto de NULL se interpreta junto con hicTargetDev y hdcDraw. Por ejemplo, si hdcDraw especifica una impresora como contexto del dispositivo, ptd apunta a una estructura que describe ese dispositivo de impresora. Los datos se pueden imprimir realmente si hicTargetDev es un valor válido o se puede mostrar en el modo de vista previa de impresión si hicTargetDev es NULL.

[in] hicTargetDev

Contexto de información para el dispositivo de destino indicado por el parámetro ptd desde el que el objeto puede extraer las métricas del dispositivo y probar las funcionalidades del dispositivo. Si ptd es NULL, el objeto debe omitir el parámetro hicTargetDev .

[out] ppColorSet

Dirección de la variable de puntero LOGPALETTE que recibe un puntero a la estructura LOGPALETTE. La estructura LOGPALETTE contiene el conjunto de colores que se usarían si se llamara a IViewObject::D raw con los mismos parámetros para dwAspect, lindex, pvAspect, ptd y hicTargetDev. Si ppColorSet es NULL, el objeto no usa una paleta.

Valor devuelto

Este método devuelve S_OK cuando funciona correctamente. Otros posibles valores devueltos son los siguientes.

Código devuelto Descripción
S_FALSE
El conjunto de colores está vacío o el objeto no proporcionará la información.
OLE_E_BLANK
No hay datos de presentación para el objeto .
DV_E_LINDEX
Valor no válido para lindex; actualmente solo se admite -1.
DV_E_DVASPECT
Valor no válido para dwAspect.
E_INVALIDARG
Uno o varios de los valores de parámetro proporcionados no son válidos.
E_OUTOFMEMORY
Memoria insuficiente disponible para esta operación.

Comentarios

El método IViewObject::GetColorSet consulta recursivamente los objetos anidados y devuelve un conjunto de colores que representa la unión de todos los colores solicitados. El conjunto de colores finalmente se percola en el contenedor de nivel superior que posee el marco de la ventana. Este contenedor puede llamar a IViewObject::GetColorSet en cada uno de sus objetos incrustados para obtener todos los colores necesarios para dibujar los objetos incrustados. El contenedor puede usar los conjuntos de colores obtenidos junto con otros colores que necesita para establecer la paleta de colores general.

La implementación proporcionada por OLE de IViewObject::GetColorSet examina los datos que tiene a mano para dibujar la imagen. Si CF_DIB es el formato de dibujo, se usa la paleta que se encuentra en el mapa de bits. Para un mapa de bits normal, no se devuelve información de color. Si el formato de dibujo es un metarchivo, el controlador de objetos enumera el metarchivo que busca un registro de metarchivo CreatePalette. Si se encuentra uno, el controlador lo usa como conjunto de colores.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleidl.h

Consulte también

DVASPECT

IViewObject