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: laylkb.hxx
//
// Contents: Layout ILockBytes class for layout docfile
//
// Classes: CLayoutLockBytes
//
// Functions:
//
// History: 19-Feb-96 SusiAa Created
//
//----------------------------------------------------------------------------
#ifndef __LAYOUTLKB_HXX__
#define __LAYOUTLKB_HXX__
//+---------------------------------------------------------------------------
//
// Class: CLayoutLockBytes
//
// Purpose:
//
// Interface:
//
// History: 21-Feb-96 SusiA Created
//
// Notes:
//
//----------------------------------------------------------------------------
class CLayoutLockBytes: public ILockBytes { public: CLayoutLockBytes(); ~CLayoutLockBytes();
SCODE Init(OLECHAR const *pwcsName, DWORD grfMode); // IUnknown
STDMETHOD(QueryInterface)(REFIID iid, void **ppvObj); STDMETHOD_(ULONG, AddRef)(void); STDMETHOD_(ULONG, Release)(void);
// ILockBytes
STDMETHOD(ReadAt)(ULARGE_INTEGER ulOffset, VOID HUGEP *pv, ULONG cb, ULONG *pcbRead); STDMETHOD(WriteAt)(ULARGE_INTEGER ulOffset, VOID const HUGEP *pv, ULONG cb, ULONG *pcbWritten); STDMETHOD(Flush)(void); STDMETHOD(SetSize)(ULARGE_INTEGER cb); STDMETHOD(LockRegion)(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); STDMETHOD(UnlockRegion)(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType); STDMETHOD(Stat)(STATSTG *pstatstg, DWORD grfStatFlag); inline HANDLE GetHandle(void); inline TCHAR *GetScriptName(void); inline void ClearScriptName(void); SCODE StartLogging(void); SCODE StopLogging(void);
private: LONG _cReferences; BOOL _fLogging; ULONG _cbSectorShift; DWORD _grfMode; TCHAR _atcScriptName[MAX_PATH + 1]; HANDLE _hScript; OLECHAR _awcName[MAX_PATH + 1]; HANDLE _h;
BOOL _fCSInitialized; CRITICAL_SECTION _cs; };
//+---------------------------------------------------------------------------
//
// Member: CLayoutLockBytes::GetHandle, public
//
// Synopsis: Return the file handle for this ILockBytes
//
// Arguments: None
//
// Returns: File Handle
//
// History: 20-Feb-96 SusiA Created
//
//----------------------------------------------------------------------------
inline HANDLE CLayoutLockBytes::GetHandle(void) { return _h; }
//+---------------------------------------------------------------------------
//
// Member: CLayoutLockBytes::GetScriptName, public
//
// Returns: Pointer to script name
//
// History: 24-Feb-96 SusiA Created
//
//----------------------------------------------------------------------------
inline TCHAR * CLayoutLockBytes::GetScriptName(void) { return _atcScriptName; } //+---------------------------------------------------------------------------
//
// Member: CLayoutLockBytes::ClearScriptName, public
//
// Returns: Pointer to script name
//
// History: 24-Feb-96 SusiA Created
//
//----------------------------------------------------------------------------
inline void CLayoutLockBytes::ClearScriptName(void) { _atcScriptName[0] = TEXT('\0'); }
#endif // #ifndef __FILELKB_HXX__
|