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

#ifndef __gen_flockIAccountUtils_h__
#define __gen_flockIAccountUtils_h__


#ifndef __gen_nsIDOMHTMLDocument_h__
#include "nsIDOMHTMLDocument.h"
#endif

#ifndef __gen_nsIDOMHTMLElement_h__
#include "nsIDOMHTMLElement.h"
#endif

#ifndef __gen_nsIDOMHTMLFormElement_h__
#include "nsIDOMHTMLFormElement.h"
#endif

#ifndef __gen_nsIPassword_h__
#include "nsIPassword.h"
#endif

#ifndef __gen_nsIPropertyBag_h__
#include "nsIPropertyBag.h"
#endif

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

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

#ifndef __gen_nsITransferable_h__
#include "nsITransferable.h"
#endif

#ifndef __gen_flockIBookmarkWebService_h__
#include "flockIBookmarkWebService.h"
#endif

#ifndef __gen_flockIWebDetective_h__
#include "flockIWebDetective.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:    flockIPassword */
#define FLOCKIPASSWORD_IID_STR "25e096fa-dd6f-4405-b983-4d064192f04c"

#define FLOCKIPASSWORD_IID \
  {0x25e096fa, 0xdd6f, 0x4405, \
    { 0xb9, 0x83, 0x4d, 0x06, 0x41, 0x92, 0xf0, 0x4c }}

/**
 * Interface for tracking origins of passwords.  Right now we only track
 * signup vs. not.
 */
