xpmgr/BuildTools/Include/exevtsnk.idl

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