Source code of Windows XP (NT5)
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 - 1992.
//
// File: seekptr.hxx
//
// Contents: CSeekPointer header
//
// Classes: CSeekPointer
//
// History: 30-Apr-92 DrewB Created
//
//---------------------------------------------------------------
#ifndef __SEEKPTR_HXX__
#define __SEEKPTR_HXX__
//+--------------------------------------------------------------
//
// Class: CSeekPointer
//
// Purpose: Contains a seek pointer to share between exposed
// streams
//
// Interface: See below.
//
// History: 30-Apr-92 DrewB Created
//
//---------------------------------------------------------------
class CSeekPointer : public CMallocBased { public: #ifdef LARGE_STREAMS
inline CSeekPointer(ULONGLONG ulPos); #else
inline CSeekPointer(ULONG ulPos); #endif
inline ~CSeekPointer(void);
#ifdef LARGE_STREAMS
inline ULONGLONG GetPos(void) const; inline void SetPos(ULONGLONG ulPos); #else
inline ULONG GetPos(void) const; inline void SetPos(ULONG ulPos); #endif
inline void vAddRef(void); void vRelease(void);
private: #ifdef LARGE_STREAMS
ULONGLONG _ulPos; #else
ULONG _ulPos; #endif
LONG _cReferences; };
//+--------------------------------------------------------------
//
// Member: CSeekPointer::CSeekPointer, public
//
// Synopsis: Ctor
//
// Arguments: [ulPos] - Initial position
//
// History: 30-Apr-92 DrewB Created
//
//---------------------------------------------------------------
#ifdef LARGE_STREAMS
inline CSeekPointer::CSeekPointer(ULONGLONG ulPos) #else
inline CSeekPointer::CSeekPointer(ULONG ulPos) #endif
{ _ulPos = ulPos; _cReferences = 1; }
//+--------------------------------------------------------------
//
// Member: CSeekPointer::~CSeekPointer, public
//
// Synopsis: Dtor
//
// History: 30-Apr-92 DrewB Created
//
//---------------------------------------------------------------
inline CSeekPointer::~CSeekPointer(void) { olAssert(_cReferences == 0); }
//+--------------------------------------------------------------
//
// Member: CSeekPointer::GetPos, public
//
// Synopsis: Returns _ulPos
//
// History: 30-Apr-92 DrewB Created
//
//---------------------------------------------------------------
#ifdef LARGE_STREAMS
inline ULONGLONG CSeekPointer::GetPos(void) const #else
inline ULONG CSeekPointer::GetPos(void) const #endif
{ return _ulPos; }
//+--------------------------------------------------------------
//
// Member: CSeekPointer::SetPos, public
//
// Synopsis: Assigns _ulPos
//
// History: 30-Apr-92 DrewB Created
//
//---------------------------------------------------------------
#ifdef LARGE_STREAMS
inline void CSeekPointer::SetPos(ULONGLONG ulPos) #else
inline void CSeekPointer::SetPos(ULONG ulPos) #endif
{ _ulPos = ulPos; }
//+--------------------------------------------------------------
//
// Member: CSeekPointer::AddRef, public
//
// Synopsis: Increments _cReferences
//
// History: 30-Apr-92 DrewB Created
//
//---------------------------------------------------------------
inline void CSeekPointer::vAddRef(void) { InterlockedIncrement(&_cReferences); }
#endif // #ifndef __SEEKPTR_HXX__
|