DigitalSpaces::DIObjectBase Struct Reference
[Interfaces]

#include <Common.h>

Inherited by DigitalSpaces::DI3DAudio1, DigitalSpaces::DI3DAudioEntity1, DigitalSpaces::DI3DVisuals1, DigitalSpaces::DI3DVisualsEntity1, DigitalSpaces::DI3DVisualsGUI1, DigitalSpaces::DI3DVisualsGUIButton1, DigitalSpaces::DI3DVisualsGUICheckbox1, DigitalSpaces::DI3DVisualsGUIComboBox1, DigitalSpaces::DI3DVisualsGUIElement1, DigitalSpaces::DI3DVisualsGUIMultiColumnList1, DigitalSpaces::DI3DVisualsGUIScrollBar1, DigitalSpaces::DI3DVisualsGUIStaticText1, DigitalSpaces::DI3DVisualsNode1, DigitalSpaces::DI3DVisualsOgre1, DigitalSpaces::DIAcceptConfiguration1, DigitalSpaces::DIAgent1, DigitalSpaces::DIAgentManager1, DigitalSpaces::DICEGUI1, DigitalSpaces::DICEGUIButton, DigitalSpaces::DICEGUICheckbox, DigitalSpaces::DICEGUICombobox, DigitalSpaces::DICEGUIComboDropList, DigitalSpaces::DICEGUIDragContainer, DigitalSpaces::DICEGUIEditbox, DigitalSpaces::DICEGUIFont, DigitalSpaces::DICEGUIFrameWindow, DigitalSpaces::DICEGUIImage, DigitalSpaces::DICEGUIImageset, DigitalSpaces::DICEGUIItemEntry, DigitalSpaces::DICEGUIItemListBase, DigitalSpaces::DICEGUIItemListbox, DigitalSpaces::DICEGUIListbox, DigitalSpaces::DICEGUIListboxItem, DigitalSpaces::DICEGUIListHeader, DigitalSpaces::DICEGUIListHeaderSegment, DigitalSpaces::DICEGUIMenuBase, DigitalSpaces::DICEGUIMenuItem, DigitalSpaces::DICEGUIMultiColumnList, DigitalSpaces::DICEGUIMultiLineEditbox, DigitalSpaces::DICEGUIPopupMenu, DigitalSpaces::DICEGUIProgressBar, DigitalSpaces::DICEGUIRadioButton, DigitalSpaces::DICEGUIRenderCache, DigitalSpaces::DICEGUIScrollablePane, DigitalSpaces::DICEGUIScrollbar, DigitalSpaces::DICEGUIScrolledItemListBase, DigitalSpaces::DICEGUISlider, DigitalSpaces::DICEGUISpinner, DigitalSpaces::DICEGUITabButton, DigitalSpaces::DICEGUITabControl, DigitalSpaces::DICEGUIThumb, DigitalSpaces::DICEGUITitlebar, DigitalSpaces::DICEGUITooltip, DigitalSpaces::DICEGUIWindow, DigitalSpaces::DICEGUIWindowRenderer, DigitalSpaces::DIComponentInfo, DigitalSpaces::DIDUIDList1, DigitalSpaces::DIEventProvider1, DigitalSpaces::DIEventSubscriber1, DigitalSpaces::DIHapticDevice1, DigitalSpaces::DIObjectBaseList1, DigitalSpaces::DIOGREAnimation, DigitalSpaces::DIOGREAnimationState, DigitalSpaces::DIOGREAxisAlignedBox, DigitalSpaces::DIOGREAxisAlignedBoxSceneQuery, DigitalSpaces::DIOGREBillboard, DigitalSpaces::DIOGREBillboardSet, DigitalSpaces::DIOGREBone, DigitalSpaces::DIOGRECamera, DigitalSpaces::DIOGREEntity, DigitalSpaces::DIOGREFrustum, DigitalSpaces::DIOGREGpuProgram, DigitalSpaces::DIOGREHardwareBuffer, DigitalSpaces::DIOGREHardwareIndexBuffer, DigitalSpaces::DIOGREHardwarePixelBuffer, DigitalSpaces::DIOGREHardwareVertexBuffer, DigitalSpaces::DIOGREIndexData, DigitalSpaces::DIOGREIntersectionSceneQuery, DigitalSpaces::DIOGRELayerBlendModeEx, DigitalSpaces::DIOGRELight, DigitalSpaces::DIOGREMaterial, DigitalSpaces::DIOGREMesh, DigitalSpaces::DIOGREMovableObject, DigitalSpaces::DIOGRENode, DigitalSpaces::DIOGRENodeAnimationTrack, DigitalSpaces::DIOGREParticle, DigitalSpaces::DIOGREParticleAffector, DigitalSpaces::DIOGREParticleEmitter, DigitalSpaces::DIOGREParticleSystem, DigitalSpaces::DIOGREPass, DigitalSpaces::DIOGREPixelBox, DigitalSpaces::DIOGREPlaneBoundedVolumeList, DigitalSpaces::DIOGREPlaneBoundedVolumeListSceneQuery, DigitalSpaces::DIOGRERay, DigitalSpaces::DIOGRERaySceneQuery, DigitalSpaces::DIOGRERenderable, DigitalSpaces::DIOGREResource, DigitalSpaces::DIOGREResourceManager, DigitalSpaces::DIOGRESceneManager, DigitalSpaces::DIOGRESceneNode, DigitalSpaces::DIOGRESceneQuery, DigitalSpaces::DIOGREShadowCaster, DigitalSpaces::DIOGRESkeleton, DigitalSpaces::DIOGRESkeletonInstance, DigitalSpaces::DIOGRESphereSceneQuery, DigitalSpaces::DIOGREStaticGeometry, DigitalSpaces::DIOGRESubEntity, DigitalSpaces::DIOGRESubMesh, DigitalSpaces::DIOGRETagPoint, DigitalSpaces::DIOGRETechnique, DigitalSpaces::DIOGRETexture, DigitalSpaces::DIOGRETextureManager, DigitalSpaces::DIOGRETextureUnitState, DigitalSpaces::DIOGREVertexBufferBinding, DigitalSpaces::DIOGREVertexData, DigitalSpaces::DIOGREVertexDeclaration, DigitalSpaces::DIOGREVertexElement, DigitalSpaces::DIOGREViewport, DigitalSpaces::DIPhysics, DigitalSpaces::DIPhysicsBase, DigitalSpaces::DIPhysicsBody, DigitalSpaces::DIPhysicsBodyIterator, DigitalSpaces::DIPhysicsBodyMovementListener, DigitalSpaces::DIPhysicsCollision, DigitalSpaces::DIPhysicsJoint, DigitalSpaces::DIPhysicsMaterial, DigitalSpaces::DIPhysicsRay, DigitalSpaces::DIPhysicsShape, DigitalSpaces::DIPhysicsShapeCollisionListener, DigitalSpaces::DIPhysicsWorld, DigitalSpaces::DIPhysicsWorldStepListener, DigitalSpaces::DISettingMap, DigitalSpaces::DISGBase, DigitalSpaces::DISGBaseRepr, DigitalSpaces::DISimulationControl1, DigitalSpaces::DIStringList1, DigitalSpaces::DIStringPairList, DigitalSpaces::DIUser1, DigitalSpaces::DIUserActionFilter1, DigitalSpaces::DIUserInput1, DigitalSpaces::DIUserInput2DPointer1, DigitalSpaces::DIUserInputKeyboard1, DigitalSpaces::DIVariant, DigitalSpaces::DIWin32Window1, DigitalSpaces::DIXMLElement1, and DigitalSpaces::DIXMLNode1.


