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

#ifndef __gen_flockIBlogWebService_h__
#define __gen_flockIBlogWebService_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

#ifndef __gen_flockIError_h__
#include "flockIError.h"
#endif

#ifndef __gen_flockIListener_h__
#include "flockIListener.h"
#endif

#ifndef __gen_flockIWebService_h__
#include "flockIWebService.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 }}

/**
 * Used for automatic detection for blog API on self-hosted blogs.
 *
 * @see flockICustomBlogWebService.detectAccount
 */
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:    flockIBlogCategory */
#define FLOCKIBLOGCATEGORY_IID_STR "73c5d97d-c715-439a-86c9-3086b4576a46"

#define FLOCKIBLOGCATEGORY_IID \
  {0x73c5d97d, 0xc715, 0x439a, \
    { 0x86, 0xc9, 0x30, 0x86, 0xb4, 0x57, 0x6a, 0x46 }}

/**
 * A category already existing on a blog
 *
 * @see flockIBlogWebService
 */
class NS_NO_VTABLE flockIBlogCategory : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGCATEGORY_IID)

  /**
   * id of the category internal to the server. It may be a numeric
   * value for the server, but Flock treats it as a string.
   */
  /* attribute AString id; */
  NS_IMETHOD GetId(nsAString & aId) = 0;
  NS_IMETHOD SetId(const nsAString & aId) = 0;

  /**
   * Human readable category label, eg. "sports" or "movies"
   */
  /* attribute AString label; */
  NS_IMETHOD GetLabel(nsAString & aLabel) = 0;
  NS_IMETHOD SetLabel(const nsAString & aLabel) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGCATEGORY \
  NS_IMETHOD GetId(nsAString & aId); \
  NS_IMETHOD SetId(const nsAString & aId); \
  NS_IMETHOD GetLabel(nsAString & aLabel); \
  NS_IMETHOD SetLabel(const nsAString & aLabel); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGCATEGORY(_to) \
  NS_IMETHOD GetId(nsAString & aId) { return _to GetId(aId); } \
  NS_IMETHOD SetId(const nsAString & aId) { return _to SetId(aId); } \
  NS_IMETHOD GetLabel(nsAString & aLabel) { return _to GetLabel(aLabel); } \
  NS_IMETHOD SetLabel(const nsAString & aLabel) { return _to SetLabel(aLabel); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGCATEGORY(_to) \
  NS_IMETHOD GetId(nsAString & aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD SetId(const nsAString & aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetId(aId); } \
  NS_IMETHOD GetLabel(nsAString & aLabel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLabel(aLabel); } \
  NS_IMETHOD SetLabel(const nsAString & aLabel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLabel(aLabel); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogCategory
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGCATEGORY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute AString id; */
NS_IMETHODIMP _MYCLASS_::GetId(nsAString & aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetId(const nsAString & aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString label; */
NS_IMETHODIMP _MYCLASS_::GetLabel(nsAString & aLabel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLabel(const nsAString & aLabel)
{
    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 }}

/**
 * A single blog on a service. If the user has several blogs on a service,
 * as many flockIBlogAccount are going to be created.
 *
 * @see flockIBlogWebService
 */
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 favicon; */
  NS_IMETHOD GetFavicon(nsAString & aFavicon) = 0;
  NS_IMETHOD SetFavicon(const nsAString & aFavicon) = 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 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 authtoken; */
  NS_IMETHOD GetAuthtoken(nsAString & aAuthtoken) = 0;
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken) = 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 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 GetFavicon(nsAString & aFavicon); \
  NS_IMETHOD SetFavicon(const nsAString & aFavicon); \
  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 GetUsername(nsAString & aUsername); \
  NS_IMETHOD SetUsername(const nsAString & aUsername); \
  NS_IMETHOD GetPassword(nsAString & aPassword); \
  NS_IMETHOD SetPassword(const nsAString & aPassword); \
  NS_IMETHOD GetAuthtoken(nsAString & aAuthtoken); \
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken); \
  NS_IMETHOD GetPwhost(nsAString & aPwhost); \
  NS_IMETHOD SetPwhost(const nsAString & aPwhost); \
  NS_IMETHOD GetApiLink(nsAString & aApiLink); \
  NS_IMETHOD SetApiLink(const nsAString & aApiLink); \
  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 GetFavicon(nsAString & aFavicon) { return _to GetFavicon(aFavicon); } \
  NS_IMETHOD SetFavicon(const nsAString & aFavicon) { return _to SetFavicon(aFavicon); } \
  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 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 GetAuthtoken(nsAString & aAuthtoken) { return _to GetAuthtoken(aAuthtoken); } \
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken) { return _to SetAuthtoken(aAuthtoken); } \
  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 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 GetFavicon(nsAString & aFavicon) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFavicon(aFavicon); } \
  NS_IMETHOD SetFavicon(const nsAString & aFavicon) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFavicon(aFavicon); } \
  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 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 GetAuthtoken(nsAString & aAuthtoken) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthtoken(aAuthtoken); } \
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthtoken(aAuthtoken); } \
  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 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 favicon; */
