mirror of https://github.com/UMSKT/xpmgr.git
634 lines
23 KiB
Plaintext
634 lines
23 KiB
Plaintext
//+--------------------------------------------------------------------------------
|
|
// evtsnk.idl
|
|
//
|
|
// Purpose:
|
|
// Defines the callback interfaces that an event sink (event handler) must
|
|
// implement to process the external event interfaces specific to the
|
|
// Exchange Platinum Store.
|
|
//
|
|
// Copyright (C) 1997-1999 Microsoft Corporation
|
|
//
|
|
//+--------------------------------------------------------------------------------
|
|
import "wtypes.idl";
|
|
import "ocidl.idl";
|
|
|
|
//==================================================================================
|
|
// Interface defs
|
|
//==================================================================================
|
|
|
|
//------------------------------------------------------------------------
|
|
// IExStoreEventInfo
|
|
// This interface is implemented by the provider and passed to the
|
|
// event handler allowing the handler to retrieve (and set) further
|
|
// information regarding the event.")
|
|
//-------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(9da0e100-86ce-11d1-8699-00c04fb98036),
|
|
helpstring("IExStoreEventInfo Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IExStoreEventInfo : IUnknown
|
|
{
|
|
[local]
|
|
HRESULT GetEventItem(
|
|
[in] REFIID riid,
|
|
[out] DWORD * pdwBindStatus,
|
|
[out, iid_is(riid)] IUnknown ** ppunkEventItem);
|
|
|
|
[call_as(GetEventItem)]
|
|
HRESULT RemoteGetEventItem(
|
|
[in] REFIID riid,
|
|
[out] DWORD * pdwBindStatus,
|
|
[out, iid_is(riid)] IUnknown ** ppunkEventItem);
|
|
|
|
[local,helpstring("Get session for this event")]
|
|
HRESULT GetEventSession(
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] IUnknown ** ppSession);
|
|
|
|
[call_as(GetEventSession)]
|
|
HRESULT RemoteGetEventSession(
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] IUnknown ** ppSession);
|
|
|
|
[helpstring("Abort synchronous operation on this event item")]
|
|
HRESULT Abort(
|
|
[in, defaultvalue(0)] LONG lErrorCode);
|
|
};
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------------
|
|
// IExStoreDispEventInfo
|
|
// This interface is a IDispatch compatible event info object implemented by the provider
|
|
// and passed to the event handler.
|
|
// VB sink implentor should use the following example.
|
|
// Implements IExStoreSyncEvents
|
|
// Public sub IExStoreSyncEvents_OnSyncSave(ByVal pEventInfo As ExevtsnkLib.IExStoreEventInfo,..
|
|
// Dim dispInfo As IExStoreDispEventInfo
|
|
// Set dispInfo = pEventInfo
|
|
//---------------------------------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(9da0e110-86ce-11d1-8699-00c04fb98036),
|
|
helpstring("IExStoreDispEventInfo Interface"),
|
|
dual,
|
|
oleautomation,
|
|
pointer_default(unique)
|
|
]
|
|
interface IExStoreDispEventInfo : IDispatch
|
|
{
|
|
#ifdef EXOLEDBPROXY
|
|
[local,helpstring("Get ADO connection"),propget]
|
|
HRESULT EventConnection([out,retval] IDispatch **ppConnection);
|
|
|
|
[call_as(get_EventConnection),helpstring("Get ADO connection"),propget]
|
|
HRESULT RemoteEventConnection([out,retval] IDispatch **ppConnection);
|
|
|
|
[local,helpstring("Get ADO record"),propget]
|
|
HRESULT EventRecord([out,retval] IDispatch **ppRecord);
|
|
|
|
[call_as(get_EventRecord),helpstring("Get ADO record"),propget]
|
|
HRESULT RemoteEventRecord([out,retval] IDispatch **ppRecord);
|
|
|
|
#else
|
|
|
|
[helpstring("Get ADO connection"),propget]
|
|
HRESULT EventConnection([out,retval] IDispatch **ppConnection);
|
|
|
|
[helpstring("Get ADO record"),propget]
|
|
HRESULT EventRecord([out,retval] IDispatch **ppRecord);
|
|
|
|
#endif
|
|
|
|
[helpstring("Abort any change on this event item")]
|
|
HRESULT AbortChange([in, defaultvalue(0)] LONG lErrorCode);
|
|
|
|
[helpstring("Get original source URL during OnSyncSave event caused by move"), propget]
|
|
HRESULT SourceURL([out,retval] BSTR * pbstrURL);
|
|
|
|
[helpstring("Get User GUID who caused this synchronous event"), propget]
|
|
HRESULT UserGuid([out,retval] BSTR * pvarUserGuid);
|
|
|
|
[helpstring("Get Store GUID on which this synchronous event occurrs"), propget]
|
|
HRESULT StoreGuid([out,retval] BSTR * pvarStoreGuid);
|
|
|
|
[helpstring("Get User SID who caused this synchronous event"), propget]
|
|
HRESULT UserSid([out,retval] VARIANT * pvarSid);
|
|
|
|
[helpstring("Get Data"), propget]
|
|
HRESULT Data([out, retval] LONG_PTR * plData);
|
|
|
|
[helpstring("Set Data"), propput]
|
|
HRESULT Data([in] LONG_PTR lData);
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------------------
|
|
// IExStoreEventRegistrationURL
|
|
// Get URL for the event registration msg
|
|
//---------------------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(9da0e117-86ce-11d1-8699-00c04fb98036),
|
|
dual,
|
|
helpstring("IExStoreEventRegistrationURL interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IExStoreEventRegistrationURL : IDispatch
|
|
{
|
|
[helpstring("URL for the event registration item"),propget]
|
|
HRESULT EventRegistrationURL([out,retval] BSTR *pbstrURL);
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------------------
|
|
// IStoreGuidFromUrl
|
|
// Get MDB GUID from the given URL
|
|
//---------------------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(9da0e10c-86ce-11d1-8699-00c04fb98036),
|
|
dual,
|
|
helpstring("IStoreGuidFromUrl interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IStoreGuidFromUrl : IDispatch
|
|
{
|
|
[helpstring("Get Store GUID from URL")] HRESULT StoreGuidFromUrl(
|
|
[in] BSTR bstrUrl,
|
|
[out,retval] BSTR * pbstrGuid);
|
|
};
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------------
|
|
// IExStoreEventLogonInfo
|
|
// This interface supplies information on the user logon which caused the sync events.
|
|
//------------------------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(9da0e111-86ce-11d1-8699-00c04fb98036),
|
|
helpstring("IExStoreEventLogonInfo Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IExStoreEventLogonInfo : IUnknown
|
|
{
|
|
[helpstring("Get User GUID who caused this synchronous event")]
|
|
HRESULT GetUserGuid(
|
|
[in,out] GUID * pguid);
|
|
|
|
[helpstring("Get Store GUID on which this synchronous event occurrs")]
|
|
HRESULT GetStoreGuid(
|
|
[in,out] GUID * pguid);
|
|
|
|
[helpstring("Get User SID who caused this synchronous event")]
|
|
HRESULT GetUserSid(
|
|
[out] SID ** ppsid);
|
|
};
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------------------------------------------
|
|
// IGetSourceURL
|
|
// This interface allows to get the original source URL during OnSyncSave event caused by move operation.
|
|
//----------------------------------------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(9da0e10b-86ce-11d1-8699-00c04fb98036),
|
|
helpstring("IGetSourceURL Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IGetSourceURL : IUnknown
|
|
{
|
|
[helpstring("Get original source URL during OnSyncSave event caused by move")]
|
|
HRESULT GetSourceURL(
|
|
[out,retval] BSTR *pbstrURL);
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------------------
|
|
// IGetLockRow
|
|
// This interface allows to get Lock row during lock/unlock events
|
|
//-----------------------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
helpstring("IGetLockRow Interface"),
|
|
pointer_default(unique),
|
|
uuid(9da0e0ef-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface IGetLockRow : IUnknown
|
|
{
|
|
#ifdef EXOLEDBPROXY
|
|
[local]
|
|
HRESULT GetLockRow(
|
|
[in] REFIID riid,
|
|
[out] DWORD * pdwBindStatus,
|
|
[out, iid_is(riid)] IUnknown ** ppunkLockRow);
|
|
|
|
[call_as(GetLockRow)]
|
|
HRESULT RemoteGetLockRow(
|
|
[in] REFIID riid,
|
|
[out] DWORD * pdwBindStatus,
|
|
[out, iid_is(riid)] IUnknown ** ppunkLockRow);
|
|
#else
|
|
[helpstring("Bind to LOCK row which caused this lock/unlock event")]
|
|
HRESULT GetLockRow(
|
|
[in] REFIID riid,
|
|
[out] DWORD * pdwBindStatus,
|
|
[out, iid_is(riid)] IUnknown ** ppunkLockRow);
|
|
#endif
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------------------------
|
|
// IAsyncNotify
|
|
// This interface is used by server event to notify status of reliable async event.
|
|
//------------------------------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(9da0e10a-86ce-11d1-8699-00c04fb98036),
|
|
helpstring("IAsyncNotify Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAsyncNotify : IUnknown
|
|
{
|
|
[helpstring("Reliable asynchronous event has finished")]
|
|
HRESULT Completed();
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------------------
|
|
// IExStoreAsyncEvents -- Asynchronous Event Sink Interface
|
|
// This is the callback interface that an asynchronous event handler
|
|
// (event sink) must implement for asynchronous event handling.
|
|
//-----------------------------------------------------------------------------------------
|
|
[
|
|
helpstring("IExStoreAsyncEvents"),object,pointer_default(unique),
|
|
uuid(9da0e0fe-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface IExStoreAsyncEvents : IUnknown
|
|
{
|
|
HRESULT OnSave(
|
|
[in] IExStoreEventInfo * pEventInfo,
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags);
|
|
|
|
HRESULT OnDelete(
|
|
[in] IExStoreEventInfo * pEventInfo,
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags);
|
|
};
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------------
|
|
// IExStoreSyncEvents -- Synchronous Event Sink Interface
|
|
// This is the callback interface that a Synchronous event handler
|
|
// (event sink) must implement.
|
|
//------------------------------------------------------------------------------------------
|
|
[
|
|
helpstring("IExStoreSyncEvents"),object,pointer_default(unique),
|
|
uuid(9da0e0ff-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface IExStoreSyncEvents : IUnknown
|
|
{
|
|
HRESULT OnSyncSave(
|
|
[in] IExStoreEventInfo * pEventInfo,
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags);
|
|
|
|
HRESULT OnSyncDelete(
|
|
[in] IExStoreEventInfo * pEventInfo,
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags);
|
|
|
|
};
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
// IExStoreSystemEvents -- Asynchronous System Event Sink Interface
|
|
// This is the callback interface that a system event handler must implement.
|
|
//-------------------------------------------------------------------------------------------------
|
|
[
|
|
helpstring("IExStoreSystemEvents"),object,pointer_default(unique),
|
|
uuid(9da0e101-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface IExStoreSystemEvents : IUnknown
|
|
{
|
|
HRESULT OnTimer(
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags);
|
|
|
|
HRESULT OnMDBStartUp(
|
|
[in] BSTR bstrMDBGuid,
|
|
[in] BSTR bstrMDBName,
|
|
[in] LONG lFlags);
|
|
|
|
HRESULT OnMDBShutDown(
|
|
[in] BSTR bstrMDBGuid,
|
|
[in] LONG lFlags);
|
|
};
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------------
|
|
// IExStoreLockEvents -- Synchronous Lock Event Sink Interface
|
|
// This is the callback interface that a Lock Event handler must implement.
|
|
//------------------------------------------------------------------------------------------
|
|
[
|
|
helpstring("IExStoreLockEvents"),object,pointer_default(unique),
|
|
uuid(9da0e10e-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface IExStoreLockEvents : IUnknown
|
|
{
|
|
HRESULT OnSyncLock(
|
|
[in] IExStoreEventInfo * pEventInfo,
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags);
|
|
|
|
HRESULT OnSyncUnlock(
|
|
[in] IExStoreEventInfo * pEventInfo,
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags);
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------------------
|
|
// IUserData --- Allows the caller to set data during Begin phase of event
|
|
// and retrieve it during Commit/Abort phase.
|
|
//---------------------------------------------------------------------------------------
|
|
[
|
|
helpstring("IUserData"),object,pointer_default(unique),
|
|
uuid(9da0e116-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface IUserData : IUnknown
|
|
{
|
|
HRESULT GetData(
|
|
[out] LONG_PTR * plData);
|
|
|
|
HRESULT SetData(
|
|
[in] LONG_PTR lData);
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------------------
|
|
// IEventSinkIsCacheable
|
|
// This interface is implemented by the event sink and tells Exchange store
|
|
// how to handle (store) event sink object..
|
|
//
|
|
// Possible return values:
|
|
// S_FALSE not cached
|
|
// S_OK ???
|
|
//---------------------------------------------------------------------------------------
|
|
[
|
|
helpstring("IEventSinkIsCacheable"),
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(9da0e118-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface IEventSinkIsCacheable : IUnknown
|
|
{
|
|
HRESULT IsCacheable();
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// ICreateRegistration
|
|
// This (optional) interface is implemented by event sink and tells Exchange store
|
|
// whether to allow or deny saving of event registration item
|
|
// The return hr value is ignored. If phr contains
|
|
// S_OK allow saving of event registration item
|
|
// S_FALSE deny
|
|
//--------------------------------------------------------------------------------------
|
|
[
|
|
helpstring("ICreateRegistration"),
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(9da0e11c-86ce-11d1-8699-00c04fb98036)
|
|
]
|
|
interface ICreateRegistration : IUnknown
|
|
{
|
|
HRESULT Register(
|
|
[in] IExStoreEventInfo * pEventInfo,
|
|
[in] BSTR bstrURLItem,
|
|
[in] LONG lFlags,
|
|
[out,retval] long * phr);
|
|
};
|
|
|
|
|
|
//=======================================================================================
|
|
// Other defs
|
|
//=======================================================================================
|
|
cpp_quote("")
|
|
cpp_quote("//")
|
|
cpp_quote("// Place a \"#define INITGUID\" in just ONE of your projects source files BEFORE")
|
|
cpp_quote("// including this header file to define the IIDs below.")
|
|
cpp_quote("//")
|
|
cpp_quote("")
|
|
cpp_quote("#ifdef DEFINE_GUID")
|
|
cpp_quote("#undef DEFINE_GUID")
|
|
cpp_quote("#endif")
|
|
cpp_quote("")
|
|
cpp_quote("#ifdef INITGUID")
|
|
cpp_quote("#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \\")
|
|
cpp_quote(" EXTERN_C const GUID DECLSPEC_SELECTANY name \\")
|
|
cpp_quote(" = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }")
|
|
cpp_quote("#else")
|
|
cpp_quote("#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \\")
|
|
cpp_quote(" EXTERN_C const GUID FAR name")
|
|
cpp_quote("#endif // INITGUID")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// Bit flags passed to event handlers in the 'lFlags' parameter")
|
|
cpp_quote("//")
|
|
|
|
enum EVT_SINK_FLAGS
|
|
{
|
|
EVT_NEW_ITEM = 0x00000001, // item is newly created
|
|
EVT_IS_COLLECTION = 0x00000002, // item is folder
|
|
EVT_REPLICATED_ITEM = 0x00000004,
|
|
EVT_IS_DELIVERED = 0x00000008, // fsfSaveDeliver: delivered item
|
|
EVT_SYNC_BEGIN = 0x01000000, // sync begin event
|
|
EVT_SYNC_COMMITTED = 0x02000000, // sync committed event
|
|
EVT_SYNC_ABORTED = 0x04000000, // sync aborted event
|
|
EVT_SOFTDELETE = 0x00000010, // fsfDeleteSoft: soft delete
|
|
EVT_HARDDELETE = 0x00000020, // fsfDeleteHard: hard delete
|
|
|
|
EVT_INITNEW = 0x00000040, // 1st firing of event sink. time to initialize sink
|
|
|
|
EVT_MOVE = 0x00000100, // fsfSaveMove: save due to a move, fsfDeleteMove: deleted due to a move
|
|
EVT_COPY = 0x00000200, // fsfSaveCopy: save due to a copy
|
|
EVT_DRAFT_CREATE = 0x00000400, // fsfSaveCreateDraft: create of a draft
|
|
EVT_DRAFT_SAVE = 0x00000800, // fsfSaveDraft: save of an update draft
|
|
EVT_DRAFT_CHECKIN = 0x00001000, // fsfSaveCheckinDraft: save that makes the draft a "real row"
|
|
|
|
EVT_INVALID_SOURCE_URL =0x20000000, // Unable to get Source URL
|
|
EVT_INVALID_URL = 0x40000000, // Unable to get Target URL
|
|
EVT_ERROR = 0x80000000, // error during event
|
|
|
|
// flags available during lock/unlock events
|
|
EVT_LOCKTYPE_READ = 0x00010000, // locktRead
|
|
EVT_LOCKTYPE_WRITE = 0x00020000, // locktWrite
|
|
EVT_LOCKTYPE_CHECKOUT = 0x00040000, // locktCheckout
|
|
EVT_LOCKTYPE_READWRITE = 0x00030000, // locktReadWrite
|
|
EVT_LOCKSCOPE_SHARED = 0x00080000, // lockscpShared
|
|
EVT_LOCKSCOPE_EXCLUSIVE = 0x00100000, // lockscpExclusive
|
|
|
|
// Only during Unlock event
|
|
EVT_UNLOCK_CHECKIN_ABORT = 0x00200000,
|
|
EVT_UNLOCK_CHECKIN_KEEP_LOCKED = 0x00400000,
|
|
|
|
// Other lock event property
|
|
EVT_LOCKDEPTH_DEEP = 0x00800000, // ulDepthInifinity
|
|
EVT_LOCK_TRANSIENT = 0x00002000 // transient lock
|
|
};
|
|
cpp_quote("")
|
|
typedef enum EVT_SINK_FLAGS EVT_SINK_FLAGS;
|
|
|
|
cpp_quote("")
|
|
cpp_quote("//")
|
|
cpp_quote("// Event binding property names")
|
|
cpp_quote("//")
|
|
cpp_quote("// To register event, DAV:contentclass should have the following value")
|
|
cpp_quote("#define EVTPROPVAL_EVENTREG L\"urn:content-class:storeeventreg\"")
|
|
cpp_quote("")
|
|
cpp_quote("// Required event registration properties")
|
|
cpp_quote("#define EVTPROP_EVENTMETHOD L\"http://schemas.microsoft.com/exchange/events/EventMethod\"")
|
|
cpp_quote("#define EVTPROP_EVENTMETHOD_TYPE DBTYPE_WSTR")
|
|
|
|
cpp_quote("#define EVTPROP_SINKCLASS L\"http://schemas.microsoft.com/exchange/events/SinkClass\"")
|
|
cpp_quote("#define EVTPROP_SINKCLASS_TYPE DBTYPE_WSTR")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// Optional event registration properties")
|
|
cpp_quote("#define EVTPROP_PRIORITY L\"http://schemas.microsoft.com/exchange/events/Priority\"")
|
|
cpp_quote("#define EVTPROP_PRIORITY_TYPE DBTYPE_I4")
|
|
|
|
cpp_quote("#define EVTPROP_MATCHSCOPE L\"http://schemas.microsoft.com/exchange/events/MatchScope\"")
|
|
cpp_quote("#define EVTPROP_MATCHSCOPE_TYPE DBTYPE_WSTR")
|
|
|
|
cpp_quote("#define EVTPROP_CRITERIA L\"http://schemas.microsoft.com/exchange/events/Criteria\"")
|
|
cpp_quote("#define EVTPROP_CRITERIA_TYPE DBTYPE_WSTR")
|
|
|
|
cpp_quote("#define EVTPROP_TIMERINTERVAL L\"http://schemas.microsoft.com/exchange/events/TimerInterval\"")
|
|
cpp_quote("#define EVTPROP_TIMERINTERVAL_TYPE DBTYPE_I4")
|
|
|
|
cpp_quote("#define EVTPROP_TIMERSTARTTIME L\"http://schemas.microsoft.com/exchange/events/TimerStartTime\"")
|
|
cpp_quote("#define EVTPROP_TIMERSTARTTIME_TYPE DBTYPE_FILETIME")
|
|
|
|
cpp_quote("#define EVTPROP_TIMEREXPIRYTIME L\"http://schemas.microsoft.com/exchange/events/TimerExpiryTime\"")
|
|
cpp_quote("#define EVTPROP_TIMEREXPIRYTIME_TYPE DBTYPE_FILETIME")
|
|
|
|
cpp_quote("#define EVTPROP_SCRIPTURL L\"http://schemas.microsoft.com/exchange/events/ScriptUrl\"")
|
|
cpp_quote("#define EVTPROP_SCRIPTURL_TYPE DBTYPE_WSTR")
|
|
|
|
cpp_quote("#define EVTPROP_ENABLED L\"http://schemas.microsoft.com/exchange/events/Enabled\"")
|
|
cpp_quote("#define EVTPROP_ENABLED_TYPE DBTYPE_BOOL")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("//")
|
|
cpp_quote("// EVTPROP_MATCHSCOPE parameter values")
|
|
cpp_quote("//")
|
|
cpp_quote("#define EVT_MATCHSCOPE_DEEP L\"DEEP\"")
|
|
cpp_quote("#define EVT_MATCHSCOPE_SHALLOW L\"SHALLOW\"")
|
|
cpp_quote("#define EVT_MATCHSCOPE_EXACT L\"EXACT\"")
|
|
cpp_quote("#define EVT_MATCHSCOPE_ANY L\"ANY\"")
|
|
cpp_quote("")
|
|
cpp_quote("//")
|
|
cpp_quote("// Event names for the EVTPROP_EVENTMETHOD property")
|
|
cpp_quote("//")
|
|
cpp_quote("#define EVT_ON_SAVE L\"OnSave\"")
|
|
cpp_quote("#define EVT_ON_DELETE L\"OnDelete\"")
|
|
cpp_quote("#define EVT_ON_TIMER L\"OnTimer\"")
|
|
cpp_quote("#define EVT_ON_MDB_STARTUP L\"OnMDBStartUp\"")
|
|
cpp_quote("#define EVT_ON_MDB_SHUTDOWN L\"OnMDBShutDown\"")
|
|
cpp_quote("#define EVT_ON_SYNC_SAVE L\"OnSyncSave\"")
|
|
cpp_quote("#define EVT_ON_SYNC_DELETE L\"OnSyncDelete\"")
|
|
cpp_quote("#define EVT_ON_SYNC_LOCK L\"OnSyncLock\"")
|
|
cpp_quote("#define EVT_ON_SYNC_UNLOCK L\"OnSyncUnlock\"")
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// Return code for Reliable async event")
|
|
cpp_quote("#define S_PENDING 0x00000002L")
|
|
cpp_quote("//")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// Return code for IEventSinkIsCacheable")
|
|
cpp_quote("#define S_CACHE_PER_BINDING S_OK")
|
|
cpp_quote("")
|
|
|
|
cpp_quote("//")
|
|
cpp_quote("// Exchange Store OLEDB CLSIDs")
|
|
cpp_quote("//")
|
|
cpp_quote("")
|
|
cpp_quote("DEFINE_GUID(CLSID_CExoledbDataSource,0x9da0e0fa,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
|
|
cpp_quote("DEFINE_GUID(CLSID_CExoledbBinder,0x9da0e0f3,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
|
|
cpp_quote("DEFINE_GUID(CLSID_CExoledbDataSourceLS,0x9da0e120,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
|
|
cpp_quote("DEFINE_GUID(CLSID_CExoledbBinderLS,0x9da0e11f,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
cpp_quote("// Interface GUID")
|
|
cpp_quote("//")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreEventInfo,0x9da0e100,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreDispEventInfo,0x9da0e110,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreEventLogonInfo,0x9da0e111,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IGetSourceURL,0x9da0e10b,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IGetLockRow,0x9da0e0ef,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IAsyncNotify,0x9da0e10a,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreAsyncEvents,0x9da0e0fe,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreSyncEvents,0x9da0e0ff,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreSystemEvents,0x9da0e101,0x86ce,0x11d1,0x86,0x99,0x00,0xC0,0x4F,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreLockEvents,0x9da0e10e,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IStoreGuidFromUrl,0x9da0e10c,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IExStoreEventRegistrationURL,0x9da0e117,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IUserData,0x9da0e116,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_IEventSinkIsCacheable,0x9da0e118,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(IID_ICreateRegistration,0x9da0e11c,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(CLSID_StoreGuidFromUrl,0x9da0e10d,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
cpp_quote("DEFINE_GUID(CLSID_StoreGuidFromUrlLS,0x9da0e123,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
|
|
|
|
|
|
#ifndef EXOLEDBPROXY
|
|
|
|
// ===========================================================================
|
|
// Type library & CLSID
|
|
// ===========================================================================
|
|
[
|
|
uuid(1F28FCC2-8B0D-11d2-9C95-00C04F79F1DB),
|
|
version(1.0),
|
|
helpstring("EXOLEDB Event Sink Type Library")
|
|
]
|
|
library ExevtsnkLib
|
|
{
|
|
importlib("stdole32.tlb");
|
|
importlib("stdole2.tlb");
|
|
|
|
// Sink defs
|
|
EVT_SINK_FLAGS;
|
|
interface IExStoreEventInfo;
|
|
interface IExStoreDispEventInfo;
|
|
interface IExStoreEventRegistrationURL;
|
|
interface IExStoreAsyncEvents;
|
|
interface IExStoreSyncEvents;
|
|
interface IExStoreSystemEvents;
|
|
interface IExStoreLockEvents;
|
|
interface IGetLockRow;
|
|
interface IExStoreEventLogonInfo;
|
|
interface IGetSourceURL;
|
|
interface IUserData;
|
|
interface IAsyncNotify;
|
|
interface IStoreGUIDFromURL;
|
|
interface IEventSinkIsCacheable;
|
|
interface ICreateRegistration;
|
|
};
|
|
|
|
#endif
|
|
|