IOleInPlaceComponentUIManager.UIActivateForMe 方法

请求 SOleComponentUIManager 服务参与一就地 VSPackage 对象的激活或停用。

命名空间:  Microsoft.VisualStudio.Shell.Interop
程序集:  Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)

语法

声明
Function UIActivateForMe ( _
    dwCompRole As UInteger, _
    ByRef rclsidActive As Guid, _
    pIPActObj As IOleInPlaceActiveObject, _
    pCmdTrgtActive As IOleCommandTarget, _
    cCmdGrpId As UInteger, _
    rgnCmdGrpId As Integer() _
) As Integer
int UIActivateForMe(
    uint dwCompRole,
    ref Guid rclsidActive,
    IOleInPlaceActiveObject pIPActObj,
    IOleCommandTarget pCmdTrgtActive,
    uint cCmdGrpId,
    int[] rgnCmdGrpId
)

参数

  • dwCompRole
    类型:System.UInt32
    [in] 是用于激活或停用就地 VSPackage 对象的作用。有关有效的 dwCompRole 值,请参见 OLEROLE
  • rclsidActive
    类型:System.Guid%
    [in] 类标识符 (CLSID 是用于激活或停用的) 就地 VSPackage 对象。
  • cCmdGrpId
    类型:System.UInt32
    [in] 计数。 rgnCmdGrpId 参数的自定义工具栏标识符。

返回值

类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。

备注

COM 签名

从 oleipc.idl:

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

UIActivateForMe 区分使用与传统 OLE 就地激活的 SOleComponentUIManager 服务的主方法。当一个就地 VSPackage 对象调用 UIActivateForMe时, SOleComponentUIManager 服务执行所有必要步骤集成对象的菜单、工具栏和命令环境。对象不需要参与边框空间的协商可以启用合并的菜单与必需的。 OLE 就地激活。

UIActivateForMe 是 SetActiveObject 方法的逻辑替换在 IOleInPlaceFrame 接口。就地 VSPackage 对象通过其 pIPActObj 指针传递给此方法的环境而不是容器的 UIActivateForMe 方法在标准 OLE 就地激活执行。

若要实现 UIActivateForMe,请与 UIActivateForMe 实现方法的此方法在 IOleInPlaceFrame 接口的。此效果调用类似于一 OLE 对象调用:

IOleInPlaceUIWindow::SetActiveObject(pActiveObj);

IOleInPlaceFrame::SetMenu(null);

IOleInPlaceUIWindow::SetBorderSpace(null);

当一个就地 VSPackage 对象是通过调用 UIActivateForMe获得焦点时, SOleComponentUIManager 服务。这些新活动的对象替换委托上一个有效的对象和工具栏显示的所有自定义菜单。如果新对象失去焦点或嵌套的对象获得焦点,删除这些菜单和工具栏。

.NET Framework 安全性

请参见

参考

IOleInPlaceComponentUIManager 接口

Microsoft.VisualStudio.Shell.Interop 命名空间