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

#ifndef __gen_nsIWalletService_h__
#define __gen_nsIWalletService_h__


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

#ifndef __gen_nsIAuthPrompt_h__
#include "nsIAuthPrompt.h"
#endif

#ifndef __gen_nsIEnumerator_h__
#include "nsIEnumerator.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#include "nsString.h"
// {738CFD52-ABCF-11d2-AB4B-0080C787AD96}
#define NS_WALLETSERVICE_CID \
{ 0x738cfd52, 0xabcf, 0x11d2, { 0xab, 0x4b, 0x0, 0x80, 0xc7, 0x87, 0xad, 0x96 } }
#define NS_WALLETSERVICE_CONTRACTID		"@mozilla.org/wallet/wallet-service;1"
#define NS_WALLETSERVICE_CLASSNAME	"Auto Form Fill and Wallet"
class nsIPresShell; /* forward declaration */

class nsIDOMNode; /* forward declaration */

class nsIDOMWindowInternal; /* forward declaration */

class nsIPrompt; /* forward declaration */


/* starting interface:    nsIWalletService */
#define NS_IWALLETSERVICE_IID_STR "738cfd51-abcf-11d2-ab4b-0080c787ad96"

#define NS_IWALLETSERVICE_IID \
  {0x738cfd51, 0xabcf, 0x11d2, \
    { 0xab, 0x4b, 0x00, 0x80, 0xc7, 0x87, 0xad, 0x96 }}

/**
 * The nsIWalletService interface provides an API to the wallet service.
 * This is a preliminary interface which <B>will</B> change over time!
 *
 */
