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.

142 lines
4.3 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992-1998.
  5. //
  6. // File: notftn.idl
  7. //
  8. // Contents: wrapper idl for the msnotify.idl
  9. // private interfaces are in this idl file
  10. //
  11. // Classes:
  12. //
  13. // Functions:
  14. //
  15. // History: 1-09-1997 JohannP (Johann Posch) Created
  16. //
  17. //----------------------------------------------------------------------------
  18. import "msnotify.idl";
  19. #pragma midl_echo("#include <msnotify.h> ")
  20. //
  21. // private interface; used by notfmgr only
  22. //
  23. cpp_quote("#ifndef _LPNOTIFICATIONRUNNING_DEFINED")
  24. cpp_quote("#define _LPNOTIFICATIONRUNNING_DEFINED")
  25. [
  26. local,
  27. object,
  28. uuid(c733e4ad-576e-11d0-b28c-00c04fd7cd22),
  29. pointer_default(unique)
  30. ]
  31. interface INotificationRunning : IUnknown
  32. {
  33. typedef [unique] INotificationRunning *LPNOTIFICATIONRUNNING;
  34. }
  35. cpp_quote("#endif")
  36. //
  37. // this interface is not public yet
  38. //
  39. cpp_quote("#ifndef _LPNOTIFICATIONPROCESSMGR0_DEFINED")
  40. cpp_quote("#define _LPNOTIFICATIONPROCESSMGR0_DEFINED")
  41. [
  42. local,
  43. object,
  44. uuid(c733e4ae-576e-11d0-b28c-00c04fd7cd22),
  45. pointer_default(unique)
  46. ]
  47. interface INotificationProcessMgr0 : IUnknown
  48. {
  49. typedef [unique] INotificationProcessMgr0 *LPNOTIFICATIONPROCESSMGR0;
  50. typedef enum _tagNOTIFICATIONMGRMODE
  51. {
  52. // **** FLAGS OF THE NOTIFICATIONMGR ***
  53. //
  54. // the normal mode is to deliver imedialty
  55. // and async (postmessage to enter thread
  56. // of destination
  57. // this process is the default process
  58. NM_DEFAULT_PROCESS = 0x00000001
  59. // set this thread as the default thread of this process
  60. ,NM_DEFAULT_THREAD = 0x00000002
  61. } _NOTIFICATIONMGRMODE;
  62. typedef DWORD NOTIFICATIONMGRMODE;
  63. HRESULT SetMode(
  64. // the clsid of the process
  65. [in] REFCLSID rClsID,
  66. // initialization mode
  67. [in] NOTIFICATIONMGRMODE NotificationMgrMode,
  68. // out previous default notification mgr
  69. [out] LPCLSID *pClsIDPre,
  70. // a reserved again
  71. [in] DWORD dwReserved
  72. );
  73. //
  74. //
  75. //
  76. typedef enum _tagTHROTTLE_ITEMS_FLAGS
  77. {
  78. // do not deliver a scheduled item with this type
  79. TF_DONT_DELIVER_SCHEDULED_ITEMS = 0x00000001
  80. // apply the time range of the structur; do not deliver during that range
  81. ,TF_APPLY_EXCLUDE_RANGE = 0x00000002
  82. // items should not be delivered in shorter time distance as specified in
  83. // the dwMinItemUpdateInterval in minutes
  84. ,TF_APPLY_UPDATEINTERVAL = 0x00000004
  85. } _THROTTLE_ITEMS_FLAGS;
  86. typedef DWORD THROTTLE_ITEMS_FLAGS;
  87. typedef struct THROTTLEITEM
  88. {
  89. // type of notification to be throttled
  90. NOTIFICATIONTYPE NotificationType;
  91. // maximum intances running parallel
  92. LONG nParallel;
  93. // mode flag: TBD
  94. DWORD dwFlags;
  95. // begin time it can run
  96. SYSTEMTIME stBegin;
  97. // end time it can run
  98. SYSTEMTIME stEnd;
  99. // the mimimum update interval in minutes
  100. DWORD dwMinItemUpdateInterval;
  101. } THROTTLEITEM, *PTHROTTLEITEM;
  102. HRESULT RegisterThrottleNotificationType(
  103. [in] ULONG cItems,
  104. [in, size_is(cItems)]
  105. PTHROTTLEITEM pThrottleItems,
  106. [out] ULONG *pcItemsOut,
  107. [out] PTHROTTLEITEM *ppThrottleItemsOut,
  108. [in] DWORD dwMode,
  109. [in] DWORD dwReserved
  110. );
  111. }
  112. cpp_quote("#endif")
  113. //
  114. // unimplemented deliver modes
  115. //
  116. cpp_quote("#define DM_SYNCHRONOUS 0x00000010 ")
  117. cpp_quote("#define DM_ONLY_IF_NOT_PENDING 0x00001000 ")