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.

82 lines
1.9 KiB

  1. /*
  2. * appcap.h
  3. *
  4. * Copyright (c) 1993 by DataBeam Corporation, Lexington, KY
  5. *
  6. * Abstract:
  7. * This is the interface file for the class ApplicationaCapabilityData.
  8. *
  9. * Caveats:
  10. * None.
  11. *
  12. * Author:
  13. * jbo
  14. */
  15. #ifndef _APP_CAPABILITY_DATA_
  16. #define _APP_CAPABILITY_DATA_
  17. #include "capid.h"
  18. #include "cntlist.h"
  19. /*
  20. ** Below is the definition for all the capabilities related structures and
  21. ** containers. The ListOfCapabilitiesList definition is used to maintain
  22. ** all of the individual capabilities list at a single node (for multiple
  23. ** protocol entities).
  24. */
  25. typedef struct APP_CAP_ITEM
  26. {
  27. APP_CAP_ITEM(GCCCapabilityType eCapType);
  28. APP_CAP_ITEM(APP_CAP_ITEM *p, GCCError *pError);
  29. ~APP_CAP_ITEM(void);
  30. // in non-collapsing case, pCapID and poszAppData are used.
  31. // in appcap case, all but poszAppData are used.
  32. // in invoklst case, pCapID, eCapType, and the union are used.
  33. CCapIDContainer *pCapID;
  34. GCCCapabilityType eCapType;
  35. UINT cEntries;
  36. LPOSTR poszAppData; // For Non-Collapsing only
  37. union
  38. {
  39. UINT nUnsignedMinimum;
  40. UINT nUnsignedMaximum;
  41. };
  42. }
  43. APP_CAP_ITEM;
  44. /*
  45. ** Holds the list of individual capabilities for a single Application Protocol
  46. ** Entity. Remember that a single APE can have many capabilities.
  47. */
  48. class CAppCapItemList : public CList
  49. {
  50. DEFINE_CLIST(CAppCapItemList, APP_CAP_ITEM*)
  51. void DeleteList(void);
  52. };
  53. // LONCHANC: CAppCap and CNonCollAppCap are very similar to each.
  54. class CAppCap : public CRefCount
  55. {
  56. public:
  57. CAppCap(UINT cCaps, PGCCApplicationCapability *, PGCCError);
  58. ~CAppCap(void);
  59. UINT GetGCCApplicationCapabilityList(USHORT *pcCaps, PGCCApplicationCapability **, LPBYTE memory);
  60. UINT LockCapabilityData(void);
  61. void UnLockCapabilityData(void);
  62. protected:
  63. UINT m_cbDataSize;
  64. CAppCapItemList m_AppCapItemList;
  65. };
  66. #endif