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.

175 lines
4.5 KiB

  1. #ifndef _notfcvt_h
  2. #define _notfcvt_h
  3. typedef enum
  4. {
  5. PT_NOT_INITIALIZED = 0 //
  6. ,PT_NORMAL = 1
  7. ,PT_WITHREPLY
  8. ,PT_REPORT_TO_SENDER
  9. ,PT_REPORT_TO_DEST
  10. ,PT_INVALID
  11. ,PT_GROUPLEADER
  12. ,PT_GROUPMEMBER
  13. } PACKAGE_TYPE;
  14. // package flags inidicate what the package is doing and is
  15. typedef enum
  16. {
  17. PF_READY = 0x00000001
  18. ,PF_RUNNING = 0x00000002
  19. ,PF_WAITING = 0x00000004
  20. ,PF_REVOKED = 0x00000008
  21. ,PF_SUSPENDED = 0x00000010
  22. ,PF_ABORTED = 0x00000020
  23. // the pacakge was delivered cross process
  24. ,PF_CROSSPROCESS = 0x00010000
  25. ,PF_SCHEDULED = 0x00020000
  26. ,PF_DELIVERED = 0x00040000
  27. ,PF_DISPATCHED = 0x00080000
  28. // idle flags
  29. ,PF_WAITING_USER_IDLE= 0x00100000
  30. } _PACKAGE_FLAGS;
  31. typedef DWORD PACKAGE_FLAGS;
  32. typedef enum _tagPACKAGE_CONTENT_ENUM
  33. {
  34. PC_EMPTY = 0x00000000
  35. ,PC_CLSIDSENDER = 0x00000001
  36. ,PC_CLSIDDEST = 0x00000002
  37. ,PC_GROUPCOOKIE = 0x00000004
  38. ,PC_RUNCOOKIE = 0x00000008
  39. ,PC_TASKTRIGGER = 0x00000010
  40. ,PC_TASKDATA = 0x00000020
  41. ,PC_BASECOOKIE = 0x00000040
  42. ,PC_CLSID = 0x00000100
  43. ,PC_SINK = 0x00000200
  44. ,PC_THREADID = 0x00000400
  45. } PACKAGE_CONTENT_ENUM;
  46. typedef DWORD PACKAGE_CONTENT;
  47. struct NOTIFICATIONITEMEXTRA
  48. {
  49. DELIVERMODE deliverMode;
  50. FILETIME dateNextRun; // Ignore
  51. FILETIME datePrevRun;
  52. NOTIFICATIONCOOKIE RunningCookie; // Ignore
  53. NOTIFICATIONCOOKIE BaseCookie; // Ignore
  54. PACKAGE_TYPE PackageType;
  55. PACKAGE_FLAGS PackageFlags;
  56. PACKAGE_CONTENT PackageContent;
  57. DWORD dwThreadIdDestPort; // Ignore
  58. HWND hWndDestPort; // Ignore
  59. };
  60. typedef struct _tagSaveSTATPROPMAP
  61. {
  62. DWORD cbSize;
  63. DWORD cbStrLen;
  64. DWORD dwFlags;
  65. DWORD cbVarSizeExtra;
  66. } SaveSTATPROPMAP;
  67. #ifndef __msnotify_h__
  68. EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_DAILY;
  69. EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_WEEKLY;
  70. EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_MONTHLY;
  71. EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_MANUAL;
  72. typedef GUID NOTIFICATIONTYPE;
  73. typedef GUID NOTIFICATIONCOOKIE;
  74. typedef DWORD NOTIFICATIONFLAGS;
  75. typedef
  76. enum _tagDELIVERMODE
  77. { DM_DELIVER_PREFERED = 0x1,
  78. DM_DELIVER_DELAYED = 0x2,
  79. DM_DELIVER_LAST_DELAYED = 0x4,
  80. DM_ONLY_IF_RUNNING = 0x20,
  81. DM_THROTTLE_MODE = 0x80,
  82. DM_NEED_COMPLETIONREPORT = 0x100,
  83. DM_NEED_PROGRESSREPORT = 0x200,
  84. DM_DELIVER_DEFAULT_THREAD = 0x400,
  85. DM_DELIVER_DEFAULT_PROCESS = 0x800
  86. } _DELIVERMODE;
  87. typedef DWORD DELIVERMODE;
  88. typedef struct _tagTASKDATA
  89. {
  90. ULONG cbSize;
  91. DWORD dwReserved;
  92. DWORD dwTaskFlags;
  93. DWORD dwPriority;
  94. DWORD dwDuration;
  95. DWORD nParallelTasks;
  96. } TASK_DATA;
  97. typedef struct _tagTASKDATA __RPC_FAR *PTASK_DATA;
  98. typedef void *LPNOTIFICATION;
  99. typedef struct _tagNotificationItem
  100. {
  101. ULONG cbSize;
  102. LPNOTIFICATION pNotification;
  103. NOTIFICATIONTYPE NotificationType;
  104. NOTIFICATIONFLAGS NotificationFlags;
  105. DELIVERMODE DeliverMode;
  106. NOTIFICATIONCOOKIE NotificationCookie;
  107. TASK_TRIGGER TaskTrigger;
  108. TASK_DATA TaskData;
  109. NOTIFICATIONCOOKIE groupCookie;
  110. CLSID clsidSender;
  111. CLSID clsidDest;
  112. FILETIME dateLastRun;
  113. FILETIME dateNextRun;
  114. DWORD dwNotificationState;
  115. } NOTIFICATIONITEM;
  116. typedef struct _tagNotificationItem __RPC_FAR *PNOTIFICATIONITEM;
  117. typedef DWORD GROUPMODE;
  118. #endif // __msnotify_h__
  119. typedef enum
  120. {
  121. GS_Created = 0
  122. ,GS_Running = 1
  123. ,GS_Initialized = 2
  124. } GROUP_STATE;
  125. typedef enum
  126. {
  127. GT_NORMAL = 0x00000001
  128. ,GT_STATIC = 0x00000002
  129. } _GROUP_TYPE;
  130. typedef DWORD GROUP_TYPE;
  131. typedef struct _tagSCHEDULEGROUPITEM
  132. {
  133. ULONG cbSize;
  134. ULONG cElements; // the # of packages in the group
  135. NOTIFICATIONCOOKIE GroupCookie;
  136. GROUPMODE grfGroupMode;
  137. GROUP_STATE grpState;
  138. TASK_TRIGGER TaskTrigger;
  139. TASK_DATA TaskData;
  140. GROUP_TYPE GroupType;
  141. GROUPINFO GroupInfo;
  142. } SCHEDULEGROUPITEM, *PSCHEDULEGROUPITEM;
  143. HRESULT ConvertIE4Subscriptions();
  144. #endif // _notfcvt_h