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

#ifndef __gen_flockIMailWebService_h__
#define __gen_flockIMailWebService_h__


#ifndef __gen_flockIWebService_h__
#include "flockIWebService.h"
#endif

#ifndef __gen_nsIDOMXULElement_h__
#include "nsIDOMXULElement.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:    flockIMailWebService */
#define FLOCKIMAILWEBSERVICE_IID_STR "cb6b5caa-5e8b-4981-8e7e-c0e87b3c44ee"

#define FLOCKIMAILWEBSERVICE_IID \
  {0xcb6b5caa, 0x5e8b, 0x4981, \
    { 0x8e, 0x7e, 0xc0, 0xe8, 0x7b, 0x3c, 0x44, 0xee }}

/**
 * Represents a web service that supports webmail services such as Yahoo! Mail
 * and Gmail.
 */
class NS_NO_VTABLE flockIMailWebService : public flockIWebService {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIMAILWEBSERVICE_IID)

  /* AString getLoginURL (); */
  NS_IMETHOD GetLoginURL(nsAString & _retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIMAILWEBSERVICE \
  NS_IMETHOD GetLoginURL(nsAString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIMAILWEBSERVICE(_to) \
  NS_IMETHOD GetLoginURL(nsAString & _retval) { return _to GetLoginURL(_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_FLOCKIMAILWEBSERVICE(_to) \
  NS_IMETHOD GetLoginURL(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoginURL(_retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIMailWebService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIMAILWEBSERVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* AString getLoginURL (); */
NS_IMETHODIMP _MYCLASS_::GetLoginURL(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIMailWebServiceAccount */
#define FLOCKIMAILWEBSERVICEACCOUNT_IID_STR "51afe3df-5095-42b0-8310-4a0a87df0024"

#define FLOCKIMAILWEBSERVICEACCOUNT_IID \
  {0x51afe3df, 0x5095, 0x42b0, \
    { 0x83, 0x10, 0x4a, 0x0a, 0x87, 0xdf, 0x00, 0x24 }}

/**
 * Represents a web service account for a  webmail service such as
 * Yahoo! Mail or Gmail.
 */
class NS_NO_VTABLE flockIMailWebServiceAccount : public flockIWebServiceAccount {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIMAILWEBSERVICEACCOUNT_IID)

  /* AString getComposeURL (in AString aMailParams); */
  NS_IMETHOD GetComposeURL(const nsAString & aMailParams, nsAString & _retval) = 0;

  /* void onComposeURLLoaded (in AString aComposeURL, in nsIDOMXULElement aTabBrowser); */
  NS_IMETHOD OnComposeURLLoaded(const nsAString & aComposeURL, nsIDOMXULElement *aTabBrowser) = 0;

  /* AString getEmailAddress (); */
  NS_IMETHOD GetEmailAddress(nsAString & _retval) = 0;

  /* AString getInboxURL (); */
  NS_IMETHOD GetInboxURL(nsAString & _retval) = 0;

  /* AString getUnreadMessages (in boolean aCheckNow); */
  NS_IMETHOD GetUnreadMessages(PRBool aCheckNow, nsAString & _retval) = 0;

  /* AString getUpgradeAccount (); */
  NS_IMETHOD GetUpgradeAccount(nsAString & _retval) = 0;

  /* boolean isPrimary (); */
  NS_IMETHOD IsPrimary(PRBool *_retval) = 0;

  /* void refreshUnreadMessageList (); */
  NS_IMETHOD RefreshUnreadMessageList(void) = 0;

  /* void setAsPrimary (); */
  NS_IMETHOD SetAsPrimary(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIMAILWEBSERVICEACCOUNT \
  NS_IMETHOD GetComposeURL(const nsAString & aMailParams, nsAString & _retval); \
  NS_IMETHOD OnComposeURLLoaded(const nsAString & aComposeURL, nsIDOMXULElement *aTabBrowser); \
  NS_IMETHOD GetEmailAddress(nsAString & _retval); \
  NS_IMETHOD GetInboxURL(nsAString & _retval); \
  NS_IMETHOD GetUnreadMessages(PRBool aCheckNow, nsAString & _retval); \
  NS_IMETHOD GetUpgradeAccount(nsAString & _retval); \
  NS_IMETHOD IsPrimary(PRBool *_retval); \
  NS_IMETHOD RefreshUnreadMessageList(void); \
  NS_IMETHOD SetAsPrimary(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIMAILWEBSERVICEACCOUNT(_to) \
  NS_IMETHOD GetComposeURL(const nsAString & aMailParams, nsAString & _retval) { return _to GetComposeURL(aMailParams, _retval); } \
  NS_IMETHOD OnComposeURLLoaded(const nsAString & aComposeURL, nsIDOMXULElement *aTabBrowser) { return _to OnComposeURLLoaded(aComposeURL, aTabBrowser); } \
  NS_IMETHOD GetEmailAddress(nsAString & _retval) { return _to GetEmailAddress(_retval); } \
  NS_IMETHOD GetInboxURL(nsAString & _retval) { return _to GetInboxURL(_retval); } \
  NS_IMETHOD GetUnreadMessages(PRBool aCheckNow, nsAString & _retval) { return _to GetUnreadMessages(aCheckNow, _retval); } \
  NS_IMETHOD GetUpgradeAccount(nsAString & _retval) { return _to GetUpgradeAccount(_retval); } \
  NS_IMETHOD IsPrimary(PRBool *_retval) { return _to IsPrimary(_retval); } \
  NS_IMETHOD RefreshUnreadMessageList(void) { return _to RefreshUnreadMessageList(); } \
  NS_IMETHOD SetAsPrimary(void) { return _to SetAsPrimary(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIMAILWEBSERVICEACCOUNT(_to) \
  NS_IMETHOD GetComposeURL(const nsAString & aMailParams, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetComposeURL(aMailParams, _retval); } \
  NS_IMETHOD OnComposeURLLoaded(const nsAString & aComposeURL, nsIDOMXULElement *aTabBrowser) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnComposeURLLoaded(aComposeURL, aTabBrowser); } \
  NS_IMETHOD GetEmailAddress(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmailAddress(_retval); } \
  NS_IMETHOD GetInboxURL(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInboxURL(_retval); } \
  NS_IMETHOD GetUnreadMessages(PRBool aCheckNow, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnreadMessages(aCheckNow, _retval); } \
  NS_IMETHOD GetUpgradeAccount(nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpgradeAccount(_retval); } \
  NS_IMETHOD IsPrimary(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsPrimary(_retval); } \
  NS_IMETHOD RefreshUnreadMessageList(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RefreshUnreadMessageList(); } \
  NS_IMETHOD SetAsPrimary(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAsPrimary(); } 

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

/* Header file */
class _MYCLASS_ : public flockIMailWebServiceAccount
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIMAILWEBSERVICEACCOUNT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* AString getComposeURL (in AString aMailParams); */
NS_IMETHODIMP _MYCLASS_::GetComposeURL(const nsAString & aMailParams, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onComposeURLLoaded (in AString aComposeURL, in nsIDOMXULElement aTabBrowser); */
NS_IMETHODIMP _MYCLASS_::OnComposeURLLoaded(const nsAString & aComposeURL, nsIDOMXULElement *aTabBrowser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getEmailAddress (); */
NS_IMETHODIMP _MYCLASS_::GetEmailAddress(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getInboxURL (); */
NS_IMETHODIMP _MYCLASS_::GetInboxURL(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getUnreadMessages (in boolean aCheckNow); */
NS_IMETHODIMP _MYCLASS_::GetUnreadMessages(PRBool aCheckNow, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getUpgradeAccount (); */
NS_IMETHODIMP _MYCLASS_::GetUpgradeAccount(nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isPrimary (); */
NS_IMETHODIMP _MYCLASS_::IsPrimary(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void refreshUnreadMessageList (); */
NS_IMETHODIMP _MYCLASS_::RefreshUnreadMessageList()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAsPrimary (); */
NS_IMETHODIMP _MYCLASS_::SetAsPrimary()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIMailWebService_h__ */
