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

#ifndef __gen_flockIBlogAPI_h__
#define __gen_flockIBlogAPI_h__


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

#ifndef __gen_nsISimpleEnumerator_h__
#include "nsISimpleEnumerator.h"
#endif

#ifndef __gen_nsIStringEnumerator_h__
#include "nsIStringEnumerator.h"
#endif

#ifndef __gen_nsIRDFDataSource_h__
#include "nsIRDFDataSource.h"
#endif

#ifndef __gen_nsIRDFNode_h__
#include "nsIRDFNode.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:    flockIBlogLink */
#define FLOCKIBLOGLINK_IID_STR "78b76670-a8db-4fea-adbe-54ab509aa467"

#define FLOCKIBLOGLINK_IID \
  {0x78b76670, 0xa8db, 0x4fea, \
    { 0xad, 0xbe, 0x54, 0xab, 0x50, 0x9a, 0xa4, 0x67 }}

class NS_NO_VTABLE flockIBlogLink : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGLINK_IID)

  /* attribute AString href; */
  NS_IMETHOD GetHref(nsAString & aHref) = 0;
  NS_IMETHOD SetHref(const nsAString & aHref) = 0;

  /* attribute AString rel; */
  NS_IMETHOD GetRel(nsAString & aRel) = 0;
  NS_IMETHOD SetRel(const nsAString & aRel) = 0;

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

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

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGLINK \
  NS_IMETHOD GetHref(nsAString & aHref); \
  NS_IMETHOD SetHref(const nsAString & aHref); \
  NS_IMETHOD GetRel(nsAString & aRel); \
  NS_IMETHOD SetRel(const nsAString & aRel); \
  NS_IMETHOD GetType(nsAString & aType); \
  NS_IMETHOD SetType(const nsAString & aType); \
  NS_IMETHOD GetTitle(nsAString & aTitle); \
  NS_IMETHOD SetTitle(const nsAString & aTitle); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGLINK(_to) \
  NS_IMETHOD GetHref(nsAString & aHref) { return _to GetHref(aHref); } \
  NS_IMETHOD SetHref(const nsAString & aHref) { return _to SetHref(aHref); } \
  NS_IMETHOD GetRel(nsAString & aRel) { return _to GetRel(aRel); } \
  NS_IMETHOD SetRel(const nsAString & aRel) { return _to SetRel(aRel); } \
  NS_IMETHOD GetType(nsAString & aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(const nsAString & aType) { return _to SetType(aType); } \
  NS_IMETHOD GetTitle(nsAString & aTitle) { return _to GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsAString & aTitle) { return _to SetTitle(aTitle); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGLINK(_to) \
  NS_IMETHOD GetHref(nsAString & aHref) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHref(aHref); } \
  NS_IMETHOD SetHref(const nsAString & aHref) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHref(aHref); } \
  NS_IMETHOD GetRel(nsAString & aRel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRel(aRel); } \
  NS_IMETHOD SetRel(const nsAString & aRel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRel(aRel); } \
  NS_IMETHOD GetType(nsAString & aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(const nsAString & aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  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); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogLink
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGLINK

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute AString href; */
NS_IMETHODIMP _MYCLASS_::GetHref(nsAString & aHref)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHref(const nsAString & aHref)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString rel; */
NS_IMETHODIMP _MYCLASS_::GetRel(nsAString & aRel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRel(const nsAString & aRel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString type; */
NS_IMETHODIMP _MYCLASS_::GetType(nsAString & aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetType(const nsAString & aType)
{
    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;
}

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


/* starting interface:    flockIBlogAccount */
#define FLOCKIBLOGACCOUNT_IID_STR "ce875203-d39c-40b0-8f01-b2313b49bb5e"

#define FLOCKIBLOGACCOUNT_IID \
  {0xce875203, 0xd39c, 0x40b0, \
    { 0x8f, 0x01, 0xb2, 0x31, 0x3b, 0x49, 0xbb, 0x5e }}

class NS_NO_VTABLE flockIBlogAccount : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGACCOUNT_IID)

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

  /* attribute AString uid; */
  NS_IMETHOD GetUid(nsAString & aUid) = 0;
  NS_IMETHOD SetUid(const nsAString & aUid) = 0;

  /* attribute AString url; */
  NS_IMETHOD GetUrl(nsAString & aUrl) = 0;
  NS_IMETHOD SetUrl(const nsAString & aUrl) = 0;

  /* attribute AString api; */
  NS_IMETHOD GetApi(nsAString & aApi) = 0;
  NS_IMETHOD SetApi(const nsAString & aApi) = 0;

  /* attribute boolean preferredapi; */
  NS_IMETHOD GetPreferredapi(PRBool *aPreferredapi) = 0;
  NS_IMETHOD SetPreferredapi(PRBool aPreferredapi) = 0;

  /* attribute AString username; */
  NS_IMETHOD GetUsername(nsAString & aUsername) = 0;
  NS_IMETHOD SetUsername(const nsAString & aUsername) = 0;

  /* attribute AString password; */
  NS_IMETHOD GetPassword(nsAString & aPassword) = 0;
  NS_IMETHOD SetPassword(const nsAString & aPassword) = 0;

  /* attribute AString pwhost; */
  NS_IMETHOD GetPwhost(nsAString & aPwhost) = 0;
  NS_IMETHOD SetPwhost(const nsAString & aPwhost) = 0;

  /* attribute AString apiLink; */
  NS_IMETHOD GetApiLink(nsAString & aApiLink) = 0;
  NS_IMETHOD SetApiLink(const nsAString & aApiLink) = 0;

  /* attribute AString editLink; */
  NS_IMETHOD GetEditLink(nsAString & aEditLink) = 0;
  NS_IMETHOD SetEditLink(const nsAString & aEditLink) = 0;

  /* attribute AString blogid; */
  NS_IMETHOD GetBlogid(nsAString & aBlogid) = 0;
  NS_IMETHOD SetBlogid(const nsAString & aBlogid) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGACCOUNT \
  NS_IMETHOD GetTitle(nsAString & aTitle); \
  NS_IMETHOD SetTitle(const nsAString & aTitle); \
  NS_IMETHOD GetUid(nsAString & aUid); \
  NS_IMETHOD SetUid(const nsAString & aUid); \
  NS_IMETHOD GetUrl(nsAString & aUrl); \
  NS_IMETHOD SetUrl(const nsAString & aUrl); \
  NS_IMETHOD GetApi(nsAString & aApi); \
  NS_IMETHOD SetApi(const nsAString & aApi); \
  NS_IMETHOD GetPreferredapi(PRBool *aPreferredapi); \
  NS_IMETHOD SetPreferredapi(PRBool aPreferredapi); \
  NS_IMETHOD GetUsername(nsAString & aUsername); \
  NS_IMETHOD SetUsername(const nsAString & aUsername); \
  NS_IMETHOD GetPassword(nsAString & aPassword); \
  NS_IMETHOD SetPassword(const nsAString & aPassword); \
  NS_IMETHOD GetPwhost(nsAString & aPwhost); \
  NS_IMETHOD SetPwhost(const nsAString & aPwhost); \
  NS_IMETHOD GetApiLink(nsAString & aApiLink); \
  NS_IMETHOD SetApiLink(const nsAString & aApiLink); \
  NS_IMETHOD GetEditLink(nsAString & aEditLink); \
  NS_IMETHOD SetEditLink(const nsAString & aEditLink); \
  NS_IMETHOD GetBlogid(nsAString & aBlogid); \
  NS_IMETHOD SetBlogid(const nsAString & aBlogid); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGACCOUNT(_to) \
  NS_IMETHOD GetTitle(nsAString & aTitle) { return _to GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsAString & aTitle) { return _to SetTitle(aTitle); } \
  NS_IMETHOD GetUid(nsAString & aUid) { return _to GetUid(aUid); } \
  NS_IMETHOD SetUid(const nsAString & aUid) { return _to SetUid(aUid); } \
  NS_IMETHOD GetUrl(nsAString & aUrl) { return _to GetUrl(aUrl); } \
  NS_IMETHOD SetUrl(const nsAString & aUrl) { return _to SetUrl(aUrl); } \
  NS_IMETHOD GetApi(nsAString & aApi) { return _to GetApi(aApi); } \
  NS_IMETHOD SetApi(const nsAString & aApi) { return _to SetApi(aApi); } \
  NS_IMETHOD GetPreferredapi(PRBool *aPreferredapi) { return _to GetPreferredapi(aPreferredapi); } \
  NS_IMETHOD SetPreferredapi(PRBool aPreferredapi) { return _to SetPreferredapi(aPreferredapi); } \
  NS_IMETHOD GetUsername(nsAString & aUsername) { return _to GetUsername(aUsername); } \
  NS_IMETHOD SetUsername(const nsAString & aUsername) { return _to SetUsername(aUsername); } \
  NS_IMETHOD GetPassword(nsAString & aPassword) { return _to GetPassword(aPassword); } \
  NS_IMETHOD SetPassword(const nsAString & aPassword) { return _to SetPassword(aPassword); } \
  NS_IMETHOD GetPwhost(nsAString & aPwhost) { return _to GetPwhost(aPwhost); } \
  NS_IMETHOD SetPwhost(const nsAString & aPwhost) { return _to SetPwhost(aPwhost); } \
  NS_IMETHOD GetApiLink(nsAString & aApiLink) { return _to GetApiLink(aApiLink); } \
  NS_IMETHOD SetApiLink(const nsAString & aApiLink) { return _to SetApiLink(aApiLink); } \
  NS_IMETHOD GetEditLink(nsAString & aEditLink) { return _to GetEditLink(aEditLink); } \
  NS_IMETHOD SetEditLink(const nsAString & aEditLink) { return _to SetEditLink(aEditLink); } \
  NS_IMETHOD GetBlogid(nsAString & aBlogid) { return _to GetBlogid(aBlogid); } \
  NS_IMETHOD SetBlogid(const nsAString & aBlogid) { return _to SetBlogid(aBlogid); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGACCOUNT(_to) \
  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 GetUid(nsAString & aUid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUid(aUid); } \
  NS_IMETHOD SetUid(const nsAString & aUid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUid(aUid); } \
  NS_IMETHOD GetUrl(nsAString & aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrl(aUrl); } \
  NS_IMETHOD SetUrl(const nsAString & aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUrl(aUrl); } \
  NS_IMETHOD GetApi(nsAString & aApi) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetApi(aApi); } \
  NS_IMETHOD SetApi(const nsAString & aApi) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetApi(aApi); } \
  NS_IMETHOD GetPreferredapi(PRBool *aPreferredapi) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPreferredapi(aPreferredapi); } \
  NS_IMETHOD SetPreferredapi(PRBool aPreferredapi) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPreferredapi(aPreferredapi); } \
  NS_IMETHOD GetUsername(nsAString & aUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsername(aUsername); } \
  NS_IMETHOD SetUsername(const nsAString & aUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUsername(aUsername); } \
  NS_IMETHOD GetPassword(nsAString & aPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPassword(aPassword); } \
  NS_IMETHOD SetPassword(const nsAString & aPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPassword(aPassword); } \
  NS_IMETHOD GetPwhost(nsAString & aPwhost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPwhost(aPwhost); } \
  NS_IMETHOD SetPwhost(const nsAString & aPwhost) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPwhost(aPwhost); } \
  NS_IMETHOD GetApiLink(nsAString & aApiLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetApiLink(aApiLink); } \
  NS_IMETHOD SetApiLink(const nsAString & aApiLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetApiLink(aApiLink); } \
  NS_IMETHOD GetEditLink(nsAString & aEditLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEditLink(aEditLink); } \
  NS_IMETHOD SetEditLink(const nsAString & aEditLink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEditLink(aEditLink); } \
  NS_IMETHOD GetBlogid(nsAString & aBlogid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlogid(aBlogid); } \
  NS_IMETHOD SetBlogid(const nsAString & aBlogid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBlogid(aBlogid); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogAccount
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGACCOUNT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* 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 uid; */
NS_IMETHODIMP _MYCLASS_::GetUid(nsAString & aUid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUid(const nsAString & aUid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString url; */
NS_IMETHODIMP _MYCLASS_::GetUrl(nsAString & aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUrl(const nsAString & aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString api; */
NS_IMETHODIMP _MYCLASS_::GetApi(nsAString & aApi)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetApi(const nsAString & aApi)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean preferredapi; */
NS_IMETHODIMP _MYCLASS_::GetPreferredapi(PRBool *aPreferredapi)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPreferredapi(PRBool aPreferredapi)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString username; */
NS_IMETHODIMP _MYCLASS_::GetUsername(nsAString & aUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUsername(const nsAString & aUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString password; */
NS_IMETHODIMP _MYCLASS_::GetPassword(nsAString & aPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPassword(const nsAString & aPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString pwhost; */
NS_IMETHODIMP _MYCLASS_::GetPwhost(nsAString & aPwhost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPwhost(const nsAString & aPwhost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString apiLink; */
NS_IMETHODIMP _MYCLASS_::GetApiLink(nsAString & aApiLink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetApiLink(const nsAString & aApiLink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString editLink; */
NS_IMETHODIMP _MYCLASS_::GetEditLink(nsAString & aEditLink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEditLink(const nsAString & aEditLink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString blogid; */
NS_IMETHODIMP _MYCLASS_::GetBlogid(nsAString & aBlogid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetBlogid(const nsAString & aBlogid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIBlogPost */
#define FLOCKIBLOGPOST_IID_STR "756445c0-9632-4bec-b65b-f5b190a01e58"

#define FLOCKIBLOGPOST_IID \
  {0x756445c0, 0x9632, 0x4bec, \
    { 0xb6, 0x5b, 0xf5, 0xb1, 0x90, 0xa0, 0x1e, 0x58 }}

class NS_NO_VTABLE flockIBlogPost : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGPOST_IID)

  /* attribute AString editURI; */
  NS_IMETHOD GetEditURI(nsAString & aEditURI) = 0;
  NS_IMETHOD SetEditURI(const nsAString & aEditURI) = 0;

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

  /* attribute AString content; */
  NS_IMETHOD GetContent(nsAString & aContent) = 0;
  NS_IMETHOD SetContent(const nsAString & aContent) = 0;

  /* attribute AString dateCreated; */
  NS_IMETHOD GetDateCreated(nsAString & aDateCreated) = 0;
  NS_IMETHOD SetDateCreated(const nsAString & aDateCreated) = 0;

  /* attribute AString state; */
  NS_IMETHOD GetState(nsAString & aState) = 0;
  NS_IMETHOD SetState(const nsAString & aState) = 0;

  /* attribute AString tags; */
  NS_IMETHOD GetTags(nsAString & aTags) = 0;
  NS_IMETHOD SetTags(const nsAString & aTags) = 0;

  /* attribute AString uid; */
  NS_IMETHOD GetUid(nsAString & aUid) = 0;
  NS_IMETHOD SetUid(const nsAString & aUid) = 0;

  /* attribute AString uri; */
  NS_IMETHOD GetUri(nsAString & aUri) = 0;
  NS_IMETHOD SetUri(const nsAString & aUri) = 0;

  /* attribute AString accountID; */
  NS_IMETHOD GetAccountID(nsAString & aAccountID) = 0;
  NS_IMETHOD SetAccountID(const nsAString & aAccountID) = 0;

  /* attribute AString atomid; */
  NS_IMETHOD GetAtomid(nsAString & aAtomid) = 0;
  NS_IMETHOD SetAtomid(const nsAString & aAtomid) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGPOST \
  NS_IMETHOD GetEditURI(nsAString & aEditURI); \
  NS_IMETHOD SetEditURI(const nsAString & aEditURI); \
  NS_IMETHOD GetTitle(nsAString & aTitle); \
  NS_IMETHOD SetTitle(const nsAString & aTitle); \
  NS_IMETHOD GetContent(nsAString & aContent); \
  NS_IMETHOD SetContent(const nsAString & aContent); \
  NS_IMETHOD GetDateCreated(nsAString & aDateCreated); \
  NS_IMETHOD SetDateCreated(const nsAString & aDateCreated); \
  NS_IMETHOD GetState(nsAString & aState); \
  NS_IMETHOD SetState(const nsAString & aState); \
  NS_IMETHOD GetTags(nsAString & aTags); \
  NS_IMETHOD SetTags(const nsAString & aTags); \
  NS_IMETHOD GetUid(nsAString & aUid); \
  NS_IMETHOD SetUid(const nsAString & aUid); \
  NS_IMETHOD GetUri(nsAString & aUri); \
  NS_IMETHOD SetUri(const nsAString & aUri); \
  NS_IMETHOD GetAccountID(nsAString & aAccountID); \
  NS_IMETHOD SetAccountID(const nsAString & aAccountID); \
  NS_IMETHOD GetAtomid(nsAString & aAtomid); \
  NS_IMETHOD SetAtomid(const nsAString & aAtomid); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGPOST(_to) \
  NS_IMETHOD GetEditURI(nsAString & aEditURI) { return _to GetEditURI(aEditURI); } \
  NS_IMETHOD SetEditURI(const nsAString & aEditURI) { return _to SetEditURI(aEditURI); } \
  NS_IMETHOD GetTitle(nsAString & aTitle) { return _to GetTitle(aTitle); } \
  NS_IMETHOD SetTitle(const nsAString & aTitle) { return _to SetTitle(aTitle); } \
  NS_IMETHOD GetContent(nsAString & aContent) { return _to GetContent(aContent); } \
  NS_IMETHOD SetContent(const nsAString & aContent) { return _to SetContent(aContent); } \
  NS_IMETHOD GetDateCreated(nsAString & aDateCreated) { return _to GetDateCreated(aDateCreated); } \
  NS_IMETHOD SetDateCreated(const nsAString & aDateCreated) { return _to SetDateCreated(aDateCreated); } \
  NS_IMETHOD GetState(nsAString & aState) { return _to GetState(aState); } \
  NS_IMETHOD SetState(const nsAString & aState) { return _to SetState(aState); } \
  NS_IMETHOD GetTags(nsAString & aTags) { return _to GetTags(aTags); } \
  NS_IMETHOD SetTags(const nsAString & aTags) { return _to SetTags(aTags); } \
  NS_IMETHOD GetUid(nsAString & aUid) { return _to GetUid(aUid); } \
  NS_IMETHOD SetUid(const nsAString & aUid) { return _to SetUid(aUid); } \
  NS_IMETHOD GetUri(nsAString & aUri) { return _to GetUri(aUri); } \
  NS_IMETHOD SetUri(const nsAString & aUri) { return _to SetUri(aUri); } \
  NS_IMETHOD GetAccountID(nsAString & aAccountID) { return _to GetAccountID(aAccountID); } \
  NS_IMETHOD SetAccountID(const nsAString & aAccountID) { return _to SetAccountID(aAccountID); } \
  NS_IMETHOD GetAtomid(nsAString & aAtomid) { return _to GetAtomid(aAtomid); } \
  NS_IMETHOD SetAtomid(const nsAString & aAtomid) { return _to SetAtomid(aAtomid); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGPOST(_to) \
  NS_IMETHOD GetEditURI(nsAString & aEditURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEditURI(aEditURI); } \
  NS_IMETHOD SetEditURI(const nsAString & aEditURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEditURI(aEditURI); } \
  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 GetContent(nsAString & aContent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContent(aContent); } \
  NS_IMETHOD SetContent(const nsAString & aContent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetContent(aContent); } \
  NS_IMETHOD GetDateCreated(nsAString & aDateCreated) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDateCreated(aDateCreated); } \
  NS_IMETHOD SetDateCreated(const nsAString & aDateCreated) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDateCreated(aDateCreated); } \
  NS_IMETHOD GetState(nsAString & aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD SetState(const nsAString & aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetState(aState); } \
  NS_IMETHOD GetTags(nsAString & aTags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTags(aTags); } \
  NS_IMETHOD SetTags(const nsAString & aTags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTags(aTags); } \
  NS_IMETHOD GetUid(nsAString & aUid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUid(aUid); } \
  NS_IMETHOD SetUid(const nsAString & aUid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUid(aUid); } \
  NS_IMETHOD GetUri(nsAString & aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUri(aUri); } \
  NS_IMETHOD SetUri(const nsAString & aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUri(aUri); } \
  NS_IMETHOD GetAccountID(nsAString & aAccountID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountID(aAccountID); } \
  NS_IMETHOD SetAccountID(const nsAString & aAccountID) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAccountID(aAccountID); } \
  NS_IMETHOD GetAtomid(nsAString & aAtomid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAtomid(aAtomid); } \
  NS_IMETHOD SetAtomid(const nsAString & aAtomid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAtomid(aAtomid); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogPost
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGPOST

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute AString editURI; */
NS_IMETHODIMP _MYCLASS_::GetEditURI(nsAString & aEditURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEditURI(const nsAString & aEditURI)
{
    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 content; */
NS_IMETHODIMP _MYCLASS_::GetContent(nsAString & aContent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetContent(const nsAString & aContent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString dateCreated; */
NS_IMETHODIMP _MYCLASS_::GetDateCreated(nsAString & aDateCreated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDateCreated(const nsAString & aDateCreated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString state; */
NS_IMETHODIMP _MYCLASS_::GetState(nsAString & aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetState(const nsAString & aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString tags; */
NS_IMETHODIMP _MYCLASS_::GetTags(nsAString & aTags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTags(const nsAString & aTags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString uid; */
NS_IMETHODIMP _MYCLASS_::GetUid(nsAString & aUid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUid(const nsAString & aUid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString uri; */
NS_IMETHODIMP _MYCLASS_::GetUri(nsAString & aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUri(const nsAString & aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString accountID; */
NS_IMETHODIMP _MYCLASS_::GetAccountID(nsAString & aAccountID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAccountID(const nsAString & aAccountID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString atomid; */
NS_IMETHODIMP _MYCLASS_::GetAtomid(nsAString & aAtomid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAtomid(const nsAString & aAtomid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIBlogRDFListener */
#define FLOCKIBLOGRDFLISTENER_IID_STR "9c51652a-6425-4ceb-8b3b-1523aa555971"

#define FLOCKIBLOGRDFLISTENER_IID \
  {0x9c51652a, 0x6425, 0x4ceb, \
    { 0x8b, 0x3b, 0x15, 0x23, 0xaa, 0x55, 0x59, 0x71 }}

class NS_NO_VTABLE flockIBlogRDFListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGRDFLISTENER_IID)

  /* void onResult (in nsIRDFDataSource aDataSource); */
  NS_IMETHOD OnResult(nsIRDFDataSource *aDataSource) = 0;

  /* void onFault (in AString fault); */
  NS_IMETHOD OnFault(const nsAString & fault) = 0;

  /* void onError (in AString error); */
  NS_IMETHOD OnError(const nsAString & error) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGRDFLISTENER \
  NS_IMETHOD OnResult(nsIRDFDataSource *aDataSource); \
  NS_IMETHOD OnFault(const nsAString & fault); \
  NS_IMETHOD OnError(const nsAString & error); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGRDFLISTENER(_to) \
  NS_IMETHOD OnResult(nsIRDFDataSource *aDataSource) { return _to OnResult(aDataSource); } \
  NS_IMETHOD OnFault(const nsAString & fault) { return _to OnFault(fault); } \
  NS_IMETHOD OnError(const nsAString & error) { return _to OnError(error); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGRDFLISTENER(_to) \
  NS_IMETHOD OnResult(nsIRDFDataSource *aDataSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnResult(aDataSource); } \
  NS_IMETHOD OnFault(const nsAString & fault) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnFault(fault); } \
  NS_IMETHOD OnError(const nsAString & error) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnError(error); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogRDFListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGRDFLISTENER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* void onResult (in nsIRDFDataSource aDataSource); */
NS_IMETHODIMP _MYCLASS_::OnResult(nsIRDFDataSource *aDataSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onFault (in AString fault); */
NS_IMETHODIMP _MYCLASS_::OnFault(const nsAString & fault)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onError (in AString error); */
NS_IMETHODIMP _MYCLASS_::OnError(const nsAString & error)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIBlogListener */
#define FLOCKIBLOGLISTENER_IID_STR "1405ac69-d6d0-4fd4-b55a-36ec8274153f"

#define FLOCKIBLOGLISTENER_IID \
  {0x1405ac69, 0xd6d0, 0x4fd4, \
    { 0xb5, 0x5a, 0x36, 0xec, 0x82, 0x74, 0x15, 0x3f }}

class NS_NO_VTABLE flockIBlogListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGLISTENER_IID)

  /* void onResult (in nsISimpleEnumerator aAccountList); */
  NS_IMETHOD OnResult(nsISimpleEnumerator *aAccountList) = 0;

  /* void onFault (in AString fault); */
  NS_IMETHOD OnFault(const nsAString & fault) = 0;

  /* void onError (in AString error); */
  NS_IMETHOD OnError(const nsAString & error) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGLISTENER \
  NS_IMETHOD OnResult(nsISimpleEnumerator *aAccountList); \
  NS_IMETHOD OnFault(const nsAString & fault); \
  NS_IMETHOD OnError(const nsAString & error); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGLISTENER(_to) \
  NS_IMETHOD OnResult(nsISimpleEnumerator *aAccountList) { return _to OnResult(aAccountList); } \
  NS_IMETHOD OnFault(const nsAString & fault) { return _to OnFault(fault); } \
  NS_IMETHOD OnError(const nsAString & error) { return _to OnError(error); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGLISTENER(_to) \
  NS_IMETHOD OnResult(nsISimpleEnumerator *aAccountList) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnResult(aAccountList); } \
  NS_IMETHOD OnFault(const nsAString & fault) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnFault(fault); } \
  NS_IMETHOD OnError(const nsAString & error) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnError(error); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGLISTENER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* void onResult (in nsISimpleEnumerator aAccountList); */
NS_IMETHODIMP _MYCLASS_::OnResult(nsISimpleEnumerator *aAccountList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onFault (in AString fault); */
NS_IMETHODIMP _MYCLASS_::OnFault(const nsAString & fault)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onError (in AString error); */
NS_IMETHODIMP _MYCLASS_::OnError(const nsAString & error)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIBlogAPI */
#define FLOCKIBLOGAPI_IID_STR "70a7e958-2579-453b-9888-c35f9a0f22d0"

#define FLOCKIBLOGAPI_IID \
  {0x70a7e958, 0x2579, 0x453b, \
    { 0x98, 0x88, 0xc3, 0x5f, 0x9a, 0x0f, 0x22, 0xd0 }}

class NS_NO_VTABLE flockIBlogAPI : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGAPI_IID)

  /* attribute AString name; */
  NS_IMETHOD GetName(nsAString & aName) = 0;
  NS_IMETHOD SetName(const nsAString & aName) = 0;

  /* attribute AString shortName; */
  NS_IMETHOD GetShortName(nsAString & aShortName) = 0;
  NS_IMETHOD SetShortName(const nsAString & aShortName) = 0;

  /* attribute AString appkey; */
  NS_IMETHOD GetAppkey(nsAString & aAppkey) = 0;
  NS_IMETHOD SetAppkey(const nsAString & aAppkey) = 0;

  /* attribute AString supportsCategories; */
  NS_IMETHOD GetSupportsCategories(nsAString & aSupportsCategories) = 0;
  NS_IMETHOD SetSupportsCategories(const nsAString & aSupportsCategories) = 0;

  /* flockIBlogAccount detectAccount (in AString aUrl, in nsISimpleEnumerator aLinkList); */
  NS_IMETHOD DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval) = 0;

  /* void getUsersBlogs (in flockIBlogListener aListener, in flockIBlogAccount aAccount); */
  NS_IMETHOD GetUsersBlogs(flockIBlogListener *aListener, flockIBlogAccount *aAccount) = 0;

  /* void getRecentPosts (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in PRUint32 aNumber); */
  NS_IMETHOD GetRecentPosts(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, PRUint32 aNumber) = 0;

  /* void getCategoryList (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount); */
  NS_IMETHOD GetCategoryList(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount) = 0;

  /* void newPost (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in AString aTitle, in AString aDescription, in AString aDateCreated, in boolean aPublish, in nsIStringEnumerator aNotifications); */
  NS_IMETHOD NewPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, nsIStringEnumerator *aNotifications) = 0;

  /* void editPost (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in AString aPostid, in AString aTitle, in AString aDescription, in AString aDateCreated, in boolean aPublish, in AString aEditURI, in AString aAtomID, in nsIStringEnumerator aNotifications); */
  NS_IMETHOD EditPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, const nsAString & aEditURI, const nsAString & aAtomID, nsIStringEnumerator *aNotifications) = 0;

  /* void setPostCategories (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in AString aPostid, in nsIStringEnumerator aCategories); */
  NS_IMETHOD SetPostCategories(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, nsIStringEnumerator *aCategories) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGAPI \
  NS_IMETHOD GetName(nsAString & aName); \
  NS_IMETHOD SetName(const nsAString & aName); \
  NS_IMETHOD GetShortName(nsAString & aShortName); \
  NS_IMETHOD SetShortName(const nsAString & aShortName); \
  NS_IMETHOD GetAppkey(nsAString & aAppkey); \
  NS_IMETHOD SetAppkey(const nsAString & aAppkey); \
  NS_IMETHOD GetSupportsCategories(nsAString & aSupportsCategories); \
  NS_IMETHOD SetSupportsCategories(const nsAString & aSupportsCategories); \
  NS_IMETHOD DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval); \
  NS_IMETHOD GetUsersBlogs(flockIBlogListener *aListener, flockIBlogAccount *aAccount); \
  NS_IMETHOD GetRecentPosts(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, PRUint32 aNumber); \
  NS_IMETHOD GetCategoryList(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount); \
  NS_IMETHOD NewPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, nsIStringEnumerator *aNotifications); \
  NS_IMETHOD EditPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, const nsAString & aEditURI, const nsAString & aAtomID, nsIStringEnumerator *aNotifications); \
  NS_IMETHOD SetPostCategories(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, nsIStringEnumerator *aCategories); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGAPI(_to) \
  NS_IMETHOD GetName(nsAString & aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const nsAString & aName) { return _to SetName(aName); } \
  NS_IMETHOD GetShortName(nsAString & aShortName) { return _to GetShortName(aShortName); } \
  NS_IMETHOD SetShortName(const nsAString & aShortName) { return _to SetShortName(aShortName); } \
  NS_IMETHOD GetAppkey(nsAString & aAppkey) { return _to GetAppkey(aAppkey); } \
  NS_IMETHOD SetAppkey(const nsAString & aAppkey) { return _to SetAppkey(aAppkey); } \
  NS_IMETHOD GetSupportsCategories(nsAString & aSupportsCategories) { return _to GetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD SetSupportsCategories(const nsAString & aSupportsCategories) { return _to SetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval) { return _to DetectAccount(aUrl, aLinkList, _retval); } \
  NS_IMETHOD GetUsersBlogs(flockIBlogListener *aListener, flockIBlogAccount *aAccount) { return _to GetUsersBlogs(aListener, aAccount); } \
  NS_IMETHOD GetRecentPosts(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, PRUint32 aNumber) { return _to GetRecentPosts(aListener, aAccount, aNumber); } \
  NS_IMETHOD GetCategoryList(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount) { return _to GetCategoryList(aListener, aAccount); } \
  NS_IMETHOD NewPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, nsIStringEnumerator *aNotifications) { return _to NewPost(aListener, aAccount, aTitle, aDescription, aDateCreated, aPublish, aNotifications); } \
  NS_IMETHOD EditPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, const nsAString & aEditURI, const nsAString & aAtomID, nsIStringEnumerator *aNotifications) { return _to EditPost(aListener, aAccount, aPostid, aTitle, aDescription, aDateCreated, aPublish, aEditURI, aAtomID, aNotifications); } \
  NS_IMETHOD SetPostCategories(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, nsIStringEnumerator *aCategories) { return _to SetPostCategories(aListener, aAccount, aPostid, aCategories); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGAPI(_to) \
  NS_IMETHOD GetName(nsAString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const nsAString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetShortName(nsAString & aShortName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShortName(aShortName); } \
  NS_IMETHOD SetShortName(const nsAString & aShortName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetShortName(aShortName); } \
  NS_IMETHOD GetAppkey(nsAString & aAppkey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAppkey(aAppkey); } \
  NS_IMETHOD SetAppkey(const nsAString & aAppkey) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAppkey(aAppkey); } \
  NS_IMETHOD GetSupportsCategories(nsAString & aSupportsCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD SetSupportsCategories(const nsAString & aSupportsCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetectAccount(aUrl, aLinkList, _retval); } \
  NS_IMETHOD GetUsersBlogs(flockIBlogListener *aListener, flockIBlogAccount *aAccount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsersBlogs(aListener, aAccount); } \
  NS_IMETHOD GetRecentPosts(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, PRUint32 aNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecentPosts(aListener, aAccount, aNumber); } \
  NS_IMETHOD GetCategoryList(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCategoryList(aListener, aAccount); } \
  NS_IMETHOD NewPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, nsIStringEnumerator *aNotifications) { return !_to ? NS_ERROR_NULL_POINTER : _to->NewPost(aListener, aAccount, aTitle, aDescription, aDateCreated, aPublish, aNotifications); } \
  NS_IMETHOD EditPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, const nsAString & aEditURI, const nsAString & aAtomID, nsIStringEnumerator *aNotifications) { return !_to ? NS_ERROR_NULL_POINTER : _to->EditPost(aListener, aAccount, aPostid, aTitle, aDescription, aDateCreated, aPublish, aEditURI, aAtomID, aNotifications); } \
  NS_IMETHOD SetPostCategories(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, nsIStringEnumerator *aCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPostCategories(aListener, aAccount, aPostid, aCategories); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogAPI
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGAPI

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute AString name; */
NS_IMETHODIMP _MYCLASS_::GetName(nsAString & aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetName(const nsAString & aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString shortName; */
NS_IMETHODIMP _MYCLASS_::GetShortName(nsAString & aShortName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetShortName(const nsAString & aShortName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString appkey; */
NS_IMETHODIMP _MYCLASS_::GetAppkey(nsAString & aAppkey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAppkey(const nsAString & aAppkey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString supportsCategories; */
NS_IMETHODIMP _MYCLASS_::GetSupportsCategories(nsAString & aSupportsCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetSupportsCategories(const nsAString & aSupportsCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIBlogAccount detectAccount (in AString aUrl, in nsISimpleEnumerator aLinkList); */
NS_IMETHODIMP _MYCLASS_::DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUsersBlogs (in flockIBlogListener aListener, in flockIBlogAccount aAccount); */
NS_IMETHODIMP _MYCLASS_::GetUsersBlogs(flockIBlogListener *aListener, flockIBlogAccount *aAccount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRecentPosts (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in PRUint32 aNumber); */
NS_IMETHODIMP _MYCLASS_::GetRecentPosts(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, PRUint32 aNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCategoryList (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount); */
NS_IMETHODIMP _MYCLASS_::GetCategoryList(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void newPost (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in AString aTitle, in AString aDescription, in AString aDateCreated, in boolean aPublish, in nsIStringEnumerator aNotifications); */
NS_IMETHODIMP _MYCLASS_::NewPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, nsIStringEnumerator *aNotifications)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editPost (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in AString aPostid, in AString aTitle, in AString aDescription, in AString aDateCreated, in boolean aPublish, in AString aEditURI, in AString aAtomID, in nsIStringEnumerator aNotifications); */
NS_IMETHODIMP _MYCLASS_::EditPost(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, const nsAString & aTitle, const nsAString & aDescription, const nsAString & aDateCreated, PRBool aPublish, const nsAString & aEditURI, const nsAString & aAtomID, nsIStringEnumerator *aNotifications)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setPostCategories (in flockIBlogRDFListener aListener, in flockIBlogAccount aAccount, in AString aPostid, in nsIStringEnumerator aCategories); */
NS_IMETHODIMP _MYCLASS_::SetPostCategories(flockIBlogRDFListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostid, nsIStringEnumerator *aCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIBlogAPI_h__ */
