/* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/mozilla/xpcom/ds/nsISimpleEnumerator.idl */ #ifndef __gen_nsISimpleEnumerator_h__ #define __gen_nsISimpleEnumerator_h__ #ifndef __gen_nsISupports_h__ #include "nsISupports.h" #endif /* For IDL files that don't want to include root IDL files. */ #ifndef NS_NO_VTABLE #define NS_NO_VTABLE #endif /* starting interface: nsISimpleEnumerator */ #define NS_ISIMPLEENUMERATOR_IID_STR "d1899240-f9d2-11d2-bdd6-000064657374" #define NS_ISIMPLEENUMERATOR_IID \ {0xd1899240, 0xf9d2, 0x11d2, \ { 0xbd, 0xd6, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }} /** * Used to enumerate over elements defined by its implementor. * Although hasMoreElements() can be called independently of getNext(), * getNext() must be pre-ceeded by a call to hasMoreElements(). There is * no way to "reset" an enumerator, once you obtain one. * * @status FROZEN * @version 1.0 */ class NS_NO_VTABLE nsISimpleEnumerator : public nsISupports { public: NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISIMPLEENUMERATOR_IID) /** * Called to determine whether or not the enumerator has * any elements that can be returned via getNext(). This method * is generally used to determine whether or not to initiate or * continue iteration over the enumerator, though it can be * called without subsequent getNext() calls. Does not affect * internal state of enumerator. * * @see getNext() * @return PR_TRUE if there are remaining elements in the enumerator. * PR_FALSE if there are no more elements in the enumerator. */ /* boolean hasMoreElements (); */ NS_IMETHOD HasMoreElements(PRBool *_retval) = 0; /** * Called to retrieve the next element in the enumerator. The "next" * element is the first element upon the first call. Must be * pre-ceeded by a call to hasMoreElements() which returns PR_TRUE. * This method is generally called within a loop to iterate over * the elements in the enumerator. * * @see hasMoreElements() * @return NS_OK if the call succeeded in returning a non-null * value through the out parameter. * NS_ERROR_FAILURE if there are no more elements * to enumerate. * @return the next element in the enumeration. */ /* nsISupports getNext (); */ NS_IMETHOD GetNext(nsISupports **_retval) = 0; }; /* Use this macro when declaring classes that implement this interface. */ #define NS_DECL_NSISIMPLEENUMERATOR \ NS_IMETHOD HasMoreElements(PRBool *_retval); \ NS_IMETHOD GetNext(nsISupports **_retval); /* Use this macro to declare functions that forward the behavior of this interface to another object. */ #define NS_FORWARD_NSISIMPLEENUMERATOR(_to) \ NS_IMETHOD HasMoreElements(PRBool *_retval) { return _to HasMoreElements(_retval); } \ NS_IMETHOD GetNext(nsISupports **_retval) { return _to GetNext(_retval); } /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #define NS_FORWARD_SAFE_NSISIMPLEENUMERATOR(_to) \ NS_IMETHOD HasMoreElements(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasMoreElements(_retval); } \ NS_IMETHOD GetNext(nsISupports **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNext(_retval); } #if 0 /* Use the code below as a template for the implementation class for this interface. */ /* Header file */ class nsSimpleEnumerator : public nsISimpleEnumerator { public: NS_DECL_ISUPPORTS NS_DECL_NSISIMPLEENUMERATOR nsSimpleEnumerator(); private: ~nsSimpleEnumerator(); protected: /* additional members */ }; /* Implementation file */ NS_IMPL_ISUPPORTS1(nsSimpleEnumerator, nsISimpleEnumerator) nsSimpleEnumerator::nsSimpleEnumerator() { /* member initializers and constructor code */ } nsSimpleEnumerator::~nsSimpleEnumerator() { /* destructor code */ } /* boolean hasMoreElements (); */ NS_IMETHODIMP nsSimpleEnumerator::HasMoreElements(PRBool *_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* nsISupports getNext (); */ NS_IMETHODIMP nsSimpleEnumerator::GetNext(nsISupports **_retval) { return NS_ERROR_NOT_IMPLEMENTED; } /* End of implementation class template. */ #endif #endif /* __gen_nsISimpleEnumerator_h__ */