Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.5 KiB

  1. /***************************************************************************\
  2. *
  3. * File: ClassLibrary.h
  4. *
  5. * Description:
  6. * ClassLibrary.h defines the library of "message classes" that have been
  7. * registered with DirectUser.
  8. *
  9. *
  10. * History:
  11. * 8/05/2000: JStall: Created
  12. *
  13. * Copyright (C) 2000 by Microsoft Corporation. All rights reserved.
  14. *
  15. \***************************************************************************/
  16. #if !defined(MSG__ClassLibrary_h__INCLUDED)
  17. #define MSG__ClassLibrary_h__INCLUDED
  18. #pragma once
  19. class MsgClass;
  20. class ClassLibrary
  21. {
  22. // Construction
  23. public:
  24. ClassLibrary();
  25. ~ClassLibrary();
  26. // Operations
  27. public:
  28. HRESULT RegisterGutsNL(DUser::MessageClassGuts * pmcInfo, MsgClass ** ppmc);
  29. HRESULT RegisterStubNL(DUser::MessageClassStub * pmcInfo, MsgClass ** ppmc);
  30. HRESULT RegisterSuperNL(DUser::MessageClassSuper * pmcInfo, MsgClass ** ppmc);
  31. void MarkInternal(HCLASS hcl);
  32. const MsgClass *
  33. FindClass(ATOM atomName) const;
  34. // Implementation
  35. protected:
  36. HRESULT BuildClass(LPCWSTR pszClassName, MsgClass ** ppmc);
  37. // Data
  38. protected:
  39. CritLock m_lock;
  40. GList<MsgClass>
  41. m_lstClasses;
  42. };
  43. ClassLibrary *
  44. GetClassLibrary();
  45. #include "ClassLibrary.inl"
  46. #endif // MSG__ClassLibrary_h__INCLUDED