/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM d:/builds/tinderbox/XR-Trunk/WINNT_5.2_Depend/mozilla/dom/public/idl/range/nsIDOMRange.idl
 */

#ifndef __gen_nsIDOMRange_h__
#define __gen_nsIDOMRange_h__


#ifndef __gen_domstubs_h__
#include "domstubs.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:    nsIDOMRange */
#define NS_IDOMRANGE_IID_STR "a6cf90ce-15b3-11d2-932e-00805f8add32"

#define NS_IDOMRANGE_IID \
  {0xa6cf90ce, 0x15b3, 0x11d2, \
    { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 }}

class NS_NO_VTABLE nsIDOMRange : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOMRANGE_IID)

  /**
 * The nsIDOMRange interface is an interface to a DOM range object.
 *
 * For more information on this interface please see
 * http://www.w3.org/TR/DOM-Level-2-Traversal-Range/
 *
 * @status FROZEN
 */
  /* readonly attribute nsIDOMNode startContainer; */
  NS_IMETHOD GetStartContainer(nsIDOMNode * *aStartContainer) = 0;

  /* readonly attribute long startOffset; */
  NS_IMETHOD GetStartOffset(PRInt32 *aStartOffset) = 0;

  /* readonly attribute nsIDOMNode endContainer; */
  NS_IMETHOD GetEndContainer(nsIDOMNode * *aEndContainer) = 0;

  /* readonly attribute long endOffset; */
  NS_IMETHOD GetEndOffset(PRInt32 *aEndOffset) = 0;

  /* readonly attribute boolean collapsed; */
  NS_IMETHOD GetCollapsed(PRBool *aCollapsed) = 0;

  /* readonly attribute nsIDOMNode commonAncestorContainer; */
  NS_IMETHOD GetCommonAncestorContainer(nsIDOMNode * *aCommonAncestorContainer) = 0;

  /* void setStart (in nsIDOMNode refNode, in long offset)  raises (RangeException, DOMException); */
  NS_IMETHOD SetStart(nsIDOMNode *refNode, PRInt32 offset) = 0;

  /* void setEnd (in nsIDOMNode refNode, in long offset)  raises (RangeException, DOMException); */
  NS_IMETHOD SetEnd(nsIDOMNode *refNode, PRInt32 offset) = 0;

  /* void setStartBefore (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
  NS_IMETHOD SetStartBefore(nsIDOMNode *refNode) = 0;

  /* void setStartAfter (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
  NS_IMETHOD SetStartAfter(nsIDOMNode *refNode) = 0;

  /* void setEndBefore (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
  NS_IMETHOD SetEndBefore(nsIDOMNode *refNode) = 0;

  /* void setEndAfter (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
  NS_IMETHOD SetEndAfter(nsIDOMNode *refNode) = 0;

  /* void collapse (in boolean toStart)  raises (DOMException); */
  NS_IMETHOD Collapse(PRBool toStart) = 0;

  /* void selectNode (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
  NS_IMETHOD SelectNode(nsIDOMNode *refNode) = 0;

  /* void selectNodeContents (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
  NS_IMETHOD SelectNodeContents(nsIDOMNode *refNode) = 0;

  enum { START_TO_START = 0U };

  enum { START_TO_END = 1U };

  enum { END_TO_END = 2U };

  enum { END_TO_START = 3U };

  /* short compareBoundaryPoints (in unsigned short how, in nsIDOMRange sourceRange)  raises (DOMException); */
  NS_IMETHOD CompareBoundaryPoints(PRUint16 how, nsIDOMRange *sourceRange, PRInt16 *_retval) = 0;

  /* void deleteContents ()  raises (DOMException); */
  NS_IMETHOD DeleteContents(void) = 0;

  /* nsIDOMDocumentFragment extractContents ()  raises (DOMException); */
  NS_IMETHOD ExtractContents(nsIDOMDocumentFragment **_retval) = 0;

  /* nsIDOMDocumentFragment cloneContents ()  raises (DOMException); */
  NS_IMETHOD CloneContents(nsIDOMDocumentFragment **_retval) = 0;

  /* void insertNode (in nsIDOMNode newNode)  raises (DOMException, RangeException); */
  NS_IMETHOD InsertNode(nsIDOMNode *newNode) = 0;

  /* void surroundContents (in nsIDOMNode newParent)  raises (DOMException, RangeException); */
  NS_IMETHOD SurroundContents(nsIDOMNode *newParent) = 0;

  /* nsIDOMRange cloneRange ()  raises (DOMException); */
  NS_IMETHOD CloneRange(nsIDOMRange **_retval) = 0;

  /* DOMString toString ()  raises (DOMException); */
  NS_IMETHOD ToString(nsAString & _retval) = 0;

  /* void detach ()  raises (DOMException); */
  NS_IMETHOD Detach(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDOMRange, NS_IDOMRANGE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMRANGE \
  NS_IMETHOD GetStartContainer(nsIDOMNode * *aStartContainer); \
  NS_IMETHOD GetStartOffset(PRInt32 *aStartOffset); \
  NS_IMETHOD GetEndContainer(nsIDOMNode * *aEndContainer); \
  NS_IMETHOD GetEndOffset(PRInt32 *aEndOffset); \
  NS_IMETHOD GetCollapsed(PRBool *aCollapsed); \
  NS_IMETHOD GetCommonAncestorContainer(nsIDOMNode * *aCommonAncestorContainer); \
  NS_IMETHOD SetStart(nsIDOMNode *refNode, PRInt32 offset); \
  NS_IMETHOD SetEnd(nsIDOMNode *refNode, PRInt32 offset); \
  NS_IMETHOD SetStartBefore(nsIDOMNode *refNode); \
  NS_IMETHOD SetStartAfter(nsIDOMNode *refNode); \
  NS_IMETHOD SetEndBefore(nsIDOMNode *refNode); \
  NS_IMETHOD SetEndAfter(nsIDOMNode *refNode); \
  NS_IMETHOD Collapse(PRBool toStart); \
  NS_IMETHOD SelectNode(nsIDOMNode *refNode); \
  NS_IMETHOD SelectNodeContents(nsIDOMNode *refNode); \
  NS_IMETHOD CompareBoundaryPoints(PRUint16 how, nsIDOMRange *sourceRange, PRInt16 *_retval); \
  NS_IMETHOD DeleteContents(void); \
  NS_IMETHOD ExtractContents(nsIDOMDocumentFragment **_retval); \
  NS_IMETHOD CloneContents(nsIDOMDocumentFragment **_retval); \
  NS_IMETHOD InsertNode(nsIDOMNode *newNode); \
  NS_IMETHOD SurroundContents(nsIDOMNode *newParent); \
  NS_IMETHOD CloneRange(nsIDOMRange **_retval); \
  NS_IMETHOD ToString(nsAString & _retval); \
  NS_IMETHOD Detach(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMRANGE(_to) \
  NS_IMETHOD GetStartContainer(nsIDOMNode * *aStartContainer) { return _to GetStartContainer(aStartContainer); } \
  NS_IMETHOD GetStartOffset(PRInt32 *aStartOffset) { return _to GetStartOffset(aStartOffset); } \
  NS_IMETHOD GetEndContainer(nsIDOMNode * *aEndContainer) { return _to GetEndContainer(aEndContainer); } \
  NS_IMETHOD GetEndOffset(PRInt32 *aEndOffset) { return _to GetEndOffset(aEndOffset); } \
  NS_IMETHOD GetCollapsed(PRBool *aCollapsed) { return _to GetCollapsed(aCollapsed); } \
  NS_IMETHOD GetCommonAncestorContainer(nsIDOMNode * *aCommonAncestorContainer) { return _to GetCommonAncestorContainer(aCommonAncestorContainer); } \
  NS_IMETHOD SetStart(nsIDOMNode *refNode, PRInt32 offset) { return _to SetStart(refNode, offset); } \
  NS_IMETHOD SetEnd(nsIDOMNode *refNode, PRInt32 offset) { return _to SetEnd(refNode, offset); } \
  NS_IMETHOD SetStartBefore(nsIDOMNode *refNode) { return _to SetStartBefore(refNode); } \
  NS_IMETHOD SetStartAfter(nsIDOMNode *refNode) { return _to SetStartAfter(refNode); } \
  NS_IMETHOD SetEndBefore(nsIDOMNode *refNode) { return _to SetEndBefore(refNode); } \
  NS_IMETHOD SetEndAfter(nsIDOMNode *refNode) { return _to SetEndAfter(refNode); } \
  NS_IMETHOD Collapse(PRBool toStart) { return _to Collapse(toStart); } \
  NS_IMETHOD SelectNode(nsIDOMNode *refNode) { return _to SelectNode(refNode); } \
  NS_IMETHOD SelectNodeContents(nsIDOMNode *refNode) { return _to SelectNodeContents(refNode); } \
  NS_IMETHOD CompareBoundaryPoints(PRUint16 how, nsIDOMRange *sourceRange, PRInt16 *_retval) { return _to CompareBoundaryPoints(how, sourceRange, _retval); } \
  NS_IMETHOD DeleteContents(void) { return _to DeleteContents(); } \
  NS_IMETHOD ExtractContents(nsIDOMDocumentFragment **_retval) { return _to ExtractContents(_retval); } \
  NS_IMETHOD CloneContents(nsIDOMDocumentFragment **_retval) { return _to CloneContents(_retval); } \
  NS_IMETHOD InsertNode(nsIDOMNode *newNode) { return _to InsertNode(newNode); } \
  NS_IMETHOD SurroundContents(nsIDOMNode *newParent) { return _to SurroundContents(newParent); } \
  NS_IMETHOD CloneRange(nsIDOMRange **_retval) { return _to CloneRange(_retval); } \
  NS_IMETHOD ToString(nsAString & _retval) { return _to ToString(_retval); } \
  NS_IMETHOD Detach(void) { return _to Detach(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMRANGE(_to) \
  NS_IMETHOD GetStartContainer(nsIDOMNode * *aStartContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStartContainer(aStartContainer); } \
  NS_IMETHOD GetStartOffset(PRInt32 *aStartOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStartOffset(aStartOffset); } \
  NS_IMETHOD GetEndContainer(nsIDOMNode * *aEndContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEndContainer(aEndContainer); } \
  NS_IMETHOD GetEndOffset(PRInt32 *aEndOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEndOffset(aEndOffset); } \
  NS_IMETHOD GetCollapsed(PRBool *aCollapsed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCollapsed(aCollapsed); } \
  NS_IMETHOD GetCommonAncestorContainer(nsIDOMNode * *aCommonAncestorContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCommonAncestorContainer(aCommonAncestorContainer); } \
  NS_IMETHOD SetStart(nsIDOMNode *refNode, PRInt32 offset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStart(refNode, offset); } \
  NS_IMETHOD SetEnd(nsIDOMNode *refNode, PRInt32 offset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnd(refNode, offset); } \
  NS_IMETHOD SetStartBefore(nsIDOMNode *refNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStartBefore(refNode); } \
  NS_IMETHOD SetStartAfter(nsIDOMNode *refNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStartAfter(refNode); } \
  NS_IMETHOD SetEndBefore(nsIDOMNode *refNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEndBefore(refNode); } \
  NS_IMETHOD SetEndAfter(nsIDOMNode *refNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEndAfter(refNode); } \
  NS_IMETHOD Collapse(PRBool toStart) { return !_to ? NS_ERROR_NULL_POINTER : _to->Collapse(toStart); } \
  NS_IMETHOD SelectNode(nsIDOMNode *refNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectNode(refNode); } \
  NS_IMETHOD SelectNodeContents(nsIDOMNode *refNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectNodeContents(refNode); } \
  NS_IMETHOD CompareBoundaryPoints(PRUint16 how, nsIDOMRange *sourceRange, PRInt16 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CompareBoundaryPoints(how, sourceRange, _retval); } \
  NS_IMETHOD DeleteContents(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteContents(); } \
  NS_IMETHOD ExtractContents(nsIDOMDocumentFragment **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ExtractContents(_retval); } \
  NS_IMETHOD CloneContents(nsIDOMDocumentFragment **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneContents(_retval); } \
  NS_IMETHOD InsertNode(nsIDOMNode *newNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->InsertNode(newNode); } \
  NS_IMETHOD SurroundContents(nsIDOMNode *newParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SurroundContents(newParent); } \
  NS_IMETHOD CloneRange(nsIDOMRange **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneRange(_retval); } \
  NS_IMETHOD ToString(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } \
  NS_IMETHOD Detach(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Detach(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsDOMRange : public nsIDOMRange
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMRANGE

  nsDOMRange();

private:
  ~nsDOMRange();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMRange, nsIDOMRange)

nsDOMRange::nsDOMRange()
{
  /* member initializers and constructor code */
}

nsDOMRange::~nsDOMRange()
{
  /* destructor code */
}

/* readonly attribute nsIDOMNode startContainer; */
NS_IMETHODIMP nsDOMRange::GetStartContainer(nsIDOMNode * *aStartContainer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long startOffset; */
NS_IMETHODIMP nsDOMRange::GetStartOffset(PRInt32 *aStartOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNode endContainer; */
NS_IMETHODIMP nsDOMRange::GetEndContainer(nsIDOMNode * *aEndContainer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long endOffset; */
NS_IMETHODIMP nsDOMRange::GetEndOffset(PRInt32 *aEndOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean collapsed; */
NS_IMETHODIMP nsDOMRange::GetCollapsed(PRBool *aCollapsed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNode commonAncestorContainer; */
NS_IMETHODIMP nsDOMRange::GetCommonAncestorContainer(nsIDOMNode * *aCommonAncestorContainer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setStart (in nsIDOMNode refNode, in long offset)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SetStart(nsIDOMNode *refNode, PRInt32 offset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEnd (in nsIDOMNode refNode, in long offset)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SetEnd(nsIDOMNode *refNode, PRInt32 offset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setStartBefore (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SetStartBefore(nsIDOMNode *refNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setStartAfter (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SetStartAfter(nsIDOMNode *refNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEndBefore (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SetEndBefore(nsIDOMNode *refNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEndAfter (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SetEndAfter(nsIDOMNode *refNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void collapse (in boolean toStart)  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::Collapse(PRBool toStart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectNode (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SelectNode(nsIDOMNode *refNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectNodeContents (in nsIDOMNode refNode)  raises (RangeException, DOMException); */
NS_IMETHODIMP nsDOMRange::SelectNodeContents(nsIDOMNode *refNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* short compareBoundaryPoints (in unsigned short how, in nsIDOMRange sourceRange)  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::CompareBoundaryPoints(PRUint16 how, nsIDOMRange *sourceRange, PRInt16 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteContents ()  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::DeleteContents()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMDocumentFragment extractContents ()  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::ExtractContents(nsIDOMDocumentFragment **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMDocumentFragment cloneContents ()  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::CloneContents(nsIDOMDocumentFragment **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void insertNode (in nsIDOMNode newNode)  raises (DOMException, RangeException); */
NS_IMETHODIMP nsDOMRange::InsertNode(nsIDOMNode *newNode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void surroundContents (in nsIDOMNode newParent)  raises (DOMException, RangeException); */
NS_IMETHODIMP nsDOMRange::SurroundContents(nsIDOMNode *newParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMRange cloneRange ()  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::CloneRange(nsIDOMRange **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* DOMString toString ()  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::ToString(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detach ()  raises (DOMException); */
NS_IMETHODIMP nsDOMRange::Detach()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIDOMRange_h__ */
