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