Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.5 KiB

  1. // Copyright (C) 1995-1999 Microsoft Corporation. All rights reserved.
  2. // -----------------------------------------------------------------------
  3. // Microsoft Distributed Transaction Coordinator (Microsoft Confidential)
  4. // @doc
  5. // @module ILGSTOR.H | Header for interface <i ILogStorage>.<nl><nl>
  6. // Usage:<nl>
  7. // Clients of this DLL require this file.
  8. // @rev 0 | 10/18/94 | rcraig | Created: For WPGEP COM lab.
  9. // @rev 1 | 04/04/95 | rcraig | Updated: For Viper COM DLL templates.
  10. // @rev 2 | 05/09/95 | rbarnes | Cloned: For LOGMGR.DLL
  11. // -----------------------------------------------------------------------
  12. #ifndef _ILGSTOR_H
  13. # define _ILGSTOR_H
  14. // ===============================
  15. // INCLUDES:
  16. // ===============================
  17. #include <objbase.h>
  18. typedef enum _tagSTREAMMODE
  19. {
  20. STRMMODEREAD = 0x00000001, //@emem READ mode
  21. STRMMODEWRITE = 0x00000002 //@emem WRITE mode
  22. } STRMMODE;
  23. // ===============================
  24. // INTERFACE: ILogStorage
  25. // ===============================
  26. // -----------------------------------------------------------------------
  27. // @interface ILogStorage | See also <c CILogStorage>.<nl><nl>
  28. // Description:<nl>
  29. // Provide the physical log storage abstraction<nl><nl>
  30. // Usage:<nl>
  31. // Useless, but for an example.
  32. // -----------------------------------------------------------------------
  33. DECLARE_INTERFACE_ (ILogStorage, IUnknown)
  34. {
  35. // @comm IUnknown methods: See <c CILogStorage>.
  36. STDMETHOD (QueryInterface) (THIS_ REFIID i_riid, LPVOID FAR* o_ppv) PURE;
  37. STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
  38. STDMETHOD_ (ULONG, Release) (THIS) PURE;
  39. // @comm ILogStorage methods: See <c CILogStorage>.
  40. STDMETHOD (OpenLogStream) (LPSTR lpszStreamName, DWORD grfMode, LPVOID FAR* ppvStream) PURE;
  41. STDMETHOD (OpenLogStreamByClassID) (CLSID clsClassID, DWORD grfMode, LPVOID FAR* ppvStream) PURE;
  42. STDMETHOD (LogFlush) (void) PURE;
  43. virtual ULONG (GetLogSpaceNeeded) (ULONG ulRecSize) PURE;
  44. };
  45. DECLARE_INTERFACE_ (ILogStorageInfo, IUnknown)
  46. {
  47. // @comm IUnknown methods: See <c CILogStorage>.
  48. STDMETHOD (QueryInterface) (THIS_ REFIID i_riid, LPVOID FAR* o_ppv) PURE;
  49. STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
  50. STDMETHOD_ (ULONG, Release) (THIS) PURE;
  51. virtual ULONG (GetLogGenerationNum) () PURE;
  52. virtual ULONGLONG (GetTimeTakenToWrap) () PURE;
  53. };
  54. #endif _ILGSTOR_H