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.

46 lines
1.5 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1995.
  5. //
  6. // File: FILELB.HXX
  7. //
  8. // Contents:
  9. //
  10. // Classes: Declaration for FileLockBytes class, which derives
  11. // from the CLockBytes class.
  12. //
  13. // Functions:
  14. //
  15. // History: 12-13-95 JoeS (Joe Souza) Created
  16. //
  17. //----------------------------------------------------------------------------
  18. class FAR FileLockBytes : public CLockBytes
  19. {
  20. public:
  21. FileLockBytes(HANDLE filehandle);
  22. // *** IUnknown methods ***
  23. STDMETHOD_(ULONG,Release) (THIS);
  24. // *** ILockBytes methods ***
  25. STDMETHOD(ReadAt) (THIS_ ULARGE_INTEGER ulOffset, VOID HUGEP *pv,
  26. ULONG cb, ULONG FAR *pcbRead);
  27. STDMETHOD(WriteAt) (THIS_ ULARGE_INTEGER ulOffset, VOID const HUGEP *pv,
  28. ULONG cb, ULONG FAR *pcbWritten);
  29. STDMETHOD(Flush) (THIS);
  30. STDMETHOD(SetSize) (THIS_ ULARGE_INTEGER cb);
  31. STDMETHOD(LockRegion) (THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb,
  32. DWORD dwLockType);
  33. STDMETHOD(UnlockRegion) (THIS_ ULARGE_INTEGER libOffset,
  34. ULARGE_INTEGER cb, DWORD dwLockType);
  35. STDMETHOD(Stat) (THIS_ STATSTG FAR *pStatStg, DWORD grfStatFlag);
  36. private:
  37. HRESULT seekfile(ULARGE_INTEGER offset);
  38. HANDLE _hFileHandle;
  39. CRefCount _CRefs;
  40. };