# I3DShModule Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DShModule:

List of all members.

## Public Member Functions
virtual void MCCOMAPI | CreateWindowByResource (IMFPart **outPart, ResourceID inResID, boolean inIsMainWindow=false)=0
virtual TDataKey MCCOMAPI | GetNewModuleDataKey ()=0
virtual IMFDocument *MCCOMAPI | GetDocumentNoAddRef ()=0
virtual IDType MCCOMAPI | GetClassID ()=0
virtual void MCCOMAPI | Hydrate ()=0
virtual void MCCOMAPI | Dehydrate ()=0
virtual void MCCOMAPI | Activate ()=0
virtual void MCCOMAPI | Deactivate ()=0
virtual void MCCOMAPI | AttachWindow (IMFWindow *inWindow)=0
virtual void MCCOMAPI | DetachWindow (IMFWindow *inWindow)=0
virtual void MCCOMAPI | Initialize (IMCUnknown *inElement)=0
virtual void MCCOMAPI | Destroy ()=0
virtual void MCCOMAPI | Import (IMCUnknown *inElement, void *inImportData)=0
virtual boolean MCCOMAPI | GetIsHydrated ()=0
virtual uint32 MCCOMAPI | GetRefCountAfterInitialization ()=0
virtual boolean MCCOMAPI | GetPreferredRoom (IDType &roomId)=0
virtual boolean MCCOMAPI | WantsToBeInCurrentRoom ()=0
virtual boolean MCCOMAPI | IsActive ()=0
virtual boolean MCCOMAPI | HaveSubModuleActive ()=0
virtual void MCCOMAPI | SetMasterModule (I3DShModule *masterModule)=0
virtual boolean MCCOMAPI | SubModuleClosedMainWindow (I3DShModule *subModule)=0
virtual MCCOMErr MCCOMAPI | SubModuleAboutToBeDestroyed (I3DShModule *subModule)=0
virtual MCCOMErr MCCOMAPI | SubModuleAboutToBeHydrated (I3DShModule *subModule)=0
virtual boolean MCCOMAPI | BuildMenuBar (IMCMenuBar *theBar)=0
virtual void *MCCOMAPI | GetPrefs ()=0
virtual MCCOMErr MCCOMAPI | GetElement (IMCUnknown **outElement)=0
virtual boolean MCCOMAPI | SavesInNativeFormat ()=0
virtual void MCCOMAPI | SetElement (IMCUnknown *element)=0
virtual MCCOMErr MCCOMAPI | GetMasterModulePropertiesClient (IPropertiesClient **outPropClient)=0
virtual MCCOMErr MCCOMAPI | GetDefaultPropertiesClient (IPropertiesClient **outPropClient)=0
virtual void MCCOMAPI | SetOverrideModule (I3DShModule *inOverrideModule)=0
| sets the module that will override menus and tools
virtual I3DShModule *MCCOMAPI | GetOverrideModule ()=0
| gets the module that overrides menus and tools
virtual MCCOMErr MCCOMAPI | GetMainToolInfo (TModelerToolInfo &mainToolInfo)=0
virtual void MCCOMAPI | ShowToolGroups (const boolean inShow)=0

## Detailed Description

I3DShModule is the shell interface of a module.

There are two interfaces to access a modifier: The shell interface (I3DShModule) and the external interface (I3DExModule) . You can get one from the other using QueryInterface.

Whenever it is possible you should use the Shell interface (I3DShModule) to access the component because the Shell will make sure that the parameter map of the external component is valid. This is especially important if the component is animated. For more information on components see the Overview of the SDK.

See also:
  I3DExModule

## Member Function Documentation

virtual void MCCOMAPI I3DShModule::Activate | ( |  | ) | `[pure virtual]`

Called when the module is activated.

virtual void MCCOMAPI I3DShModule::AttachWindow | ( | IMFWindow * | inWindow | ) | `[pure virtual]`

virtual boolean MCCOMAPI I3DShModule::BuildMenuBar | ( | IMCMenuBar * | theBar | ) | `[pure virtual]`

Gives the opportunity to the module to change the menu bar. Return true if it did so.

virtual void MCCOMAPI I3DShModule::CreateWindowByResource | ( | IMFPart ** | outPart,
|  | ResourceID | inResID,
|  | boolean | inIsMainWindow = `false` |
| ) |  |  | `[pure virtual]`

Creates a windows from a resource.

Parameters:

  | outPart | A pointer to the window that is created.
  | inResID | The resource ID of the resource to read (of type 'Wind')
  | inIsMainWindow | True if it is the main window of the module.

virtual void MCCOMAPI I3DShModule::Deactivate | ( |  | ) | `[pure virtual]`

Called when the module is deactivated.

virtual void MCCOMAPI I3DShModule::Dehydrate | ( |  | ) | `[pure virtual]`

Should deallocate resources that are not used anymore once the module is not active.

virtual void MCCOMAPI I3DShModule::Destroy | ( |  | ) | `[pure virtual]`

virtual void MCCOMAPI I3DShModule::DetachWindow | ( | IMFWindow * | inWindow | ) | `[pure virtual]`

virtual IDType MCCOMAPI I3DShModule::GetClassID | ( |  | ) | `[pure virtual]`

Returns the classID of the module.

virtual MCCOMErr MCCOMAPI I3DShModule::GetDefaultPropertiesClient | ( | IPropertiesClient ** | outPropClient | ) | `[pure virtual]`

Get the default properties client for this module.

Parameters:

  | outPropClient |

