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.

48 lines
2.1 KiB

  1. /*
  2. * _NOTIFY.H
  3. *
  4. * WAB Notification Engine Headers
  5. *
  6. * Copyright 1996 Microsoft Corporation. All Rights Reserved.
  7. */
  8. #define MAX_NOTIFICATION_SPACE 0x10000 // maximum size of shared memory
  9. #define WAB_W_NO_ADVISE (MAKE_MAPI_S(0x1002))
  10. // Notification node structure for Global Notification List
  11. typedef struct _NOTIFICATION_NODE {
  12. ULONG ulIdentifier; // unique identifier for this notification
  13. ULONG ulCount; // number of advise processes that have seen it
  14. NOTIFICATION Notification; // notification structure
  15. struct _NOTIFICATION_NODE * lpNext; // Pointer to next node
  16. ULONG cbData; // size of data in bytes
  17. BYTE Data[]; // additional data for this node
  18. } NOTIFICATION_NODE, * LPNOTIFICATION_NODE;
  19. // Notification list structure for Global Notification List
  20. typedef struct _NOTICATION_LIST {
  21. ULONG cAdvises; // Number of advise processes
  22. ULONG cEntries; // Number of entries in the list
  23. ULONG ulNextIdentifier; // next notification identifer
  24. LPNOTIFICATION_NODE lpNode; // First node in list or NULL if empty
  25. } NOTIFICATION_LIST, *LPNOTIFICATION_LIST;
  26. // Advise node structure for Local Advise List
  27. typedef struct _ADVISE_NODE {
  28. ULONG ulConnection; // connection identifier
  29. ULONG ulEventMask; // mask of event types
  30. LPMAPIADVISESINK lpAdviseSink; // AdviseSink object to be called on notification
  31. struct _ADVISE_NODE * lpNext; // next node in AdviseList
  32. struct _ADVISE_NODE * lpPrev; // next node in AdviseList
  33. ULONG cbEntryID; // size of lpEntryID
  34. BYTE EntryID[]; // EntryID of object to advise on
  35. } ADVISE_NODE, *LPADVISE_NODE;
  36. // Advise list structure for Local Advise List
  37. typedef struct _ADVISE_LIST {
  38. ULONG cAdvises; // Number of nodes in the list
  39. LPADVISE_NODE lpNode;
  40. } ADVISE_LIST, *LPADVISE_LIST;
  41. HRESULT HrFireNotification(LPNOTIFICATION lpNotification);