IExDataExchanger Struct Reference
[COM Interfaces]

Inheritance diagram for IExDataExchanger:
IMCUnknown I3DExRendererBox TBasicDataExchanger TBasicRendererBox TBasic3DExportFilter TBasic3DImportFilter TBasicAmbient TBasicAnimationMethod TBasicAtmosphere TBasicAttributesSetControler TBasicBackdrop TBasicBackground TBasicCamera TBasicClip TBasicColorPicker TBasicColorSet TBasicConstraint TBasicDataComponent TBasicFinalRenderer TBasicGel TBasicGenericData TBasicLight TBasicModifier TBasicModule TBasicMovie TBasicNewConstraint TBasicPostRenderer TBasicPrefsComponent TBasicPrimitive TBasicRendererBox TBasicRenderFeature TBasicRigidBodySolver TBasicSceneCommand TBasicShader TBasicTerrainFilter TBasicTweener TBasicVolumetricCloudsShape TBasicVolumetricEffect

List of all members.

Public Member Functions

virtual void MCCOMAPI Clone (IExDataExchanger **clonedObject, IMCUnknown *pUnkOuter)=0
virtual boolean MCCOMAPI IsEqual (IExDataExchanger *otherDataExchanger)=0
virtual MCCOMErr MCCOMAPI GetParameter (IDType keyword, void *parameter)=0
virtual MCCOMErr MCCOMAPI SetParameter (IDType keyword, void *parameter)=0
virtual void *MCCOMAPI GetExtensionDataBuffer ()=0
virtual MCCOMErr MCCOMAPI ExtensionDataChanged ()=0
virtual MCCOMErr MCCOMAPI HandleEvent (MessageID message, IMFResponder *source, void *data)=0
virtual MCCOMErr MCCOMAPI SimpleHandleEvent (MessageID message, IMFResponder *source, void *data)=0
virtual void MCCOMAPI GetUIHandler (TUIHandlerFunctionPtr &outHandler)=0
virtual int16 MCCOMAPI GetResID ()=0
virtual int16 MCCOMAPI GetMiniPartID ()=0
virtual MCCOMErr MCCOMAPI OverridesMiniPartID ()=0
virtual MCCOMErr MCCOMAPI InitComponent ()=0
virtual MCCOMErr MCCOMAPI CopyComponentExtraData (IExDataExchanger *dest)=0
virtual int32 MCCOMAPI GetParamsBufferSize () const =0

Detailed Description

Contains utility methods that are complements to IMCUnknown, like clone() Allows the Shell to handle the UI of the Component and the Component's public data. Handles the communication between the Component and the Shell.


Member Function Documentation

virtual void MCCOMAPI IExDataExchanger::Clone ( IExDataExchanger **  clonedObject,
IMCUnknown pUnkOuter 
) [pure virtual]

Creates a copy of an external component. You only need to implement this method if your object has data that are not stored in its Parameter Map (Pmap).

Parameters:
clonedObject : the resulting copy of the current object
pUnkOuter : the internal component that needs to be linked to your object (call SetControllingUnknown(pUnkOuter) on the clone)

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::CopyComponentExtraData ( IExDataExchanger dest  )  [pure virtual]

Some components can contain data that aren't part of its pMap but need to copy during the Undo/Redo action for example. Implement this method to copy these "outside the pmap" data. Typicaly, it should copy the extra data that are cloned in the Clone method implementation.

Parameters:
dest The component where the date should be copied.

Implemented in TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::ExtensionDataChanged (  )  [pure virtual]

Called each time a parameter of the parameter map (Pmap) is modified. This should only be used to invalidate caches and should be quick since it can be called many times.

Implemented in TBasicDistantLight, TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual void* MCCOMAPI IExDataExchanger::GetExtensionDataBuffer (  )  [pure virtual]

Returns a pointer to the buffer that contains the parameter map (Pmap). This function should always be implemented by your component otherwise the base address of the object will be used as the address of the Pmap.

Implemented in TBasicModifier, TBasicModule, TBasicPrimitive, and TBasicDataExchanger.