virtual IMFDocument* MCCOMAPI I3DShModule::GetDocumentNoAddRef | ( |  | ) | `[pure virtual]`

Returns a pointer to the document that is edited by this module.

virtual MCCOMErr MCCOMAPI I3DShModule::GetElement | ( | IMCUnknown ** | outElement | ) | `[pure virtual]`

Get edited element (='inElement' parameter passed in Initialize)

Parameters:

  | outElement |

virtual boolean MCCOMAPI I3DShModule::GetIsHydrated | ( |  | ) | `[pure virtual]`

virtual MCCOMErr MCCOMAPI I3DShModule::GetMainToolInfo | ( | TModelerToolInfo & | mainToolInfo | ) | `[pure virtual]`

Returns the information about the main tool that activate the modeler in the 3DView. Note that this function is only implemented by modelers that can be instantiated in the 3DView (Vertex Modeler, 3D Paint...).

Parameters:

  | mainToolInfo | A struct describing the tool.

virtual MCCOMErr MCCOMAPI I3DShModule::GetMasterModulePropertiesClient | ( | IPropertiesClient ** | outPropClient | ) | `[pure virtual]`

If you are a sub module, you can retreve the default properties client from your master module.

Parameters:

  | outPropClient |

virtual TDataKey MCCOMAPI I3DShModule::GetNewModuleDataKey | ( |  | ) | `[pure virtual]`

Returns a Data Key for the module.

virtual I3DShModule* MCCOMAPI I3DShModule::GetOverrideModule | ( |  | ) | `[pure virtual]`

gets the module that overrides menus and tools

virtual boolean MCCOMAPI I3DShModule::GetPreferredRoom | ( | IDType & | roomId | ) | `[pure virtual]`

Returns true if the module has a prefered room and gives its ID

Parameters:

  | roomId | The prefered room ID if there is one

virtual void* MCCOMAPI I3DShModule::GetPrefs | ( |  | ) | `[pure virtual]`

Returns a pointer the preference buffer for the module.

virtual uint32 MCCOMAPI I3DShModule::GetRefCountAfterInitialization | ( |  | ) | `[pure virtual]`

Returns the refcount of the module at the end of the initialization (useless before) includes all the references (even those you make) to use it, you should be in the same state(concerning external refcount) than when calling initialize()

virtual boolean MCCOMAPI I3DShModule::HaveSubModuleActive | ( |  | ) | `[pure virtual]`

Returns true if this master module have a sub module active

virtual void MCCOMAPI I3DShModule::Hydrate | ( |  | ) | `[pure virtual]`

Called before the module is Activated.

virtual void MCCOMAPI I3DShModule::Import | ( | IMCUnknown * | inElement,
|  | void * | inImportData |
| ) |  |  | `[pure virtual]`

virtual void MCCOMAPI I3DShModule::Initialize | ( | IMCUnknown * | inElement | ) | `[pure virtual]`

virtual boolean MCCOMAPI I3DShModule::IsActive | ( |  | ) | `[pure virtual]`

Returns true if module is active

virtual boolean MCCOMAPI I3DShModule::SavesInNativeFormat | ( |  | ) | `[pure virtual]`

Whether the module wants to save data in the nativefile format

virtual void MCCOMAPI I3DShModule::SetElement | ( | IMCUnknown * | element | ) | `[pure virtual]`

Sets the edited element. This is used with a global module (such as the preview module) when the element being edited changed (for instance the scene being previewed).

Parameters:

  | element | A pointer to the new element edited (can be null)

virtual void MCCOMAPI I3DShModule::SetMasterModule | ( | I3DShModule * | masterModule | ) | `[pure virtual]`

Call SetMasterModule() if this module if managed by another. This way your SubModuleClosedMainWindow() will be called when the "Main Window" of this sub-module will be closed, so you have a chance to react.

Parameters:

  | masterModule | A pointer to the master module.

virtual void MCCOMAPI I3DShModule::SetOverrideModule | ( | I3DShModule * | inOverrideModule | ) | `[pure virtual]`

sets the module that will override menus and tools

virtual void MCCOMAPI I3DShModule::ShowToolGroups | ( | const boolean | inShow | ) | `[pure virtual]`

Called to hide/reveal the toolbars associated with this module (Note that you might need to call RebuildMenuBar() for this to take effect).

Parameters:

  | inShow | True if the tool bars should be shown.

virtual MCCOMErr MCCOMAPI I3DShModule::SubModuleAboutToBeDestroyed | ( | I3DShModule * | subModule | ) | `[pure virtual]`

Your own SubModuleAboutToBeDestroyed() proc will be called by any sub module that is about to destroy itself, so you can react.

Parameters:

  | subModule |

virtual MCCOMErr MCCOMAPI I3DShModule::SubModuleAboutToBeHydrated | ( | I3DShModule * | subModule | ) | `[pure virtual]`

Your own SubModuleAboutToBeHydrated() proc will be called by any sub module that is about to hydrate itself, so you can react.

Parameters:

  | subModule |

virtual boolean MCCOMAPI I3DShModule::SubModuleClosedMainWindow | ( | I3DShModule * | subModule | ) | `[pure virtual]`

Your own SubModuleClosedMainWindow() proc will be called by any sub module that have its "Main Window" being closed, so you can react and return true if it if OK to close and destroy the module (return true)

Parameters:

  | subModule | A pointer to the subModule.

virtual boolean MCCOMAPI I3DShModule::WantsToBeInCurrentRoom | ( |  | ) | `[pure virtual]`

Returns true if the module can be inserted in the current room

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

- I3dShModule.h