# IMFExPart Struct Reference
[MCFrame]

Inheritance diagram for IMFExPart:

List of all members.

## Public Member Functions
virtual void MCCOMAPI | ValidateCaches ()=0
virtual void MCCOMAPI | SelfActivate (boolean beActive)=0
virtual void MCCOMAPI | SetShown (boolean inShown)=0
virtual void MCCOMAPI | BaseWindowBecameVisible (boolean inShown)=0
virtual boolean MCCOMAPI | SelfMouseMoved (const TMCPoint &inWhere, const TMCModifiers &inModifiers)=0
virtual void MCCOMAPI | SelfMouseEntering (const TMCPoint &inWhere, const TMCModifiers &inModifiers)=0
virtual void MCCOMAPI | SelfMouseStillInside (const TMCPoint &inWhere, const TMCModifiers &inModifiers)=0
virtual void MCCOMAPI | SelfMouseLeaving (const TMCModifiers &inModifiers)=0
virtual void MCCOMAPI | SelfTrackDragAndDropEntering (const TMCPoint &inWhere, const TMFDragFlavors &inOfferedTypeList)=0
virtual void MCCOMAPI | SelfTrackDragAndDropStillInside (const TMCPoint &inWhere, const TMFDragFlavors &inOfferedTypeList)=0
virtual void MCCOMAPI | SelfTrackDragAndDropLeaving (const TMFDragFlavors &inOfferedTypeList)=0
virtual TMFEventResult MCCOMAPI | SelfMouseDown (const TMCPoint &inWhere, const TMCPlatformEvent &inEvent)=0
virtual boolean MCCOMAPI | SelfContextMouseDown (const TMCPoint &inWhere, const TMCPlatformEvent &inEvent)=0
virtual boolean MCCOMAPI | SelfMiddleMouseDown (const TMCPoint &inWhere, const TMCPlatformEvent &inEvent)=0
virtual void MCCOMAPI | SelfDraw (IMCGraphicContext *inContext, const TMCRect &inUpdateBBox)=0
virtual void MCCOMAPI | SelfPrepareToDestroy ()=0
virtual void MCCOMAPI | FinishRead ()=0
virtual boolean MCCOMAPI | ParentChangedBounds (const TMCRect &oldBounds, const TMCRect &newBounds, boolean inval)=0
virtual void MCCOMAPI | GetDropArea (const TMCPoint &inWhere, IMFDropCandidate &inCandidate, IDType &outAcceptedFlavor, IMFDropArea **outDropArea, boolean &outDrawDropCandidate)=0
virtual boolean MCCOMAPI | GetValue (void *outValue, MFPartValueType inValueType) const =0
virtual boolean MCCOMAPI | SetValueLowLevel (const void *inValue, MFPartValueType inValueType)=0
virtual boolean MCCOMAPI | ChangedBounds (const TMCRect &oldBounds, const TMCRect &newBounds, boolean inval)=0
virtual TComponentClass *MCCOMAPI | GetCursorID (const TMCPoint &inWhere, MFCursorID &outCursorID) const =0
virtual boolean MCCOMAPI | SelfMouseWheel (const TMCPoint &inWhere, const TMCModifiers &inModifiers, int16 inWheelDelta)=0
virtual boolean MCCOMAPI | ReadAttribute (int32 inKeyword, TMCiostream &inStream)=0
virtual void MCCOMAPI | FinishCreateFromResource ()=0
virtual TMCPlatformWindow *MCCOMAPI | GetPlatformWindow ()=0
virtual void MCCOMAPI | FillContextualMenu (IMFMenu *inMenu)=0
virtual boolean MCCOMAPI | OverridesContextualMenuID ()=0
virtual ResourceID MCCOMAPI | GetContextualMenuID ()=0

## Detailed Description

This is the interface for an external part. To implement your own part you should derive your object from TBasicPart which provides a basic implementation of the methods of IMFExPart.

Note that you only need to implement a few methods to get a valid part (SelfDraw is sometimes enough).

The family ID for a part extension is 'part'. For more information on custom parts, see the Overview of the SDK.

## Member Function Documentation

virtual void MCCOMAPI IMFExPart::BaseWindowBecameVisible | ( | boolean | inShown | ) | `[pure virtual]`

When the window that contains the part just became visible/invisible.

Implemented in TBasic3DEditorHostPanePart, and TBasicPart.

virtual boolean MCCOMAPI IMFExPart::ChangedBounds | ( | const TMCRect & | oldBounds,
|  | const TMCRect & | newBounds,
|  | boolean | inval |
| ) |  |  | `[pure virtual]`

Notifies the EXPart that its bounds have changed. It is notification only. the internal has already adjusted

Parameters:

  | oldBounds | Old bounds of the part
  | newBounds | New bounds of the part
  | inval | True if the part should be invalidated.

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::FillContextualMenu | ( | IMFMenu * | inMenu | ) | `[pure virtual]`