Detailed Description

Base Interface for all inter-module objects.

Contains methods for querying supported interfaces. The end developer does not generally have to use this DInterface, they should use DigitalSpaces::GetFactoriesWithInterface and DigitalSpaces::dss_cast instead.

Example of what these D* defines expand to:

		struct __declspec(novtable) DISomeInterface : public DIObjectBase
		{
			static const DUID DID;
			virtual DIObjectBase* __stdcall QueryInterface( const DUID* riid ) = 0;
			virtual void __stdcall GetInterfaceIDList( DIDUIList1* iList ) = 0;
			virtual const char* __stdcall GetImplementationName( ) = 0;

			virtual void __stdcall SomeFunction( void* somedata ) = 0;
		};
		

Public Member Functions

DIObjectBaseQueryInterface (const DUID *riid)
 Querys the object for the base pointer to a particular interface.
void GetInterfaceIDList (DIDUIDList1 *iList)
 This function is (mostly?) used by the Core when querying component factories on what DInterfaces they support.
const char * GetImplementationName ()
 Provides a simple identifier that provides information about the implementing object.

Member Function Documentation

DIObjectBase* DigitalSpaces::DIObjectBase::QueryInterface ( const DUID riid  ) 

Querys the object for the base pointer to a particular interface.

Parameters:
riid The unique DUID that identifies a particular DInterface.
Note:
The provided DInterface declaration macros (DInterface(NAME)) make this identifier available as the static property DInterface::DID.
Returns:
Either a DIObjectBase pointer that can be safely cast (static_cast) to the DInterface identified, or NULL.

Referenced by DigitalSpaces::dss_cast().

void DigitalSpaces::DIObjectBase::GetInterfaceIDList ( DIDUIDList1 iList  ) 

This function is (mostly?) used by the Core when querying component factories on what DInterfaces they support.

The information returned from this function may not be absolutely correct, but should try to be as accurate as possible.An example of this function returning incorrect data is when the implementation supports different DInterfaces based on its state.

Parameters:
[out] iList A list to have this implementations supported DInterface identifiers appended to it.
Note:
The implementing object should not clear this list before appending its data to it, as the caller may be collecting information about more then just this object. Similarly, the caller should be aware that it is their responsibility to clear the list, if they want just that information.

const char* DigitalSpaces::DIObjectBase::GetImplementationName (  ) 

Provides a simple identifier that provides information about the implementing object.

This should not be used to identify the implementation beyond debugging purposes.

Note:
The provided macros (DImplement,DImplementWithParent) provide the name of the implementation class and the file it was implemented in.


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

Generated on Sun Aug 31 17:46:28 2008 for Digital Spaces by  doxygen 1.5.6