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

#ifndef __gen_nsIPassword_h__
#define __gen_nsIPassword_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.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:    nsIPassword */
#define NS_IPASSWORD_IID_STR "cf39c2b0-1e4b-11d5-a549-0010a401eb10"

#define NS_IPASSWORD_IID \
  {0xcf39c2b0, 0x1e4b, 0x11d5, \
    { 0xa5, 0x49, 0x00, 0x10, 0xa4, 0x01, 0xeb, 0x10 }}

/**
  This interface represents a password object.
*/
class NS_NO_VTABLE nsIPassword : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IPASSWORD_IID)

  /* readonly attribute string host; */
  NS_IMETHOD GetHost(char * *aHost) = 0;

  /* readonly attribute wstring user; */
  NS_IMETHOD GetUser(PRUnichar * *aUser) = 0;

  /* readonly attribute wstring password; */
  NS_IMETHOD GetPassword(PRUnichar * *aPassword) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPASSWORD \
  NS_IMETHOD GetHost(char * *aHost); \
  NS_IMETHOD GetUser(PRUnichar * *aUser); \
  NS_IMETHOD GetPassword(PRUnichar * *aPassword); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPASSWORD(_to) \
  NS_IMETHOD GetHost(char * *aHost) { return _to GetHost(aHost); } \
  NS_IMETHOD GetUser(PRUnichar * *aUser) { return _to GetUser(aUser); } \
  NS_IMETHOD GetPassword(PRUnichar * *aPassword) { return _to GetPassword(aPassword); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPASSWORD(_to) \
  NS_IMETHOD GetHost(char * *aHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHost(aHost); } \
  NS_IMETHOD GetUser(PRUnichar * *aUser) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUser(aUser); } \
  NS_IMETHOD GetPassword(PRUnichar * *aPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPassword(aPassword); } 

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

/* Header file */
class nsPassword : public nsIPassword
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPASSWORD

  nsPassword();
  virtual ~nsPassword();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsPassword, nsIPassword)

nsPassword::nsPassword()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* readonly attribute string host; */
NS_IMETHODIMP nsPassword::GetHost(char * *aHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring user; */
NS_IMETHODIMP nsPassword::GetUser(PRUnichar * *aUser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring password; */
NS_IMETHODIMP nsPassword::GetPassword(PRUnichar * *aPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

// {CF39C2B0-1E4B-11d5-A549-0010A401EB10}
#define NS_PASSWORD_CID \
{ 0xcf39c2b0, 0x1e4b, 0x11d5, { 0xa5, 0x49, 0x0, 0x10, 0xa4, 0x1, 0xeb, 0x10 } }
#define NS_PASSWORD_CONTRACTID "@mozilla.org/password;1"

#endif /* __gen_nsIPassword_h__ */
