#ifdef __PRIVATE__
//#
//#	File:		ValueItr.idl
//#
//#	Contains:	Interface for ODValueIterator class
//#
//#	Owned by:	Nick Pilch, Caia Grisar
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <2>	 8/24/94	CG		#1181622: Updated file ownership.
//#		 <1>	 7/29/94	CG		first checked in
//#		 <3>	 6/24/94	CG		Added functionprefix.
//#		 <2>	 6/15/94	CG		Added passthroughs.
//#		 <1>	  6/8/94	CG		first checked in
//#		 <1>	  6/8/94	CG		first checked in
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _VALUEITR_
#define _VALUEITR_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface  ODValueIterator;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface  ODValueNameSpace;

#ifdef __PRIVATE__
//==============================================================================
// Implementation Types
//==============================================================================

typedef somToken StringHashTableIterator;
#endif

//==============================================================================
// ODValueIterator
//==============================================================================

interface ODValueIterator :  ODObject
{
	void InitValueIterator(in ODValueNameSpace nameSpace);

	void	First(inout ODISOStr key,
   				   inout ODPtr value,
				   inout ODULong valueLength);
	void	Next(inout ODISOStr key,
   				  inout ODPtr value,
				  inout ODULong valueLength);
	ODBoolean IsNotComplete();

#ifdef __SOMIDL__
	implementation
	{
		functionprefix = ODValueIterator;
		override:
			somInit,
			somUninit;
			
		releaseorder:
			InitValueIterator,
			First,
			Next,
			IsNotComplete;
	
		majorversion = 1; minorversion = 0;
			
		#ifdef __PRIVATE__
			passthru C_xih = "
			""
			"class StringHashTableIterator;"
			"";
			ODValueNameSpace			fNameSpace;
			StringHashTableIterator*	fStrHashIterator;
		#endif
	};
#endif
};

#endif // _VALUEITR_