class NS_NO_VTABLE flockIPassword : public nsIPassword {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIPASSWORD_IID)

  /* attribute AString formType; */
  NS_IMETHOD GetFormType(nsAString & aFormType) = 0;
  NS_IMETHOD SetFormType(const nsAString & aFormType) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIPASSWORD \
  NS_IMETHOD GetFormType(nsAString & aFormType); \
  NS_IMETHOD SetFormType(const nsAString & aFormType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIPASSWORD(_to) \
  NS_IMETHOD GetFormType(nsAString & aFormType) { return _to GetFormType(aFormType); } \
  NS_IMETHOD SetFormType(const nsAString & aFormType) { return _to SetFormType(aFormType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIPASSWORD(_to) \
  NS_IMETHOD GetFormType(nsAString & aFormType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFormType(aFormType); } \
  NS_IMETHOD SetFormType(const nsAString & aFormType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFormType(aFormType); } 

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

/* Header file */
class _MYCLASS_ : public flockIPassword
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIPASSWORD

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* attribute AString formType; */
NS_IMETHODIMP _MYCLASS_::GetFormType(nsAString & aFormType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFormType(const nsAString & aFormType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIAccountUtils */
#define FLOCKIACCOUNTUTILS_IID_STR "2549a53e-258b-45d7-b52f-1e121ab8309c"

#define FLOCKIACCOUNTUTILS_IID \
  {0x2549a53e, 0x258b, 0x45d7, \
    { 0xb5, 0x2f, 0x1e, 0x12, 0x1a, 0xb8, 0x30, 0x9c }}

/**
 * Interface for the flockAccountUtils service.  Various helpful functions for
 * doing Accounts and Services stuff.
 *
 * More documentation here:
 * http://wiki.flock.com/index.php?title=Danphe:AccountsAndServices
 */
class NS_NO_VTABLE flockIAccountUtils : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIACCOUNTUTILS_IID)

  /**
   * Determines whether an activated account exists for the specified service.
   */
  /* boolean activatedAccountExists (in AString aServiceURN); */
  NS_IMETHOD ActivatedAccountExists(const nsAString & aServiceURN, PRBool *_retval) = 0;

  /**
   * Clears the temporary password with the specified key from memory.  Note
   * that these temporary passwords are stored in memory only and as such will
   * not persist beyond the current browser session as it is.  This method
   * provides an extra peace-of-mind security measure of explicitly purging it
   * when it is no longer needed.
   *
   * @param aKey (in) The unique hash key of the temp password entry to delete
   * @see getTempPassword
   * @see setTempPassword
   */
  /* void clearTempPassword (in AString aKey); */
  NS_IMETHOD ClearTempPassword(const nsAString & aKey) = 0;

  /**
   * Makes sure that the specified account has isAuthenticated==TRUE, and that
   * all other accounts with the same service have isAuthenitcated==FALSE.
   *
   * @param aAccountURN (in) The RDF node id of an account.
   *
   * @return The previous value of isAuthenticated for the specified account.
   */
  /* boolean ensureOnlyAuthenticatedAccount (in AString aAccountURN); */
  NS_IMETHOD EnsureOnlyAuthenticatedAccount(const nsAString & aAccountURN, PRBool *_retval) = 0;

  /**
   * Call this before logging in to the specified account to ensure that there
   * are no other accounts logged in to this service. If an authenticated
   * account is found, the user will be prompted to confirm a forced logout of
   * that account.
   *
   * @param aAccountURN (in) The RDF node id of an account.
   *
   * @return true if there are no authenticated accounts or we successfully log
   *         out of an authenticated account.
   */
  /* boolean ensureNoAuthenticatedAccountsBeforeLogin (in AString aAccountURN); */
  NS_IMETHOD EnsureNoAuthenticatedAccountsBeforeLogin(const nsAString & aAccountURN, PRBool *_retval) = 0;

  /**
   * Searches Flock's data store for an account for the specified service with
   * the specified account ID.
   *
   * @param aServiceURN (in) The RDF node id for the service
   * @param aAccountID (in) The unique account identifier used by the web
   *        service
   * @return The RDF node id of the account, if a match is found.
   */
  /* AString getAccountURNById (in AString aServiceURN, in AString aAccountID); */
  NS_IMETHOD GetAccountURNById(const nsAString & aServiceURN, const nsAString & aAccountID, nsAString & _retval) = 0;

  /**
   * Searches for a matching login stored in the password manager.
   *
   * @return The RDF node id of the account, if a match is found.
   */
  /* AString getAccountURNByLogin (in AString aServiceURN, in AString aLogin); */
  NS_IMETHOD GetAccountURNByLogin(const nsAString & aServiceURN, const nsAString & aLogin, nsAString & _retval) = 0;

  /**
   * Retrieves all the accounts that Flock knows of for a given service, as an
   * enumerator of flockIWebServiceAccounts.
   *
   * @param aServiceContractID (in) the contract ID of the service for which we
   *        want to enumerate accounts
   * @return nsISimpleEnumerator of flockIWebServiceAccount objects.
   */
  /* nsISimpleEnumerator getAccountsForService (in AString aServiceContractID); */
  NS_IMETHOD GetAccountsForService(const nsAString & aServiceContractID, nsISimpleEnumerator **_retval) = 0;

  /**
   * Retrieves all the flockIWebService services that implement the interface
   * specified by aWebServiceInterface, as an enumerator of flockIWebServices.
   *
   * @param aWebServiceInterface (in) the web service interface name for which
   *                                  we want to enumerate services
   * @return nsISimpleEnumerator of flockIWebService objects.
   */
  /* nsISimpleEnumerator getWebServicesByInterface (in AString aWebServiceInterface); */
  NS_IMETHOD GetWebServicesByInterface(const nsAString & aWebServiceInterface, nsISimpleEnumerator **_retval) = 0;

  /**
   * Retrieves all the accounts that implement the interface specified by
   * aInterface, as an enumerator of flockIWebServiceAccounts.
   *
   * @param aServiceInterface (in) the web service interface name for which we
   *        want to enumerate accounts
   * @return nsISimpleEnumerator of flockIWebServiceAccount objects.
   */
  /* nsISimpleEnumerator getAccountsByInterface (in AString aServiceInterface); */
  NS_IMETHOD GetAccountsByInterface(const nsAString & aServiceInterface, nsISimpleEnumerator **_retval) = 0;

  /**
   * Checks if any accounts are configured.
   *
   * return true if any configured accounts found, false otherwise.
   */
  /* boolean doAccountsExist (); */
  NS_IMETHOD DoAccountsExist(PRBool *_retval) = 0;

  /* boolean isTransient (in AString aURN); */
  NS_IMETHOD IsTransient(const nsAString & aURN, PRBool *_retval) = 0;

  /* nsIDOMHTMLElement getElementByAttribute (in nsIDOMHTMLElement aAncestorElement, in AString aAttributeName, in AString aAttributeValue); */
  NS_IMETHOD GetElementByAttribute(nsIDOMHTMLElement *aAncestorElement, const nsAString & aAttributeName, const nsAString & aAttributeValue, nsIDOMHTMLElement **_retval) = 0;

  /**
   * Retrieves the contract ID of the service associated with the specified
   * account URN.
   *
   * @param aAccountURN (in) The RDF node id of an account.
   * @return The service contract ID, as a string.
   */
  /* AString getServiceIDForAccountURN (in AString aAccountURN); */
  NS_IMETHOD GetServiceIDForAccountURN(const nsAString & aAccountURN, nsAString & _retval) = 0;

  /**
   * Create an account on the given service. Should only be called by the
   * service itself. For some services, the accountId and the username
   * may be the same.
   *
   * @param aService (in) Service responsible for the new account.
   * @param aAccountId (in) AccountId on the service.
   * @param aUsername (in) Username on the service.
   * @param aUrl (in) The URL of the account; usually corresponds to the
   *        profile page of the user on the service, or a dashboard page.
   *        If null, defaults to the service URL.
   * @param aIsTransient (in) Whether the account should be created transient
   *        or not. At the end of the session, all transient accounts are
   *        deleted.
   * @return RDF id of the newly created account.
   */
  /* AString createAccount (in flockIWebService aService, in AString aAccountId, in AString aUsername, in AString aUrl, in boolean aIsTransient); */
  NS_IMETHOD CreateAccount(flockIWebService *aService, const nsAString & aAccountId, const nsAString & aUsername, const nsAString & aUrl, PRBool aIsTransient, nsAString & _retval) = 0;

  /**
   * Adds parameters that are custom to account coop object defined by aAccountUrn
   * @param aList (in) list of parameters to add to account
   * @param aAccountUrn (in) id of account
   */
  /* void addCustomParamsToAccount (in nsIPropertyBag aList, in AString aAccountUrn); */
  NS_IMETHOD AddCustomParamsToAccount(nsIPropertyBag *aList, const nsAString & aAccountUrn) = 0;

  /**
   * *** DEPRECATED ****
   * Please use flockIWebServiceAccount.getCustomParam() instead
   *
   * Gets value of account parameter aParamName
   * @param aParamName (in) parameter to return
   * @param aAccountUrn (in) id of account
   * @return nsIVariant value that corresponds to aParam
   */
  /* nsIVariant getAccountCustomParam (in AString aAccountUrn, in AString aParamName); */
  NS_IMETHOD GetAccountCustomParam(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant **_retval) = 0;

  /**
   * *** DEPRECATED ****
   * Please use flockIWebServiceAccount.getAllCustomParams() instead
   *
   * Gets all custom account parameters
   * @param aAccountUrn (in) id of account
   */
  /* nsIPropertyBag getAllAccountCustomParams (in AString aAccountUrn); */
  NS_IMETHOD GetAllAccountCustomParams(const nsAString & aAccountUrn, nsIPropertyBag **_retval) = 0;

  /**
   * *** DEPRECATED ****
   * Please use flockIWebServiceAccount.setCustomParam() instead
   *
   * sets value of account parameter aParamName
   * @param aParamName (in) parameter to return
   * @param aAccountUrn (in) id of account
   * @param aValue (in) new value for parameter
   */
  /* void setAccountCustomParamValue (in AString aAccountUrn, in AString aParamName, in nsIVariant aValue); */
  NS_IMETHOD SetAccountCustomParamValue(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant *aValue) = 0;

  /**
   * Remove (or "forget") an account and its associated identities.
   *
   * @param aAccountUrn (in) RDF id of the account to forget.
   */
  /* void removeAccount (in AString aAccountUrn); */
  NS_IMETHOD RemoveAccount(const nsAString & aAccountUrn) = 0;

  /**
   * Removes all configured accounts from the RDF, after first calling
   * .logout() on each account to be removed.
   *
   * return true if any configured accounts found, false otherwise.
   */
  /* void removeAllAccounts (); */
  NS_IMETHOD RemoveAllAccounts(void) = 0;

  /* AString getCookie (in AString aHost, in AString aCookieName); */
  NS_IMETHOD GetCookie(const nsAString & aHost, const nsAString & aCookieName, nsAString & _retval) = 0;

  /**
   * Iterates through the nsICookieManager#enumerator list of cookies returns
   * the value of the first cookie that matches aHost, aName and aPath.
   */
  /* AString getCookieValue (in AString aHost, in AString aName, in AString aPath); */
  NS_IMETHOD GetCookieValue(const nsAString & aHost, const nsAString & aName, const nsAString & aPath, nsAString & _retval) = 0;

  /**
   * Retrieves the password with the specified hash key.  This method looks
   * first in the temporary password hash, and if not found there then it looks
   * in Password Manager.
   */
  /* nsIPassword getPassword (in AString aKey); */
  NS_IMETHOD GetPassword(const nsAString & aKey, nsIPassword **_retval) = 0;

  /**
   * Determine if the password manager has a password stored for *any* host in
   * the specified domain.
   *
   * @param aDomain (in) web domain to check for passwords in.
   * @return nsIPassword object if a password is found, otherwise Null
   */
  /* nsIPassword getPasswordForAnyHost (in AString aDomain); */
  NS_IMETHOD GetPasswordForAnyHost(const nsAString & aDomain, nsIPassword **_retval) = 0;

  /* flockIBookmarkWebServiceAccount getActiveBookmarkAccount (); */
  NS_IMETHOD GetActiveBookmarkAccount(flockIBookmarkWebServiceAccount **_retval) = 0;

  /**
   * DEPRECATED
   *
   * Use flockIWebService.getAuthenticatedAccount
   */
  /* AString getFirstAuthenticatedAccountForService (in AString aServiceContractID); */
  NS_IMETHOD GetFirstAuthenticatedAccountForService(const nsAString & aServiceContractID, nsAString & _retval) = 0;

  /**
   * Retrieves the first password entry found in Password Manager for the given
   * host.
   */
  /* nsIPassword getFirstPasswordForHost (in AString aHost); */
  NS_IMETHOD GetFirstPasswordForHost(const nsAString & aHost, nsIPassword **_retval) = 0;

  /**
   * Retrieve the temporary password entry stored (in-memory) with the
   * specified hash key.
   *
   * @param aKey (in) The unique hash key of the temp password entry to
   *        retrieve
   * @return nsIPassword object, or null if the entry was not found
   * @see clearTempPassword
   * @see setTempPassword
   */
  /* nsIPassword getTempPassword (in AString aKey); */
  NS_IMETHOD GetTempPassword(const nsAString & aKey, nsIPassword **_retval) = 0;

  /**
   * Removes a temporily in-memory password and puts in into Password
   * Manager for real.
   *
   * @param aKey (in) The unique hash key of the temp password make permanent
   * @return an nsIPassword object with the username and password, for
   *         convenience
   */
  /* nsIPassword makeTempPasswordPermanent (in AString aKey); */
  NS_IMETHOD MakeTempPasswordPermanent(const nsAString & aKey, nsIPassword **_retval) = 0;

  /**
   * Sets the isLoggedIn RDF property to FALSE for
   * the specified account.
   */
  /* void markAccountAsLoggedOut (in AString aAccountURN); */
  NS_IMETHOD MarkAccountAsLoggedOut(const nsAString & aAccountURN) = 0;

  /**
   * Sets the isLoggedIn RDF property to FALSE for all accounts associated with
   * the specified service.
   */
  /* void markAllAccountsAsLoggedOut (in AString aServiceContractID); */
  NS_IMETHOD MarkAllAccountsAsLoggedOut(const nsAString & aServiceContractID) = 0;

  /**
   * Simple wrapper for the Password Manager addUser() method.
   *
   * @see nsIPasswordManager
   */
  /* void setPassword (in AString aHost, in AString aUser, in AString aPassword); */
  NS_IMETHOD SetPassword(const nsAString & aHost, const nsAString & aUser, const nsAString & aPassword) = 0;

  /**
   * Set a temporary password to be kept in memory for this browser session, or
   * until specifically purged using the clearTempPassword() method.  Note that
   * these passwords are specifically NOT stored using Password Manager because
   * that is not guaranteed to clear them after this browser session.
   *
   * @param aKey (in) The unique hash key of the temp password entry to store
   * @param aUser (in) The username used for login
   * @param aPassword (in) The password string
   * @param aFormType (in) The type of form where the password was captured from
   * @see clearTempPassword
   * @see getTempPassword
   */
  /* void setTempPassword (in AString aKey, in AString aUser, in AString aPassword, in AString aFormType); */
  NS_IMETHOD SetTempPassword(const nsAString & aKey, const nsAString & aUser, const nsAString & aPassword, const nsAString & aFormType) = 0;

  /**
   * Deletes all password entries in Password Manager for the specified host.
   */
  /* void removeAllPasswordsForHost (in AString aHost); */
  NS_IMETHOD RemoveAllPasswordsForHost(const nsAString & aHost) = 0;

  /**
   * Creates a Coop notification in the specified notification stream.
   *
   * @param aStreamUrn (in) RDF id of the notification stream to use
   * @param aNotificationUrn (in) RDF id of the notification to be raised --
   *        necessary to avoid duplicates
   * @param aNotificationProps (in) nsIPropertyBag object containing all the
   *        properties to be set on the notification object
   */
  /* void raiseNotification (in AString aStreamUrn, in AString aNotificationUrn, in nsIPropertyBag aNotificationProps); */
  NS_IMETHOD RaiseNotification(const nsAString & aStreamUrn, const nsAString & aNotificationUrn, nsIPropertyBag *aNotificationProps) = 0;

  /**
   * Tries ripping through an HTML Form DOM to find a username and password.
   *
   * @param aForm (in) HTML Form element to look under
   * @return nsIPassword object if a likely un/pw pair is found, otherwise null
   */
  /* nsIPassword extractPasswordFromHTMLForm (in nsIDOMHTMLFormElement aForm); */
  NS_IMETHOD ExtractPasswordFromHTMLForm(nsIDOMHTMLFormElement *aForm, nsIPassword **_retval) = 0;

  /**
   * Attach specific meta-data to a document for later use.  Fields are
   * identified by a category and name, and have a simple string value.
   *
   * @see getDocumentDecoration
   */
  /* void decorateDocument (in nsIDOMHTMLDocument aDocument, in AString aCategory, in AString aName, in AString aValue); */
  NS_IMETHOD DecorateDocument(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, const nsAString & aValue) = 0;

  /**
   * Retreive specific meta-data that was previously placed on a document
   * using decorateDocument().
   *
   * @see decorateDocument
   */
  /* AString getDocumentDecoration (in nsIDOMHTMLDocument aDocument, in AString aCategory, in AString aName); */
  NS_IMETHOD GetDocumentDecoration(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, nsAString & _retval) = 0;

  /**
   * Looks for the named Web Detective rules file under the 'detect' folder in
   * the user's profile dir, and loads it into Web Detective.
   *
   * [ Note that this will only work with XML rules files shipped with the
   * application.  Extensions will not be able to call this function, and
   * should instead manually load the XML rules files into Web Detective using
   * {flockIWebDetective}.loadDetectFile() ]
   *
   * @param aDetectionFileName (in) Name (not path) of the XML file to load.
   * @return A handle to the Web Detective service.
   *
   * @see flockIWebDetective
   *
   * More usage documentation here:
   * http://wiki.flock.com/index.php?title=Danphe:WebDetective
   */
  /* flockIWebDetective useWebDetective (in AString aDetectionFileName); */
  NS_IMETHOD UseWebDetective(const nsAString & aDetectionFileName, flockIWebDetective **_retval) = 0;

  /**
   * Takes an enumeration of cookie descriptors and removes any stored cookies
   * matching those descriptors.
   *
   * @param aCookies (in) nsISimpleEnumerator of nsICookie objects
   */
  /* void removeCookies (in nsISimpleEnumerator aCookies); */
  NS_IMETHOD RemoveCookies(nsISimpleEnumerator *aCookies) = 0;

  /**
   * Determines whether or not the people sidebar is open
   */
  /* boolean isPeopleSidebarOpen (); */
  NS_IMETHOD IsPeopleSidebarOpen(PRBool *_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIACCOUNTUTILS \
  NS_IMETHOD ActivatedAccountExists(const nsAString & aServiceURN, PRBool *_retval); \
  NS_IMETHOD ClearTempPassword(const nsAString & aKey); \
  NS_IMETHOD EnsureOnlyAuthenticatedAccount(const nsAString & aAccountURN, PRBool *_retval); \
  NS_IMETHOD EnsureNoAuthenticatedAccountsBeforeLogin(const nsAString & aAccountURN, PRBool *_retval); \
  NS_IMETHOD GetAccountURNById(const nsAString & aServiceURN, const nsAString & aAccountID, nsAString & _retval); \
  NS_IMETHOD GetAccountURNByLogin(const nsAString & aServiceURN, const nsAString & aLogin, nsAString & _retval); \
  NS_IMETHOD GetAccountsForService(const nsAString & aServiceContractID, nsISimpleEnumerator **_retval); \
  NS_IMETHOD GetWebServicesByInterface(const nsAString & aWebServiceInterface, nsISimpleEnumerator **_retval); \
  NS_IMETHOD GetAccountsByInterface(const nsAString & aServiceInterface, nsISimpleEnumerator **_retval); \
  NS_IMETHOD DoAccountsExist(PRBool *_retval); \
  NS_IMETHOD IsTransient(const nsAString & aURN, PRBool *_retval); \
  NS_IMETHOD GetElementByAttribute(nsIDOMHTMLElement *aAncestorElement, const nsAString & aAttributeName, const nsAString & aAttributeValue, nsIDOMHTMLElement **_retval); \
  NS_IMETHOD GetServiceIDForAccountURN(const nsAString & aAccountURN, nsAString & _retval); \
  NS_IMETHOD CreateAccount(flockIWebService *aService, const nsAString & aAccountId, const nsAString & aUsername, const nsAString & aUrl, PRBool aIsTransient, nsAString & _retval); \
  NS_IMETHOD AddCustomParamsToAccount(nsIPropertyBag *aList, const nsAString & aAccountUrn); \
  NS_IMETHOD GetAccountCustomParam(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant **_retval); \
  NS_IMETHOD GetAllAccountCustomParams(const nsAString & aAccountUrn, nsIPropertyBag **_retval); \
  NS_IMETHOD SetAccountCustomParamValue(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant *aValue); \
  NS_IMETHOD RemoveAccount(const nsAString & aAccountUrn); \
  NS_IMETHOD RemoveAllAccounts(void); \
  NS_IMETHOD GetCookie(const nsAString & aHost, const nsAString & aCookieName, nsAString & _retval); \
  NS_IMETHOD GetCookieValue(const nsAString & aHost, const nsAString & aName, const nsAString & aPath, nsAString & _retval); \
  NS_IMETHOD GetPassword(const nsAString & aKey, nsIPassword **_retval); \
  NS_IMETHOD GetPasswordForAnyHost(const nsAString & aDomain, nsIPassword **_retval); \
  NS_IMETHOD GetActiveBookmarkAccount(flockIBookmarkWebServiceAccount **_retval); \
  NS_IMETHOD GetFirstAuthenticatedAccountForService(const nsAString & aServiceContractID, nsAString & _retval); \
  NS_IMETHOD GetFirstPasswordForHost(const nsAString & aHost, nsIPassword **_retval); \
  NS_IMETHOD GetTempPassword(const nsAString & aKey, nsIPassword **_retval); \
  NS_IMETHOD MakeTempPasswordPermanent(const nsAString & aKey, nsIPassword **_retval); \
  NS_IMETHOD MarkAccountAsLoggedOut(const nsAString & aAccountURN); \
  NS_IMETHOD MarkAllAccountsAsLoggedOut(const nsAString & aServiceContractID); \
  NS_IMETHOD SetPassword(const nsAString & aHost, const nsAString & aUser, const nsAString & aPassword); \
  NS_IMETHOD SetTempPassword(const nsAString & aKey, const nsAString & aUser, const nsAString & aPassword, const nsAString & aFormType); \
  NS_IMETHOD RemoveAllPasswordsForHost(const nsAString & aHost); \
  NS_IMETHOD RaiseNotification(const nsAString & aStreamUrn, const nsAString & aNotificationUrn, nsIPropertyBag *aNotificationProps); \
  NS_IMETHOD ExtractPasswordFromHTMLForm(nsIDOMHTMLFormElement *aForm, nsIPassword **_retval); \
  NS_IMETHOD DecorateDocument(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, const nsAString & aValue); \
  NS_IMETHOD GetDocumentDecoration(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, nsAString & _retval); \
  NS_IMETHOD UseWebDetective(const nsAString & aDetectionFileName, flockIWebDetective **_retval); \
  NS_IMETHOD RemoveCookies(nsISimpleEnumerator *aCookies); \
  NS_IMETHOD IsPeopleSidebarOpen(PRBool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIACCOUNTUTILS(_to) \
  NS_IMETHOD ActivatedAccountExists(const nsAString & aServiceURN, PRBool *_retval) { return _to ActivatedAccountExists(aServiceURN, _retval); } \
  NS_IMETHOD ClearTempPassword(const nsAString & aKey) { return _to ClearTempPassword(aKey); } \
  NS_IMETHOD EnsureOnlyAuthenticatedAccount(const nsAString & aAccountURN, PRBool *_retval) { return _to EnsureOnlyAuthenticatedAccount(aAccountURN, _retval); } \
  NS_IMETHOD EnsureNoAuthenticatedAccountsBeforeLogin(const nsAString & aAccountURN, PRBool *_retval) { return _to EnsureNoAuthenticatedAccountsBeforeLogin(aAccountURN, _retval); } \
  NS_IMETHOD GetAccountURNById(const nsAString & aServiceURN, const nsAString & aAccountID, nsAString & _retval) { return _to GetAccountURNById(aServiceURN, aAccountID, _retval); } \
  NS_IMETHOD GetAccountURNByLogin(const nsAString & aServiceURN, const nsAString & aLogin, nsAString & _retval) { return _to GetAccountURNByLogin(aServiceURN, aLogin, _retval); } \
  NS_IMETHOD GetAccountsForService(const nsAString & aServiceContractID, nsISimpleEnumerator **_retval) { return _to GetAccountsForService(aServiceContractID, _retval); } \
  NS_IMETHOD GetWebServicesByInterface(const nsAString & aWebServiceInterface, nsISimpleEnumerator **_retval) { return _to GetWebServicesByInterface(aWebServiceInterface, _retval); } \
  NS_IMETHOD GetAccountsByInterface(const nsAString & aServiceInterface, nsISimpleEnumerator **_retval) { return _to GetAccountsByInterface(aServiceInterface, _retval); } \
  NS_IMETHOD DoAccountsExist(PRBool *_retval) { return _to DoAccountsExist(_retval); } \
  NS_IMETHOD IsTransient(const nsAString & aURN, PRBool *_retval) { return _to IsTransient(aURN, _retval); } \
  NS_IMETHOD GetElementByAttribute(nsIDOMHTMLElement *aAncestorElement, const nsAString & aAttributeName, const nsAString & aAttributeValue, nsIDOMHTMLElement **_retval) { return _to GetElementByAttribute(aAncestorElement, aAttributeName, aAttributeValue, _retval); } \
  NS_IMETHOD GetServiceIDForAccountURN(const nsAString & aAccountURN, nsAString & _retval) { return _to GetServiceIDForAccountURN(aAccountURN, _retval); } \
  NS_IMETHOD CreateAccount(flockIWebService *aService, const nsAString & aAccountId, const nsAString & aUsername, const nsAString & aUrl, PRBool aIsTransient, nsAString & _retval) { return _to CreateAccount(aService, aAccountId, aUsername, aUrl, aIsTransient, _retval); } \
  NS_IMETHOD AddCustomParamsToAccount(nsIPropertyBag *aList, const nsAString & aAccountUrn) { return _to AddCustomParamsToAccount(aList, aAccountUrn); } \
  NS_IMETHOD GetAccountCustomParam(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant **_retval) { return _to GetAccountCustomParam(aAccountUrn, aParamName, _retval); } \
  NS_IMETHOD GetAllAccountCustomParams(const nsAString & aAccountUrn, nsIPropertyBag **_retval) { return _to GetAllAccountCustomParams(aAccountUrn, _retval); } \
  NS_IMETHOD SetAccountCustomParamValue(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant *aValue) { return _to SetAccountCustomParamValue(aAccountUrn, aParamName, aValue); } \
  NS_IMETHOD RemoveAccount(const nsAString & aAccountUrn) { return _to RemoveAccount(aAccountUrn); } \
  NS_IMETHOD RemoveAllAccounts(void) { return _to RemoveAllAccounts(); } \
  NS_IMETHOD GetCookie(const nsAString & aHost, const nsAString & aCookieName, nsAString & _retval) { return _to GetCookie(aHost, aCookieName, _retval); } \
  NS_IMETHOD GetCookieValue(const nsAString & aHost, const nsAString & aName, const nsAString & aPath, nsAString & _retval) { return _to GetCookieValue(aHost, aName, aPath, _retval); } \
  NS_IMETHOD GetPassword(const nsAString & aKey, nsIPassword **_retval) { return _to GetPassword(aKey, _retval); } \
  NS_IMETHOD GetPasswordForAnyHost(const nsAString & aDomain, nsIPassword **_retval) { return _to GetPasswordForAnyHost(aDomain, _retval); } \
  NS_IMETHOD GetActiveBookmarkAccount(flockIBookmarkWebServiceAccount **_retval) { return _to GetActiveBookmarkAccount(_retval); } \
  NS_IMETHOD GetFirstAuthenticatedAccountForService(const nsAString & aServiceContractID, nsAString & _retval) { return _to GetFirstAuthenticatedAccountForService(aServiceContractID, _retval); } \
  NS_IMETHOD GetFirstPasswordForHost(const nsAString & aHost, nsIPassword **_retval) { return _to GetFirstPasswordForHost(aHost, _retval); } \
  NS_IMETHOD GetTempPassword(const nsAString & aKey, nsIPassword **_retval) { return _to GetTempPassword(aKey, _retval); } \
  NS_IMETHOD MakeTempPasswordPermanent(const nsAString & aKey, nsIPassword **_retval) { return _to MakeTempPasswordPermanent(aKey, _retval); } \
  NS_IMETHOD MarkAccountAsLoggedOut(const nsAString & aAccountURN) { return _to MarkAccountAsLoggedOut(aAccountURN); } \
  NS_IMETHOD MarkAllAccountsAsLoggedOut(const nsAString & aServiceContractID) { return _to MarkAllAccountsAsLoggedOut(aServiceContractID); } \
  NS_IMETHOD SetPassword(const nsAString & aHost, const nsAString & aUser, const nsAString & aPassword) { return _to SetPassword(aHost, aUser, aPassword); } \
  NS_IMETHOD SetTempPassword(const nsAString & aKey, const nsAString & aUser, const nsAString & aPassword, const nsAString & aFormType) { return _to SetTempPassword(aKey, aUser, aPassword, aFormType); } \
  NS_IMETHOD RemoveAllPasswordsForHost(const nsAString & aHost) { return _to RemoveAllPasswordsForHost(aHost); } \
  NS_IMETHOD RaiseNotification(const nsAString & aStreamUrn, const nsAString & aNotificationUrn, nsIPropertyBag *aNotificationProps) { return _to RaiseNotification(aStreamUrn, aNotificationUrn, aNotificationProps); } \
  NS_IMETHOD ExtractPasswordFromHTMLForm(nsIDOMHTMLFormElement *aForm, nsIPassword **_retval) { return _to ExtractPasswordFromHTMLForm(aForm, _retval); } \
  NS_IMETHOD DecorateDocument(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, const nsAString & aValue) { return _to DecorateDocument(aDocument, aCategory, aName, aValue); } \
  NS_IMETHOD GetDocumentDecoration(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, nsAString & _retval) { return _to GetDocumentDecoration(aDocument, aCategory, aName, _retval); } \
  NS_IMETHOD UseWebDetective(const nsAString & aDetectionFileName, flockIWebDetective **_retval) { return _to UseWebDetective(aDetectionFileName, _retval); } \
  NS_IMETHOD RemoveCookies(nsISimpleEnumerator *aCookies) { return _to RemoveCookies(aCookies); } \
  NS_IMETHOD IsPeopleSidebarOpen(PRBool *_retval) { return _to IsPeopleSidebarOpen(_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_FLOCKIACCOUNTUTILS(_to) \
  NS_IMETHOD ActivatedAccountExists(const nsAString & aServiceURN, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ActivatedAccountExists(aServiceURN, _retval); } \
  NS_IMETHOD ClearTempPassword(const nsAString & aKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearTempPassword(aKey); } \
  NS_IMETHOD EnsureOnlyAuthenticatedAccount(const nsAString & aAccountURN, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnsureOnlyAuthenticatedAccount(aAccountURN, _retval); } \
  NS_IMETHOD EnsureNoAuthenticatedAccountsBeforeLogin(const nsAString & aAccountURN, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnsureNoAuthenticatedAccountsBeforeLogin(aAccountURN, _retval); } \
  NS_IMETHOD GetAccountURNById(const nsAString & aServiceURN, const nsAString & aAccountID, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountURNById(aServiceURN, aAccountID, _retval); } \
  NS_IMETHOD GetAccountURNByLogin(const nsAString & aServiceURN, const nsAString & aLogin, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountURNByLogin(aServiceURN, aLogin, _retval); } \
  NS_IMETHOD GetAccountsForService(const nsAString & aServiceContractID, nsISimpleEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountsForService(aServiceContractID, _retval); } \
  NS_IMETHOD GetWebServicesByInterface(const nsAString & aWebServiceInterface, nsISimpleEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebServicesByInterface(aWebServiceInterface, _retval); } \
  NS_IMETHOD GetAccountsByInterface(const nsAString & aServiceInterface, nsISimpleEnumerator **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountsByInterface(aServiceInterface, _retval); } \
  NS_IMETHOD DoAccountsExist(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->DoAccountsExist(_retval); } \
  NS_IMETHOD IsTransient(const nsAString & aURN, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsTransient(aURN, _retval); } \
  NS_IMETHOD GetElementByAttribute(nsIDOMHTMLElement *aAncestorElement, const nsAString & aAttributeName, const nsAString & aAttributeValue, nsIDOMHTMLElement **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetElementByAttribute(aAncestorElement, aAttributeName, aAttributeValue, _retval); } \
  NS_IMETHOD GetServiceIDForAccountURN(const nsAString & aAccountURN, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServiceIDForAccountURN(aAccountURN, _retval); } \
  NS_IMETHOD CreateAccount(flockIWebService *aService, const nsAString & aAccountId, const nsAString & aUsername, const nsAString & aUrl, PRBool aIsTransient, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateAccount(aService, aAccountId, aUsername, aUrl, aIsTransient, _retval); } \
  NS_IMETHOD AddCustomParamsToAccount(nsIPropertyBag *aList, const nsAString & aAccountUrn) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddCustomParamsToAccount(aList, aAccountUrn); } \
  NS_IMETHOD GetAccountCustomParam(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountCustomParam(aAccountUrn, aParamName, _retval); } \
  NS_IMETHOD GetAllAccountCustomParams(const nsAString & aAccountUrn, nsIPropertyBag **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllAccountCustomParams(aAccountUrn, _retval); } \
  NS_IMETHOD SetAccountCustomParamValue(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAccountCustomParamValue(aAccountUrn, aParamName, aValue); } \
  NS_IMETHOD RemoveAccount(const nsAString & aAccountUrn) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAccount(aAccountUrn); } \
  NS_IMETHOD RemoveAllAccounts(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllAccounts(); } \
  NS_IMETHOD GetCookie(const nsAString & aHost, const nsAString & aCookieName, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCookie(aHost, aCookieName, _retval); } \
  NS_IMETHOD GetCookieValue(const nsAString & aHost, const nsAString & aName, const nsAString & aPath, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCookieValue(aHost, aName, aPath, _retval); } \
  NS_IMETHOD GetPassword(const nsAString & aKey, nsIPassword **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPassword(aKey, _retval); } \
  NS_IMETHOD GetPasswordForAnyHost(const nsAString & aDomain, nsIPassword **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPasswordForAnyHost(aDomain, _retval); } \
  NS_IMETHOD GetActiveBookmarkAccount(flockIBookmarkWebServiceAccount **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActiveBookmarkAccount(_retval); } \
  NS_IMETHOD GetFirstAuthenticatedAccountForService(const nsAString & aServiceContractID, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFirstAuthenticatedAccountForService(aServiceContractID, _retval); } \
  NS_IMETHOD GetFirstPasswordForHost(const nsAString & aHost, nsIPassword **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFirstPasswordForHost(aHost, _retval); } \
  NS_IMETHOD GetTempPassword(const nsAString & aKey, nsIPassword **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTempPassword(aKey, _retval); } \
  NS_IMETHOD MakeTempPasswordPermanent(const nsAString & aKey, nsIPassword **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeTempPasswordPermanent(aKey, _retval); } \
  NS_IMETHOD MarkAccountAsLoggedOut(const nsAString & aAccountURN) { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkAccountAsLoggedOut(aAccountURN); } \
  NS_IMETHOD MarkAllAccountsAsLoggedOut(const nsAString & aServiceContractID) { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkAllAccountsAsLoggedOut(aServiceContractID); } \
  NS_IMETHOD SetPassword(const nsAString & aHost, const nsAString & aUser, const nsAString & aPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPassword(aHost, aUser, aPassword); } \
  NS_IMETHOD SetTempPassword(const nsAString & aKey, const nsAString & aUser, const nsAString & aPassword, const nsAString & aFormType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTempPassword(aKey, aUser, aPassword, aFormType); } \
  NS_IMETHOD RemoveAllPasswordsForHost(const nsAString & aHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllPasswordsForHost(aHost); } \
  NS_IMETHOD RaiseNotification(const nsAString & aStreamUrn, const nsAString & aNotificationUrn, nsIPropertyBag *aNotificationProps) { return !_to ? NS_ERROR_NULL_POINTER : _to->RaiseNotification(aStreamUrn, aNotificationUrn, aNotificationProps); } \
  NS_IMETHOD ExtractPasswordFromHTMLForm(nsIDOMHTMLFormElement *aForm, nsIPassword **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ExtractPasswordFromHTMLForm(aForm, _retval); } \
  NS_IMETHOD DecorateDocument(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, const nsAString & aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->DecorateDocument(aDocument, aCategory, aName, aValue); } \
  NS_IMETHOD GetDocumentDecoration(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDocumentDecoration(aDocument, aCategory, aName, _retval); } \
  NS_IMETHOD UseWebDetective(const nsAString & aDetectionFileName, flockIWebDetective **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->UseWebDetective(aDetectionFileName, _retval); } \
  NS_IMETHOD RemoveCookies(nsISimpleEnumerator *aCookies) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveCookies(aCookies); } \
  NS_IMETHOD IsPeopleSidebarOpen(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsPeopleSidebarOpen(_retval); } 

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

/* Header file */
class _MYCLASS_ : public flockIAccountUtils
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIACCOUNTUTILS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* boolean activatedAccountExists (in AString aServiceURN); */
NS_IMETHODIMP _MYCLASS_::ActivatedAccountExists(const nsAString & aServiceURN, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearTempPassword (in AString aKey); */
NS_IMETHODIMP _MYCLASS_::ClearTempPassword(const nsAString & aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean ensureOnlyAuthenticatedAccount (in AString aAccountURN); */
NS_IMETHODIMP _MYCLASS_::EnsureOnlyAuthenticatedAccount(const nsAString & aAccountURN, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean ensureNoAuthenticatedAccountsBeforeLogin (in AString aAccountURN); */
NS_IMETHODIMP _MYCLASS_::EnsureNoAuthenticatedAccountsBeforeLogin(const nsAString & aAccountURN, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getAccountURNById (in AString aServiceURN, in AString aAccountID); */
NS_IMETHODIMP _MYCLASS_::GetAccountURNById(const nsAString & aServiceURN, const nsAString & aAccountID, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getAccountURNByLogin (in AString aServiceURN, in AString aLogin); */
NS_IMETHODIMP _MYCLASS_::GetAccountURNByLogin(const nsAString & aServiceURN, const nsAString & aLogin, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISimpleEnumerator getAccountsForService (in AString aServiceContractID); */
NS_IMETHODIMP _MYCLASS_::GetAccountsForService(const nsAString & aServiceContractID, nsISimpleEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISimpleEnumerator getWebServicesByInterface (in AString aWebServiceInterface); */
NS_IMETHODIMP _MYCLASS_::GetWebServicesByInterface(const nsAString & aWebServiceInterface, nsISimpleEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISimpleEnumerator getAccountsByInterface (in AString aServiceInterface); */
NS_IMETHODIMP _MYCLASS_::GetAccountsByInterface(const nsAString & aServiceInterface, nsISimpleEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean doAccountsExist (); */
NS_IMETHODIMP _MYCLASS_::DoAccountsExist(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isTransient (in AString aURN); */
NS_IMETHODIMP _MYCLASS_::IsTransient(const nsAString & aURN, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMHTMLElement getElementByAttribute (in nsIDOMHTMLElement aAncestorElement, in AString aAttributeName, in AString aAttributeValue); */
NS_IMETHODIMP _MYCLASS_::GetElementByAttribute(nsIDOMHTMLElement *aAncestorElement, const nsAString & aAttributeName, const nsAString & aAttributeValue, nsIDOMHTMLElement **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getServiceIDForAccountURN (in AString aAccountURN); */
NS_IMETHODIMP _MYCLASS_::GetServiceIDForAccountURN(const nsAString & aAccountURN, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString createAccount (in flockIWebService aService, in AString aAccountId, in AString aUsername, in AString aUrl, in boolean aIsTransient); */
NS_IMETHODIMP _MYCLASS_::CreateAccount(flockIWebService *aService, const nsAString & aAccountId, const nsAString & aUsername, const nsAString & aUrl, PRBool aIsTransient, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addCustomParamsToAccount (in nsIPropertyBag aList, in AString aAccountUrn); */
NS_IMETHODIMP _MYCLASS_::AddCustomParamsToAccount(nsIPropertyBag *aList, const nsAString & aAccountUrn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIVariant getAccountCustomParam (in AString aAccountUrn, in AString aParamName); */
NS_IMETHODIMP _MYCLASS_::GetAccountCustomParam(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPropertyBag getAllAccountCustomParams (in AString aAccountUrn); */
NS_IMETHODIMP _MYCLASS_::GetAllAccountCustomParams(const nsAString & aAccountUrn, nsIPropertyBag **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAccountCustomParamValue (in AString aAccountUrn, in AString aParamName, in nsIVariant aValue); */
NS_IMETHODIMP _MYCLASS_::SetAccountCustomParamValue(const nsAString & aAccountUrn, const nsAString & aParamName, nsIVariant *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAccount (in AString aAccountUrn); */
NS_IMETHODIMP _MYCLASS_::RemoveAccount(const nsAString & aAccountUrn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllAccounts (); */
NS_IMETHODIMP _MYCLASS_::RemoveAllAccounts()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getCookie (in AString aHost, in AString aCookieName); */
NS_IMETHODIMP _MYCLASS_::GetCookie(const nsAString & aHost, const nsAString & aCookieName, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getCookieValue (in AString aHost, in AString aName, in AString aPath); */
NS_IMETHODIMP _MYCLASS_::GetCookieValue(const nsAString & aHost, const nsAString & aName, const nsAString & aPath, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPassword getPassword (in AString aKey); */
NS_IMETHODIMP _MYCLASS_::GetPassword(const nsAString & aKey, nsIPassword **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPassword getPasswordForAnyHost (in AString aDomain); */
NS_IMETHODIMP _MYCLASS_::GetPasswordForAnyHost(const nsAString & aDomain, nsIPassword **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIBookmarkWebServiceAccount getActiveBookmarkAccount (); */
NS_IMETHODIMP _MYCLASS_::GetActiveBookmarkAccount(flockIBookmarkWebServiceAccount **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getFirstAuthenticatedAccountForService (in AString aServiceContractID); */
NS_IMETHODIMP _MYCLASS_::GetFirstAuthenticatedAccountForService(const nsAString & aServiceContractID, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPassword getFirstPasswordForHost (in AString aHost); */
NS_IMETHODIMP _MYCLASS_::GetFirstPasswordForHost(const nsAString & aHost, nsIPassword **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPassword getTempPassword (in AString aKey); */
NS_IMETHODIMP _MYCLASS_::GetTempPassword(const nsAString & aKey, nsIPassword **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPassword makeTempPasswordPermanent (in AString aKey); */
NS_IMETHODIMP _MYCLASS_::MakeTempPasswordPermanent(const nsAString & aKey, nsIPassword **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void markAccountAsLoggedOut (in AString aAccountURN); */
NS_IMETHODIMP _MYCLASS_::MarkAccountAsLoggedOut(const nsAString & aAccountURN)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void markAllAccountsAsLoggedOut (in AString aServiceContractID); */
NS_IMETHODIMP _MYCLASS_::MarkAllAccountsAsLoggedOut(const nsAString & aServiceContractID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setPassword (in AString aHost, in AString aUser, in AString aPassword); */
NS_IMETHODIMP _MYCLASS_::SetPassword(const nsAString & aHost, const nsAString & aUser, const nsAString & aPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setTempPassword (in AString aKey, in AString aUser, in AString aPassword, in AString aFormType); */
NS_IMETHODIMP _MYCLASS_::SetTempPassword(const nsAString & aKey, const nsAString & aUser, const nsAString & aPassword, const nsAString & aFormType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllPasswordsForHost (in AString aHost); */
NS_IMETHODIMP _MYCLASS_::RemoveAllPasswordsForHost(const nsAString & aHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void raiseNotification (in AString aStreamUrn, in AString aNotificationUrn, in nsIPropertyBag aNotificationProps); */
NS_IMETHODIMP _MYCLASS_::RaiseNotification(const nsAString & aStreamUrn, const nsAString & aNotificationUrn, nsIPropertyBag *aNotificationProps)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIPassword extractPasswordFromHTMLForm (in nsIDOMHTMLFormElement aForm); */
NS_IMETHODIMP _MYCLASS_::ExtractPasswordFromHTMLForm(nsIDOMHTMLFormElement *aForm, nsIPassword **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void decorateDocument (in nsIDOMHTMLDocument aDocument, in AString aCategory, in AString aName, in AString aValue); */
NS_IMETHODIMP _MYCLASS_::DecorateDocument(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, const nsAString & aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getDocumentDecoration (in nsIDOMHTMLDocument aDocument, in AString aCategory, in AString aName); */
NS_IMETHODIMP _MYCLASS_::GetDocumentDecoration(nsIDOMHTMLDocument *aDocument, const nsAString & aCategory, const nsAString & aName, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* flockIWebDetective useWebDetective (in AString aDetectionFileName); */
NS_IMETHODIMP _MYCLASS_::UseWebDetective(const nsAString & aDetectionFileName, flockIWebDetective **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeCookies (in nsISimpleEnumerator aCookies); */
NS_IMETHODIMP _MYCLASS_::RemoveCookies(nsISimpleEnumerator *aCookies)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isPeopleSidebarOpen (); */
NS_IMETHODIMP _MYCLASS_::IsPeopleSidebarOpen(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIAccountUtils_h__ */
