windows-nt/Source/XPSP1/NT/public/sdk/inc/notftn.idl
2020-09-26 16:20:57 +08:00

143 lines
4.2 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992-1998.
//
// File: notftn.idl
//
// Contents: wrapper idl for the msnotify.idl
// private interfaces are in this idl file
//
// Classes:
//
// Functions:
//
// History: 1-09-1997 JohannP (Johann Posch) Created
//
//----------------------------------------------------------------------------
import "msnotify.idl";
#pragma midl_echo("#include <msnotify.h> ")
//
// private interface; used by notfmgr only
//
cpp_quote("#ifndef _LPNOTIFICATIONRUNNING_DEFINED")
cpp_quote("#define _LPNOTIFICATIONRUNNING_DEFINED")
[
local,
object,
uuid(c733e4ad-576e-11d0-b28c-00c04fd7cd22),
pointer_default(unique)
]
interface INotificationRunning : IUnknown
{
typedef [unique] INotificationRunning *LPNOTIFICATIONRUNNING;
}
cpp_quote("#endif")
//
// this interface is not public yet
//
cpp_quote("#ifndef _LPNOTIFICATIONPROCESSMGR0_DEFINED")
cpp_quote("#define _LPNOTIFICATIONPROCESSMGR0_DEFINED")
[
local,
object,
uuid(c733e4ae-576e-11d0-b28c-00c04fd7cd22),
pointer_default(unique)
]
interface INotificationProcessMgr0 : IUnknown
{
typedef [unique] INotificationProcessMgr0 *LPNOTIFICATIONPROCESSMGR0;
typedef enum _tagNOTIFICATIONMGRMODE
{
// **** FLAGS OF THE NOTIFICATIONMGR ***
//
// the normal mode is to deliver imedialty
// and async (postmessage to enter thread
// of destination
// this process is the default process
NM_DEFAULT_PROCESS = 0x00000001
// set this thread as the default thread of this process
,NM_DEFAULT_THREAD = 0x00000002
} _NOTIFICATIONMGRMODE;
typedef DWORD NOTIFICATIONMGRMODE;
HRESULT SetMode(
// the clsid of the process
[in] REFCLSID rClsID,
// initialization mode
[in] NOTIFICATIONMGRMODE NotificationMgrMode,
// out previous default notification mgr
[out] LPCLSID *pClsIDPre,
// a reserved again
[in] DWORD dwReserved
);
//
//
//
typedef enum _tagTHROTTLE_ITEMS_FLAGS
{
// do not deliver a scheduled item with this type
TF_DONT_DELIVER_SCHEDULED_ITEMS = 0x00000001
// apply the time range of the structur; do not deliver during that range
,TF_APPLY_EXCLUDE_RANGE = 0x00000002
// items should not be delivered in shorter time distance as specified in
// the dwMinItemUpdateInterval in minutes
,TF_APPLY_UPDATEINTERVAL = 0x00000004
} _THROTTLE_ITEMS_FLAGS;
typedef DWORD THROTTLE_ITEMS_FLAGS;
typedef struct THROTTLEITEM
{
// type of notification to be throttled
NOTIFICATIONTYPE NotificationType;
// maximum intances running parallel
LONG nParallel;
// mode flag: TBD
DWORD dwFlags;
// begin time it can run
SYSTEMTIME stBegin;
// end time it can run
SYSTEMTIME stEnd;
// the mimimum update interval in minutes
DWORD dwMinItemUpdateInterval;
} THROTTLEITEM, *PTHROTTLEITEM;
HRESULT RegisterThrottleNotificationType(
[in] ULONG cItems,
[in, size_is(cItems)]
PTHROTTLEITEM pThrottleItems,
[out] ULONG *pcItemsOut,
[out] PTHROTTLEITEM *ppThrottleItemsOut,
[in] DWORD dwMode,
[in] DWORD dwReserved
);
}
cpp_quote("#endif")
//
// unimplemented deliver modes
//
cpp_quote("#define DM_SYNCHRONOUS 0x00000010 ")
cpp_quote("#define DM_ONLY_IF_NOT_PENDING 0x00001000 ")