NS_IMETHODIMP _MYCLASS_::GetFavicon(nsAString & aFavicon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFavicon(const nsAString & aFavicon)
{
    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 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 authtoken; */
NS_IMETHODIMP _MYCLASS_::GetAuthtoken(nsAString & aAuthtoken)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAuthtoken(const nsAString & aAuthtoken)
{
    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 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 "81fc5b1e-c739-4b12-94f9-a9bf6d9938fe"

#define FLOCKIBLOGPOST_IID \
  {0x81fc5b1e, 0xc739, 0x4b12, \
    { 0x94, 0xf9, 0xa9, 0xbf, 0x6d, 0x99, 0x38, 0xfe }}

/**
 * A post to be published to a blog
 *
 * @see flockIBlogWebService#newPost
 * @see flockIBlogWebService#editPost
 */
class NS_NO_VTABLE flockIBlogPost : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGPOST_IID)

  /**
   * The id on the server. May be null if this is a new post,
   * but either this or editURI must be set if the user want to
   * update/replace an existing post
   */
  /* attribute AString postid; */
  NS_IMETHOD GetPostid(nsAString & aPostid) = 0;
  NS_IMETHOD SetPostid(const nsAString & aPostid) = 0;

  /**
   * The editURI on the server. May be null if this is a new post,
   * but either this or postid must be set if the user want to
   * update/replace an existing post
   *
   * @see flockIBlogWebService#newPost
   * @see flockIBlogWebService#editPost
   */
  /* attribute AString editURI; */
  NS_IMETHOD GetEditURI(nsAString & aEditURI) = 0;
  NS_IMETHOD SetEditURI(const nsAString & aEditURI) = 0;

  /**
   * The post title. May be null.
   */
  /* attribute AString title; */
  NS_IMETHOD GetTitle(nsAString & aTitle) = 0;
  NS_IMETHOD SetTitle(const nsAString & aTitle) = 0;

  /**
   * The post description. May be null.
   */
  /* attribute AString description; */
  NS_IMETHOD GetDescription(nsAString & aDescription) = 0;
  NS_IMETHOD SetDescription(const nsAString & aDescription) = 0;

  /**
   * The publishing date, in a format dependant on the service.
   * To be left null for new posts.
   */
  /* attribute AString issued; */
  NS_IMETHOD GetIssued(nsAString & aIssued) = 0;
  NS_IMETHOD SetIssued(const nsAString & aIssued) = 0;

  /**
   * Tags to be associated to the post. If the service supports tags native
   * tags are used, otherwise Technorati tags are inserted at the end of the post.
   *
   * Elements of the nsIStringEnumerator are of type AString.
   */
  /* attribute nsIStringEnumerator tags; */
  NS_IMETHOD GetTags(nsIStringEnumerator * *aTags) = 0;
  NS_IMETHOD SetTags(nsIStringEnumerator * aTags) = 0;

  /**
   * Categories to be associated to the post. Has no effect for services that don't
   * support categories.
   *
   * Elements of the nsIStringEnumerator are of type flockIBlogCategory.
   *
   * @see flockIBlogCategory
   */
  /* attribute nsISimpleEnumerator categories; */
  NS_IMETHOD GetCategories(nsISimpleEnumerator * *aCategories) = 0;
  NS_IMETHOD SetCategories(nsISimpleEnumerator * aCategories) = 0;

  /**
   * Additional attributes, specific to the service: privacy, moods...
   *
   * Elements of the nsIStringEnumerator are of type AString.
   */
  /* attribute nsIStringEnumerator extra; */
  NS_IMETHOD GetExtra(nsIStringEnumerator * *aExtra) = 0;
  NS_IMETHOD SetExtra(nsIStringEnumerator * aExtra) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGPOST \
  NS_IMETHOD GetPostid(nsAString & aPostid); \
  NS_IMETHOD SetPostid(const nsAString & aPostid); \
  NS_IMETHOD GetEditURI(nsAString & aEditURI); \
  NS_IMETHOD SetEditURI(const nsAString & aEditURI); \
  NS_IMETHOD GetTitle(nsAString & aTitle); \
  NS_IMETHOD SetTitle(const nsAString & aTitle); \
  NS_IMETHOD GetDescription(nsAString & aDescription); \
  NS_IMETHOD SetDescription(const nsAString & aDescription); \
  NS_IMETHOD GetIssued(nsAString & aIssued); \
  NS_IMETHOD SetIssued(const nsAString & aIssued); \
  NS_IMETHOD GetTags(nsIStringEnumerator * *aTags); \
  NS_IMETHOD SetTags(nsIStringEnumerator * aTags); \
  NS_IMETHOD GetCategories(nsISimpleEnumerator * *aCategories); \
  NS_IMETHOD SetCategories(nsISimpleEnumerator * aCategories); \
  NS_IMETHOD GetExtra(nsIStringEnumerator * *aExtra); \
  NS_IMETHOD SetExtra(nsIStringEnumerator * aExtra); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGPOST(_to) \
  NS_IMETHOD GetPostid(nsAString & aPostid) { return _to GetPostid(aPostid); } \
  NS_IMETHOD SetPostid(const nsAString & aPostid) { return _to SetPostid(aPostid); } \
  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 GetDescription(nsAString & aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const nsAString & aDescription) { return _to SetDescription(aDescription); } \
  NS_IMETHOD GetIssued(nsAString & aIssued) { return _to GetIssued(aIssued); } \
  NS_IMETHOD SetIssued(const nsAString & aIssued) { return _to SetIssued(aIssued); } \
  NS_IMETHOD GetTags(nsIStringEnumerator * *aTags) { return _to GetTags(aTags); } \
  NS_IMETHOD SetTags(nsIStringEnumerator * aTags) { return _to SetTags(aTags); } \
  NS_IMETHOD GetCategories(nsISimpleEnumerator * *aCategories) { return _to GetCategories(aCategories); } \
  NS_IMETHOD SetCategories(nsISimpleEnumerator * aCategories) { return _to SetCategories(aCategories); } \
  NS_IMETHOD GetExtra(nsIStringEnumerator * *aExtra) { return _to GetExtra(aExtra); } \
  NS_IMETHOD SetExtra(nsIStringEnumerator * aExtra) { return _to SetExtra(aExtra); } 

/* 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 GetPostid(nsAString & aPostid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPostid(aPostid); } \
  NS_IMETHOD SetPostid(const nsAString & aPostid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPostid(aPostid); } \
  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 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 GetIssued(nsAString & aIssued) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssued(aIssued); } \
  NS_IMETHOD SetIssued(const nsAString & aIssued) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIssued(aIssued); } \
  NS_IMETHOD GetTags(nsIStringEnumerator * *aTags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTags(aTags); } \
  NS_IMETHOD SetTags(nsIStringEnumerator * aTags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTags(aTags); } \
  NS_IMETHOD GetCategories(nsISimpleEnumerator * *aCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCategories(aCategories); } \
  NS_IMETHOD SetCategories(nsISimpleEnumerator * aCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCategories(aCategories); } \
  NS_IMETHOD GetExtra(nsIStringEnumerator * *aExtra) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtra(aExtra); } \
  NS_IMETHOD SetExtra(nsIStringEnumerator * aExtra) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExtra(aExtra); } 

#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 postid; */
NS_IMETHODIMP _MYCLASS_::GetPostid(nsAString & aPostid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPostid(const nsAString & aPostid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 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 issued; */
NS_IMETHODIMP _MYCLASS_::GetIssued(nsAString & aIssued)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIssued(const nsAString & aIssued)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute nsISimpleEnumerator categories; */
NS_IMETHODIMP _MYCLASS_::GetCategories(nsISimpleEnumerator * *aCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCategories(nsISimpleEnumerator * aCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIStringEnumerator extra; */
NS_IMETHODIMP _MYCLASS_::GetExtra(nsIStringEnumerator * *aExtra)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetExtra(nsIStringEnumerator * aExtra)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIBlogPublishListener */
#define FLOCKIBLOGPUBLISHLISTENER_IID_STR "7a3280f6-b57c-4f27-897c-61651b6c0343"

#define FLOCKIBLOGPUBLISHLISTENER_IID \
  {0x7a3280f6, 0xb57c, 0x4f27, \
    { 0x89, 0x7c, 0x61, 0x65, 0x1b, 0x6c, 0x03, 0x43 }}

class NS_NO_VTABLE flockIBlogPublishListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGPUBLISHLISTENER_IID)

  /* void onResult (in AString permalink); */
  NS_IMETHOD OnResult(const nsAString & permalink) = 0;

  /* void onFault (in flockIError fault); */
  NS_IMETHOD OnFault(flockIError *fault) = 0;

  /* void onError (in flockIError error); */
  NS_IMETHOD OnError(flockIError *error) = 0;

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGPUBLISHLISTENER(_to) \
  NS_IMETHOD OnResult(const nsAString & permalink) { return _to OnResult(permalink); } \
  NS_IMETHOD OnFault(flockIError *fault) { return _to OnFault(fault); } \
  NS_IMETHOD OnError(flockIError *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_FLOCKIBLOGPUBLISHLISTENER(_to) \
  NS_IMETHOD OnResult(const nsAString & permalink) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnResult(permalink); } \
  NS_IMETHOD OnFault(flockIError *fault) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnFault(fault); } \
  NS_IMETHOD OnError(flockIError *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 flockIBlogPublishListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGPUBLISHLISTENER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* void onResult (in AString permalink); */
NS_IMETHODIMP _MYCLASS_::OnResult(const nsAString & permalink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onFault (in flockIError fault); */
NS_IMETHODIMP _MYCLASS_::OnFault(flockIError *fault)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onError (in flockIError error); */
NS_IMETHODIMP _MYCLASS_::OnError(flockIError *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 aResult); */
  NS_IMETHOD OnResult(nsISimpleEnumerator *aResult) = 0;

  /* void onFault (in flockIError fault); */
  NS_IMETHOD OnFault(flockIError *fault) = 0;

  /* void onError (in flockIError error); */
  NS_IMETHOD OnError(flockIError *error) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGLISTENER \
  NS_IMETHOD OnResult(nsISimpleEnumerator *aResult); \
  NS_IMETHOD OnFault(flockIError *fault); \
  NS_IMETHOD OnError(flockIError *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 *aResult) { return _to OnResult(aResult); } \
  NS_IMETHOD OnFault(flockIError *fault) { return _to OnFault(fault); } \
  NS_IMETHOD OnError(flockIError *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 *aResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnResult(aResult); } \
  NS_IMETHOD OnFault(flockIError *fault) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnFault(fault); } \
  NS_IMETHOD OnError(flockIError *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 aResult); */
NS_IMETHODIMP _MYCLASS_::OnResult(nsISimpleEnumerator *aResult)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onFault (in flockIError fault); */
NS_IMETHODIMP _MYCLASS_::OnFault(flockIError *fault)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onError (in flockIError error); */
NS_IMETHODIMP _MYCLASS_::OnError(flockIError *error)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIBlogWebService */
#define FLOCKIBLOGWEBSERVICE_IID_STR "6da58f50-48ec-11db-b0de-0800200c9a66"

#define FLOCKIBLOGWEBSERVICE_IID \
  {0x6da58f50, 0x48ec, 0x11db, \
    { 0xb0, 0xde, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 }}

/**
 * Represents a web service that supports blogging.
 *
 * @see flockIBlogWebServiceAccount
 */
class NS_NO_VTABLE flockIBlogWebService : public flockIWebService {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGWEBSERVICE_IID)

  enum { CATEGORIES_NO = 0 };

  enum { CATEGORIES_SINGLE = 1 };

  enum { CATEGORIES_MULTIPLE = 2 };

  /* attribute long supportsCategories; */
  NS_IMETHOD GetSupportsCategories(PRInt32 *aSupportsCategories) = 0;
  NS_IMETHOD SetSupportsCategories(PRInt32 aSupportsCategories) = 0;

  /**
   * Tells whether the service supports one category per post, multiple categories
   * or no categories at all
   */
  /* attribute boolean supportsPostReplace; */
  NS_IMETHOD GetSupportsPostReplace(PRBool *aSupportsPostReplace) = 0;
  NS_IMETHOD SetSupportsPostReplace(PRBool aSupportsPostReplace) = 0;

  /**
   * chrome URL of the XUL file to be overlayed to the blog publishing metadata
   * window, to add service-specific features (privacy, mood...)
   */
  /* attribute AString metadataOverlay; */
  NS_IMETHOD GetMetadataOverlay(nsAString & aMetadataOverlay) = 0;
  NS_IMETHOD SetMetadataOverlay(const nsAString & aMetadataOverlay) = 0;

  /* attribute AString authtoken; */
  NS_IMETHOD GetAuthtoken(nsAString & aAuthtoken) = 0;
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken) = 0;

  /* nsISimpleEnumerator getBlogs (); */
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval) = 0;

  /**
   * Initialize the service. You normally don't need to call this method
   */
  /* void init (); */
  NS_IMETHOD Init(void) = 0;

  /**
   * Call the server to retrieve the list of blog of a user. The list is returned
   * through aListener: on success, aListener.onSuccess(blogList, null) is called
   * where blogList is a nsISimpleEnumerator of flockIBlogAccount.
   *
   * @see nsISimpleEnumerator
   * @see nsIBlogAccount
   */
  /* void getUsersBlogs (in flockIListener aListener, in flockIBlogAccount aAccount); */
  NS_IMETHOD GetUsersBlogs(flockIListener *aListener, flockIBlogAccount *aAccount) = 0;

  /**
   * Call the server to retrieve the last published post on a blog
   */
  /* void getRecentPosts (in flockIBlogListener aListener, in AString aBlogId, in PRUint32 aNumber); */
  NS_IMETHOD GetRecentPosts(flockIBlogListener *aListener, const nsAString & aBlogId, PRUint32 aNumber) = 0;

  /* void getCategoryList (in flockIBlogListener aListener, in AString aBlogId); */
  NS_IMETHOD GetCategoryList(flockIBlogListener *aListener, const nsAString & aBlogId) = 0;

  /**
   * Call the server to retrieve the last published post on a blog
   * @param aListener (in) a listener to respond to successful publication or error
   * @param aBlogId (in) The blogid (as the server would understand)
   * @param aPost (in) A flockIBlogPost holding the content of the post (title, body...)
   * @param aPublish (in) true to publish directly, false to publish as a draft
   * @param aNotification (in) list of URL to notifify of the new post
   * @return nothing
   */
  /* void newPost (in flockIBlogPublishListener aListener, in AString aBlogId, in flockIBlogPost aPost, in boolean aPublish, in nsIStringEnumerator aNotifications); */
  NS_IMETHOD NewPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications) = 0;

  /**
   * Call the server to retrieve the last published post on a blog
   * @param aListener (in) a listener to respond to successful publication or error
   * @param aBlogId (in) The blogid (as the server would understand)
   * @param aPost (in) A flockIBlogPost holding the content of the post (title, body...).
   *                   It should also contain the postid to specify the post to replace
   * @param aPublish (in) true to publish directly, false to publish as a draft
   * @param aNotification (in) list of URL to notifify of the new post
   * @return nothing
   */
  /* void editPost (in flockIBlogPublishListener aListener, in AString aBlogId, in flockIBlogPost aPost, in boolean aPublish, in nsIStringEnumerator aNotifications); */
  NS_IMETHOD EditPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications) = 0;

  /**
   * For the given post, remove all categories and replace them by a new set
   * @param aListener (in) a listener to respond to successful publication or error
   * @param aAccount (in) The account info (auth info)
   * @param aPostId (in) The postid (as the server would understand)
   * @param aCategories (in) The new categories to set
   * @return nothing
   */
  /* void setPostCategories (in flockIBlogPublishListener aListener, in flockIBlogAccount aAccount, in AString aPostId, in nsISimpleEnumerator aCategories); */
  NS_IMETHOD SetPostCategories(flockIBlogPublishListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostId, nsISimpleEnumerator *aCategories) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGWEBSERVICE \
  NS_IMETHOD GetSupportsCategories(PRInt32 *aSupportsCategories); \
  NS_IMETHOD SetSupportsCategories(PRInt32 aSupportsCategories); \
  NS_IMETHOD GetSupportsPostReplace(PRBool *aSupportsPostReplace); \
  NS_IMETHOD SetSupportsPostReplace(PRBool aSupportsPostReplace); \
  NS_IMETHOD GetMetadataOverlay(nsAString & aMetadataOverlay); \
  NS_IMETHOD SetMetadataOverlay(const nsAString & aMetadataOverlay); \
  NS_IMETHOD GetAuthtoken(nsAString & aAuthtoken); \
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken); \
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval); \
  NS_IMETHOD Init(void); \
  NS_IMETHOD GetUsersBlogs(flockIListener *aListener, flockIBlogAccount *aAccount); \
  NS_IMETHOD GetRecentPosts(flockIBlogListener *aListener, const nsAString & aBlogId, PRUint32 aNumber); \
  NS_IMETHOD GetCategoryList(flockIBlogListener *aListener, const nsAString & aBlogId); \
  NS_IMETHOD NewPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications); \
  NS_IMETHOD EditPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications); \
  NS_IMETHOD SetPostCategories(flockIBlogPublishListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostId, nsISimpleEnumerator *aCategories); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGWEBSERVICE(_to) \
  NS_IMETHOD GetSupportsCategories(PRInt32 *aSupportsCategories) { return _to GetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD SetSupportsCategories(PRInt32 aSupportsCategories) { return _to SetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD GetSupportsPostReplace(PRBool *aSupportsPostReplace) { return _to GetSupportsPostReplace(aSupportsPostReplace); } \
  NS_IMETHOD SetSupportsPostReplace(PRBool aSupportsPostReplace) { return _to SetSupportsPostReplace(aSupportsPostReplace); } \
  NS_IMETHOD GetMetadataOverlay(nsAString & aMetadataOverlay) { return _to GetMetadataOverlay(aMetadataOverlay); } \
  NS_IMETHOD SetMetadataOverlay(const nsAString & aMetadataOverlay) { return _to SetMetadataOverlay(aMetadataOverlay); } \
  NS_IMETHOD GetAuthtoken(nsAString & aAuthtoken) { return _to GetAuthtoken(aAuthtoken); } \
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken) { return _to SetAuthtoken(aAuthtoken); } \
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval) { return _to GetBlogs(_retval); } \
  NS_IMETHOD Init(void) { return _to Init(); } \
  NS_IMETHOD GetUsersBlogs(flockIListener *aListener, flockIBlogAccount *aAccount) { return _to GetUsersBlogs(aListener, aAccount); } \
  NS_IMETHOD GetRecentPosts(flockIBlogListener *aListener, const nsAString & aBlogId, PRUint32 aNumber) { return _to GetRecentPosts(aListener, aBlogId, aNumber); } \
  NS_IMETHOD GetCategoryList(flockIBlogListener *aListener, const nsAString & aBlogId) { return _to GetCategoryList(aListener, aBlogId); } \
  NS_IMETHOD NewPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications) { return _to NewPost(aListener, aBlogId, aPost, aPublish, aNotifications); } \
  NS_IMETHOD EditPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications) { return _to EditPost(aListener, aBlogId, aPost, aPublish, aNotifications); } \
  NS_IMETHOD SetPostCategories(flockIBlogPublishListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostId, nsISimpleEnumerator *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_FLOCKIBLOGWEBSERVICE(_to) \
  NS_IMETHOD GetSupportsCategories(PRInt32 *aSupportsCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD SetSupportsCategories(PRInt32 aSupportsCategories) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSupportsCategories(aSupportsCategories); } \
  NS_IMETHOD GetSupportsPostReplace(PRBool *aSupportsPostReplace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsPostReplace(aSupportsPostReplace); } \
  NS_IMETHOD SetSupportsPostReplace(PRBool aSupportsPostReplace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSupportsPostReplace(aSupportsPostReplace); } \
  NS_IMETHOD GetMetadataOverlay(nsAString & aMetadataOverlay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMetadataOverlay(aMetadataOverlay); } \
  NS_IMETHOD SetMetadataOverlay(const nsAString & aMetadataOverlay) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMetadataOverlay(aMetadataOverlay); } \
  NS_IMETHOD GetAuthtoken(nsAString & aAuthtoken) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthtoken(aAuthtoken); } \
  NS_IMETHOD SetAuthtoken(const nsAString & aAuthtoken) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthtoken(aAuthtoken); } \
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlogs(_retval); } \
  NS_IMETHOD Init(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(); } \
  NS_IMETHOD GetUsersBlogs(flockIListener *aListener, flockIBlogAccount *aAccount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsersBlogs(aListener, aAccount); } \
  NS_IMETHOD GetRecentPosts(flockIBlogListener *aListener, const nsAString & aBlogId, PRUint32 aNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecentPosts(aListener, aBlogId, aNumber); } \
  NS_IMETHOD GetCategoryList(flockIBlogListener *aListener, const nsAString & aBlogId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCategoryList(aListener, aBlogId); } \
  NS_IMETHOD NewPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications) { return !_to ? NS_ERROR_NULL_POINTER : _to->NewPost(aListener, aBlogId, aPost, aPublish, aNotifications); } \
  NS_IMETHOD EditPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications) { return !_to ? NS_ERROR_NULL_POINTER : _to->EditPost(aListener, aBlogId, aPost, aPublish, aNotifications); } \
  NS_IMETHOD SetPostCategories(flockIBlogPublishListener *aListener, flockIBlogAccount *aAccount, const nsAString & aPostId, nsISimpleEnumerator *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 flockIBlogWebService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGWEBSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute long supportsCategories; */
NS_IMETHODIMP _MYCLASS_::GetSupportsCategories(PRInt32 *aSupportsCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetSupportsCategories(PRInt32 aSupportsCategories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean supportsPostReplace; */
NS_IMETHODIMP _MYCLASS_::GetSupportsPostReplace(PRBool *aSupportsPostReplace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetSupportsPostReplace(PRBool aSupportsPostReplace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString metadataOverlay; */
NS_IMETHODIMP _MYCLASS_::GetMetadataOverlay(nsAString & aMetadataOverlay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMetadataOverlay(const nsAString & aMetadataOverlay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString authtoken; */
NS_IMETHODIMP _MYCLASS_::GetAuthtoken(nsAString & aAuthtoken)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAuthtoken(const nsAString & aAuthtoken)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISimpleEnumerator getBlogs (); */
NS_IMETHODIMP _MYCLASS_::GetBlogs(nsISimpleEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void init (); */
NS_IMETHODIMP _MYCLASS_::Init()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void getRecentPosts (in flockIBlogListener aListener, in AString aBlogId, in PRUint32 aNumber); */
NS_IMETHODIMP _MYCLASS_::GetRecentPosts(flockIBlogListener *aListener, const nsAString & aBlogId, PRUint32 aNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCategoryList (in flockIBlogListener aListener, in AString aBlogId); */
NS_IMETHODIMP _MYCLASS_::GetCategoryList(flockIBlogListener *aListener, const nsAString & aBlogId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void newPost (in flockIBlogPublishListener aListener, in AString aBlogId, in flockIBlogPost aPost, in boolean aPublish, in nsIStringEnumerator aNotifications); */
NS_IMETHODIMP _MYCLASS_::NewPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editPost (in flockIBlogPublishListener aListener, in AString aBlogId, in flockIBlogPost aPost, in boolean aPublish, in nsIStringEnumerator aNotifications); */
NS_IMETHODIMP _MYCLASS_::EditPost(flockIBlogPublishListener *aListener, const nsAString & aBlogId, flockIBlogPost *aPost, PRBool aPublish, nsIStringEnumerator *aNotifications)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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


/* starting interface:    flockICustomBlogWebService */
#define FLOCKICUSTOMBLOGWEBSERVICE_IID_STR "c65e850a-579d-4f0c-ac60-5c8ae709e5ec"

#define FLOCKICUSTOMBLOGWEBSERVICE_IID \
  {0xc65e850a, 0x579d, 0x4f0c, \
    { 0xac, 0x60, 0x5c, 0x8a, 0xe7, 0x09, 0xe5, 0xec }}

/**
 * This interface is used for blog API such as ATOM, Metaweblog or MovableType.
 * It adda attributes to register themselves to the blog service (for autodetection)
 * and a detectAccount method to see if the API is supported for a given blog
 *
 * Some flockIBlogWebService may mirror their calls to an API. For example, the Wordpress
 * service (a flockIBlogWebService) is mirroring all its server calls to the MovableType
 * API service (a flockICustomBlogWebService)
 *
 */
class NS_NO_VTABLE flockICustomBlogWebService : public flockIBlogWebService {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKICUSTOMBLOGWEBSERVICE_IID)

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

  /**
   * Detect an account in a collection of links
   * aLinkList should be an enumerator of flockIBlogLink
   *
   * @see flockIBlogLink
   */
  /* flockIBlogAccount detectAccount (in AString aUrl, in nsISimpleEnumerator aLinkList); */
  NS_IMETHOD DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKICUSTOMBLOGWEBSERVICE \
  NS_IMETHOD GetName(nsAString & aName); \
  NS_IMETHOD SetName(const nsAString & aName); \
  NS_IMETHOD DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKICUSTOMBLOGWEBSERVICE(_to) \
  NS_IMETHOD GetName(nsAString & aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const nsAString & aName) { return _to SetName(aName); } \
  NS_IMETHOD DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval) { return _to DetectAccount(aUrl, aLinkList, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKICUSTOMBLOGWEBSERVICE(_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 DetectAccount(const nsAString & aUrl, nsISimpleEnumerator *aLinkList, flockIBlogAccount **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetectAccount(aUrl, aLinkList, _retval); } 

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

/* Header file */
class _MYCLASS_ : public flockICustomBlogWebService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKICUSTOMBLOGWEBSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

_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;
}

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

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


/* starting interface:    flockIBlogWebServiceAccount */
#define FLOCKIBLOGWEBSERVICEACCOUNT_IID_STR "414a77d0-48ed-11db-b0de-0800200c9a66"

#define FLOCKIBLOGWEBSERVICEACCOUNT_IID \
  {0x414a77d0, 0x48ed, 0x11db, \
    { 0xb0, 0xde, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 }}

/**
 * Represents an account with a blog web service.
 *
 * More documentation here:
 * http://developer.flock.com/wiki/Accounts_Management
 *
 * @see flockIBlogWebService
 */
class NS_NO_VTABLE flockIBlogWebServiceAccount : public flockIWebServiceAccount {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIBLOGWEBSERVICEACCOUNT_IID)

  /* nsISimpleEnumerator getBlogs (); */
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIBLOGWEBSERVICEACCOUNT \
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIBLOGWEBSERVICEACCOUNT(_to) \
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval) { return _to GetBlogs(_retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIBLOGWEBSERVICEACCOUNT(_to) \
  NS_IMETHOD GetBlogs(nsISimpleEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlogs(_retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIBlogWebServiceAccount
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIBLOGWEBSERVICEACCOUNT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* nsISimpleEnumerator getBlogs (); */
NS_IMETHODIMP _MYCLASS_::GetBlogs(nsISimpleEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIBlogWebService_h__ */
