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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1996.
//
// File: fileilb.hxx
//
// Contents:
//
// Classes:
//
// Functions:
//
//----------------------------------------------------------------------------
#ifndef __FILEILB_HXX__
#define __FILEILB_HXX__
#include "storage.h"
#define ILB_DELETEONERR 1
#define ILB_DELETEONRELEASE 2
class CFileILB: public ILockBytes { public: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj); STDMETHOD_(ULONG,AddRef) (THIS); STDMETHOD_(ULONG,Release) (THIS);
// *** ILockBytes methods ***
STDMETHOD(ReadAt) (THIS_ ULARGE_INTEGER ulOffset, VOID HUGEP *pv, ULONG cb, ULONG FAR *pcbRead); STDMETHOD(WriteAt) (THIS_ ULARGE_INTEGER ulOffset, VOID const HUGEP *pv, ULONG cb, ULONG FAR *pcbWritten); STDMETHOD(Flush) (THIS); STDMETHOD(SetSize) (THIS_ ULARGE_INTEGER cb); STDMETHOD(LockRegion) (THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); STDMETHOD(UnlockRegion) (THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); STDMETHOD(Stat) (THIS_ STATSTG FAR *pstatstg, DWORD grfStatFlag); CFileILB(const TCHAR *pszName, DWORD grfMode, BOOL fOpenFile=TRUE); ~CFileILB();
SCODE Open(DWORD grfMode); SCODE Create(DWORD grfMode); ULONG ReleaseOnError(void); // same as release, but it will not delete
// non-scratch or newly created files
ULONG Seek (ULONGLONG ulPos); private: FILE * _f; ULONG _ulRef; char *_pszName; // we always use ANSI char when dealing with
// I/O
unsigned short _fDelete; }; #endif // #ifndef __FILEILB_HXX__
|