virtual int16 MCCOMAPI IExDataExchanger::GetMiniPartID (  )  [pure virtual]

Returns the resource ID of the NodePart used for the MiniPart of the component.
If you want this value to be used, implement OverridesMiniPartID.

Implemented in TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::GetParameter ( IDType  keyword,
void *  parameter 
) [pure virtual]

Returns the value of a given parameter of this dataExchanger. This function is called when the shell cannot find the given parameter in the Parameter Map (Pmap) of the component You need to implement this method only if your object has parameters that are not inside the parameter map.

Parameters:
keyword The ID of the parameter.
parameter A pointer to buffer where the value of the parameter can be copied.

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual int32 MCCOMAPI IExDataExchanger::GetParamsBufferSize (  )  const [pure virtual]

returns the size of the buffer based on the C code (eg sizeof(fPmap)) so that the application can check the calculated pmap size

virtual int16 MCCOMAPI IExDataExchanger::GetResID (  )  [pure virtual]

Returns the resource ID of the NodePart used for the properties of the component.
Return 0 to use the default node id (the same number than the one used for the 'COMP' resource). This is the default.
Return -1 if you want an auto pmap (very rarely needed)

Each implementation MUST always return the same value !

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual void MCCOMAPI IExDataExchanger::GetUIHandler ( TUIHandlerFunctionPtr outHandler  )  [pure virtual]

Returns a static function that handles complex ui events. That function is allowed to change the UI, but it must take into account all the components and use the multivalue mode for parts.

See also:
LoadMultiValue (in MFPartUtilities.h) Each implementation MUST always return the same handler ! If needed, you can implement both GetUIHandler and SimpleHandleEvent.

Implemented in TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::HandleEvent ( MessageID  message,
IMFResponder source,
void *  data 
) [pure virtual]
Deprecated:
(doesn't work with multiple selections)

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::InitComponent (  )  [pure virtual]

Set the data of a component to their default value Returns kNotImplementedError if not implemented, MC_S_OK otherwise.

Implemented in TBasicRendererBox, and TBasicDataExchanger.

virtual boolean MCCOMAPI IExDataExchanger::IsEqual ( IExDataExchanger otherDataExchanger  )  [pure virtual]

Returns true if the two pointers are referring to the same data exchanger. When IsEqual is called you can assume that otherDataExchanger is of the same type as "this"

Parameters:
otherDataExchanger the extension to which it will be compared

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::OverridesMiniPartID (  )  [pure virtual]

Returns the resource ID of the NodePart used for the properties of the component.
Return MC_E_NOTIMPL to use the default node id (the same number than the one used for the 'COMP' resource). This is the default.
Return MC_S_OK if you want to use the ID from GetMiniPartID.

Implemented in TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::SetParameter ( IDType  keyword,
void *  parameter 
) [pure virtual]

Sets the value of a parameter. You need to implement this method only if your object has parameters that are not inside the parameter map.

Parameters:
keyword The ID of the parameter.
parameter A pointer to buffer where the value of the parameter can be copied.

Implemented in TBasicModule, TBasicRendererBox, and TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI IExDataExchanger::SimpleHandleEvent ( MessageID  message,
IMFResponder source,
void *  data 
) [pure virtual]

Replaces the deprecated HandleEvent ONLY IN SIMPLE CASES. This function MUST NOT change the user interface (its called for every selected component). Example of allowed use : if (source && (source->GetInstanceID() == 'shfl')) { fPMap.fSeed = gShellUtilities->TickCount(); ExtensionDataChanged(); }

Parameters:
message,: the ID of the message being sent (All MessageIDs are preceeded with "kMsg")
source,: the part that sent the message (can be NULL !)
data,: a pointer to private data corresponding to the message

Implemented in TBasicDistantLight, TBasicRendererBox, and TBasicDataExchanger.


The documentation for this struct was generated from the following file:
Generated on Mon Apr 26 22:47:43 2010 for Carrara SDK Doc by  doxygen 1.6.3