home *** CD-ROM | disk | FTP | other *** search
- /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Copyright (C) 1994, by WATCOM International Inc. All rights %
- % reserved. No part of this software may be reproduced or %
- % used in any form or by any means - graphic, electronic or %
- % mechanical, including photocopying, recording, taping or %
- % information storage and retrieval systems - except with the %
- % written permission of WATCOM International Inc. %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- */
-
- /*************************************************************************
- *
- * WOleClassManager -- Ole Class Manager
- *
- *
- * Events:
- *
- *
- *************************************************************************/
-
- #ifndef _WOLECFAC_HPP_INCLUDED
- #define _WOLECFAC_HPP_INCLUDED
-
- #ifndef _WNO_PRAGMA_PUSH
- #pragma pack(push,8);
- #pragma enum int;
- #endif
-
- #ifndef _WOLETYPE_HPP_INCLUDED
- # include "woletype.hpp"
- #endif
-
- // forward class declarations
- class WApplication;
- class WOleClassManager;
- class WOleClassManager_IClassFac;
-
- // the following is definitions of WOleClassManager
-
- class WCMCLASS WOleClassManager : public WEventGenerator {
- WDeclareSubclass( WOleClassManager, WEventGenerator );
-
- friend class WOleClassManager_IClassFac;
-
- public:
-
- /**********************************************************
- * Constructors and Destructors
- *********************************************************/
-
- WOleClassManager( WBool isExe );
-
- virtual ~WOleClassManager();
-
- public:
-
- /**************************************************************
- * Properties
- **************************************************************/
-
- // User Mode
- WBool SetUserMode( WBool userMode );
- WBool GetUserMode( void ) const;
-
- /**************************************************************
- * Methods
- **************************************************************/
-
- WULong RegisterServer( WApplication *application );
- WULong UnregisterServer( WApplication *application );
- WULong CanUnloadNow( void );
-
- WBool CheckUnloadExe( void );
- WBool RegisterClassObjects( void );
- WBool RevokeClassObjects( void );
-
- static void IncrementObjectCount( void );
- static void DecrementObjectCount( void );
-
- /**************************************************************
- * Item Properties
- **************************************************************/
-
- WULong GetClassObject( const WCLSID & rclsid, const WIID & riid, void **ppv );
-
- protected:
-
- /**************************************************************
- * Internal Methods
- **************************************************************/
-
- WBool RegisteredListAdd( WULong dwReg );
-
- /**********************************************************
- * Data Members
- *********************************************************/
-
- protected:
- static WULong _lockCount;
- static WULong _objCount;
-
- WBool _isExe;
- WBool _userMode;
- WULong _regCount;
- WULong _regSize;
- WULong *_regList;
-
- };
-
- #ifndef _WNO_PRAGMA_PUSH
- #pragma enum pop;
- #pragma pack(pop);
- #endif
-
- #endif // _WOLECFAC_HPP_INCLUDED
-
-