/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIDocShellLoadInfo.idl
 */

#ifndef __gen_nsIDocShellLoadInfo_h__
#define __gen_nsIDocShellLoadInfo_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
/**
 * The nsIDocShellLoadInfo interface defines an interface for specifying
 * setup information used in a nsIDocShell::loadURI call.
 */
class nsIURI; /* forward declaration */

class nsIInputStream; /* forward declaration */

class nsISHEntry; /* forward declaration */

typedef PRInt32 nsDocShellInfoLoadType;


/* starting interface:    nsIDocShellLoadInfo */
#define NS_IDOCSHELLLOADINFO_IID_STR "33636f98-0635-11d4-9877-00c04fa0d27a"

#define NS_IDOCSHELLLOADINFO_IID \
  {0x33636f98, 0x0635, 0x11d4, \
    { 0x98, 0x77, 0x00, 0xc0, 0x4f, 0xa0, 0xd2, 0x7a }}

class NS_NO_VTABLE nsIDocShellLoadInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDOCSHELLLOADINFO_IID)

  /* attribute nsIURI referrer; */
  NS_IMETHOD GetReferrer(nsIURI * *aReferrer) = 0;
  NS_IMETHOD SetReferrer(nsIURI * aReferrer) = 0;

  /* attribute nsISupports owner; */
  NS_IMETHOD GetOwner(nsISupports * *aOwner) = 0;
  NS_IMETHOD SetOwner(nsISupports * aOwner) = 0;

  /* attribute boolean inheritOwner; */
  NS_IMETHOD GetInheritOwner(PRBool *aInheritOwner) = 0;
  NS_IMETHOD SetInheritOwner(PRBool aInheritOwner) = 0;

  /* attribute boolean stopActiveDocument; */
  NS_IMETHOD GetStopActiveDocument(PRBool *aStopActiveDocument) = 0;
  NS_IMETHOD SetStopActiveDocument(PRBool aStopActiveDocument) = 0;

  enum { loadNormal = 0 };

  enum { loadNormalReplace = 1 };

  enum { loadHistory = 2 };

  enum { loadReloadNormal = 3 };

  enum { loadReloadBypassCache = 4 };

  enum { loadReloadBypassProxy = 5 };

  enum { loadReloadBypassProxyAndCache = 6 };

  enum { loadLink = 7 };

  enum { loadRefresh = 8 };

  /* attribute nsDocShellInfoLoadType loadType; */
  NS_IMETHOD GetLoadType(nsDocShellInfoLoadType *aLoadType) = 0;
  NS_IMETHOD SetLoadType(nsDocShellInfoLoadType aLoadType) = 0;

  /* attribute nsISHEntry SHEntry; */
  NS_IMETHOD GetSHEntry(nsISHEntry * *aSHEntry) = 0;
  NS_IMETHOD SetSHEntry(nsISHEntry * aSHEntry) = 0;

  /* attribute string target; */
  NS_IMETHOD GetTarget(char * *aTarget) = 0;
  NS_IMETHOD SetTarget(const char * aTarget) = 0;

  /* attribute nsIInputStream postDataStream; */
  NS_IMETHOD GetPostDataStream(nsIInputStream * *aPostDataStream) = 0;
  NS_IMETHOD SetPostDataStream(nsIInputStream * aPostDataStream) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOCSHELLLOADINFO \
  NS_IMETHOD GetReferrer(nsIURI * *aReferrer); \
  NS_IMETHOD SetReferrer(nsIURI * aReferrer); \
  NS_IMETHOD GetOwner(nsISupports * *aOwner); \
  NS_IMETHOD SetOwner(nsISupports * aOwner); \
  NS_IMETHOD GetInheritOwner(PRBool *aInheritOwner); \
  NS_IMETHOD SetInheritOwner(PRBool aInheritOwner); \
  NS_IMETHOD GetStopActiveDocument(PRBool *aStopActiveDocument); \
  NS_IMETHOD SetStopActiveDocument(PRBool aStopActiveDocument); \
  NS_IMETHOD GetLoadType(nsDocShellInfoLoadType *aLoadType); \
  NS_IMETHOD SetLoadType(nsDocShellInfoLoadType aLoadType); \
  NS_IMETHOD GetSHEntry(nsISHEntry * *aSHEntry); \
  NS_IMETHOD SetSHEntry(nsISHEntry * aSHEntry); \
  NS_IMETHOD GetTarget(char * *aTarget); \
  NS_IMETHOD SetTarget(const char * aTarget); \
  NS_IMETHOD GetPostDataStream(nsIInputStream * *aPostDataStream); \
  NS_IMETHOD SetPostDataStream(nsIInputStream * aPostDataStream); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOCSHELLLOADINFO(_to) \
  NS_IMETHOD GetReferrer(nsIURI * *aReferrer) { return _to ## GetReferrer(aReferrer); } \
  NS_IMETHOD SetReferrer(nsIURI * aReferrer) { return _to ## SetReferrer(aReferrer); } \
  NS_IMETHOD GetOwner(nsISupports * *aOwner) { return _to ## GetOwner(aOwner); } \
  NS_IMETHOD SetOwner(nsISupports * aOwner) { return _to ## SetOwner(aOwner); } \
  NS_IMETHOD GetInheritOwner(PRBool *aInheritOwner) { return _to ## GetInheritOwner(aInheritOwner); } \
  NS_IMETHOD SetInheritOwner(PRBool aInheritOwner) { return _to ## SetInheritOwner(aInheritOwner); } \
  NS_IMETHOD GetStopActiveDocument(PRBool *aStopActiveDocument) { return _to ## GetStopActiveDocument(aStopActiveDocument); } \
  NS_IMETHOD SetStopActiveDocument(PRBool aStopActiveDocument) { return _to ## SetStopActiveDocument(aStopActiveDocument); } \
  NS_IMETHOD GetLoadType(nsDocShellInfoLoadType *aLoadType) { return _to ## GetLoadType(aLoadType); } \
  NS_IMETHOD SetLoadType(nsDocShellInfoLoadType aLoadType) { return _to ## SetLoadType(aLoadType); } \
  NS_IMETHOD GetSHEntry(nsISHEntry * *aSHEntry) { return _to ## GetSHEntry(aSHEntry); } \
  NS_IMETHOD SetSHEntry(nsISHEntry * aSHEntry) { return _to ## SetSHEntry(aSHEntry); } \
  NS_IMETHOD GetTarget(char * *aTarget) { return _to ## GetTarget(aTarget); } \
  NS_IMETHOD SetTarget(const char * aTarget) { return _to ## SetTarget(aTarget); } \
  NS_IMETHOD GetPostDataStream(nsIInputStream * *aPostDataStream) { return _to ## GetPostDataStream(aPostDataStream); } \
  NS_IMETHOD SetPostDataStream(nsIInputStream * aPostDataStream) { return _to ## SetPostDataStream(aPostDataStream); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOCSHELLLOADINFO(_to) \
  NS_IMETHOD GetReferrer(nsIURI * *aReferrer) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetReferrer(aReferrer); } \
  NS_IMETHOD SetReferrer(nsIURI * aReferrer) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetReferrer(aReferrer); } \
  NS_IMETHOD GetOwner(nsISupports * *aOwner) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetOwner(aOwner); } \
  NS_IMETHOD SetOwner(nsISupports * aOwner) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetOwner(aOwner); } \
  NS_IMETHOD GetInheritOwner(PRBool *aInheritOwner) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetInheritOwner(aInheritOwner); } \
  NS_IMETHOD SetInheritOwner(PRBool aInheritOwner) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetInheritOwner(aInheritOwner); } \
  NS_IMETHOD GetStopActiveDocument(PRBool *aStopActiveDocument) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetStopActiveDocument(aStopActiveDocument); } \
  NS_IMETHOD SetStopActiveDocument(PRBool aStopActiveDocument) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetStopActiveDocument(aStopActiveDocument); } \
  NS_IMETHOD GetLoadType(nsDocShellInfoLoadType *aLoadType) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetLoadType(aLoadType); } \
  NS_IMETHOD SetLoadType(nsDocShellInfoLoadType aLoadType) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetLoadType(aLoadType); } \
  NS_IMETHOD GetSHEntry(nsISHEntry * *aSHEntry) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetSHEntry(aSHEntry); } \
  NS_IMETHOD SetSHEntry(nsISHEntry * aSHEntry) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetSHEntry(aSHEntry); } \
  NS_IMETHOD GetTarget(char * *aTarget) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetTarget(aTarget); } \
  NS_IMETHOD SetTarget(const char * aTarget) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetTarget(aTarget); } \
  NS_IMETHOD GetPostDataStream(nsIInputStream * *aPostDataStream) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetPostDataStream(aPostDataStream); } \
  NS_IMETHOD SetPostDataStream(nsIInputStream * aPostDataStream) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetPostDataStream(aPostDataStream); } 

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