When the part's contextual menuid is kEmptyMenuID this function will be called so that you can dynamically fill it. SelfMenuAction will give you the chosen menu action

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::FinishCreateFromResource | ( |  | ) | `[pure virtual]`

Override if you need to perform some initialisations that you couldn't do in FinishRead (eg because you need the part's parent).

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::FinishRead | ( |  | ) | `[pure virtual]`

Called just after reading the part from the resource.

Implemented in TBasicPreviewPart, and TBasicPart.

virtual ResourceID MCCOMAPI IMFExPart::GetContextualMenuID | ( |  | ) | `[pure virtual]`

Implemented in TBasicPart.

virtual TComponentClass* MCCOMAPI IMFExPart::GetCursorID | ( | const TMCPoint & | inWhere,
|  | MFCursorID & | outCursorID |
| ) |  |  | const`[pure virtual]`

Returns the Identifier of the cursor that should be used when the mouse pointer is over the part.

Parameters:

  | inWhere | The position of the mouse cursor.
  | outCursorID | the Identifier of the cursor

Returns:
  a pointer to the component class the app needs to use in order to load the cursor's resource (very rarely needed). Returning null will use this (IMFExPart) resources.

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::GetDropArea | ( | const TMCPoint & | inWhere,
|  | IMFDropCandidate & | inCandidate,
|  | IDType & | outAcceptedFlavor,
|  | IMFDropArea ** | outDropArea,
|  | boolean & | outDrawDropCandidate |
| ) |  |  | `[pure virtual]`

Returns a pointer to a drop area for this part. Called when the users drops an object on the part.

Parameters:

  | inWhere | The position of the mouse
  | inCandidate | The object that is dropped
  | outAcceptedFlavor | Returns the type that is accepted if any.
  | outDropArea | Returns a drop area if there is one, NULL otherwise.
  | outDrawDropCandidate | Draw the drop candidate or not.

Implemented in TBasicPart.

virtual TMCPlatformWindow* MCCOMAPI IMFExPart::GetPlatformWindow | ( |  | ) | `[pure virtual]`

Returns the plaform window attached to the part if any. Usually you do not need to implement this method. Return NULL if no platform windows is attached to this part in which the platform window of the parent window should be used

Implemented in TBasicPart.

virtual boolean MCCOMAPI IMFExPart::GetValue | ( | void * | outValue,
|  | MFPartValueType | inValueType |
| ) |  |  | const`[pure virtual]`

Returns the value of the part.

Returns:
  true if outValue is valid (i.e., the external part handled the GetValue) and false otherwise

Parameters:

  | outValue | A pointer to a buffer when the value should be stored.
  | inValueType | The type of value requested.

Implemented in TBasicPart.

virtual boolean MCCOMAPI IMFExPart::OverridesContextualMenuID | ( |  | ) | `[pure virtual]`

Returns the part's contextual menu id. The id is meaningful only if OverridesContextualMenuID() returns true.

Implemented in TBasicPart.

virtual boolean MCCOMAPI IMFExPart::ParentChangedBounds | ( | const TMCRect & | oldBounds,
|  | const TMCRect & | newBounds,
|  | boolean | inval |
| ) |  |  | `[pure virtual]`

Called each time the bounds of the parent's part were changed.

Parameters:

  | oldBounds | The old bounds of the parent.
  | newBounds | The new bounds of the parent.
  | inval | True if the part should be invalidated.

Implemented in TBasicPreviewPart, and TBasicPart.

virtual boolean MCCOMAPI IMFExPart::ReadAttribute | ( | int32 | inKeyword,
|  | TMCiostream & | inStream |
| ) |  |  | `[pure virtual]`

Reads an attribute of the part from a stream (file usually).

Parameters:

  | inKeyword | The keyword identifying the attribute.
  | inStream | The stream.

Returns:
  true if the attribute has been read.

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfActivate | ( | boolean | beActive | ) | `[pure virtual]`

Called when the part is activated/deactivated.

Parameters:

  | beActive | True if the part is activated. False if it is deactivated.

Implemented in TBasicPart.

virtual boolean MCCOMAPI IMFExPart::SelfContextMouseDown | ( | const TMCPoint & | inWhere,
|  | const TMCPlatformEvent & | inEvent |
| ) |  |  | `[pure virtual]`

Handles a click with the right button of the mouse within the part's bounds

Parameters:

  | inWhere | point in local coordinates of the mouse down
  | inEvent | event information (like clickcount)

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfDraw | ( | IMCGraphicContext * | inContext,
|  | const TMCRect & | inUpdateBBox |
| ) |  |  | `[pure virtual]`

Called to ask the part to draw itself.

Parameters:

  | inContext | The graphic context to use for the drawing.
  | inUpdateBBox | The rectangle that should be drawn.

Implemented in TBasic3DEditorHostPanePart, and TBasicPart.

