Compartilhar via


Método IOleInPlaceComponentUIManager.UIActivateForMe (UInt32, Guid, IOleInPlaceActiveObject, IOleCommandTarget, UInt32, Int32 )

 

Publicado: abril de 2016

Solicita que o SOleComponentUIManager service participar a ativação ou desativação de um objeto de VSPackage no local.

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

Sintaxe

int UIActivateForMe(
    uint dwCompRole,
    [InAttribute] ref Guid rclsidActive,
    IOleInPlaceActiveObject pIPActObj,
    IOleCommandTarget pCmdTrgtActive,
    uint cCmdGrpId,
    int[] rgnCmdGrpId
)
int UIActivateForMe(
    unsigned int dwCompRole,
    [InAttribute] Guid% rclsidActive,
    IOleInPlaceActiveObject^ pIPActObj,
    IOleCommandTarget^ pCmdTrgtActive,
    unsigned int cCmdGrpId,
    array<int>^ rgnCmdGrpId
)
abstract UIActivateForMe : 
        dwCompRole:uint32 *
        rclsidActive:Guid byref *
        pIPActObj:IOleInPlaceActiveObject *
        pCmdTrgtActive:IOleCommandTarget *
        cCmdGrpId:uint32 *
        rgnCmdGrpId:int[] -> int
Function UIActivateForMe (
    dwCompRole As UInteger,
    <InAttribute> ByRef rclsidActive As Guid,
    pIPActObj As IOleInPlaceActiveObject,
    pCmdTrgtActive As IOleCommandTarget,
    cCmdGrpId As UInteger,
    rgnCmdGrpId As Integer()
) As Integer

Parâmetros

  • dwCompRole
    [in] Função do objeto VSPackage no local que está ativando ou desativando.Para válido dwCompRole valores, consulte OLEROLE.
  • rclsidActive
    [in] Classe (CLSID) do identificador do objeto VSPackage no local que está ativando ou desativando.
  • pIPActObj
    [in] Ponteiro para o IOleInPlaceActiveObject interface do objeto ativo mais interno.O pIPActObj parâmetro deve ser null quando o objeto no local está desativando e um ponteiro de interface válida quando ele está ativando.
  • pCmdTrgtActive
    [in] Ponteiro para o IOleCommandTarget interface para manipular o despacho de comandos do objeto ativo do local.O pCmdTrgtActive parâmetro deve ser null quando está desativando o objeto no local e um ponteiro de interface válida quando ele está ativando.
  • cCmdGrpId
    [in] Contagem de identificadores de barra de ferramentas personalizada a rgnCmdGrpId parâmetro.
  • rgnCmdGrpId
    [in] Matriz de identificadores para a barra de ferramentas personalizada a ser exibido, o SOleComponentUIManager service.

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 oleipc.idl:

HRESULT IOleInPlaceComponentUIManager::UIActivateForMe(
   [in] DWORD dwCompRole,
   [in] REFCLSID rclsidActive,
   [in] IOleInPlaceActiveObject *pIPActObj,
   [in] IOleCommandTarget *pCmdTrgtActive,
   [in] ULONG cCmdGrpId,
   [in] LONG *rgnCmdGrpId
);

UIActivateForMeé o principal método que diferencia o uso da SOleComponentUIManager serviço com a ativação in-loco OLE tradicional.Quando um objeto de VSPackage in loco chama UIActivateForMe, o SOleComponentUIManager serviço coloca todas as etapas necessárias para integrar os menus, barras de ferramentas e comandos do objeto para o ambiente.O objeto não precisa participar de negociação para o espaço de borda habilitar a mesclagem de menus, conforme necessário na ativação in-loco OLE.

UIActivateForMeé uma substituição lógica para o SetActiveObject método na IOleInPlaceFrame interface.O objeto de VSPackage in loco passa seu pIPActObj ponteiro para o ambiente nesse método, em vez de por meio do contêiner UIActivateForMe método como é feito em ativação in-loco OLE padrão.

Para implementar UIActivateForMe, coordenar esse método com a implementação de UIActivateForMe método na IOleInPlaceFrame interface.O efeito dessa chamada é semelhante a uma chamada de objeto OLE:

IOleInPlaceUIWindow::SetActiveObject(pActiveObj);

IOleInPlaceFrame::SetMenu(null);

IOleInPlaceUIWindow::SetBorderSpace(null);

Quando um objeto de VSPackage in loco toma o foco chamando UIActivateForMe, o SOleComponentUIManager service substitui quaisquer menus personalizados e barras de ferramentas exibidas em nome do objeto ativo anterior com aqueles do novo objeto ativo.Se o novo objeto perde o foco ou um objeto aninhado toma o foco, esses menus e barras de ferramentas são removidas.

Consulte também

Interface IOleInPlaceComponentUIManager
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo