CENUMSCH.H

/*++ 

Copyright (c) 1996 Microsoft Corporation

Module Name:

EnumSch.h

Abstract:

Author:

Environment:

User mode

Revision History :

--*/
#ifndef _ENUMSCH_H_
#define _ENUMSCH_H_

class FAR CSampleDSSchemaEnum : public CSampleDSEnumVariant
{
public:
// IEnumVARIANT methods
STDMETHOD(Next)(
ULONG cElements,
VARIANT FAR* pvar,
ULONG FAR* pcElementFetched
);

static
HRESULT
Create(
CSampleDSSchemaEnum FAR* FAR* ppenumvariant,
BSTR bstrSampleDSTreeName,
BSTR bstrADsPath,
BSTR bstrDomainName,
VARIANT var
);

CSampleDSSchemaEnum();
~CSampleDSSchemaEnum();

HRESULT
EnumObjects(
ULONG cElements,
VARIANT FAR * pvar,
ULONG FAR * pcElementFetched
);

private:

ObjectTypeList FAR *_pObjList;
//HANDLE _hOperationData;
//HANDLE _hTree;

LPSampleDS_ATTR_DEF _lpAttrDefs;
DWORD _dwAttrCurrent;
DWORD _dwAttrReturned;


BSTR _bstrName;
BSTR _bstrSampleDSTreeName;
BSTR _bstrADsPath;

LPSampleDS_CLASS_DEF _lpClassDefs;
DWORD _dwClassCurrent;
DWORD _dwClassReturned;

//DWORD _dwCurrentEntry;
//DWORD _dwInfoType;

HRESULT
CSampleDSSchemaEnum::GetClassObject(
IDispatch **ppDispatch
);

HRESULT
EnumClasses(
ULONG cElements,
VARIANT FAR* pvar,
ULONG FAR* pcElementFetched
);

HRESULT
CSampleDSSchemaEnum::EnumObjects(
DWORD ObjectType,
ULONG cElements,
VARIANT FAR * pvar,
ULONG FAR * pcElementFetched
);

HRESULT
CSampleDSSchemaEnum::EnumProperties(
ULONG cElements,
VARIANT FAR* pvar,
ULONG FAR* pcElementFetched
);

HRESULT
CSampleDSSchemaEnum::GetPropertyObject(
IDispatch ** ppDispatch
);
};

#endif