/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/suite/smile/public/smileIApplication.idl
 */

#ifndef __gen_smileIApplication_h__
#define __gen_smileIApplication_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_extIApplication_h__
#include "extIApplication.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIVariant; /* forward declaration */

class nsIURI; /* forward declaration */

class nsIDOMHTMLDocument; /* forward declaration */

class smileIBookmarkFolder; /* forward declaration */

class smileIBrowserTab; /* forward declaration */


/* starting interface:    smileIAnnotations */
#define SMILEIANNOTATIONS_IID_STR "335c9292-91a1-4ca0-ad0b-07d5f63ed6cd"

#define SMILEIANNOTATIONS_IID \
  {0x335c9292, 0x91a1, 0x4ca0, \
    { 0xad, 0x0b, 0x07, 0xd5, 0xf6, 0x3e, 0xd6, 0xcd }}

class NS_NO_VTABLE smileIAnnotations : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(SMILEIANNOTATIONS_IID)

  /* readonly attribute nsIVariant names; */
  NS_IMETHOD GetNames(nsIVariant * *aNames) = 0;

  /* boolean has (in AString aName); */
  NS_IMETHOD Has(const nsAString & aName, bool *_retval) = 0;

  /* nsIVariant get (in AString aName); */
  NS_IMETHOD Get(const nsAString & aName, nsIVariant * *_retval) = 0;

  /* void set (in AString aName, in nsIVariant aValue, in int32_t aExpiration); */
  NS_IMETHOD Set(const nsAString & aName, nsIVariant *aValue, int32_t aExpiration) = 0;

  /* void remove (in AString aName); */
  NS_IMETHOD Remove(const nsAString & aName) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(smileIAnnotations, SMILEIANNOTATIONS_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SMILEIANNOTATIONS \
  NS_IMETHOD GetNames(nsIVariant * *aNames); \
  NS_IMETHOD Has(const nsAString & aName, bool *_retval); \
  NS_IMETHOD Get(const nsAString & aName, nsIVariant * *_retval); \
  NS_IMETHOD Set(const nsAString & aName, nsIVariant *aValue, int32_t aExpiration); \
  NS_IMETHOD Remove(const nsAString & aName); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SMILEIANNOTATIONS(_to) \
  NS_IMETHOD GetNames(nsIVariant * *aNames) { return _to GetNames(aNames); } \
  NS_IMETHOD Has(const nsAString & aName, bool *_retval) { return _to Has(aName, _retval); } \
  NS_IMETHOD Get(const nsAString & aName, nsIVariant * *_retval) { return _to Get(aName, _retval); } \
  NS_IMETHOD Set(const nsAString & aName, nsIVariant *aValue, int32_t aExpiration) { return _to Set(aName, aValue, aExpiration); } \
  NS_IMETHOD Remove(const nsAString & aName) { return _to Remove(aName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SMILEIANNOTATIONS(_to) \
  NS_IMETHOD GetNames(nsIVariant * *aNames) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNames(aNames); } \
  NS_IMETHOD Has(const nsAString & aName, bool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Has(aName, _retval); } \
  NS_IMETHOD Get(const nsAString & aName, nsIVariant * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Get(aName, _retval); } \
  NS_IMETHOD Set(const nsAString & aName, nsIVariant *aValue, int32_t aExpiration) { return !_to ? NS_ERROR_NULL_POINTER : _to->Set(aName, aValue, aExpiration); } \
  NS_IMETHOD Remove(const nsAString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(aName); } 

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

/* Header file */
class _MYCLASS_ : public smileIAnnotations
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SMILEIANNOTATIONS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, smileIAnnotations)

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

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

/* readonly attribute nsIVariant names; */
NS_IMETHODIMP _MYCLASS_::GetNames(nsIVariant * *aNames)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean has (in AString aName); */
NS_IMETHODIMP _MYCLASS_::Has(const nsAString & aName, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIVariant get (in AString aName); */
NS_IMETHODIMP _MYCLASS_::Get(const nsAString & aName, nsIVariant * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void set (in AString aName, in nsIVariant aValue, in int32_t aExpiration); */
NS_IMETHODIMP _MYCLASS_::Set(const nsAString & aName, nsIVariant *aValue, int32_t aExpiration)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void remove (in AString aName); */
NS_IMETHODIMP _MYCLASS_::Remove(const nsAString & aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    smileIBookmark */
#define SMILEIBOOKMARK_IID_STR "a27f8945-9333-45d3-8ee1-24cbcb3366f9"

#define SMILEIBOOKMARK_IID \
  {0xa27f8945, 0x9333, 0x45d3, \
    { 0x8e, 0xe1, 0x24, 0xcb, 0xcb, 0x33, 0x66, 0xf9 }}

class NS_NO_VTABLE smileIBookmark : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(SMILEIBOOKMARK_IID)

  /* readonly attribute long long id; */
  NS_IMETHOD GetId(int64_t *aId) = 0;

  /* attribute AString title; */
  NS_IMETHOD GetTitle(nsAString & aTitle) = 0;
  NS_IMETHOD SetTitle(const nsAString & aTitle) = 0;

  /* attribute nsIURI uri; */
  NS_IMETHOD GetUri(nsIURI * *aUri) = 0;
  NS_IMETHOD SetUri(nsIURI *aUri) = 0;

  /* attribute AString description; */
  NS_IMETHOD GetDescription(nsAString & aDescription) = 0;
  NS_IMETHOD SetDescription(const nsAString & aDescription) = 0;

  /* attribute AString keyword; */
  NS_IMETHOD GetKeyword(nsAString & aKeyword) = 0;
  NS_IMETHOD SetKeyword(const nsAString & aKeyword) = 0;

  /* readonly attribute AString type; */
  NS_IMETHOD GetType(nsAString & aType) = 0;

  /* attribute smileIBookmarkFolder parent; */
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent) = 0;
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent) = 0;

  /* readonly attribute smileIAnnotations annotations; */
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations) = 0;

  /* readonly attribute extIEvents events; */
  NS_IMETHOD GetEvents(extIEvents * *aEvents) = 0;

  /* void remove (); */
  NS_IMETHOD Remove(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(smileIBookmark, SMILEIBOOKMARK_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SMILEIBOOKMARK \
  NS_IMETHOD GetId(int64_t *aId); \
  NS_IMETHOD GetTitle(nsAString & aTitle); \
  NS_IMETHOD SetTitle(const nsAString & aTitle); \
  NS_IMETHOD GetUri(nsIURI * *aUri); \
  NS_IMETHOD SetUri(nsIURI *aUri); \
  NS_IMETHOD GetDescription(nsAString & aDescription); \
  NS_IMETHOD SetDescription(const nsAString & aDescription); \
  NS_IMETHOD GetKeyword(nsAString & aKeyword); \
  NS_IMETHOD SetKeyword(const nsAString & aKeyword); \
  NS_IMETHOD GetType(nsAString & aType); \
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent); \
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent); \
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations); \
  NS_IMETHOD GetEvents(extIEvents * *aEvents); \
  NS_IMETHOD Remove(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SMILEIBOOKMARK(_to) \
  NS_IMETHOD GetId(int64_t *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetTitle(nsAString & aTitle) { return _to GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsAString & aTitle) { return _to SetTitle(aTitle); } \
  NS_IMETHOD GetUri(nsIURI * *aUri) { return _to GetUri(aUri); } \
  NS_IMETHOD SetUri(nsIURI *aUri) { return _to SetUri(aUri); } \
  NS_IMETHOD GetDescription(nsAString & aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const nsAString & aDescription) { return _to SetDescription(aDescription); } \
  NS_IMETHOD GetKeyword(nsAString & aKeyword) { return _to GetKeyword(aKeyword); } \
  NS_IMETHOD SetKeyword(const nsAString & aKeyword) { return _to SetKeyword(aKeyword); } \
  NS_IMETHOD GetType(nsAString & aType) { return _to GetType(aType); } \
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent) { return _to GetParent(aParent); } \
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent) { return _to SetParent(aParent); } \
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations) { return _to GetAnnotations(aAnnotations); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return _to GetEvents(aEvents); } \
  NS_IMETHOD Remove(void) { return _to Remove(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SMILEIBOOKMARK(_to) \
  NS_IMETHOD GetId(int64_t *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetTitle(nsAString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsAString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTitle(aTitle); } \
  NS_IMETHOD GetUri(nsIURI * *aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUri(aUri); } \
  NS_IMETHOD SetUri(nsIURI *aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUri(aUri); } \
  NS_IMETHOD GetDescription(nsAString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const nsAString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDescription(aDescription); } \
  NS_IMETHOD GetKeyword(nsAString & aKeyword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyword(aKeyword); } \
  NS_IMETHOD SetKeyword(const nsAString & aKeyword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetKeyword(aKeyword); } \
  NS_IMETHOD GetType(nsAString & aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParent(aParent); } \
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAnnotations(aAnnotations); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEvents(aEvents); } \
  NS_IMETHOD Remove(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(); } 

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

/* Header file */
class _MYCLASS_ : public smileIBookmark
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SMILEIBOOKMARK

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, smileIBookmark)

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

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

/* readonly attribute long long id; */
NS_IMETHODIMP _MYCLASS_::GetId(int64_t *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString title; */
NS_IMETHODIMP _MYCLASS_::GetTitle(nsAString & aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTitle(const nsAString & aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIURI uri; */
NS_IMETHODIMP _MYCLASS_::GetUri(nsIURI * *aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUri(nsIURI *aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(nsAString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDescription(const nsAString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString keyword; */
NS_IMETHODIMP _MYCLASS_::GetKeyword(nsAString & aKeyword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetKeyword(const nsAString & aKeyword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString type; */
NS_IMETHODIMP _MYCLASS_::GetType(nsAString & aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute smileIBookmarkFolder parent; */
NS_IMETHODIMP _MYCLASS_::GetParent(smileIBookmarkFolder * *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetParent(smileIBookmarkFolder *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIAnnotations annotations; */
NS_IMETHODIMP _MYCLASS_::GetAnnotations(smileIAnnotations * *aAnnotations)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute extIEvents events; */
NS_IMETHODIMP _MYCLASS_::GetEvents(extIEvents * *aEvents)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void remove (); */
NS_IMETHODIMP _MYCLASS_::Remove()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    smileIBookmarkFolder */
#define SMILEIBOOKMARKFOLDER_IID_STR "03227226-d6eb-4654-9578-710c2222eb81"

#define SMILEIBOOKMARKFOLDER_IID \
  {0x03227226, 0xd6eb, 0x4654, \
    { 0x95, 0x78, 0x71, 0x0c, 0x22, 0x22, 0xeb, 0x81 }}

class NS_NO_VTABLE smileIBookmarkFolder : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(SMILEIBOOKMARKFOLDER_IID)

  /* readonly attribute long long id; */
  NS_IMETHOD GetId(int64_t *aId) = 0;

  /* attribute AString title; */
  NS_IMETHOD GetTitle(nsAString & aTitle) = 0;
  NS_IMETHOD SetTitle(const nsAString & aTitle) = 0;

  /* attribute AString description; */
  NS_IMETHOD GetDescription(nsAString & aDescription) = 0;
  NS_IMETHOD SetDescription(const nsAString & aDescription) = 0;

  /* readonly attribute AString type; */
  NS_IMETHOD GetType(nsAString & aType) = 0;

  /* attribute smileIBookmarkFolder parent; */
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent) = 0;
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent) = 0;

  /* readonly attribute smileIAnnotations annotations; */
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations) = 0;

  /* readonly attribute extIEvents events; */
  NS_IMETHOD GetEvents(extIEvents * *aEvents) = 0;

  /* readonly attribute nsIVariant children; */
  NS_IMETHOD GetChildren(nsIVariant * *aChildren) = 0;

  /* smileIBookmark addBookmark (in AString aTitle, in nsIURI aURI); */
  NS_IMETHOD AddBookmark(const nsAString & aTitle, nsIURI *aURI, smileIBookmark * *_retval) = 0;

  /* smileIBookmark addSeparator (); */
  NS_IMETHOD AddSeparator(smileIBookmark * *_retval) = 0;

  /* smileIBookmarkFolder addFolder (in AString aTitle); */
  NS_IMETHOD AddFolder(const nsAString & aTitle, smileIBookmarkFolder * *_retval) = 0;

  /* void remove (); */
  NS_IMETHOD Remove(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(smileIBookmarkFolder, SMILEIBOOKMARKFOLDER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SMILEIBOOKMARKFOLDER \
  NS_IMETHOD GetId(int64_t *aId); \
  NS_IMETHOD GetTitle(nsAString & aTitle); \
  NS_IMETHOD SetTitle(const nsAString & aTitle); \
  NS_IMETHOD GetDescription(nsAString & aDescription); \
  NS_IMETHOD SetDescription(const nsAString & aDescription); \
  NS_IMETHOD GetType(nsAString & aType); \
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent); \
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent); \
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations); \
  NS_IMETHOD GetEvents(extIEvents * *aEvents); \
  NS_IMETHOD GetChildren(nsIVariant * *aChildren); \
  NS_IMETHOD AddBookmark(const nsAString & aTitle, nsIURI *aURI, smileIBookmark * *_retval); \
  NS_IMETHOD AddSeparator(smileIBookmark * *_retval); \
  NS_IMETHOD AddFolder(const nsAString & aTitle, smileIBookmarkFolder * *_retval); \
  NS_IMETHOD Remove(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SMILEIBOOKMARKFOLDER(_to) \
  NS_IMETHOD GetId(int64_t *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetTitle(nsAString & aTitle) { return _to GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsAString & aTitle) { return _to SetTitle(aTitle); } \
  NS_IMETHOD GetDescription(nsAString & aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const nsAString & aDescription) { return _to SetDescription(aDescription); } \
  NS_IMETHOD GetType(nsAString & aType) { return _to GetType(aType); } \
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent) { return _to GetParent(aParent); } \
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent) { return _to SetParent(aParent); } \
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations) { return _to GetAnnotations(aAnnotations); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return _to GetEvents(aEvents); } \
  NS_IMETHOD GetChildren(nsIVariant * *aChildren) { return _to GetChildren(aChildren); } \
  NS_IMETHOD AddBookmark(const nsAString & aTitle, nsIURI *aURI, smileIBookmark * *_retval) { return _to AddBookmark(aTitle, aURI, _retval); } \
  NS_IMETHOD AddSeparator(smileIBookmark * *_retval) { return _to AddSeparator(_retval); } \
  NS_IMETHOD AddFolder(const nsAString & aTitle, smileIBookmarkFolder * *_retval) { return _to AddFolder(aTitle, _retval); } \
  NS_IMETHOD Remove(void) { return _to Remove(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SMILEIBOOKMARKFOLDER(_to) \
  NS_IMETHOD GetId(int64_t *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetTitle(nsAString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsAString & aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTitle(aTitle); } \
  NS_IMETHOD GetDescription(nsAString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const nsAString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDescription(aDescription); } \
  NS_IMETHOD GetType(nsAString & aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetParent(smileIBookmarkFolder * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD SetParent(smileIBookmarkFolder *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParent(aParent); } \
  NS_IMETHOD GetAnnotations(smileIAnnotations * *aAnnotations) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAnnotations(aAnnotations); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEvents(aEvents); } \
  NS_IMETHOD GetChildren(nsIVariant * *aChildren) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildren(aChildren); } \
  NS_IMETHOD AddBookmark(const nsAString & aTitle, nsIURI *aURI, smileIBookmark * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddBookmark(aTitle, aURI, _retval); } \
  NS_IMETHOD AddSeparator(smileIBookmark * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddSeparator(_retval); } \
  NS_IMETHOD AddFolder(const nsAString & aTitle, smileIBookmarkFolder * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddFolder(aTitle, _retval); } \
  NS_IMETHOD Remove(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(); } 

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

/* Header file */
class _MYCLASS_ : public smileIBookmarkFolder
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SMILEIBOOKMARKFOLDER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, smileIBookmarkFolder)

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

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

/* readonly attribute long long id; */
NS_IMETHODIMP _MYCLASS_::GetId(int64_t *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString title; */
NS_IMETHODIMP _MYCLASS_::GetTitle(nsAString & aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTitle(const nsAString & aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(nsAString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDescription(const nsAString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString type; */
NS_IMETHODIMP _MYCLASS_::GetType(nsAString & aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute smileIBookmarkFolder parent; */
NS_IMETHODIMP _MYCLASS_::GetParent(smileIBookmarkFolder * *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetParent(smileIBookmarkFolder *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIAnnotations annotations; */
NS_IMETHODIMP _MYCLASS_::GetAnnotations(smileIAnnotations * *aAnnotations)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute extIEvents events; */
NS_IMETHODIMP _MYCLASS_::GetEvents(extIEvents * *aEvents)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIVariant children; */
NS_IMETHODIMP _MYCLASS_::GetChildren(nsIVariant * *aChildren)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* smileIBookmark addBookmark (in AString aTitle, in nsIURI aURI); */
NS_IMETHODIMP _MYCLASS_::AddBookmark(const nsAString & aTitle, nsIURI *aURI, smileIBookmark * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* smileIBookmark addSeparator (); */
NS_IMETHODIMP _MYCLASS_::AddSeparator(smileIBookmark * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* smileIBookmarkFolder addFolder (in AString aTitle); */
NS_IMETHODIMP _MYCLASS_::AddFolder(const nsAString & aTitle, smileIBookmarkFolder * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void remove (); */
NS_IMETHODIMP _MYCLASS_::Remove()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    smileIBookmarkRoots */
#define SMILEIBOOKMARKROOTS_IID_STR "1102eec4-f66b-4082-abad-c967ad7d5f76"

#define SMILEIBOOKMARKROOTS_IID \
  {0x1102eec4, 0xf66b, 0x4082, \
    { 0xab, 0xad, 0xc9, 0x67, 0xad, 0x7d, 0x5f, 0x76 }}

class NS_NO_VTABLE smileIBookmarkRoots : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(SMILEIBOOKMARKROOTS_IID)

  /* readonly attribute smileIBookmarkFolder menu; */
  NS_IMETHOD GetMenu(smileIBookmarkFolder * *aMenu) = 0;

  /* readonly attribute smileIBookmarkFolder toolbar; */
  NS_IMETHOD GetToolbar(smileIBookmarkFolder * *aToolbar) = 0;

  /* readonly attribute smileIBookmarkFolder tags; */
  NS_IMETHOD GetTags(smileIBookmarkFolder * *aTags) = 0;

  /* readonly attribute smileIBookmarkFolder unfiled; */
  NS_IMETHOD GetUnfiled(smileIBookmarkFolder * *aUnfiled) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(smileIBookmarkRoots, SMILEIBOOKMARKROOTS_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SMILEIBOOKMARKROOTS \
  NS_IMETHOD GetMenu(smileIBookmarkFolder * *aMenu); \
  NS_IMETHOD GetToolbar(smileIBookmarkFolder * *aToolbar); \
  NS_IMETHOD GetTags(smileIBookmarkFolder * *aTags); \
  NS_IMETHOD GetUnfiled(smileIBookmarkFolder * *aUnfiled); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SMILEIBOOKMARKROOTS(_to) \
  NS_IMETHOD GetMenu(smileIBookmarkFolder * *aMenu) { return _to GetMenu(aMenu); } \
  NS_IMETHOD GetToolbar(smileIBookmarkFolder * *aToolbar) { return _to GetToolbar(aToolbar); } \
  NS_IMETHOD GetTags(smileIBookmarkFolder * *aTags) { return _to GetTags(aTags); } \
  NS_IMETHOD GetUnfiled(smileIBookmarkFolder * *aUnfiled) { return _to GetUnfiled(aUnfiled); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SMILEIBOOKMARKROOTS(_to) \
  NS_IMETHOD GetMenu(smileIBookmarkFolder * *aMenu) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMenu(aMenu); } \
  NS_IMETHOD GetToolbar(smileIBookmarkFolder * *aToolbar) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetToolbar(aToolbar); } \
  NS_IMETHOD GetTags(smileIBookmarkFolder * *aTags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTags(aTags); } \
  NS_IMETHOD GetUnfiled(smileIBookmarkFolder * *aUnfiled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnfiled(aUnfiled); } 

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

/* Header file */
class _MYCLASS_ : public smileIBookmarkRoots
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SMILEIBOOKMARKROOTS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, smileIBookmarkRoots)

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

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

/* readonly attribute smileIBookmarkFolder menu; */
NS_IMETHODIMP _MYCLASS_::GetMenu(smileIBookmarkFolder * *aMenu)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIBookmarkFolder toolbar; */
NS_IMETHODIMP _MYCLASS_::GetToolbar(smileIBookmarkFolder * *aToolbar)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIBookmarkFolder tags; */
NS_IMETHODIMP _MYCLASS_::GetTags(smileIBookmarkFolder * *aTags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIBookmarkFolder unfiled; */
NS_IMETHODIMP _MYCLASS_::GetUnfiled(smileIBookmarkFolder * *aUnfiled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    smileIWindow */
#define SMILEIWINDOW_IID_STR "1c3002ec-5aaf-4232-ab7d-835a348133fd"

#define SMILEIWINDOW_IID \
  {0x1c3002ec, 0x5aaf, 0x4232, \
    { 0xab, 0x7d, 0x83, 0x5a, 0x34, 0x81, 0x33, 0xfd }}

class NS_NO_VTABLE smileIWindow : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(SMILEIWINDOW_IID)

  /* readonly attribute nsIVariant tabs; */
  NS_IMETHOD GetTabs(nsIVariant * *aTabs) = 0;

  /* readonly attribute smileIBrowserTab activeTab; */
  NS_IMETHOD GetActiveTab(smileIBrowserTab * *aActiveTab) = 0;

  /* smileIBrowserTab open (in nsIURI aURI); */
  NS_IMETHOD Open(nsIURI *aURI, smileIBrowserTab * *_retval) = 0;

  /* readonly attribute extIEvents events; */
  NS_IMETHOD GetEvents(extIEvents * *aEvents) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(smileIWindow, SMILEIWINDOW_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SMILEIWINDOW \
  NS_IMETHOD GetTabs(nsIVariant * *aTabs); \
  NS_IMETHOD GetActiveTab(smileIBrowserTab * *aActiveTab); \
  NS_IMETHOD Open(nsIURI *aURI, smileIBrowserTab * *_retval); \
  NS_IMETHOD GetEvents(extIEvents * *aEvents); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SMILEIWINDOW(_to) \
  NS_IMETHOD GetTabs(nsIVariant * *aTabs) { return _to GetTabs(aTabs); } \
  NS_IMETHOD GetActiveTab(smileIBrowserTab * *aActiveTab) { return _to GetActiveTab(aActiveTab); } \
  NS_IMETHOD Open(nsIURI *aURI, smileIBrowserTab * *_retval) { return _to Open(aURI, _retval); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return _to GetEvents(aEvents); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SMILEIWINDOW(_to) \
  NS_IMETHOD GetTabs(nsIVariant * *aTabs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTabs(aTabs); } \
  NS_IMETHOD GetActiveTab(smileIBrowserTab * *aActiveTab) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActiveTab(aActiveTab); } \
  NS_IMETHOD Open(nsIURI *aURI, smileIBrowserTab * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Open(aURI, _retval); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEvents(aEvents); } 

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

/* Header file */
class _MYCLASS_ : public smileIWindow
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SMILEIWINDOW

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, smileIWindow)

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

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

/* readonly attribute nsIVariant tabs; */
NS_IMETHODIMP _MYCLASS_::GetTabs(nsIVariant * *aTabs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIBrowserTab activeTab; */
NS_IMETHODIMP _MYCLASS_::GetActiveTab(smileIBrowserTab * *aActiveTab)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* smileIBrowserTab open (in nsIURI aURI); */
NS_IMETHODIMP _MYCLASS_::Open(nsIURI *aURI, smileIBrowserTab * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute extIEvents events; */
NS_IMETHODIMP _MYCLASS_::GetEvents(extIEvents * *aEvents)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    smileIBrowserTab */
#define SMILEIBROWSERTAB_IID_STR "9b06c55e-5377-4c71-8bda-8e8750c5a02a"

#define SMILEIBROWSERTAB_IID \
  {0x9b06c55e, 0x5377, 0x4c71, \
    { 0x8b, 0xda, 0x8e, 0x87, 0x50, 0xc5, 0xa0, 0x2a }}

class NS_NO_VTABLE smileIBrowserTab : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(SMILEIBROWSERTAB_IID)

  /* readonly attribute nsIURI uri; */
  NS_IMETHOD GetUri(nsIURI * *aUri) = 0;

  /* readonly attribute int32_t index; */
  NS_IMETHOD GetIndex(int32_t *aIndex) = 0;

  /* readonly attribute smileIWindow window; */
  NS_IMETHOD GetWindow(smileIWindow * *aWindow) = 0;

  /* readonly attribute nsIDOMHTMLDocument document; */
  NS_IMETHOD GetDocument(nsIDOMHTMLDocument * *aDocument) = 0;

  /* readonly attribute extIEvents events; */
  NS_IMETHOD GetEvents(extIEvents * *aEvents) = 0;

  /* void load (in nsIURI aURI); */
  NS_IMETHOD Load(nsIURI *aURI) = 0;

  /* void focus (); */
  NS_IMETHOD Focus(void) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void moveBefore (in smileIBrowserTab aBefore); */
  NS_IMETHOD MoveBefore(smileIBrowserTab *aBefore) = 0;

  /* void moveToEnd (); */
  NS_IMETHOD MoveToEnd(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(smileIBrowserTab, SMILEIBROWSERTAB_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SMILEIBROWSERTAB \
  NS_IMETHOD GetUri(nsIURI * *aUri); \
  NS_IMETHOD GetIndex(int32_t *aIndex); \
  NS_IMETHOD GetWindow(smileIWindow * *aWindow); \
  NS_IMETHOD GetDocument(nsIDOMHTMLDocument * *aDocument); \
  NS_IMETHOD GetEvents(extIEvents * *aEvents); \
  NS_IMETHOD Load(nsIURI *aURI); \
  NS_IMETHOD Focus(void); \
  NS_IMETHOD Close(void); \
  NS_IMETHOD MoveBefore(smileIBrowserTab *aBefore); \
  NS_IMETHOD MoveToEnd(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SMILEIBROWSERTAB(_to) \
  NS_IMETHOD GetUri(nsIURI * *aUri) { return _to GetUri(aUri); } \
  NS_IMETHOD GetIndex(int32_t *aIndex) { return _to GetIndex(aIndex); } \
  NS_IMETHOD GetWindow(smileIWindow * *aWindow) { return _to GetWindow(aWindow); } \
  NS_IMETHOD GetDocument(nsIDOMHTMLDocument * *aDocument) { return _to GetDocument(aDocument); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return _to GetEvents(aEvents); } \
  NS_IMETHOD Load(nsIURI *aURI) { return _to Load(aURI); } \
  NS_IMETHOD Focus(void) { return _to Focus(); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD MoveBefore(smileIBrowserTab *aBefore) { return _to MoveBefore(aBefore); } \
  NS_IMETHOD MoveToEnd(void) { return _to MoveToEnd(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SMILEIBROWSERTAB(_to) \
  NS_IMETHOD GetUri(nsIURI * *aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUri(aUri); } \
  NS_IMETHOD GetIndex(int32_t *aIndex) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIndex(aIndex); } \
  NS_IMETHOD GetWindow(smileIWindow * *aWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWindow(aWindow); } \
  NS_IMETHOD GetDocument(nsIDOMHTMLDocument * *aDocument) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDocument(aDocument); } \
  NS_IMETHOD GetEvents(extIEvents * *aEvents) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEvents(aEvents); } \
  NS_IMETHOD Load(nsIURI *aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->Load(aURI); } \
  NS_IMETHOD Focus(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Focus(); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD MoveBefore(smileIBrowserTab *aBefore) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveBefore(aBefore); } \
  NS_IMETHOD MoveToEnd(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveToEnd(); } 

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

/* Header file */
class _MYCLASS_ : public smileIBrowserTab
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SMILEIBROWSERTAB

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, smileIBrowserTab)

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

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

/* readonly attribute nsIURI uri; */
NS_IMETHODIMP _MYCLASS_::GetUri(nsIURI * *aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute int32_t index; */
NS_IMETHODIMP _MYCLASS_::GetIndex(int32_t *aIndex)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIWindow window; */
NS_IMETHODIMP _MYCLASS_::GetWindow(smileIWindow * *aWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMHTMLDocument document; */
NS_IMETHODIMP _MYCLASS_::GetDocument(nsIDOMHTMLDocument * *aDocument)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute extIEvents events; */
NS_IMETHODIMP _MYCLASS_::GetEvents(extIEvents * *aEvents)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void load (in nsIURI aURI); */
NS_IMETHODIMP _MYCLASS_::Load(nsIURI *aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void focus (); */
NS_IMETHODIMP _MYCLASS_::Focus()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void close (); */
NS_IMETHODIMP _MYCLASS_::Close()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void moveBefore (in smileIBrowserTab aBefore); */
NS_IMETHODIMP _MYCLASS_::MoveBefore(smileIBrowserTab *aBefore)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void moveToEnd (); */
NS_IMETHODIMP _MYCLASS_::MoveToEnd()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    smileIApplication */
#define SMILEIAPPLICATION_IID_STR "0b8e2ed6-70d9-45a0-a745-a2b874d6b5fd"

#define SMILEIAPPLICATION_IID \
  {0x0b8e2ed6, 0x70d9, 0x45a0, \
    { 0xa7, 0x45, 0xa2, 0xb8, 0x74, 0xd6, 0xb5, 0xfd }}

class NS_NO_VTABLE smileIApplication : public extIApplication {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(SMILEIAPPLICATION_IID)

  /* readonly attribute smileIBookmarkRoots bookmarks; */
  NS_IMETHOD GetBookmarks(smileIBookmarkRoots * *aBookmarks) = 0;

  /* readonly attribute nsIVariant windows; */
  NS_IMETHOD GetWindows(nsIVariant * *aWindows) = 0;

  /* readonly attribute smileIWindow activeWindow; */
  NS_IMETHOD GetActiveWindow(smileIWindow * *aActiveWindow) = 0;

  /* readonly attribute boolean platformIsMac; */
  NS_IMETHOD GetPlatformIsMac(bool *aPlatformIsMac) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(smileIApplication, SMILEIAPPLICATION_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SMILEIAPPLICATION \
  NS_IMETHOD GetBookmarks(smileIBookmarkRoots * *aBookmarks); \
  NS_IMETHOD GetWindows(nsIVariant * *aWindows); \
  NS_IMETHOD GetActiveWindow(smileIWindow * *aActiveWindow); \
  NS_IMETHOD GetPlatformIsMac(bool *aPlatformIsMac); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SMILEIAPPLICATION(_to) \
  NS_IMETHOD GetBookmarks(smileIBookmarkRoots * *aBookmarks) { return _to GetBookmarks(aBookmarks); } \
  NS_IMETHOD GetWindows(nsIVariant * *aWindows) { return _to GetWindows(aWindows); } \
  NS_IMETHOD GetActiveWindow(smileIWindow * *aActiveWindow) { return _to GetActiveWindow(aActiveWindow); } \
  NS_IMETHOD GetPlatformIsMac(bool *aPlatformIsMac) { return _to GetPlatformIsMac(aPlatformIsMac); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SMILEIAPPLICATION(_to) \
  NS_IMETHOD GetBookmarks(smileIBookmarkRoots * *aBookmarks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBookmarks(aBookmarks); } \
  NS_IMETHOD GetWindows(nsIVariant * *aWindows) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWindows(aWindows); } \
  NS_IMETHOD GetActiveWindow(smileIWindow * *aActiveWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActiveWindow(aActiveWindow); } \
  NS_IMETHOD GetPlatformIsMac(bool *aPlatformIsMac) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlatformIsMac(aPlatformIsMac); } 

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

/* Header file */
class _MYCLASS_ : public smileIApplication
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SMILEIAPPLICATION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, smileIApplication)

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

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

/* readonly attribute smileIBookmarkRoots bookmarks; */
NS_IMETHODIMP _MYCLASS_::GetBookmarks(smileIBookmarkRoots * *aBookmarks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIVariant windows; */
NS_IMETHODIMP _MYCLASS_::GetWindows(nsIVariant * *aWindows)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute smileIWindow activeWindow; */
NS_IMETHODIMP _MYCLASS_::GetActiveWindow(smileIWindow * *aActiveWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean platformIsMac; */
NS_IMETHODIMP _MYCLASS_::GetPlatformIsMac(bool *aPlatformIsMac)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_smileIApplication_h__ */
