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.

110 lines
3.2 KiB

  1. /**MOD+**********************************************************************/
  2. /* Module: or.h */
  3. /* */
  4. /* Purpose: Header file for or.cpp */
  5. /* */
  6. /* Copyright(C) Microsoft Corporation 1997 */
  7. /* */
  8. /****************************************************************************/
  9. #ifndef _OR_H_
  10. #define _OR_H_
  11. extern "C" {
  12. #include <adcgdata.h>
  13. }
  14. #include "objs.h"
  15. #include "cd.h"
  16. /**STRUCT+*******************************************************************/
  17. /* Structure: OR_GLOBAL_DATA */
  18. /* */
  19. /* Description: Output Requestor global data */
  20. /****************************************************************************/
  21. typedef struct tagOR_GLOBAL_DATA
  22. {
  23. RECT invalidRect;
  24. DCBOOL invalidRectEmpty;
  25. DCBOOL enabled;
  26. DCUINT outputSuppressed;
  27. DCBOOL pendingSendSuppressOutputPDU;
  28. } OR_GLOBAL_DATA, DCPTR POR_GLOBAL_DATA;
  29. /**STRUCT-*******************************************************************/
  30. /****************************************************************************/
  31. /* Macros */
  32. /****************************************************************************/
  33. /****************************************************************************/
  34. /* Turns a RECT into a TS_RECTANGLE16 (exclusive to inclusive and LONG to */
  35. /* DCUINT16) */
  36. /****************************************************************************/
  37. #define RECT_TO_TS_RECTANGLE16(X,Y) \
  38. (X)->left = (DCUINT16) (Y)->left; \
  39. (X)->top = (DCUINT16) (Y)->top; \
  40. (X)->right = (DCUINT16) ((Y)->right - 1) ; \
  41. (X)->bottom = (DCUINT16) ((Y)->bottom - 1) ;
  42. class CSL;
  43. class CUT;
  44. class CUI;
  45. class COR
  46. {
  47. public:
  48. COR(CObjs* objs);
  49. ~COR();
  50. public:
  51. //
  52. // API
  53. //
  54. DCVOID DCAPI OR_Init(DCVOID);
  55. DCVOID DCAPI OR_Term(DCVOID);
  56. DCVOID DCAPI OR_Enable(DCVOID);
  57. DCVOID DCAPI OR_Disable(DCVOID);
  58. DCVOID DCAPI OR_RequestUpdate(PDCVOID pData, DCUINT len);
  59. EXPOSE_CD_NOTIFICATION_FN(COR, OR_RequestUpdate);
  60. DCVOID DCAPI OR_SetSuppressOutput(ULONG_PTR newWindowState);
  61. EXPOSE_CD_SIMPLE_NOTIFICATION_FN(COR, OR_SetSuppressOutput);
  62. DCVOID DCAPI OR_OnBufferAvailable(DCVOID);
  63. public:
  64. //
  65. // Data members
  66. //
  67. OR_GLOBAL_DATA _OR;
  68. private:
  69. //
  70. // Internal member functions
  71. //
  72. DCVOID DCINTERNAL ORSendRefreshRectanglePDU(DCVOID);
  73. DCVOID DCINTERNAL ORSendSuppressOutputPDU(DCVOID);
  74. private:
  75. CSL* _pSl;
  76. CUT* _pUt;
  77. CUI* _pUi;
  78. private:
  79. CObjs* _pClientObjects;
  80. };
  81. #endif // _OR_H_