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

#ifndef __gen_nsIIconURI_h__
#define __gen_nsIIconURI_h__


#ifndef __gen_nsIURI_h__
#include "nsIURI.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:    nsIMozIconURI */
#define NS_IMOZICONURI_IID_STR "733a7a16-2d36-11d5-9907-001083010e9b"

#define NS_IMOZICONURI_IID \
  {0x733a7a16, 0x2d36, 0x11d5, \
    { 0x99, 0x07, 0x00, 0x10, 0x83, 0x01, 0x0e, 0x9b }}

class NS_NO_VTABLE nsIMozIconURI : public nsIURI {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMOZICONURI_IID)

  /* attribute nsIURI IconFile; */
  NS_IMETHOD GetIconFile(nsIURI * *aIconFile) = 0;
  NS_IMETHOD SetIconFile(nsIURI * aIconFile) = 0;

  /* attribute unsigned long imageSize; */
  NS_IMETHOD GetImageSize(PRUint32 *aImageSize) = 0;
  NS_IMETHOD SetImageSize(PRUint32 aImageSize) = 0;

  /* attribute ACString contentType; */
  NS_IMETHOD GetContentType(nsACString & aContentType) = 0;
  NS_IMETHOD SetContentType(const nsACString & aContentType) = 0;

  /* readonly attribute ACString fileExtension; */
  NS_IMETHOD GetFileExtension(nsACString & aFileExtension) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMOZICONURI \
  NS_IMETHOD GetIconFile(nsIURI * *aIconFile); \
  NS_IMETHOD SetIconFile(nsIURI * aIconFile); \
  NS_IMETHOD GetImageSize(PRUint32 *aImageSize); \
  NS_IMETHOD SetImageSize(PRUint32 aImageSize); \
  NS_IMETHOD GetContentType(nsACString & aContentType); \
  NS_IMETHOD SetContentType(const nsACString & aContentType); \
  NS_IMETHOD GetFileExtension(nsACString & aFileExtension); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMOZICONURI(_to) \
  NS_IMETHOD GetIconFile(nsIURI * *aIconFile) { return _to GetIconFile(aIconFile); } \
  NS_IMETHOD SetIconFile(nsIURI * aIconFile) { return _to SetIconFile(aIconFile); } \
  NS_IMETHOD GetImageSize(PRUint32 *aImageSize) { return _to GetImageSize(aImageSize); } \
  NS_IMETHOD SetImageSize(PRUint32 aImageSize) { return _to SetImageSize(aImageSize); } \
  NS_IMETHOD GetContentType(nsACString & aContentType) { return _to GetContentType(aContentType); } \
  NS_IMETHOD SetContentType(const nsACString & aContentType) { return _to SetContentType(aContentType); } \
  NS_IMETHOD GetFileExtension(nsACString & aFileExtension) { return _to GetFileExtension(aFileExtension); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMOZICONURI(_to) \
  NS_IMETHOD GetIconFile(nsIURI * *aIconFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIconFile(aIconFile); } \
  NS_IMETHOD SetIconFile(nsIURI * aIconFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIconFile(aIconFile); } \
  NS_IMETHOD GetImageSize(PRUint32 *aImageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageSize(aImageSize); } \
  NS_IMETHOD SetImageSize(PRUint32 aImageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImageSize(aImageSize); } \
  NS_IMETHOD GetContentType(nsACString & aContentType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContentType(aContentType); } \
  NS_IMETHOD SetContentType(const nsACString & aContentType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetContentType(aContentType); } \
  NS_IMETHOD GetFileExtension(nsACString & aFileExtension) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileExtension(aFileExtension); } 

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

/* Header file */
class nsMozIconURI : public nsIMozIconURI
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMOZICONURI

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMozIconURI, nsIMozIconURI)

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

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

/* attribute nsIURI IconFile; */
NS_IMETHODIMP nsMozIconURI::GetIconFile(nsIURI * *aIconFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMozIconURI::SetIconFile(nsIURI * aIconFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long imageSize; */
NS_IMETHODIMP nsMozIconURI::GetImageSize(PRUint32 *aImageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMozIconURI::SetImageSize(PRUint32 aImageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString contentType; */
NS_IMETHODIMP nsMozIconURI::GetContentType(nsACString & aContentType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMozIconURI::SetContentType(const nsACString & aContentType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString fileExtension; */
NS_IMETHODIMP nsMozIconURI::GetFileExtension(nsACString & aFileExtension)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIIconURI_h__ */
