Método IViewObjectEx::GetViewStatus (ocidl.h)

Recupera informações sobre a opacidade do objeto e quais aspectos de desenho têm suporte.

Sintaxe

HRESULT GetViewStatus(
  [out] DWORD *pdwStatus
);

Parâmetros

[out] pdwStatus

Um ponteiro para a exibição status. Essas informações são retornadas como uma combinação dos valores de enumeração VIEWSTATUS .

Retornar valor

Esse método retorna S_OK com êxito.

Comentários

Para otimizar o processo de desenho, o contêiner precisa ser capaz de determinar se um objeto é opaco e se ele tem uma tela de fundo sólida. Não é necessário redesenhar objetos totalmente cobertos por um objeto completamente opaco. Outras operações, como rolagem, por exemplo, também podem ser altamente otimizadas se um objeto for opaco e tiver uma tela de fundo sólida.

O método IViewObjectEx::GetViewStatus retorna se o objeto é totalmente opaco ou não (VIEWSTATUS_OPAQUE bit) e se sua tela de fundo é sólida (VIEWSTATUS_SOLIDBKGND bit). Essas informações podem ser alteradas no tempo. Um objeto pode ser opaco em um determinado momento e se tornar totalmente ou parcialmente transparente posteriormente, por exemplo, devido a uma alteração da propriedade BackStyle. Um objeto deve notificar seus sites quando for alterado usando IAdviseSinkEx::OnViewStatusChange para que os sites possam armazenar essas informações em cache para acesso de alta velocidade.

Os objetos que não dão suporte a IViewObjectEx são considerados sempre transparentes.

O método IViewObjectEx::GetViewStatus também retorna uma combinação de bits indicando quais aspectos têm suporte.

Se não houver suporte para um determinado aspecto de desenho, todos os métodos IViewObjectEx usando um aspecto de desenho como um parâmetro de entrada deverão falhar e retornar E_INVALIDARG. O método IViewObjectEx::GetViewStatus permite que o contêiner obtenha informações sobre todos os aspectos de desenho em uma chamada rápida. Normalmente, o conjunto de aspectos de desenho com suporte não deve mudar com o tempo. No entanto, se esse não for o caso, um objeto deverá notificar seu contêiner usando IAdviseSinkEx::OnViewStatusChange.

Quais aspectos de desenho têm suporte é independente de o objeto ser opaco, parcialmente transparente ou totalmente transparente. Em particular, um objeto transparente que não dá suporte a DVASPECT_TRANSPARENT deve ser desenhado corretamente durante o back-to-front pass usando DVASPECT_CONTENT. No entanto, isso provavelmente resultará em mais cintilação.

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 ocidl.h

Confira também

IAdviseSinkEx::OnViewStatusChange

Iviewobjectex

VIEWSTATUS