143 lines
4.2 KiB
Plaintext
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 ")
|
|
|
|
|