virtual boolean MCCOMAPI IMFExPart::SelfMiddleMouseDown | ( | const TMCPoint & | inWhere,
|  | const TMCPlatformEvent & | inEvent |
| ) |  |  | `[pure virtual]`

Handles a click with the middle button of the mouse within the part's bounds

Parameters:

  | inWhere | point in local coordinates of the mouse down
  | inEvent | event information (like clickcount)

Implemented in TBasicPart.

virtual TMFEventResult MCCOMAPI IMFExPart::SelfMouseDown | ( | const TMCPoint & | inWhere,
|  | const TMCPlatformEvent & | inEvent |
| ) |  |  | `[pure virtual]`

Handles a click with the left button of the mouse within the part's bounds

Note: When the previous implementation returned a boolean result, you should now return TMFEventResult(result, result) in most cases.

Parameters:

  | inWhere | point in local coordinates of the mouse down
  | inEvent | event information (like clickcount)

Implemented in TBasic3DEditorHostPanePart, TBasicPreviewPart, and TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfMouseEntering | ( | const TMCPoint & | inWhere,
|  | const TMCModifiers & | inModifiers |
| ) |  |  | `[pure virtual]`

Called when the mouse cursor enters the part.

Parameters:

  | inWhere | The position of the mouse.
  | inModifiers | The modifier keys (Shift, Ctrl...)

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfMouseLeaving | ( | const TMCModifiers & | inModifiers | ) | `[pure virtual]`

Called when the mouse has just left the part.

Parameters:

  | inModifiers | The modifier keys (Shift, Ctrl...)

Implemented in TBasicPart.

virtual boolean MCCOMAPI IMFExPart::SelfMouseMoved | ( | const TMCPoint & | inWhere,
|  | const TMCModifiers & | inModifiers |
| ) |  |  | `[pure virtual]`

Called when the mouse has moved over the part.

Parameters:

  | inWhere | The position of the mouse.
  | inModifiers | The modifier keys (Shift, Ctrl...)

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfMouseStillInside | ( | const TMCPoint & | inWhere,
|  | const TMCModifiers & | inModifiers |
| ) |  |  | `[pure virtual]`

Called when the mouse cursor moves inside the part.

Parameters:

  | inWhere | The position of the mouse.
  | inModifiers | The modifier keys (Shift, Ctrl...)

Implemented in TBasicPart.

virtual boolean MCCOMAPI IMFExPart::SelfMouseWheel | ( | const TMCPoint & | inWhere,
|  | const TMCModifiers & | inModifiers,
|  | int16 | inWheelDelta |
| ) |  |  | `[pure virtual]`

Overide this if you want to handle the mouse wheel. Return true if you handled it

Parameters:

  | inWhere | The position of the mouse cursor.
  | inModifiers | The state of the modifier keys (Shift, Ctrl,...)
  | inWheelDelta | The delta of the mouse wheel.

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfPrepareToDestroy | ( |  | ) | `[pure virtual]`

Called when the part is about to be destroyed to give it an opportunity to release all counted references and caches.

Implemented in TBasic3DEditorHostPanePart, TBasicPreviewPart, and TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfTrackDragAndDropEntering | ( | const TMCPoint & | inWhere,
|  | const TMFDragFlavors & | inOfferedTypeList |
| ) |  |  | `[pure virtual]`

Function called when the mouse enters the Part during a drag and drop.

Parameters:

  | inWhere | Point in local coordinate space where the cursor is
  | inOfferedTypeList | Flavors offered by the current drop candiadate.

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfTrackDragAndDropLeaving | ( | const TMFDragFlavors & | inOfferedTypeList | ) | `[pure virtual]`

Function called when the mouse leaves the Part during a drag and drop.

Parameters:

  | inOfferedTypeList | Flavors offered by the current drop candiadate.

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SelfTrackDragAndDropStillInside | ( | const TMCPoint & | inWhere,
|  | const TMFDragFlavors & | inOfferedTypeList |
| ) |  |  | `[pure virtual]`

Function called when the mouse track within the Part during a drag and drop.

Parameters:

  | inWhere | Point in local coordinate space where the cursor is
  | inOfferedTypeList | Flavors offered by the current drop candiadate.

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::SetShown | ( | boolean | inShown | ) | `[pure virtual]`

Sets the visibility of the part.

Parameters:

  | inShown |

Implemented in TBasic3DEditorHostPanePart, and TBasicPart.

virtual boolean MCCOMAPI IMFExPart::SetValueLowLevel | ( | const void * | inValue,
|  | MFPartValueType | inValueType |
| ) |  |  | `[pure virtual]`

Sets the value of the part.

Parameters:

  | inValue | A pointer to the value
  | inValueType | The type of the value

Returns:
  true if the value changed

Implemented in TBasicPart.

virtual void MCCOMAPI IMFExPart::ValidateCaches | ( |  | ) | `[pure virtual]`

Tells us that we can validate our caches because we're going to need them in the next draw

Implemented in TBasicPart.

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

- IMFExPart.h