class NS_NO_VTABLE nsIWalletService : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IWALLETSERVICE_IID)

  /* [noscript] void WALLET_PreEdit (in nsAutoStringRef walletList); */
  NS_IMETHOD WALLET_PreEdit(nsAutoString & walletList) = 0;

  /* [noscript] void WALLET_PostEdit (in nsAutoString walletList); */
  NS_IMETHOD WALLET_PostEdit(nsAutoString walletList) = 0;

  /* boolean WALLET_ChangePassword (); */
  NS_IMETHOD WALLET_ChangePassword(PRBool *_retval) = 0;

  /* void WALLET_DeleteAll (); */
  NS_IMETHOD WALLET_DeleteAll(void) = 0;

  /* unsigned long WALLET_RequestToCapture (in nsIDOMWindowInternal win); */
  NS_IMETHOD WALLET_RequestToCapture(nsIDOMWindowInternal *win, PRUint32 *_retval) = 0;

  /* boolean WALLET_Prefill (in boolean quick, in nsIDOMWindowInternal win); */
  NS_IMETHOD WALLET_Prefill(PRBool quick, nsIDOMWindowInternal *win, PRBool *_retval) = 0;

  /* wstring WALLET_PrefillOneElement (in nsIDOMWindowInternal win, in nsIDOMNode elementNode); */
  NS_IMETHOD WALLET_PrefillOneElement(nsIDOMWindowInternal *win, nsIDOMNode *elementNode, PRUnichar **_retval) = 0;

  /* [noscript] void WALLET_PrefillReturn (in nsAutoString results); */
  NS_IMETHOD WALLET_PrefillReturn(nsAutoString results) = 0;

  /* void WALLET_FetchFromNetCenter (); */
  NS_IMETHOD WALLET_FetchFromNetCenter(void) = 0;

  /* boolean WALLET_ExpirePassword (); */
  NS_IMETHOD WALLET_ExpirePassword(PRBool *_retval) = 0;

  /* void WALLET_InitReencryptCallback (in nsIDOMWindowInternal win); */
  NS_IMETHOD WALLET_InitReencryptCallback(nsIDOMWindowInternal *win) = 0;

  /* void SI_RemoveUser (in string key, in wstring userName); */
  NS_IMETHOD SI_RemoveUser(const char *key, const PRUnichar *userName) = 0;

  /* void SI_StorePassword (in string key, in wstring userName, in wstring pwd); */
  NS_IMETHOD SI_StorePassword(const char *key, const PRUnichar *userName, const PRUnichar *pwd) = 0;

  /* boolean haveData (in nsIPrompt dialog, in string key, in wstring userName); */
  NS_IMETHOD HaveData(nsIPrompt *dialog, const char *key, const PRUnichar *userName, PRBool *_retval) = 0;

  /* [noscript] void WALLET_GetNopreviewListForViewer (in nsAutoStringRef aNopreviewList); */
  NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAutoString & aNopreviewList) = 0;

  /* [noscript] void WALLET_GetNocaptureListForViewer (in nsAutoStringRef aNocaptureList); */
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAutoString & aNocaptureList) = 0;

  /* [noscript] void WALLET_GetPrefillListForViewer (in nsAutoStringRef aPrefillList); */
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAutoString & aPrefillList) = 0;

  /* [noscript] void SI_SignonViewerReturn (in nsAutoString results); */
  NS_IMETHOD SI_SignonViewerReturn(nsAutoString results) = 0;

  /* string WALLET_Encrypt (in wstring text); */
  NS_IMETHOD WALLET_Encrypt(const PRUnichar *text, char **_retval) = 0;

  /* wstring WALLET_Decrypt (in string crypt); */
  NS_IMETHOD WALLET_Decrypt(const char *crypt, PRUnichar **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWALLETSERVICE \
  NS_IMETHOD WALLET_PreEdit(nsAutoString & walletList); \
  NS_IMETHOD WALLET_PostEdit(nsAutoString walletList); \
  NS_IMETHOD WALLET_ChangePassword(PRBool *_retval); \
  NS_IMETHOD WALLET_DeleteAll(void); \
  NS_IMETHOD WALLET_RequestToCapture(nsIDOMWindowInternal *win, PRUint32 *_retval); \
  NS_IMETHOD WALLET_Prefill(PRBool quick, nsIDOMWindowInternal *win, PRBool *_retval); \
  NS_IMETHOD WALLET_PrefillOneElement(nsIDOMWindowInternal *win, nsIDOMNode *elementNode, PRUnichar **_retval); \
  NS_IMETHOD WALLET_PrefillReturn(nsAutoString results); \
  NS_IMETHOD WALLET_FetchFromNetCenter(void); \
  NS_IMETHOD WALLET_ExpirePassword(PRBool *_retval); \
  NS_IMETHOD WALLET_InitReencryptCallback(nsIDOMWindowInternal *win); \
  NS_IMETHOD SI_RemoveUser(const char *key, const PRUnichar *userName); \
  NS_IMETHOD SI_StorePassword(const char *key, const PRUnichar *userName, const PRUnichar *pwd); \
  NS_IMETHOD HaveData(nsIPrompt *dialog, const char *key, const PRUnichar *userName, PRBool *_retval); \
  NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAutoString & aNopreviewList); \
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAutoString & aNocaptureList); \
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAutoString & aPrefillList); \
  NS_IMETHOD SI_SignonViewerReturn(nsAutoString results); \
  NS_IMETHOD WALLET_Encrypt(const PRUnichar *text, char **_retval); \
  NS_IMETHOD WALLET_Decrypt(const char *crypt, PRUnichar **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWALLETSERVICE(_to) \
  NS_IMETHOD WALLET_PreEdit(nsAutoString & walletList) { return _to WALLET_PreEdit(walletList); } \
  NS_IMETHOD WALLET_PostEdit(nsAutoString walletList) { return _to WALLET_PostEdit(walletList); } \
  NS_IMETHOD WALLET_ChangePassword(PRBool *_retval) { return _to WALLET_ChangePassword(_retval); } \
  NS_IMETHOD WALLET_DeleteAll(void) { return _to WALLET_DeleteAll(); } \
  NS_IMETHOD WALLET_RequestToCapture(nsIDOMWindowInternal *win, PRUint32 *_retval) { return _to WALLET_RequestToCapture(win, _retval); } \
  NS_IMETHOD WALLET_Prefill(PRBool quick, nsIDOMWindowInternal *win, PRBool *_retval) { return _to WALLET_Prefill(quick, win, _retval); } \
  NS_IMETHOD WALLET_PrefillOneElement(nsIDOMWindowInternal *win, nsIDOMNode *elementNode, PRUnichar **_retval) { return _to WALLET_PrefillOneElement(win, elementNode, _retval); } \
  NS_IMETHOD WALLET_PrefillReturn(nsAutoString results) { return _to WALLET_PrefillReturn(results); } \
  NS_IMETHOD WALLET_FetchFromNetCenter(void) { return _to WALLET_FetchFromNetCenter(); } \
  NS_IMETHOD WALLET_ExpirePassword(PRBool *_retval) { return _to WALLET_ExpirePassword(_retval); } \
  NS_IMETHOD WALLET_InitReencryptCallback(nsIDOMWindowInternal *win) { return _to WALLET_InitReencryptCallback(win); } \
  NS_IMETHOD SI_RemoveUser(const char *key, const PRUnichar *userName) { return _to SI_RemoveUser(key, userName); } \
  NS_IMETHOD SI_StorePassword(const char *key, const PRUnichar *userName, const PRUnichar *pwd) { return _to SI_StorePassword(key, userName, pwd); } \
  NS_IMETHOD HaveData(nsIPrompt *dialog, const char *key, const PRUnichar *userName, PRBool *_retval) { return _to HaveData(dialog, key, userName, _retval); } \
  NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAutoString & aNopreviewList) { return _to WALLET_GetNopreviewListForViewer(aNopreviewList); } \
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAutoString & aNocaptureList) { return _to WALLET_GetNocaptureListForViewer(aNocaptureList); } \
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAutoString & aPrefillList) { return _to WALLET_GetPrefillListForViewer(aPrefillList); } \
  NS_IMETHOD SI_SignonViewerReturn(nsAutoString results) { return _to SI_SignonViewerReturn(results); } \
  NS_IMETHOD WALLET_Encrypt(const PRUnichar *text, char **_retval) { return _to WALLET_Encrypt(text, _retval); } \
  NS_IMETHOD WALLET_Decrypt(const char *crypt, PRUnichar **_retval) { return _to WALLET_Decrypt(crypt, _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_NSIWALLETSERVICE(_to) \
  NS_IMETHOD WALLET_PreEdit(nsAutoString & walletList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_PreEdit(walletList); } \
  NS_IMETHOD WALLET_PostEdit(nsAutoString walletList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_PostEdit(walletList); } \
  NS_IMETHOD WALLET_ChangePassword(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_ChangePassword(_retval); } \
  NS_IMETHOD WALLET_DeleteAll(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_DeleteAll(); } \
  NS_IMETHOD WALLET_RequestToCapture(nsIDOMWindowInternal *win, PRUint32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_RequestToCapture(win, _retval); } \
  NS_IMETHOD WALLET_Prefill(PRBool quick, nsIDOMWindowInternal *win, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_Prefill(quick, win, _retval); } \
  NS_IMETHOD WALLET_PrefillOneElement(nsIDOMWindowInternal *win, nsIDOMNode *elementNode, PRUnichar **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_PrefillOneElement(win, elementNode, _retval); } \
  NS_IMETHOD WALLET_PrefillReturn(nsAutoString results) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_PrefillReturn(results); } \
  NS_IMETHOD WALLET_FetchFromNetCenter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_FetchFromNetCenter(); } \
  NS_IMETHOD WALLET_ExpirePassword(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_ExpirePassword(_retval); } \
  NS_IMETHOD WALLET_InitReencryptCallback(nsIDOMWindowInternal *win) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_InitReencryptCallback(win); } \
  NS_IMETHOD SI_RemoveUser(const char *key, const PRUnichar *userName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SI_RemoveUser(key, userName); } \
  NS_IMETHOD SI_StorePassword(const char *key, const PRUnichar *userName, const PRUnichar *pwd) { return !_to ? NS_ERROR_NULL_POINTER : _to->SI_StorePassword(key, userName, pwd); } \
  NS_IMETHOD HaveData(nsIPrompt *dialog, const char *key, const PRUnichar *userName, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HaveData(dialog, key, userName, _retval); } \
  NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAutoString & aNopreviewList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_GetNopreviewListForViewer(aNopreviewList); } \
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAutoString & aNocaptureList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_GetNocaptureListForViewer(aNocaptureList); } \
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAutoString & aPrefillList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_GetPrefillListForViewer(aPrefillList); } \
  NS_IMETHOD SI_SignonViewerReturn(nsAutoString results) { return !_to ? NS_ERROR_NULL_POINTER : _to->SI_SignonViewerReturn(results); } \
  NS_IMETHOD WALLET_Encrypt(const PRUnichar *text, char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_Encrypt(text, _retval); } \
  NS_IMETHOD WALLET_Decrypt(const char *crypt, PRUnichar **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_Decrypt(crypt, _retval); } 

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

