Partilhar via


Método ISelectionContainer.GetObjects (UInt32, UInt32, Object )

 

Publicado: abril de 2016

Retorna os objetos selecionados no momento ou os objetos que são selecionáveis.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)

Sintaxe

int GetObjects(
    uint dwFlags,
    uint cObjects,
    object[] apUnkObjects
)
int GetObjects(
    unsigned int dwFlags,
    unsigned int cObjects,
    array<Object^>^ apUnkObjects
)
abstract GetObjects : 
        dwFlags:uint32 *
        cObjects:uint32 *
        apUnkObjects:Object[] -> int
Function GetObjects (
    dwFlags As UInteger,
    cObjects As UInteger,
    apUnkObjects As Object()
) As Integer

Parâmetros

  • dwFlags
    [in] Sinalizador que especifica o tipo de objetos para retornar.Se definido como GETOBJS_ALL, ISelectionContainer::GetObjects retorna todos os objetos podem ser selecionados.Se definido como GETOBJS_SELECTED, somente os objetos selecionados no momento são retornados.
  • cObjects
    [in] Especifica o número solicitado de objetos a serem retornados.
  • apUnkObjects
    [in] Ponteiro para uma matriz de ponteiros para ser selecionado ou selecionável objetos com suporte a IDispatch interface.

Valor de retorno

Type: System.Int32

Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

COM assinatura

De designer.idl:

HRESULT ISelectionContainer::GetObjects(
   [in] DWORD dwFlags,
   [in] ULONG cObjects,
   [out, size_is(cObjects)] IUnknown ** apUnkObjects
);

Para usar GetObjects, o chamador precisa primeiro chamar CountObjects com o tipo apropriado (selecionado ou selecionável) para determinar o número de objetos, em seguida, alocar uma matriz com esse tamanho e passá-lo ao GetObjects na apUnkObjects parâmetro.

Porque GetObjects é usado para preencher a janela de propriedades, os objetos retornados deve fornecer o acesso às propriedades a serem exibidos.Em alguns casos, GetObjects retorna um ponteiro para um objeto estendido, em vez do próprio objeto.Um objeto estendido tem propriedades que não pertencem diretamente ao objeto selecionado, mas podem afetar sua aparência ou comportamento.Por exemplo, se o objeto selecionado é um botão em um formulário, o criador do formulário como a implementação do objeto VSPackage GetObjects pode incluir propriedades como, por exemplo, a posição x e y na janela Propriedades.Nesse caso, GetObjects retornaria um ponteiro para o formulário em vez do botão selecionado.

Como o suportam de objetos retornados do IDispatch interface, o ambiente pode obter informações diretamente a partir deles.Por exemplo, um identificador de despacho predefinidos (DISPID) pode ser passado para IDispatch::Invoke para obter o nome de um objeto.Os DISPIDs predeclared são negativos para garantir que eles não entrem em conflito com os identificadores definidos pelo usuário.

A tabela a seguir descreve algumas das informações e como e de onde ele é obtido.

Informações

Obtido

Nome do objeto

IDispatch::Invokeusando o identificador de despacho DISPID_NAME

Índice do objeto

IDispatch::Invokeusando o identificador de despacho DISPID_OBJECT

Tipo de objeto

IProvideClassInfo::QueryInterface

Consulte também

Interface ISelectionContainer
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo