IOleInPlaceComponentUIManager.UIActivateForMe Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Requests that the SOleComponentUIManager service participate in the activation or deactivation of an in-place VSPackage object.
public:
int UIActivateForMe(System::UInt32 dwCompRole, Guid % rclsidActive, Microsoft::VisualStudio::OLE::Interop::IOleInPlaceActiveObject ^ pIPActObj, Microsoft::VisualStudio::OLE::Interop::IOleCommandTarget ^ pCmdTrgtActive, System::UInt32 cCmdGrpId, cli::array <int> ^ rgnCmdGrpId);
public int UIActivateForMe (uint dwCompRole, ref Guid rclsidActive, Microsoft.VisualStudio.OLE.Interop.IOleInPlaceActiveObject pIPActObj, Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget pCmdTrgtActive, uint cCmdGrpId, int[] rgnCmdGrpId);
abstract member UIActivateForMe : uint32 * Guid * Microsoft.VisualStudio.OLE.Interop.IOleInPlaceActiveObject * Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget * uint32 * int[] -> int
Public Function UIActivateForMe (dwCompRole As UInteger, ByRef rclsidActive As Guid, pIPActObj As IOleInPlaceActiveObject, pCmdTrgtActive As IOleCommandTarget, cCmdGrpId As UInteger, rgnCmdGrpId As Integer()) As Integer
Parameters
- dwCompRole
- UInt32
[in] Role of the in-place VSPackage object that is either activating or deactivating. For valid dwCompRole
values, see OLEROLE.
- rclsidActive
- Guid
[in] Class identifier (CLSID) of the in-place VSPackage object that is either activating or deactivating.
- pIPActObj
- IOleInPlaceActiveObject
[in] Pointer to the IOleInPlaceActiveObject interface of the innermost active object. The pIPActObj
parameter must be null
when the in-place object is deactivating and a valid interface pointer when it is activating.
- pCmdTrgtActive
- IOleCommandTarget
[in] Pointer to the IOleCommandTarget interface to handle the dispatching of active in-place object commands. The pCmdTrgtActive
parameter must be null when the in-place object is deactivating and a valid interface pointer when it is activating.
- cCmdGrpId
- UInt32
[in] Count of custom toolbar identifiers in the rgnCmdGrpId
parameter.
- rgnCmdGrpId
- Int32[]
[in] Array of identifiers for the custom toolbar to be displayed by the SOleComponentUIManager service.
Returns
If the method succeeds, it returns S_OK. If it fails, it returns an error code.
Remarks
COM Signature
From oleipc.idl:
HRESULT IOleInPlaceComponentUIManager::UIActivateForMe(
[in] DWORD dwCompRole,
[in] REFCLSID rclsidActive,
[in] IOleInPlaceActiveObject *pIPActObj,
[in] IOleCommandTarget *pCmdTrgtActive,
[in] ULONG cCmdGrpId,
[in] LONG *rgnCmdGrpId
);
UIActivateForMe
is the primary method that differentiates the use of the SOleComponentUIManager service with traditional OLE in-place activation. When an in-place VSPackage object calls UIActivateForMe
, the SOleComponentUIManager service takes all the necessary steps to integrate the object's menus, toolbars, and commands into the environment. The object does not need to participate in negotiation for border space to enable menu merging as is necessary in OLE in-place activation.
UIActivateForMe is a logical replacement for the SetActiveObject method in the IOleInPlaceFrame interface. The in-place VSPackage object passes its pIPActObj
pointer to the environment in this method instead of through the container's UIActivateForMe method as is done in standard OLE in-place activation.
To implement UIActivateForMe
, coordinate this method with the implementation of UIActivateForMe method in the IOleInPlaceFrame interface. The effect of this call is similar to an OLE object calling:
IOleInPlaceUIWindow::SetActiveObject(pActiveObj);
IOleInPlaceFrame::SetMenu(null);
IOleInPlaceUIWindow::SetBorderSpace(null);
When an in-place VSPackage object takes focus by calling UIActivateForMe
, the SOleComponentUIManager service replaces any custom menus and toolbars displayed on behalf of the previous active object with those of the new active object. If the new object loses focus or a nested object takes focus, these menus and toolbars are removed.