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.
|
|
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1998, Microsoft Corp. All rights reserved.
//
// FILE
//
// dsenum.h
//
// SYNOPSIS
//
// This file declares the class DBEnumerator.
//
// MODIFICATION HISTORY
//
// 02/20/1998 Original version.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _DSENUM_H_
#define _DSENUM_H_
#include <dsobject.h>
#include <objcmd.h>
#include <oledbstore.h>
///////////////////////////////////////////////////////////////////////////////
//
// CLASS
//
// DBEnumerator
//
// DESCRIPTION
//
// This class implements IEnumVARIANT for a rowset of objects.
//
///////////////////////////////////////////////////////////////////////////////
class DBEnumerator : public IEnumVARIANT { public:
DBEnumerator(DBObject* container, IRowset* members); ~DBEnumerator() { Bind::releaseAccessor(items, readAccess); }
//////////
// IUnknown
//////////
STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)(); STDMETHOD(QueryInterface)(const IID& iid, void** ppv);
//////////
// IEnumVARIANT
//////////
STDMETHOD(Next)(/*[in]*/ ULONG celt, /*[length_is][size_is][out]*/ VARIANT* rgVar, /*[out]*/ ULONG* pCeltFetched); STDMETHOD(Skip)(/*[in]*/ ULONG celt); STDMETHOD(Reset)(); STDMETHOD(Clone)(/*[out]*/ IEnumVARIANT** ppEnum);
protected: LONG refCount; // Interface ref count.
CComPtr<DBObject> parent; // The container being enumerated.
Rowset items; // Items in the container.
HACCESSOR readAccess; // Accessor for reading rows.
ULONG identity; // Identity buffer.
WCHAR name[OBJECT_NAME_LENGTH]; // Name buffer.
BEGIN_BIND_MAP(DBEnumerator, ReadAccessor, DBACCESSOR_ROWDATA) BIND_COLUMN(identity, 1, DBTYPE_I4), BIND_COLUMN(name, 2, DBTYPE_WSTR) END_BIND_MAP() };
#endif // _DSENUM_H_
|