exevtsnk.idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:23k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //+--------------------------------------------------------------------------------
  2. // evtsnk.idl
  3. //
  4. // Purpose:
  5. // Defines the callback interfaces that an event sink (event handler) must
  6. // implement to process the external event interfaces specific to the 
  7. // Exchange Platinum Store.
  8. //
  9. // Copyright (C) 1997-1999 Microsoft Corporation
  10. //
  11. //+--------------------------------------------------------------------------------
  12. import "wtypes.idl";
  13. import "ocidl.idl";
  14. //==================================================================================
  15. // Interface defs
  16. //==================================================================================
  17. //------------------------------------------------------------------------
  18. // IExStoreEventInfo
  19. // This interface is implemented by the provider and passed to the
  20. // event handler allowing the handler to retrieve (and set) further
  21. // information regarding the event.")
  22. //-------------------------------------------------------------------------
  23. [
  24. object,
  25. uuid(9da0e100-86ce-11d1-8699-00c04fb98036),
  26. helpstring("IExStoreEventInfo Interface"),
  27. pointer_default(unique)
  28. ]
  29. interface IExStoreEventInfo : IUnknown
  30. {
  31. [local]
  32. HRESULT GetEventItem(
  33. [in] REFIID riid, 
  34. [out] DWORD * pdwBindStatus,
  35. [out, iid_is(riid)] IUnknown ** ppunkEventItem);
  36. [call_as(GetEventItem)]
  37. HRESULT RemoteGetEventItem(
  38. [in] REFIID riid, 
  39. [out] DWORD * pdwBindStatus,
  40. [out, iid_is(riid)] IUnknown ** ppunkEventItem);
  41. [local,helpstring("Get session for this event")]
  42. HRESULT GetEventSession(
  43. [in] REFIID riid,
  44. [out, iid_is(riid)] IUnknown ** ppSession);
  45. [call_as(GetEventSession)]
  46. HRESULT RemoteGetEventSession(
  47. [in] REFIID riid,
  48. [out, iid_is(riid)] IUnknown ** ppSession);
  49. [helpstring("Abort synchronous operation on this event item")]
  50. HRESULT Abort(
  51. [in, defaultvalue(0)] LONG lErrorCode);
  52. };
  53. //---------------------------------------------------------------------------------------------------
  54. // IExStoreDispEventInfo
  55. // This interface is a IDispatch compatible event info object implemented by the provider
  56. // and passed to the event handler.
  57. // VB sink implentor should use the following example.
  58. // Implements IExStoreSyncEvents
  59. // Public sub IExStoreSyncEvents_OnSyncSave(ByVal pEventInfo As ExevtsnkLib.IExStoreEventInfo,..
  60. // Dim dispInfo As IExStoreDispEventInfo
  61. // Set dispInfo = pEventInfo
  62. //---------------------------------------------------------------------------------------------------
  63. [
  64. object,
  65. uuid(9da0e110-86ce-11d1-8699-00c04fb98036),
  66. helpstring("IExStoreDispEventInfo Interface"),
  67. dual,
  68. oleautomation,
  69. pointer_default(unique)
  70. ]
  71. interface IExStoreDispEventInfo : IDispatch
  72. {
  73. #ifdef EXOLEDBPROXY
  74. [local,helpstring("Get ADO connection"),propget]
  75. HRESULT EventConnection([out,retval] IDispatch **ppConnection);
  76. [call_as(get_EventConnection),helpstring("Get ADO connection"),propget]
  77. HRESULT RemoteEventConnection([out,retval] IDispatch **ppConnection);
  78. [local,helpstring("Get ADO record"),propget]
  79. HRESULT EventRecord([out,retval] IDispatch **ppRecord);
  80. [call_as(get_EventRecord),helpstring("Get ADO record"),propget]
  81. HRESULT RemoteEventRecord([out,retval] IDispatch **ppRecord);
  82. #else
  83. [helpstring("Get ADO connection"),propget]
  84. HRESULT EventConnection([out,retval] IDispatch **ppConnection);
  85. [helpstring("Get ADO record"),propget]
  86. HRESULT EventRecord([out,retval] IDispatch **ppRecord);
  87. #endif
  88. [helpstring("Abort any change on this event item")]
  89. HRESULT AbortChange([in, defaultvalue(0)] LONG lErrorCode);
  90. [helpstring("Get original source URL during OnSyncSave event caused by move"), propget]
  91. HRESULT SourceURL([out,retval] BSTR * pbstrURL);
  92. [helpstring("Get User GUID who caused this synchronous event"), propget]
  93. HRESULT UserGuid([out,retval] BSTR * pvarUserGuid);
  94. [helpstring("Get Store GUID on which this synchronous event occurrs"), propget]
  95. HRESULT StoreGuid([out,retval] BSTR * pvarStoreGuid);
  96. [helpstring("Get User SID who caused this synchronous event"), propget]
  97. HRESULT UserSid([out,retval] VARIANT * pvarSid);
  98. [helpstring("Get Data"), propget]
  99. HRESULT Data([out, retval] LONG_PTR * plData);
  100. [helpstring("Set Data"), propput]
  101. HRESULT Data([in] LONG_PTR lData);
  102. };
  103. //---------------------------------------------------------------------------------------
  104. // IExStoreEventRegistrationURL
  105. // Get URL for the event registration msg
  106. //---------------------------------------------------------------------------------------
  107. [
  108. object,
  109. uuid(9da0e117-86ce-11d1-8699-00c04fb98036),
  110. dual,
  111. helpstring("IExStoreEventRegistrationURL interface"),
  112. pointer_default(unique)
  113. ]
  114. interface IExStoreEventRegistrationURL : IDispatch
  115. {
  116. [helpstring("URL for the event registration item"),propget]
  117. HRESULT EventRegistrationURL([out,retval] BSTR *pbstrURL);
  118. };
  119. //---------------------------------------------------------------------------------------
  120. // IStoreGuidFromUrl
  121. //  Get MDB GUID from the given URL
  122. //---------------------------------------------------------------------------------------
  123. [
  124. object,
  125. uuid(9da0e10c-86ce-11d1-8699-00c04fb98036),
  126. dual,
  127. helpstring("IStoreGuidFromUrl interface"),
  128. pointer_default(unique)
  129. ]
  130. interface IStoreGuidFromUrl : IDispatch
  131. {
  132. [helpstring("Get Store GUID from URL")] HRESULT StoreGuidFromUrl(
  133. [in]  BSTR bstrUrl,
  134. [out,retval] BSTR * pbstrGuid);
  135. };
  136. //------------------------------------------------------------------------------------------
  137. // IExStoreEventLogonInfo
  138. // This interface supplies information on the user logon which caused the sync events.
  139. //------------------------------------------------------------------------------------------
  140. [
  141. object,
  142. uuid(9da0e111-86ce-11d1-8699-00c04fb98036),
  143. helpstring("IExStoreEventLogonInfo Interface"),
  144. pointer_default(unique)
  145. ]
  146. interface IExStoreEventLogonInfo : IUnknown
  147. {
  148. [helpstring("Get User GUID who caused this synchronous event")]
  149. HRESULT GetUserGuid(
  150. [in,out] GUID * pguid);
  151. [helpstring("Get Store GUID on which this synchronous event occurrs")]
  152. HRESULT GetStoreGuid(
  153. [in,out] GUID * pguid);
  154. [helpstring("Get User SID who caused this synchronous event")]
  155. HRESULT GetUserSid(
  156. [out] SID ** ppsid);
  157. };
  158. //----------------------------------------------------------------------------------------------------------
  159. // IGetSourceURL
  160. // This interface allows to get the original source URL during OnSyncSave event caused by move operation.
  161. //----------------------------------------------------------------------------------------------------------
  162. [
  163. object,
  164. uuid(9da0e10b-86ce-11d1-8699-00c04fb98036),
  165. helpstring("IGetSourceURL Interface"),
  166. pointer_default(unique)
  167. ]
  168. interface IGetSourceURL : IUnknown
  169. {
  170. [helpstring("Get original source URL during OnSyncSave event caused by move")]
  171. HRESULT GetSourceURL(
  172. [out,retval] BSTR *pbstrURL);
  173. };
  174. //-----------------------------------------------------------------------------------------
  175. // IGetLockRow
  176. // This interface allows to get Lock row during lock/unlock events
  177. //-----------------------------------------------------------------------------------------
  178. [
  179. object,
  180. helpstring("IGetLockRow Interface"),
  181. pointer_default(unique),
  182. uuid(9da0e0ef-86ce-11d1-8699-00c04fb98036)
  183. ]
  184. interface IGetLockRow : IUnknown
  185. {
  186. #ifdef EXOLEDBPROXY
  187. [local]
  188. HRESULT GetLockRow(
  189. [in] REFIID riid, 
  190. [out] DWORD * pdwBindStatus,
  191. [out, iid_is(riid)] IUnknown ** ppunkLockRow);
  192. [call_as(GetLockRow)]
  193. HRESULT RemoteGetLockRow(
  194. [in] REFIID riid, 
  195. [out] DWORD * pdwBindStatus,
  196. [out, iid_is(riid)] IUnknown ** ppunkLockRow);
  197. #else
  198. [helpstring("Bind to LOCK row which caused this lock/unlock event")]
  199. HRESULT GetLockRow(
  200. [in] REFIID riid, 
  201. [out] DWORD * pdwBindStatus,
  202. [out, iid_is(riid)] IUnknown ** ppunkLockRow);
  203. #endif
  204. };
  205. //-----------------------------------------------------------------------------------------------
  206. // IAsyncNotify
  207. // This interface is used by server event to notify status of reliable async event.
  208. //------------------------------------------------------------------------------------------------
  209. [
  210. object,
  211. uuid(9da0e10a-86ce-11d1-8699-00c04fb98036),
  212. helpstring("IAsyncNotify Interface"),
  213. pointer_default(unique)
  214. ]
  215. interface IAsyncNotify : IUnknown
  216. {
  217. [helpstring("Reliable asynchronous event has finished")]
  218. HRESULT Completed();
  219. };
  220. //-----------------------------------------------------------------------------------------
  221. // IExStoreAsyncEvents -- Asynchronous Event Sink Interface
  222. // This is the callback interface that an asynchronous event handler
  223. // (event sink) must implement for asynchronous event handling.
  224. //-----------------------------------------------------------------------------------------
  225. [
  226. helpstring("IExStoreAsyncEvents"),object,pointer_default(unique),
  227. uuid(9da0e0fe-86ce-11d1-8699-00c04fb98036)
  228. ]
  229. interface IExStoreAsyncEvents : IUnknown
  230. {
  231. HRESULT OnSave(
  232. [in] IExStoreEventInfo * pEventInfo,
  233. [in] BSTR bstrURLItem,
  234. [in] LONG  lFlags);
  235. HRESULT OnDelete(
  236. [in] IExStoreEventInfo * pEventInfo,
  237. [in] BSTR bstrURLItem,
  238. [in] LONG  lFlags);
  239. };
  240. //------------------------------------------------------------------------------------------
  241. // IExStoreSyncEvents -- Synchronous Event Sink Interface
  242. // This is the callback interface that a Synchronous event handler
  243. // (event sink) must implement.
  244. //------------------------------------------------------------------------------------------
  245. [
  246. helpstring("IExStoreSyncEvents"),object,pointer_default(unique),
  247. uuid(9da0e0ff-86ce-11d1-8699-00c04fb98036)
  248. ]
  249. interface IExStoreSyncEvents : IUnknown
  250. {
  251. HRESULT OnSyncSave(
  252. [in] IExStoreEventInfo * pEventInfo,
  253. [in] BSTR bstrURLItem,
  254. [in] LONG  lFlags);
  255. HRESULT OnSyncDelete(
  256. [in] IExStoreEventInfo * pEventInfo,
  257. [in] BSTR bstrURLItem,
  258. [in] LONG lFlags);
  259. };
  260. //-------------------------------------------------------------------------------------------------
  261. // IExStoreSystemEvents -- Asynchronous System Event Sink Interface
  262. // This is the callback interface that a system event handler must implement.
  263. //-------------------------------------------------------------------------------------------------
  264. [
  265. helpstring("IExStoreSystemEvents"),object,pointer_default(unique),
  266. uuid(9da0e101-86ce-11d1-8699-00c04fb98036)
  267. ]
  268. interface IExStoreSystemEvents : IUnknown
  269. {
  270. HRESULT OnTimer(
  271. [in] BSTR bstrURLItem,
  272. [in] LONG lFlags);
  273. HRESULT OnMDBStartUp(
  274. [in] BSTR bstrMDBGuid,
  275. [in] BSTR bstrMDBName,
  276. [in] LONG lFlags);
  277. HRESULT OnMDBShutDown(
  278. [in] BSTR bstrMDBGuid,
  279. [in] LONG lFlags);
  280. };
  281. //------------------------------------------------------------------------------------------
  282. // IExStoreLockEvents -- Synchronous Lock Event Sink Interface
  283. // This is the callback interface that a Lock Event handler must implement.
  284. //------------------------------------------------------------------------------------------
  285. [
  286. helpstring("IExStoreLockEvents"),object,pointer_default(unique),
  287. uuid(9da0e10e-86ce-11d1-8699-00c04fb98036)
  288. ]
  289. interface IExStoreLockEvents : IUnknown
  290. {
  291. HRESULT OnSyncLock(
  292. [in] IExStoreEventInfo * pEventInfo,
  293. [in] BSTR bstrURLItem,
  294. [in] LONG lFlags);
  295. HRESULT OnSyncUnlock(
  296. [in] IExStoreEventInfo * pEventInfo,
  297. [in] BSTR bstrURLItem,
  298. [in] LONG lFlags);
  299. };
  300. //---------------------------------------------------------------------------------------
  301. // IUserData --- Allows the caller to set data during Begin phase of event
  302. // and retrieve it during Commit/Abort phase.
  303. //---------------------------------------------------------------------------------------
  304. [
  305. helpstring("IUserData"),object,pointer_default(unique),
  306. uuid(9da0e116-86ce-11d1-8699-00c04fb98036)
  307. ]
  308. interface IUserData : IUnknown
  309. {
  310. HRESULT GetData(
  311. [out] LONG_PTR * plData);
  312. HRESULT SetData(
  313. [in] LONG_PTR lData);
  314. };
  315. //---------------------------------------------------------------------------------------
  316. // IEventSinkIsCacheable
  317. // This interface is implemented by the event sink and tells Exchange store
  318. // how to handle (store) event sink object..
  319. //
  320. // Possible return values:
  321. // S_FALSE not cached
  322. // S_OK ???
  323. //---------------------------------------------------------------------------------------
  324. [
  325. helpstring("IEventSinkIsCacheable"),
  326. object,
  327. pointer_default(unique),
  328. uuid(9da0e118-86ce-11d1-8699-00c04fb98036)
  329. ]
  330. interface IEventSinkIsCacheable : IUnknown
  331. {
  332. HRESULT IsCacheable();
  333. };
  334. //--------------------------------------------------------------------------------------
  335. // ICreateRegistration
  336. // This (optional) interface is implemented by event sink and tells Exchange store
  337. // whether to allow or deny saving of event registration item
  338. // The return hr value is ignored. If phr contains
  339. // S_OK allow saving of event registration item
  340. // S_FALSE deny
  341. //--------------------------------------------------------------------------------------
  342. [
  343. helpstring("ICreateRegistration"),
  344. object,
  345. pointer_default(unique),
  346. uuid(9da0e11c-86ce-11d1-8699-00c04fb98036)
  347. ]
  348. interface ICreateRegistration : IUnknown
  349. {
  350. HRESULT Register(
  351. [in]  IExStoreEventInfo * pEventInfo,
  352. [in] BSTR bstrURLItem,
  353. [in] LONG lFlags,
  354. [out,retval] long * phr);
  355. };
  356. //=======================================================================================
  357. // Other defs
  358. //=======================================================================================
  359. cpp_quote("")
  360. cpp_quote("//")
  361. cpp_quote("// Place a "#define INITGUID" in just ONE of your projects source files BEFORE")
  362. cpp_quote("// including this header file to define the IIDs below.")
  363. cpp_quote("//")
  364. cpp_quote("")
  365. cpp_quote("#ifdef DEFINE_GUID")
  366. cpp_quote("#undef DEFINE_GUID")
  367. cpp_quote("#endif")
  368. cpp_quote("")
  369. cpp_quote("#ifdef INITGUID")
  370. cpp_quote("#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \")
  371. cpp_quote("        EXTERN_C const GUID DECLSPEC_SELECTANY name \")
  372. cpp_quote("                = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }")
  373. cpp_quote("#else")
  374. cpp_quote("#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \")
  375. cpp_quote("    EXTERN_C const GUID FAR name")
  376. cpp_quote("#endif // INITGUID")
  377. cpp_quote("//")
  378. cpp_quote("// Bit flags passed to event handlers in the 'lFlags' parameter")
  379. cpp_quote("//")
  380. enum EVT_SINK_FLAGS
  381. {
  382. EVT_NEW_ITEM = 0x00000001, // item is newly created
  383. EVT_IS_COLLECTION = 0x00000002, // item is folder
  384. EVT_REPLICATED_ITEM = 0x00000004,
  385. EVT_IS_DELIVERED = 0x00000008, // fsfSaveDeliver: delivered item
  386. EVT_SYNC_BEGIN = 0x01000000, // sync begin event
  387. EVT_SYNC_COMMITTED = 0x02000000, // sync committed event
  388. EVT_SYNC_ABORTED = 0x04000000, // sync aborted event
  389. EVT_SOFTDELETE = 0x00000010, // fsfDeleteSoft: soft delete
  390. EVT_HARDDELETE = 0x00000020, // fsfDeleteHard: hard delete
  391. EVT_INITNEW = 0x00000040, // 1st firing of event sink. time to initialize sink
  392. EVT_MOVE = 0x00000100, // fsfSaveMove: save due to a move, fsfDeleteMove: deleted due to a move
  393. EVT_COPY = 0x00000200, // fsfSaveCopy: save due to a copy
  394. EVT_DRAFT_CREATE = 0x00000400, // fsfSaveCreateDraft: create of a draft
  395. EVT_DRAFT_SAVE = 0x00000800, // fsfSaveDraft: save of an update draft
  396. EVT_DRAFT_CHECKIN = 0x00001000, // fsfSaveCheckinDraft: save that makes the draft a "real row"
  397. EVT_INVALID_SOURCE_URL =0x20000000, // Unable to get Source URL
  398. EVT_INVALID_URL =  0x40000000, // Unable to get Target URL
  399. EVT_ERROR =  0x80000000, // error during event
  400. // flags available during lock/unlock events
  401. EVT_LOCKTYPE_READ = 0x00010000, // locktRead
  402. EVT_LOCKTYPE_WRITE = 0x00020000, // locktWrite
  403. EVT_LOCKTYPE_CHECKOUT = 0x00040000, // locktCheckout
  404. EVT_LOCKTYPE_READWRITE = 0x00030000, // locktReadWrite
  405. EVT_LOCKSCOPE_SHARED = 0x00080000, // lockscpShared
  406. EVT_LOCKSCOPE_EXCLUSIVE = 0x00100000, // lockscpExclusive
  407. // Only during Unlock event
  408. EVT_UNLOCK_CHECKIN_ABORT  = 0x00200000,
  409. EVT_UNLOCK_CHECKIN_KEEP_LOCKED = 0x00400000,
  410. // Other lock event property
  411. EVT_LOCKDEPTH_DEEP = 0x00800000, // ulDepthInifinity
  412. EVT_LOCK_TRANSIENT = 0x00002000 // transient lock
  413. };
  414. cpp_quote("")
  415. typedef enum EVT_SINK_FLAGS EVT_SINK_FLAGS;
  416. cpp_quote("")
  417. cpp_quote("//")
  418. cpp_quote("// Event binding property names")
  419. cpp_quote("//")
  420. cpp_quote("// To register event, DAV:contentclass should have the following value")
  421. cpp_quote("#define EVTPROPVAL_EVENTREG L"urn:content-class:storeeventreg"")
  422. cpp_quote("")
  423. cpp_quote("// Required event registration properties")
  424. cpp_quote("#define EVTPROP_EVENTMETHOD L"http://schemas.microsoft.com/exchange/events/EventMethod"")
  425. cpp_quote("#define EVTPROP_EVENTMETHOD_TYPE DBTYPE_WSTR")
  426. cpp_quote("#define EVTPROP_SINKCLASS L"http://schemas.microsoft.com/exchange/events/SinkClass"")
  427. cpp_quote("#define EVTPROP_SINKCLASS_TYPE DBTYPE_WSTR")
  428. cpp_quote("")
  429. cpp_quote("// Optional event registration properties")
  430. cpp_quote("#define EVTPROP_PRIORITY L"http://schemas.microsoft.com/exchange/events/Priority"")
  431. cpp_quote("#define EVTPROP_PRIORITY_TYPE DBTYPE_I4")
  432. cpp_quote("#define EVTPROP_MATCHSCOPE L"http://schemas.microsoft.com/exchange/events/MatchScope"")
  433. cpp_quote("#define EVTPROP_MATCHSCOPE_TYPE DBTYPE_WSTR")
  434. cpp_quote("#define EVTPROP_CRITERIA L"http://schemas.microsoft.com/exchange/events/Criteria"")
  435. cpp_quote("#define EVTPROP_CRITERIA_TYPE DBTYPE_WSTR")
  436. cpp_quote("#define EVTPROP_TIMERINTERVAL L"http://schemas.microsoft.com/exchange/events/TimerInterval"")
  437. cpp_quote("#define EVTPROP_TIMERINTERVAL_TYPE DBTYPE_I4")
  438. cpp_quote("#define EVTPROP_TIMERSTARTTIME L"http://schemas.microsoft.com/exchange/events/TimerStartTime"")
  439. cpp_quote("#define EVTPROP_TIMERSTARTTIME_TYPE DBTYPE_FILETIME")
  440. cpp_quote("#define EVTPROP_TIMEREXPIRYTIME L"http://schemas.microsoft.com/exchange/events/TimerExpiryTime"")
  441. cpp_quote("#define EVTPROP_TIMEREXPIRYTIME_TYPE DBTYPE_FILETIME")
  442. cpp_quote("#define EVTPROP_SCRIPTURL L"http://schemas.microsoft.com/exchange/events/ScriptUrl"")
  443. cpp_quote("#define EVTPROP_SCRIPTURL_TYPE DBTYPE_WSTR")
  444. cpp_quote("#define EVTPROP_ENABLED L"http://schemas.microsoft.com/exchange/events/Enabled"")
  445. cpp_quote("#define EVTPROP_ENABLED_TYPE DBTYPE_BOOL")
  446. cpp_quote("")
  447. cpp_quote("//")
  448. cpp_quote("// EVTPROP_MATCHSCOPE parameter values")
  449. cpp_quote("//")
  450. cpp_quote("#define EVT_MATCHSCOPE_DEEP L"DEEP"")
  451. cpp_quote("#define EVT_MATCHSCOPE_SHALLOW L"SHALLOW"")
  452. cpp_quote("#define EVT_MATCHSCOPE_EXACT L"EXACT"")
  453. cpp_quote("#define EVT_MATCHSCOPE_ANY L"ANY"")
  454. cpp_quote("")
  455. cpp_quote("//")
  456. cpp_quote("// Event names for the EVTPROP_EVENTMETHOD property")
  457. cpp_quote("//")
  458. cpp_quote("#define EVT_ON_SAVE L"OnSave"")
  459. cpp_quote("#define EVT_ON_DELETE L"OnDelete"")
  460. cpp_quote("#define EVT_ON_TIMER L"OnTimer"")
  461. cpp_quote("#define EVT_ON_MDB_STARTUP L"OnMDBStartUp"")
  462. cpp_quote("#define EVT_ON_MDB_SHUTDOWN L"OnMDBShutDown"")
  463. cpp_quote("#define EVT_ON_SYNC_SAVE L"OnSyncSave"")
  464. cpp_quote("#define EVT_ON_SYNC_DELETE L"OnSyncDelete"")
  465. cpp_quote("#define EVT_ON_SYNC_LOCK L"OnSyncLock"")
  466. cpp_quote("#define EVT_ON_SYNC_UNLOCK L"OnSyncUnlock"")
  467. cpp_quote("")
  468. cpp_quote("")
  469. cpp_quote("//")
  470. cpp_quote("// Return code for Reliable async event")
  471. cpp_quote("#define S_PENDING 0x00000002L")
  472. cpp_quote("//")
  473. cpp_quote("//")
  474. cpp_quote("// Return code for IEventSinkIsCacheable")
  475. cpp_quote("#define S_CACHE_PER_BINDING S_OK")
  476. cpp_quote("")
  477. cpp_quote("//")
  478. cpp_quote("// Exchange Store OLEDB CLSIDs")
  479. cpp_quote("//")
  480. cpp_quote("")
  481. cpp_quote("DEFINE_GUID(CLSID_CExoledbDataSource,0x9da0e0fa,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
  482. cpp_quote("DEFINE_GUID(CLSID_CExoledbBinder,0x9da0e0f3,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
  483. cpp_quote("DEFINE_GUID(CLSID_CExoledbDataSourceLS,0x9da0e120,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
  484. cpp_quote("DEFINE_GUID(CLSID_CExoledbBinderLS,0x9da0e11f,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
  485. cpp_quote("")
  486. cpp_quote("")
  487. cpp_quote("// Interface GUID")
  488. cpp_quote("//")
  489. cpp_quote("DEFINE_GUID(IID_IExStoreEventInfo,0x9da0e100,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
  490. cpp_quote("DEFINE_GUID(IID_IExStoreDispEventInfo,0x9da0e110,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  491. cpp_quote("DEFINE_GUID(IID_IExStoreEventLogonInfo,0x9da0e111,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  492. cpp_quote("DEFINE_GUID(IID_IGetSourceURL,0x9da0e10b,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  493. cpp_quote("DEFINE_GUID(IID_IGetLockRow,0x9da0e0ef,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  494. cpp_quote("DEFINE_GUID(IID_IAsyncNotify,0x9da0e10a,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  495. cpp_quote("DEFINE_GUID(IID_IExStoreAsyncEvents,0x9da0e0fe,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
  496. cpp_quote("DEFINE_GUID(IID_IExStoreSyncEvents,0x9da0e0ff,0x86ce,0x11d1,0x86, 0x99, 0x00, 0xc0, 0x4f, 0xb9, 0x80, 0x36);")
  497. cpp_quote("DEFINE_GUID(IID_IExStoreSystemEvents,0x9da0e101,0x86ce,0x11d1,0x86,0x99,0x00,0xC0,0x4F,0xb9,0x80,0x36);")
  498. cpp_quote("DEFINE_GUID(IID_IExStoreLockEvents,0x9da0e10e,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  499. cpp_quote("DEFINE_GUID(IID_IStoreGuidFromUrl,0x9da0e10c,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  500. cpp_quote("DEFINE_GUID(IID_IExStoreEventRegistrationURL,0x9da0e117,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  501. cpp_quote("DEFINE_GUID(IID_IUserData,0x9da0e116,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  502. cpp_quote("DEFINE_GUID(IID_IEventSinkIsCacheable,0x9da0e118,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  503. cpp_quote("DEFINE_GUID(IID_ICreateRegistration,0x9da0e11c,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  504. cpp_quote("DEFINE_GUID(CLSID_StoreGuidFromUrl,0x9da0e10d,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  505. cpp_quote("DEFINE_GUID(CLSID_StoreGuidFromUrlLS,0x9da0e123,0x86ce,0x11d1,0x86,0x99,0x00,0xc0,0x4f,0xb9,0x80,0x36);")
  506. #ifndef EXOLEDBPROXY
  507. // ===========================================================================
  508. // Type library & CLSID
  509. // ===========================================================================
  510. [
  511. uuid(1F28FCC2-8B0D-11d2-9C95-00C04F79F1DB),
  512. version(1.0),
  513. helpstring("EXOLEDB Event Sink Type Library")
  514. ]
  515. library ExevtsnkLib
  516. {
  517. importlib("stdole32.tlb");
  518. importlib("stdole2.tlb");
  519. // Sink defs
  520. EVT_SINK_FLAGS;
  521. interface IExStoreEventInfo;
  522. interface IExStoreDispEventInfo;
  523. interface IExStoreEventRegistrationURL;
  524. interface IExStoreAsyncEvents;
  525. interface IExStoreSyncEvents;
  526. interface IExStoreSystemEvents;
  527. interface IExStoreLockEvents;
  528. interface IGetLockRow;
  529. interface IExStoreEventLogonInfo;
  530. interface IGetSourceURL;
  531. interface IUserData;
  532. interface IAsyncNotify;
  533. interface IStoreGUIDFromURL;
  534. interface IEventSinkIsCacheable;
  535. interface ICreateRegistration;
  536. };
  537. #endif