home *** CD-ROM | disk | FTP | other *** search
/ PC Direct 1998 August / PC Direct August 1998.iso / S / powerj / Product / hpp.z / mmcomplb.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-25  |  11.4 KB  |  232 lines

  1. #ifndef _MMCOMPLB_HPP
  2. #define _MMCOMPLB_HPP
  3.  
  4. // TODO: FIXME: DJB put this in, ITB will take out
  5. #pragma warning 849 9
  6.  
  7. #include "mmcommon.hpp"
  8. #include "mmlexus.hpp"
  9.  
  10. class  MetaObject;
  11. class  MMReferenceNode;
  12. class  WStringList;
  13. class  DTFormEditBase;
  14. class  MTPropertySheetBase;
  15. class  DTWForm;
  16. struct MMLibraryData;
  17. struct MMPropertySheetThunk;
  18. struct MMFunctionData;
  19. class  DTRegistryKey;
  20. class  DTCodeBlockBase;
  21. class  MTImageInterface;
  22. class  MMEventListener;
  23. class  IDSSave;
  24. class  IDSLoad;
  25. class  SaveVersion;
  26. class  MMJavaInterface;
  27.  
  28. class  DTObject;
  29. class  DTWObject;
  30.  
  31. class  MetaObjectHashTable;
  32.  
  33.  
  34. struct WDMLibraryData {
  35.     WUInt               numFunctions[ MMFT_NumFunctionTypes ];
  36.     MMFunctionData *    functions[ MMFT_NumFunctionTypes ];
  37. };
  38.  
  39.  
  40. class METAEXPORTCLASSDEF MMComponentLib : public MMCommon {
  41.     public:
  42.         MMComponentLib( WDMLibraryData * data );
  43.         virtual                     ~MMComponentLib();
  44.  
  45.         virtual WBool               Initialize();
  46.         virtual WBool               Finalize();
  47.         virtual int                 NumMetaObjects();
  48.         virtual MetaObject *        GetMetaObject( unsigned i );
  49.  
  50.         virtual WForm *             MakeObjectInspector(
  51.                                         WWindow * parent,
  52.                                         const WRect & r,
  53.                                         const WChar * title,
  54.                                         WStyle stl, WStyle ex_style ) const;
  55.         virtual WForm *             GetObjectInspector() const;
  56.         virtual void                CloseObjectInspector();
  57.  
  58.         virtual void                MoveToEventPage() const;
  59.         virtual void                MoveToPropertyPage() const;
  60.         virtual void                ObjectInspectorSelect(
  61.                                         WUInt numObjects,
  62.                                         DTObject ** ) const;
  63.         virtual void                ObjectInspectorKey( WCharacterPressEventData * data );
  64.         virtual void                RefreshProperties( WBool recreate=FALSE ) const;
  65.  
  66.         virtual WULong                  GetCompDLLVersion() const;
  67.         virtual WULong                  GetLibraryVersion() const;
  68.         virtual WConstantString         GetRefTag() const;
  69.         virtual WConstantString         GetDescription() const;
  70.         virtual WConstantString         GetScopeName() const;
  71.         virtual WConstantString         GetIncludePath() const;
  72.         virtual WBool                   GetIsOle() const;
  73.         virtual WConstantString         GetContextHelpFile() const;
  74.  
  75.         virtual MMLanguage              GetLanguage() const;
  76.  
  77.         virtual WUInt                   GetNumIncludes() const;
  78.         virtual WConstantString         GetInclude( WUInt idx ) const;
  79.  
  80.         virtual const MMReferenceNode * GetReferenceRoot();
  81.  
  82.         virtual WBool               operator==( const MMComponentLib & o ) const;
  83.  
  84.         virtual const WModule &     GetModule() const;
  85.         virtual WBool               SetModule( const WModule & );
  86.  
  87.         virtual void                    GenHeaderNames( WStringList & ) const;
  88.  
  89.         virtual void                    SetLexusInterface( MMLexusInterfaceBase * );
  90.         virtual MMLexusInterfaceBase *  GetLexusInterface() const;
  91.         virtual MTPropertySheetBase *   MakePropertySheet( MMLexusInterfaceBase::Sheet,
  92.                                                            const MMPropertySheet * ) const;
  93.         virtual DTFormEditBase *        FindForm( DTObject * dttabctrl,
  94.                                                   const WString &,
  95.                                                   WWindow *parent = NULL,
  96.                                                   WTabControl *tc = NULL ) const;
  97.         virtual DTFormEditBase *        CreateTabForm( DTObject * dttabctrl,
  98.                                                    WString &formName,
  99.                                                    WString &className,
  100.                                                    WWindow *parent,
  101.                                                    WTabControl *tabcontrol ) const;
  102.         virtual WBool                   GetImage(
  103.                                             DTObject * obj,
  104.                                             const WString & name,
  105.                                             WBitmap & bmp,
  106.                                             WIcon & ico,
  107.                                             WCursor & cur ) const;
  108.         virtual MTImageInterface *      GetImageInterface();
  109.  
  110.         virtual IDSSave *               GetSaveInterface( const SaveVersion & );
  111.         virtual IDSLoad *               GetLoadInterface( const SaveVersion & );
  112.  
  113.         virtual WUInt                   GetNumEnumerators() const;
  114.         virtual const MMEnumerator *    GetEnumerator( MMIndex idx ) const;
  115.         virtual WUInt                   GetNumTypes() const;
  116.         virtual const MMType *          GetType( MMIndex idx ) const;
  117.         virtual WUInt                   GetNumEvents() const;
  118.         virtual const MMEvent *         GetEvent( MMIndex idx ) const;
  119.         virtual WUInt                   GetNumJavaInterfaces() const;
  120.         virtual const MMJavaInterface * GetJavaInterface( MMIndex idx ) const;
  121.         virtual WUInt                   GetNumEventOverrides() const;
  122.         virtual const MMEventOverride * GetEventOverride( MMIndex idx ) const;
  123.         virtual WUInt                   GetNumEventListeners() const;
  124.         virtual const MMEventListener * GetEventListener( MMIndex idx ) const;
  125.         virtual WUInt                   GetNumParameters() const;
  126.         virtual const MMParameter *     GetParameter( MMIndex idx ) const;
  127.         virtual WUInt                   GetNumParameterSets() const;
  128.         virtual const MMParameterSet *  GetParameterSet( MMIndex idx ) const;
  129.         virtual WUInt                   GetNumStyles() const;
  130.         virtual const MMStyle *         GetStyle( MMIndex idx ) const;
  131.         virtual WUInt                   GetNumProperties() const;
  132.         virtual const MMProperty *      GetProperty( MMIndex idx ) const;
  133.         virtual WUInt                   GetNumMethods() const;
  134.         virtual const MMMethod *        GetMethod( MMIndex idx ) const;
  135.         virtual WUInt                   GetNumPropertyGroups() const;
  136.         virtual const MMPropertyGroup * GetPropertyGroup( MMIndex idx ) const;
  137.         virtual WUInt                   GetNumPropertyControls() const;
  138.         virtual const MMPropertyControl *GetPropertyControl( MMIndex idx ) const;
  139.         virtual WUInt                   GetNumPropertySheets() const;
  140.         virtual const MMPropertySheet * GetPropertySheet( MMIndex idx ) const;
  141.         virtual WUInt                   GetNumComponents() const;
  142.         virtual const MMComponent *     GetComponent( MMIndex idx ) const;
  143.         virtual WUInt                   GetNumReferenceNodes() const;
  144.         virtual const MMReferenceNode * GetReferenceNode( MMIndex idx ) const;
  145.         virtual const MMString *        GetStringTable( MMIndex ) const;
  146.         virtual MMIndex                 GetIndex( MMIndex ) const;
  147.         virtual WBool                   GetString( MMString, WConstantString & str ) const;
  148.  
  149.         virtual WUInt                   GetNumFunctions( MMFunctionType ) const;
  150.         virtual void *                  GetFunction( MMFunctionType, WUInt ) const;
  151.         virtual WString                 GetFunctionName( MMFunctionType, WUInt ) const;
  152.         virtual void *                  FindFunction( MMFunctionType, const WString & ) const;
  153.  
  154.         virtual MMSetPropFn             GetSetPropFn( MMSetFnIndex idx ) const;
  155.         virtual MMGetPropFn             GetGetPropFn( MMGetFnIndex idx ) const;
  156.         virtual MMMakePropSheet         GetMakePropSheetFn( MMPropSheetFnIndex idx ) const;
  157.         virtual MMMakePropControl       GetMakePropControlFn( MMPropCtrlFnIndex idx ) const;
  158.         virtual MMMakeDTObject          GetMakeDTObjectFn( MMDTInstFnIndex idx ) const;
  159.         virtual MMMakeDTType            GetMakeDTTypeFn( MMDTTypeFnIndex idx ) const;
  160.         virtual MMPropDefault           GetPropDefFn( MMPropDefFnIndex idx ) const;
  161.         virtual MMPropMakeEditor        GetPropMakeEditorFn( MMPropMakeEditorFnIndex idx ) const;
  162.         virtual WRange                  GetDataRange();
  163.  
  164.         virtual WUInt                   GetRefCount() const;
  165.         virtual void                    IncrementRefCount();
  166.         virtual void                    DecrementRefCount();
  167.  
  168.         virtual MMComponentLib *        GetFirstLibrary() const;
  169.         virtual MMComponentLib *        GetDTWClassLibrary() const;
  170.         virtual MMComponentLib *        GetNextLibrary() const;
  171.         virtual MMComponentLib *        FindLibrary( const WString & name ) const;
  172.  
  173.         virtual const MetaObject *      FindComponentInLibraries( const WString & fullName );
  174.         virtual const MetaObject *      FindComponentWithinLibrary( const WString & shortName );
  175.  
  176.         static  const MetaObject *              FindComponent( const WString &, WBool full );
  177.         static  const MetaObject *              FindComponent( const WString &, MMComponentLib * lib=NULL );
  178.         static  MMComponentLib *                FindLibrary( const MMCommon * );
  179.         static  MMComponentLib *                findLibraryByScopeName( const WString & name, MMComponentLib * startAt=NULL );
  180.         static  MMComponentLib *                FindLibrary( WInt );
  181.  
  182.     protected:
  183.         static MMComponentLib *     _DTWClassFirst;
  184.         static MMComponentLib *     _First;
  185.         WDMLibraryData *            _dmData;
  186.         WModule                     _theModule;
  187.         static MMLexusInterfaceBase *_lexus;
  188.         WRange                      _libDataRange;
  189.         MMComponentLib *            _next;
  190.         WInt                        _referenceCount;
  191.         MetaObjectHashTable *       _metaHash;
  192.  
  193.         MMEnumerator *              _enumerators;
  194.         MMType *                    _types;
  195.         MMEvent *                   _events;
  196.         MMJavaInterface *           _javaInterfaces;
  197.         MMEventOverride *           _eventOverrides;
  198.         MMEventListener *           _eventListeners;
  199.         MMStyle *                   _styles;
  200.         MMProperty *                _properties;
  201.         MMMethod *                  _methods;
  202.         MMParameter *               _parameters;
  203.         MMParameterSet *            _parameterSets;
  204.         MMPropertyGroup *           _propertyGroups;
  205.         MMPropertyControl *         _propertyControls;
  206.         MMPropertySheet *           _propertySheets;
  207.         MetaObject *                _components;
  208.         MMReferenceNode *           _referenceNodes;
  209.  
  210.         const MMPropertySheetThunk *_propSheetThunk;
  211.         const MMPropertySheet **    _propSheetReloc;
  212.         const MMString *            _stringTables;
  213.         const MMIndex *             _indices;
  214.         const WChar *               _strings;
  215.         WUInt                       _stringLen;
  216.         const WByte *               _bufferData;
  217.         WUInt                       _bufferLen;
  218.         const MMLibraryData *       _libData;
  219. };
  220.  
  221. extern "C" {
  222.     typedef MMComponentLib * __export __stdcall (*MMGetComponentLibFn)();
  223.     #define MMGETCOMPONENTLIB "_MMGetComponentLib@0"
  224. };
  225.  
  226. #define MMRC_WD_CONFIG          "WDCFG"
  227.  
  228. // TODO: FIXME: DJB put this in, ITB will take out
  229. #pragma warning 849 1
  230.  
  231. #endif // _MMCOMPLB_HPP
  232.