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

Retorna a paleta lógica que o objeto usará para desenhar em seu método IViewObject::D raw com os parâmetros correspondentes.

Sintaxe

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 como o objeto deve ser representado. As representações incluem conteúdo, um ícone, uma miniatura ou um documento impresso. Os valores válidos são obtidos da enumeração DVASPECT. Consulte a enumeração DVASPECT para obter mais informações.

[in] lindex

Parte do objeto que é de interesse para a operação de desenho. Sua interpretação varia de acordo com dwDrawAspect. Consulte a enumeração DVASPECT para obter mais informações.

[in] pvAspect

Ponteiro para informações adicionais sobre a exibição do objeto especificado em dwDrawAspect. Como nenhum dos aspectos atuais dá suporte a informações adicionais, pvAspect sempre deve ser NULL.

[in] ptd

Ponteiro para a estrutura DVTARGETDEVICE que descreve o dispositivo para o qual o objeto deve ser renderizado. Se FOR NULL, a exibição deverá ser renderizada para o dispositivo de destino padrão (normalmente a exibição). Um valor diferente de NULL é interpretado em conjunto com hicTargetDev e hdcDraw. Por exemplo, se hdcDraw especificar uma impressora como o contexto do dispositivo, ptd apontará para uma estrutura que descreve esse dispositivo de impressora. Os dados poderão realmente ser impressos se hicTargetDev for um valor válido ou poderão ser exibidos no modo de visualização de impressão se hicTargetDev for NULL.

[in] hicTargetDev

Contexto de informações para o dispositivo de destino indicado pelo parâmetro ptd do qual o objeto pode extrair métricas do dispositivo e testar os recursos do dispositivo. Se ptd for NULL, o objeto deverá ignorar o parâmetro hicTargetDev .

[out] ppColorSet

Endereço da variável de ponteiro LOGPALETTE que recebe um ponteiro para a estrutura LOGPALETTE. A estrutura LOGPALETTE contém o conjunto de cores que seriam usadas se IViewObject::D raw fossem chamados com os mesmos parâmetros para dwAspect, lindex, pvAspect, ptd e hicTargetDev. Se ppColorSet for NULL, o objeto não usará uma paleta.

Retornar valor

Esse método retorna S_OK com êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
S_FALSE
O conjunto de cores está vazio ou o objeto não fornecerá as informações.
OLE_E_BLANK
Nenhum dado de apresentação para o objeto .
DV_E_LINDEX
Valor inválido para lindex; Atualmente, há suporte para apenas -1.
DV_E_DVASPECT
Valor inválido para dwAspect.
E_INVALIDARG
Um ou mais dos valores de parâmetro fornecidos são inválidos.
E_OUTOFMEMORY
Memória insuficiente disponível para esta operação.

Comentários

O método IViewObject::GetColorSet consulta recursivamente quaisquer objetos aninhados e retorna um conjunto de cores que representa a união de todas as cores solicitadas. O conjunto de cores eventualmente percola para o contêiner de nível superior que possui o quadro de janela. Esse contêiner pode chamar IViewObject::GetColorSet em cada um de seus objetos inseridos para obter todas as cores necessárias para desenhar os objetos inseridos. O contêiner pode usar os conjuntos de cores obtidos em conjunto com outras cores de que precisa para si mesmo para definir a paleta de cores geral.

A implementação fornecida por OLE de IViewObject::GetColorSet examina os dados que ele tem disponíveis para desenhar a imagem. Se CF_DIB for o formato de desenho, a paleta encontrada no bitmap será usada. Para um bitmap regular, nenhuma informação de cor é retornada. Se o formato de desenho for um metarquivo, o manipulador de objetos enumerará o metarquivo procurando um registro de metafile CreatePalette. Se um for encontrado, o manipulador o usará como o conjunto de cores.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleidl.h

Confira também

DVASPECT

Iviewobject