# IShMouseUtilities Struct Reference
[Shell Utilities]

Inheritance diagram for IShMouseUtilities:

List of all members.

## Public Member Functions
virtual void MCCOMAPI | Hide (void)=0
virtual void MCCOMAPI | Show (void)=0
virtual void MCCOMAPI | ForceCursorVisible (void)=0
virtual void MCCOMAPI | SetCursorPosition (TMCPoint &inPos)=0
virtual void MCCOMAPI | SetCursor (uint32 inCursorID)=0
virtual void MCCOMAPI | CreatePerpetualMouseHelper (IMFPerpetualMouse **outPerpetualMouse)=0

## Detailed Description

Utilities for handling the mouse.

Note:
  Mouse visibility is controlled by the cursor level - basically a count of the number of things that want the cursor to be visible versus the number that want it to be hidden. If the level is below 0, the cursor will be hidden, while if it's 0 or larger, it will be visible. Generally you won't have to worry about that, but it can be useful to know if Hide() and Show() are not behaving as expected.

## Member Function Documentation

virtual void MCCOMAPI IShMouseUtilities::CreatePerpetualMouseHelper | ( | IMFPerpetualMouse ** | outPerpetualMouse | ) | `[pure virtual]`

SetCursorPosition() is very slow on MacOS X, so instead create a PerpetualMouse and use it. This can be used for supporting perpetual mouse movement. But usually, it's better and easier to just derive a class from TBasicMouseAction and override the ConstrainedToView(), IsPerpetualMouseAction(), and ShouldHideCursor() functions.

Parameters:

  | outPerpetualMouse | Returns a pointer to the IMFPerpetualMouse

virtual void MCCOMAPI IShMouseUtilities::ForceCursorVisible | ( | void |  | ) | `[pure virtual]`

Generally not needed. Use Show() instead if possible. This shows the cursor and forces the cursor level to 0.

virtual void MCCOMAPI IShMouseUtilities::Hide | ( | void |  | ) | `[pure virtual]`

When Hide() is called, it hides the cursor if the cursor level is 0. It then always decrements the cursor level, indicating that something wants to hide the cursor.

virtual void MCCOMAPI IShMouseUtilities::SetCursor | ( | uint32 | inCursorID | ) | `[pure virtual]`

Sets the cursor icon to use.

Parameters:

  | inCursorID | ID number of cursor to use. See MCCursorTypes.h for a list of cursors.

virtual void MCCOMAPI IShMouseUtilities::SetCursorPosition | ( | TMCPoint & | inPos | ) | `[pure virtual]`

Sets the cursor position. Very slow on MacOS X, so use sparingly.

See also:
  CreatePerpetualMouseHelper()

Parameters:

  | inPos | Position to set.

virtual void MCCOMAPI IShMouseUtilities::Show | ( | void |  | ) | `[pure virtual]`

When Show() is called, it increments the cursor level, and if this brings the level to 0, shows the cursor.

The documentation for this struct was generated from the following file:

- IShUtilities.h