/* Header file */
class nsWalletService : public nsIWalletService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWALLETSERVICE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWalletService, nsIWalletService)

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

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

/* [noscript] void WALLET_PreEdit (in nsAutoStringRef walletList); */
NS_IMETHODIMP nsWalletService::WALLET_PreEdit(nsAutoString & walletList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void WALLET_PostEdit (in nsAutoString walletList); */
NS_IMETHODIMP nsWalletService::WALLET_PostEdit(nsAutoString walletList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean WALLET_ChangePassword (); */
NS_IMETHODIMP nsWalletService::WALLET_ChangePassword(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void WALLET_DeleteAll (); */
NS_IMETHODIMP nsWalletService::WALLET_DeleteAll()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long WALLET_RequestToCapture (in nsIDOMWindowInternal win); */
NS_IMETHODIMP nsWalletService::WALLET_RequestToCapture(nsIDOMWindowInternal *win, PRUint32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean WALLET_Prefill (in boolean quick, in nsIDOMWindowInternal win); */
NS_IMETHODIMP nsWalletService::WALLET_Prefill(PRBool quick, nsIDOMWindowInternal *win, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring WALLET_PrefillOneElement (in nsIDOMWindowInternal win, in nsIDOMNode elementNode); */
NS_IMETHODIMP nsWalletService::WALLET_PrefillOneElement(nsIDOMWindowInternal *win, nsIDOMNode *elementNode, PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void WALLET_PrefillReturn (in nsAutoString results); */
NS_IMETHODIMP nsWalletService::WALLET_PrefillReturn(nsAutoString results)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void WALLET_FetchFromNetCenter (); */
NS_IMETHODIMP nsWalletService::WALLET_FetchFromNetCenter()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean WALLET_ExpirePassword (); */
NS_IMETHODIMP nsWalletService::WALLET_ExpirePassword(PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void WALLET_InitReencryptCallback (in nsIDOMWindowInternal win); */
NS_IMETHODIMP nsWalletService::WALLET_InitReencryptCallback(nsIDOMWindowInternal *win)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SI_RemoveUser (in string key, in wstring userName); */
NS_IMETHODIMP nsWalletService::SI_RemoveUser(const char *key, const PRUnichar *userName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SI_StorePassword (in string key, in wstring userName, in wstring pwd); */
NS_IMETHODIMP nsWalletService::SI_StorePassword(const char *key, const PRUnichar *userName, const PRUnichar *pwd)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean haveData (in nsIPrompt dialog, in string key, in wstring userName); */
NS_IMETHODIMP nsWalletService::HaveData(nsIPrompt *dialog, const char *key, const PRUnichar *userName, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void WALLET_GetNopreviewListForViewer (in nsAutoStringRef aNopreviewList); */
NS_IMETHODIMP nsWalletService::WALLET_GetNopreviewListForViewer(nsAutoString & aNopreviewList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void WALLET_GetNocaptureListForViewer (in nsAutoStringRef aNocaptureList); */
NS_IMETHODIMP nsWalletService::WALLET_GetNocaptureListForViewer(nsAutoString & aNocaptureList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void WALLET_GetPrefillListForViewer (in nsAutoStringRef aPrefillList); */
NS_IMETHODIMP nsWalletService::WALLET_GetPrefillListForViewer(nsAutoString & aPrefillList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void SI_SignonViewerReturn (in nsAutoString results); */
NS_IMETHODIMP nsWalletService::SI_SignonViewerReturn(nsAutoString results)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string WALLET_Encrypt (in wstring text); */
NS_IMETHODIMP nsWalletService::WALLET_Encrypt(const PRUnichar *text, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring WALLET_Decrypt (in string crypt); */
NS_IMETHODIMP nsWalletService::WALLET_Decrypt(const char *crypt, PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

#define NS_SINGLESIGNONPROMPT_CID                    \
{ /* 64997e60-17fe-11d4-8cee-0060b0fc14a3 */         \
    0x64997e60,                                      \
    0x17fe,                                          \
    0x11d4,                                          \
    {0x8c, 0xee, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3} \
}
#define NS_SINGLESIGNONPROMPT_CLASSNAME "Single Sign-On Prompt"
#define NS_SINGLESIGNONPROMPT_CONTRACTID    "@mozilla.org/wallet/single-sign-on-prompt;1"

#endif /* __gen_nsIWalletService_h__ */
