Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

98 lines
2.3 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: xactenum.hxx
//
// Contents: IEnumXACTRE implementation
//
// Classes: CTransactionEnum
//
// Functions:
//
// History: 26-Jul-95 PhilipLa Created
//
//----------------------------------------------------------------------------
#ifndef __XACTENUM_HXX__
#define __XACTENUM_HXX__
class CTransactionCoordinator;
class CXactList;
class CTransactionDispenser;
//+---------------------------------------------------------------------------
//
// Class: CTransactionEnum
//
// Purpose: Enumerator over transactions from a dispenser
//
// History: 26-Jul-95 PhilipLa Created
//
//----------------------------------------------------------------------------
class CTransactionEnum: public IEnumTransaction
{
public:
CTransactionEnum(CTransactionDispenser *ptd);
~CTransactionEnum();
//From IUnknown
STDMETHOD(QueryInterface)(REFIID iid, void **ppvObj);
STDMETHOD_(ULONG,AddRef)(void);
STDMETHOD_(ULONG,Release)(void);
//From IEnumTransaction
STDMETHOD(Next)(ULONG celt, ITransaction **rgelt, ULONG *pceltFetched);
STDMETHOD(Skip)(ULONG celt);
STDMETHOD(Reset)(void);
STDMETHOD(Clone)(IEnumTransaction **ppenum);
private:
LONG _cReferences;
CTransactionDispenser *_ptd;
CXactList *_pxlCurrent;
};
//+---------------------------------------------------------------------------
//
// Class: CResourceEnum
//
// Purpose: Enumerator over resources in a transaction
//
// History: 26-Jul-95 PhilipLa Created
//
//----------------------------------------------------------------------------
class CResourceEnum: public IEnumXACTRE
{
public:
CResourceEnum(CTransactionCoordinator *ptc);
~CResourceEnum();
//From IUnknown
STDMETHOD(QueryInterface)(REFIID iid, void **ppvObj);
STDMETHOD_(ULONG,AddRef)(void);
STDMETHOD_(ULONG,Release)(void);
//From IEnumXACTRE
STDMETHOD(Next)(ULONG celt, XACTRE *rgelt, ULONG *pceltFetched);
STDMETHOD(Skip)(ULONG celt);
STDMETHOD(Reset)(void);
STDMETHOD(Clone)(IEnumXACTRE **ppenum);
private:
LONG _cReferences;
BOOL _fSinglePhaseReturned;
CTransactionCoordinator *_ptc;
CXactList *_pxlCurrent;
};
#endif // #ifndef __XACTENUM_HXX__