|
|
cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// MSNotify.h") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.") cpp_quote("//") cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") cpp_quote("// PARTICULAR PURPOSE.") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("")
import "objidl.idl"; import "oleidl.idl"; import "ocidl.idl"; import "mstask.idl";
interface INotification; interface INotificationMgr; interface INotificationSink; interface IEnumScheduleGroup; interface IEnumNotification; interface IScheduleGroup; interface INotificationReport;
typedef [unique] INotification *LPNOTIFICATION; typedef [unique] INotificationMgr *LPNOTIFICATIONMGR; typedef [unique] INotificationSink *LPNOTIFICATIONSINK; typedef [unique] IEnumNotification *LPENUMNOTIFICATION; typedef [unique] IEnumScheduleGroup *LPENUMSCHEDULEGROUP; typedef [unique] IScheduleGroup *LPSCHEDULEGROUP; typedef [unique] INotificationReport *LPNOTIFICATIONREPORT;
typedef REFGUID REFNOTIFICATIONTYPE; typedef GUID NOTIFICATIONTYPE, *PNOTIFICATIONTYPE;
// NOTIFICATIONCOOKIE: // The notification cookie is a GUID which is used to identify // a notification uniquely during the lifetime of a notification. // A notification can be persisted. typedef GUID NOTIFICATIONCOOKIE, *PNOTIFICATIONCOOKIE;
typedef struct _tagTASKDATA { ULONG cbSize; DWORD dwReserved; DWORD dwTaskFlags; DWORD dwPriority; DWORD dwDuration; DWORD nParallelTasks; // ... } TASK_DATA, *PTASK_DATA;
cpp_quote("") cpp_quote("////////////////////////////////////////////////////////////////////////////") cpp_quote("// Broadcast Destinations ") cpp_quote("EXTERN_C const CLSID CLSID_GLOBAL_BROADCAST ;") cpp_quote("EXTERN_C const CLSID CLSID_PROCESS_BROADCAST ;") cpp_quote("EXTERN_C const CLSID CLSID_THREAD_BROADCAST ;") cpp_quote("") cpp_quote("EXTERN_C const GUID CLSID_StdNotificationMgr ;") cpp_quote("") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_NULL ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_ANOUNCMENT ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASK ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_ALERT ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_INET_IDLE ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_INET_OFFLINE ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_INET_ONLINE ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASKS_SUSPEND ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASKS_RESUME ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASKS_ABORT ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASKS_COMPLETED ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASKS_PROGRESS ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_AGENT_INIT ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_AGENT_START ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_BEGIN_REPORT ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_END_REPORT ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_CONNECT_TO_INTERNET;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_DISCONNECT_FROM_INTERNET;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_CONFIG_CHANGED ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_PROGRESS_REPORT ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_USER_IDLE_BEGIN ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_USER_IDLE_END ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASKS_STARTED ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_TASKS_ERROR ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_d ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_e ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_f ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_11 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_12 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_13 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_14 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_ITEM_START ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_ITEM_RESTART ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_ITEM_DONE ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_GROUP_START ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_GROUP_RESTART ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_GROUP_DONE ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_0 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_1 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_2 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_3 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_4 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_5 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_6 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_7 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_8 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_9 ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_A ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_B ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_C ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_D ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_E ;") cpp_quote("EXTERN_C const GUID NOTIFICATIONTYPE_START_F ;")
cpp_quote("#define NOTIFICATIONTYPE_ALL NOTIFICATIONTYPE_NULL ")
cpp_quote("EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_DAILY ;") cpp_quote("EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_WEEKLY ;") cpp_quote("EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_MONTHLY ;") cpp_quote("EXTERN_C const GUID NOTFCOOKIE_SCHEDULE_GROUP_MANUAL ;")
cpp_quote("#ifndef _LPENUMPROPERTYMAP_DEFINED") cpp_quote("#define _LPENUMPROPERTYMAP_DEFINED")
[ local, object, uuid(c733e4a1-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface IEnumPropertyMap : IUnknown { typedef [unique] IEnumPropertyMap *LPENUMPROPERTYMAP;
typedef struct _tagSTATPROPMAP { // extent this to use a variant LPOLESTR pstrName; // name DWORD dwFlags; // null for now VARIANT variantValue; // the variant value
} STATPROPMAP, *LPSTATPROPMAP;
[local] HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATPROPMAP *rgelt, [out] ULONG *pceltFetched);
[call_as(Next)] HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATPROPMAP *rgelt, [out] ULONG *pceltFetched);
HRESULT Skip( [in] ULONG celt);
HRESULT Reset();
HRESULT Clone( [out] IEnumPropertyMap **ppenum); }
cpp_quote("#endif")
cpp_quote("#ifndef _LPPROPERTYMAP") cpp_quote("#define _LPPROPERTYMAP")
[ local, object, uuid(c733e4a2-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface IPropertyMap : IUnknown { typedef [unique] IPropertyMap *LPPROPERTYMAP;
HRESULT Write( [in] LPCWSTR pstrName, // name [in] VARIANT variantValue, // the variant value [in] DWORD dwFlags // null for now );
HRESULT Read( [in] LPCWSTR pstrName, // name [out] VARIANT *pVariantValue // the variant value );
HRESULT GetCount( [out] ULONG *pCount );
HRESULT GetEnumMAP( [out] LPENUMPROPERTYMAP *ppEnumMap );
} cpp_quote("#endif")
//+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995-1998. // // Contents: The notification description and INotification interface definition // // Description: // // Each notification (INotification) has an idendifier (ITEMID) which is a guid and // itentifies the notification type // // An notification is an object which can be send to a distination object via // a particular interface. The delivery mechanism can be a // scheduler or an advisor. // // The sources of an notification can be any any object or module. // // An notification can scheduled and delivered to the destination(s) according // the trigger time. // // An notification might be as simple as an alert or notification. It can // be a full object form the cache or the docfile. It can be an // announcment and data might not be available yet. // // Many notifications will in fact arrive with all data. // // The same object will expose I(Async)Moniker and the client // can call BindToXXX to bind to the object of the data. // //----------------------------------------------------------------------------
//+--------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation, 1995-1998. // // Contents: IEnumNotification interface definition // // Description: // // Enumerator overn Notifications. // //----------------------------------------------------------------------------
cpp_quote("#define NOTF_E_NOTIFICATION_NOT_DELIVERED _HRESULT_TYPEDEF_(0x800C0F00L) ")
cpp_quote("#ifndef _LPNOTIFICATION") cpp_quote("#define _LPNOTIFICATION")
[ local, object, uuid(c733e4a3-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface INotification : IPropertyMap { //typedef [unique] INotification *LPNOTIFICATION;
typedef enum _tagNOTFSINKMODE { // exclusive means deliver only // notification of the registered type // NM_Exclusive = 0x00000001 // launch me if an notification of // registered types arrives //,NM_Instantiate = 0x00000002 // the sink wants to get completion reports //,NM_CompletionReport = 0x00000004 // register permanently // NM_PERMANENT = 0x00000008 // // also accept directed notifications ,NM_ACCEPT_DIRECTED_NOTIFICATION = 0x00000010
} _NOTFSINKMODE;
typedef DWORD NOTFSINKMODE;
// // information about the notification itself // passed on by the creator of the notification to the scheduler // and to the advisor
typedef DWORD NOTIFICATIONFLAGS;
// // the adivse mode indicates how the adivse should be done // typedef enum _tagDELIVERMODE { // **** FLAGS HOW IT SHOULD BE DELIVERED *** // // the normal mode is to deliver imedialty // and async (postmessage to enter thread // of destination
// deliver with high priority // (thread entered with SendNotifyMessage DM_DELIVER_PREFERED = 0x00000001
// deliver delayed ,DM_DELIVER_DELAYED = 0x00000002
// always deliver the notification // even on was transmited just imedialty before ,DM_DELIVER_LAST_DELAYED = 0x00000004
// the notification should be delivered // imedialty and synchronouse //,DM_SYNCHRONOUS = 0x00000010
// deliver notification only if class is registered ,DM_ONLY_IF_RUNNING = 0x00000020
// notification is send input sync - meaning the // notification is dispatched before the call returns //,DM_INPUT_SYNCHRONOUS = 0x00000040
// the notification might be suspended // ,DM_THROTTLE_MODE = 0x00000080
// **** FLAGS ABOUT PROGRESS FROM THE NOTIFICATIONMGR ***
// the sender want a completion report (notification) ,DM_NEED_COMPLETIONREPORT = 0x00000100 // the send wants progress report // which means should be called the notification arrives // at the destination or gets triggered ,DM_NEED_PROGRESSREPORT = 0x00000200
// deliver the notification if there is // no update notification pending from // the sender or receiver //,DM_ONLY_IF_NOT_PENDING = 0x00001000
// // deliver to the default thread in this process // if not registered ,DM_DELIVER_DEFAULT_THREAD = 0x00000400
// deliver to the default process if // registered ,DM_DELIVER_DEFAULT_PROCESS = 0x00000800
// **** GROUP FLAGS *** // member of group - the notifications // are delivered sequentiall - meaning // a completion report is send by each one //,DM_GROUP_SEQUENTIAL = 0x00001000 // member of group - the notifications // are delivered at the same time - DEFAULT //,DM_GROUP_PARALLEL = 0x00000040
} _DELIVERMODE;
typedef DWORD DELIVERMODE;
// get the notification flags HRESULT GetNotificationInfo( [out] PNOTIFICATIONTYPE pNotificationType, [out] PNOTIFICATIONCOOKIE pNotificationCookie, [out] NOTIFICATIONFLAGS *pNotificationFlags, [out] DELIVERMODE *pDeliverMode, [in] DWORD dwReserved );
HRESULT Clone( //clones a notification with a new type; the cloned notification has a new cookie [in] REFNOTIFICATIONTYPE rNotificationType, // the new object just created [out] LPNOTIFICATION *ppNotification, [in] DWORD dwReserved );
} cpp_quote("#endif")
cpp_quote("#ifndef _LPNOTIFICATIONMGR_DEFINED") cpp_quote("#define _LPNOTIFICATIONMGR_DEFINED")
[ local, object, uuid(c733e4a4-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface INotificationMgr : IUnknown { //typedef [unique] INotificationMgr *LPNOTIFICATIONMGR;
typedef enum _tagGROUPMODE { // member of group - the notifications // are delivered sequentiall - meaning // a completion report is send by each one GM_GROUP_SEQUENTIAL = 0x00000001
} _GROUPMODE;
typedef DWORD GROUPMODE;
typedef enum _tagENUM_FLAGS { // // HOW TO USES THIS FLAGS // // these flags allow to specify which items // and what should be in the item when // enumerating notification items // // default is all items with notification // object
// // no notification object is returned EF_NOT_NOTIFICATION = 0x00000001 // not item of scheduled groups ,EF_NOT_SCHEDULEGROUPITEM = 0x00000002 // // ,EF_NOTIFICATION_INPROGRESS = 0x00000004 // // get items which are throttled // ,EF_NOTIFICATION_THROTTLED = 0x00000008 // ,EF_NOTIFICATION_SUSPENDED = 0x00000010
} _ENUM_FLAGS;
typedef DWORD ENUM_FLAGS;
typedef struct _tagNotificationItem { ULONG cbSize; // the notification itself LPNOTIFICATION pNotification; // the notification type NOTIFICATIONTYPE NotificationType; // flags which go with the notification NOTIFICATIONFLAGS NotificationFlags; // flags passed on deliver/schedule DELIVERMODE DeliverMode; // the cookie of the notification NOTIFICATIONCOOKIE NotificationCookie; // the task trigger TASK_TRIGGER TaskTrigger; // the task data TASK_DATA TaskData;
// group cookie if part of a group NOTIFICATIONCOOKIE groupCookie; // clsid of sender CLSID clsidSender; // clsid of destination CLSID clsidDest; // last run date FILETIME dateLastRun; // the next run date FILETIME dateNextRun; // state of the notification DWORD dwNotificationState;
} NOTIFICATIONITEM, *PNOTIFICATIONITEM;
HRESULT RegisterNotificationSink( [in] LPNOTIFICATIONSINK pNotfctnSink, // can be null - see mode [in] LPCLSID pNotificationDest, [in] NOTFSINKMODE NotfctnSinkMode, [in] ULONG cNotifications, [in] PNOTIFICATIONTYPE pNotificationIDs, [out] PNOTIFICATIONCOOKIE pRegisterCookie, [in] DWORD dwReserved );
HRESULT UnregisterNotificationSink( [in] PNOTIFICATIONCOOKIE pRegisterCookie );
HRESULT CreateNotification( // the type of notification [in] REFNOTIFICATIONTYPE rNotificationType, // creation flags [in] NOTIFICATIONFLAGS NotificationFlags, // the pUnkOuter for aggregation [in] LPUNKNOWN pUnkOuter, // the new object just created [out] LPNOTIFICATION *ppNotification, [in] DWORD dwReserved );
// find a scheduled notification HRESULT FindNotification( // the notification cookie [in] PNOTIFICATIONCOOKIE pNotificatioCookie, // the new object just created [out] PNOTIFICATIONITEM pNotificationItem, [in] DWORD grfEnumMode );
// deliver a notification HRESULT DeliverNotification( // the notificationid and object [in] LPNOTIFICATION pNotification, // destination [in] REFCLSID rNotificationDest, // deliver mode - group and schedule data [in] DELIVERMODE deliverMode, // info about who the sender [in] LPNOTIFICATIONSINK pReportNotfctnSink, // can be null - see mode // the notification update interface [out] LPNOTIFICATIONREPORT *ppNotfctnReport, // task data for notification [in] PTASK_DATA pTaskData );
// add notification to scheduler HRESULT ScheduleNotification( // the notificationid and object [in] LPNOTIFICATION pNotification, // destination [in] REFCLSID rNotificationDest, // deliver mode - group and schedule data [in] PTASK_TRIGGER pTaskTrigger, // flags which go with the TaskTrigger [in] PTASK_DATA pTaskData, // the mode how it should be delivered [in] DELIVERMODE deliverMode, // info about who the sender [in] LPCLSID pClsidSender, // class of sender can be NULL // sink to which updates from the receiver should arrive [in] LPNOTIFICATIONSINK pReportNotfctnSink, // can be null - see mode // the notification update object - only if completion report was requested [out] LPNOTIFICATIONREPORT *ppNotfctnReport, //the cookie of the new notification [out] PNOTIFICATIONCOOKIE pNotificationCookie, // reserved dword [in] DWORD dwReserved );
// add notification to scheduler HRESULT UpdateNotification( //the cookie of the new notification [in] PNOTIFICATIONCOOKIE pNotificationCookie, // deliver mode - group and schedule data [in] PTASK_TRIGGER pTaskTrigger, // flags which go with the TaskTrigger [in] PTASK_DATA pTaskData, // the mode how it should be delivered [in] DELIVERMODE deliverMode, // reserved dword [in] DWORD dwReserved );
HRESULT RevokeNotification( [in] PNOTIFICATIONCOOKIE pnotificationCookie, [out] PNOTIFICATIONITEM pNotificationItem, [in] DWORD grfEnumMode );
HRESULT GetEnumNotification( [in] DWORD grfEnumFlags, [out] LPENUMNOTIFICATION *ppEnumNotification );
// creates a new group HRESULT CreateScheduleGroup( // the group creation flags [in] DWORD grfGroupCreateFlags, // the new group [out] LPSCHEDULEGROUP *ppSchGroup, // the cookie of the group [out] PNOTIFICATIONCOOKIE pGroupCookie, [in] DWORD dwReserved );
// finds an existing group HRESULT FindScheduleGroup( [in] PNOTIFICATIONCOOKIE pGroupCookie, [out] LPSCHEDULEGROUP *ppSchGroup, // the cookie of the group [in] DWORD dwReserved );
// revokes an entire group from the scheduler HRESULT RevokeScheduleGroup( // cookie of group to be revoked [in] PNOTIFICATIONCOOKIE pGroupCookie, [out] LPSCHEDULEGROUP *ppSchGroup, [in] DWORD dwReserved );
// an enumerator over the groups in the scheduler HRESULT GetEnumScheduleGroup( [in] DWORD grfEnumFlags, [out] LPENUMSCHEDULEGROUP *ppEnumScheduleGroup );
HRESULT DeliverReport( // the notification object itself [in] LPNOTIFICATION pNotification, // the cookie of the object the notification is targeted too [in] PNOTIFICATIONCOOKIE pRunningNotfCookie, [in] DWORD dwReserved );
} cpp_quote("#endif")
cpp_quote("#ifndef _LPNOTIFICATIONSINK_DEFINED") cpp_quote("#define _LPNOTIFICATIONSINK_DEFINED")
[ local, object, uuid(c733e4a5-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface INotificationSink : IUnknown { //typedef [unique] INotificationSink *LPNOTIFICATIONSINK;
HRESULT OnNotification( // the notification object itself [in] LPNOTIFICATION pNotification, // the report sink if - can be NULL [in] LPNOTIFICATIONREPORT pNotfctnReport, [in] DWORD dwReserved ); } cpp_quote("#endif")
cpp_quote("#ifndef _LPGROUPMGR_DEFINED") cpp_quote("#define _LPGROUPMGR_DEFINED")
[ local, object, uuid(c733e4a6-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface IScheduleGroup : IUnknown { //typedef [unique] IScheduleGroup *LPSCHEDULEGROUP;
typedef struct _tagGroupInfo { ULONG cbSize; LPWSTR pwzGroupname;
} GROUPINFO, *PGROUPINFO;
// change the group attributes such as task trigger // name and mode - see mode for parallel and sequential HRESULT SetAttributes( // new task trigger [in] PTASK_TRIGGER pTaskTrigger, // the flags which go with the TaskTrigger [in] PTASK_DATA pTaskData, // new group cookie if sequential [in] PNOTIFICATIONCOOKIE pGroupCookie, // group data [in] PGROUPINFO pGroupInfo, // sequential or parallel [in] GROUPMODE grfGroupMode );
HRESULT GetAttributes( // new task trigger [out] PTASK_TRIGGER pTaskTrigger, // the flags which go with the TaskTrigger [out] PTASK_DATA pTaskData, // new group cookie if sequential [out] PNOTIFICATIONCOOKIE pGroupCookie, //group data info [out] PGROUPINFO pGroupInfo, // sequential or parallel [out] GROUPMODE *pgrfGroupMode, // number of elements in group [out] LONG *pElements );
// add notification to this group HRESULT AddNotification( // the notificationid and object [in] LPNOTIFICATION pNotification, // destination [in] REFCLSID rNotificationDest, // deliver mode - group and schedule data [in] DELIVERMODE deliverMode, // info about who the sender [in] LPCLSID pClsidSender, // class of sender can be NULL // sink to which updates from the receiver should arrive [in] LPNOTIFICATIONSINK pReportNotfctnSink, // can be null - see mode // the notification update object - only if completion report was requested [out] LPNOTIFICATIONREPORT *ppNotfctnReport, //the cookie of the new notification [out] PNOTIFICATIONCOOKIE pNotificationCookie, // task data for notification [in] PTASK_DATA pTaskData );
// find a notification in the group HRESULT FindNotification( // the notification cookie [in] PNOTIFICATIONCOOKIE pNotificatioCookie, // the new object just created [out] PNOTIFICATIONITEM pNotificationItem, [in] DWORD dwReserved );
// only for completness HRESULT RevokeNotification( [in] PNOTIFICATIONCOOKIE pnotificationCookie, [out] PNOTIFICATIONITEM pschedulNotification, [in] DWORD dwReserved );
// an enumerator over the items in this group HRESULT GetEnumNotification( // flags which items to enumerate [in] DWORD grfFlags, [out] LPENUMNOTIFICATION *ppEnumNotification ); } cpp_quote("#endif")
cpp_quote("#ifndef _LPENUMSCHEDULEGROUP_DEFINED") cpp_quote("#define _LPENUMSCHEDULEGROUP_DEFINED")
[ local, object, uuid(c733e4a9-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface IEnumScheduleGroup : IUnknown { //typedef [unique] IEnumScheduleGroup *LPENUMSCHEDULEGROUP;
[local] HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPSCHEDULEGROUP *rgelt, [out] ULONG *pceltFetched);
[call_as(Next)] HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPSCHEDULEGROUP *rgelt, [out] ULONG *pceltFetched);
HRESULT Skip( [in] ULONG celt);
HRESULT Reset();
HRESULT Clone( [out] IEnumScheduleGroup **ppenum);
} cpp_quote("#endif")
cpp_quote("#ifndef _LPENUMNOTIFICATION_DEFINED") cpp_quote("#define _LPENUMNOTIFICATION_DEFINED")
[ local, object, uuid(c733e4a8-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface IEnumNotification : IUnknown { //typedef [unique] IEnumNotification *LPENUMNOTIFICATION;
[local] HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] NOTIFICATIONITEM *rgelt, [out] ULONG *pceltFetched);
[call_as(Next)] HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] NOTIFICATIONITEM *rgelt, [out] ULONG *pceltFetched);
HRESULT Skip( [in] ULONG celt);
HRESULT Reset();
HRESULT Clone( [out] IEnumNotification **ppenum); }
cpp_quote("#endif")
/// cpp_quote("#ifndef _LPNOTIFICATIONREPORT_DEFINED") cpp_quote("#define _LPNOTIFICATIONREPORT_DEFINED")
[ local, object, uuid(c733e4a7-576e-11d0-b28c-00c04fd7cd22), pointer_default(unique) ]
interface INotificationReport : IUnknown { //typedef [unique] INotificationReport *LPNOTIFICATIONREPORT;
HRESULT DeliverUpdate( // the reply notification object itself [in] LPNOTIFICATION pNotification, // not completion report allowed here [in] DELIVERMODE deliverMode, // the cookie of the object the notification is targeted too [in] DWORD dwReserved );
// get the original notification this report objet belongs too HRESULT GetOriginalNotification( [out] LPNOTIFICATION *ppNotification );
// get the status of the the notification in progress // such as pending notification etc. HRESULT GetNotificationStatus( // what kind of status [in] DWORD dwStatusIn, // flags if update notification is pending etc. [out] DWORD *pdwStatusOut, [in] DWORD dwReserved );
} cpp_quote("#endif")
/// cpp_quote("#ifndef _NOTIFICAITON_HELPER_APIS_") cpp_quote("#define _NOTIFICAITON_HELPER_APIS_") cpp_quote("// ") cpp_quote("// HELPER APIS ") cpp_quote("// ") cpp_quote("STDAPI NotfDeliverNotification(REFNOTIFICATIONTYPE rNotificationType ") cpp_quote(" ,REFCLSID rClsidDest ") cpp_quote(" ,DELIVERMODE deliverMode ") cpp_quote(" ,DWORD dwReserved ") cpp_quote(" ); ") cpp_quote(" ") cpp_quote(" ") cpp_quote("#endif")
|