/* Header file */
class nsDocShellLoadInfo : public nsIDocShellLoadInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOCSHELLLOADINFO

  nsDocShellLoadInfo();
  virtual ~nsDocShellLoadInfo();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDocShellLoadInfo, nsIDocShellLoadInfo)

nsDocShellLoadInfo::nsDocShellLoadInfo()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* attribute nsIURI referrer; */
NS_IMETHODIMP nsDocShellLoadInfo::GetReferrer(nsIURI * *aReferrer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetReferrer(nsIURI * aReferrer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISupports owner; */
NS_IMETHODIMP nsDocShellLoadInfo::GetOwner(nsISupports * *aOwner)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetOwner(nsISupports * aOwner)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean inheritOwner; */
NS_IMETHODIMP nsDocShellLoadInfo::GetInheritOwner(PRBool *aInheritOwner)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetInheritOwner(PRBool aInheritOwner)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean stopActiveDocument; */
NS_IMETHODIMP nsDocShellLoadInfo::GetStopActiveDocument(PRBool *aStopActiveDocument)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetStopActiveDocument(PRBool aStopActiveDocument)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsDocShellInfoLoadType loadType; */
NS_IMETHODIMP nsDocShellLoadInfo::GetLoadType(nsDocShellInfoLoadType *aLoadType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetLoadType(nsDocShellInfoLoadType aLoadType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISHEntry SHEntry; */
NS_IMETHODIMP nsDocShellLoadInfo::GetSHEntry(nsISHEntry * *aSHEntry)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetSHEntry(nsISHEntry * aSHEntry)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string target; */
NS_IMETHODIMP nsDocShellLoadInfo::GetTarget(char * *aTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetTarget(const char * aTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIInputStream postDataStream; */
NS_IMETHODIMP nsDocShellLoadInfo::GetPostDataStream(nsIInputStream * *aPostDataStream)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDocShellLoadInfo::SetPostDataStream(nsIInputStream * aPostDataStream)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIDocShellLoadInfo_h__ */
