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 对象。
- pIPActObj
类型:Microsoft.VisualStudio.OLE.Interop.IOleInPlaceActiveObject
[in] 为最内层的有效的对象的 IOleInPlaceActiveObject 接口的指针。 pIPActObj 参数必须是 nullnull 引用(在 Visual Basic 中为 Nothing) ,当就地对象停用和有效的接口指针时,活动状态时。
- pCmdTrgtActive
类型:Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget
[in] 为 IOleCommandTarget 接口的指针计划有效的就地对象的顺序进行处理。 pCmdTrgtActive 参数必须为 null,当就地对象停用和有效的接口指针时,活动状态时。
- cCmdGrpId
类型:System.UInt32
[in] 计数。 rgnCmdGrpId 参数的自定义工具栏标识符。
- rgnCmdGrpId
类型:array<System.Int32[]
[in] 某些 SOleComponentUIManager 服务可以将显示的自定义工具栏的标识符。
返回值
类型: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 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。