hctBaseDll.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:3k
源码类别:

其他游戏

开发平台:

Visual C++

  1. /* 
  2.  * 
  3.  * Confidential Information of Telekinesys Research Limited (t/a Havok). Not for disclosure or distribution without Havok's
  4.  * prior written consent. This software contains code, techniques and know-how which is confidential and proprietary to Havok.
  5.  * Level 2 and Level 3 source code contains trade secrets of Havok. Havok Software (C) Copyright 1999-2009 Telekinesys Research Limited t/a Havok. All Rights Reserved. Use of this software is subject to the terms of an end user license agreement.
  6.  * 
  7.  */
  8. #ifndef HAVOK_BASE_DLL_H
  9. #define HAVOK_BASE_DLL_H
  10. class hkMemory;
  11. class hctFilterDescriptor;
  12. class hkVersionPatchManager;
  13. /// Each DLL (filters and filter manager) contains an instance of this class.
  14. /// It handles the setup of shared singletons, versioning and initialization.
  15. class hctBaseDll
  16. {
  17. // IMPORTANT : All virtual methods must remain virtual
  18. // The reason for that is that their implementation must remain in the DLL in question rather than in the caller.
  19. public:
  20. /// Constructor. Takes an HMODULE as parameter: this is the value returned by the Windows call LoadLibrary()
  21. hctBaseDll (HMODULE dllModule);
  22. /// Returns the DLL module that was passed on construction.
  23. virtual HMODULE getDllModule () const;
  24. /// Returns the version of this DLL. Used to version changes in DLL interfaces.
  25. virtual unsigned int getDllVersion () const;
  26. /// This struct is passed during initialization. It contains information about singletons like
  27. /// memory, error, and factories.
  28. struct BaseSystemInfo
  29. {
  30. class hkMemory* m_memory;
  31. class hkThreadMemory* m_threadMemory;
  32. class hkFileSystem* m_fileSystem;
  33. class hkError* m_error;
  34. class hkScratchpad* m_scratchPad;
  35. class hkVersionPatchManager* m_patchManager;
  36. };
  37. /// Initializes the DLL with the singletons stored in "baseSystemInfo" - this forces the DLL to use those singletons
  38. /// instead of DLL-specific ones.
  39. virtual void initDll ( const BaseSystemInfo* baseSystemInfo );
  40. /// Should be called whenever a new thread is created - it ensures the static thread DLL in the DLL is updated.
  41. virtual void initThread ( hkThreadMemory* threadMemory );
  42. /// Should be called before unloading the DLL - it calls hkBaseSystem::quit().
  43. virtual void quitDll ();
  44. virtual bool isInitialized();
  45. /// This static, non-virtual method returns the current version at compile time
  46. static unsigned int getCurrentDllVersion ();
  47. protected:
  48. HMODULE m_dllModule;
  49. };
  50. #endif // HAVOK_FILTER_DLL_H
  51. /*
  52. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  53. * Confidential Information of Havok.  (C) Copyright 1999-2009
  54. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  55. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  56. * rights, and intellectual property rights in the Havok software remain in
  57. * Havok and/or its suppliers.
  58. * Use of this software for evaluation purposes is subject to and indicates
  59. * acceptance of the End User licence Agreement for this product. A copy of
  60. * the license is included with this software and is also available at www.havok.com/tryhavok.
  61. */