/*
 * 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

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
// {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 nsIDOMNode; /* forward declaration */

class nsIDOMWindowInternal; /* forward declaration */

class nsIPrompt; /* forward declaration */


/* starting interface:    nsIWalletService */
#define NS_IWALLETSERVICE_IID_STR "fedbf066-9c29-4307-86b1-2c0f69717fc5"

#define NS_IWALLETSERVICE_IID \
  {0xfedbf066, 0x9c29, 0x4307, \
    { 0x86, 0xb1, 0x2c, 0x0f, 0x69, 0x71, 0x7f, 0xc5 }}

/**
 * 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)

  /* void WALLET_PreEdit (out AString walletList); */
  NS_IMETHOD WALLET_PreEdit(nsAString & walletList) = 0;

  /* void WALLET_PostEdit (in AString walletList); */
  NS_IMETHOD WALLET_PostEdit(const nsAString & 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;

  /* void WALLET_PrefillReturn (in AString results); */
  NS_IMETHOD WALLET_PrefillReturn(const nsAString & results) = 0;

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

  /* void WALLET_InitReencryptCallback (in nsIDOMWindowInternal win); */
  NS_IMETHOD WALLET_InitReencryptCallback(nsIDOMWindowInternal *win) = 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;

  /* void WALLET_GetNopreviewListForViewer (out AString aNopreviewList); */
  NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAString & aNopreviewList) = 0;

  /* void WALLET_GetNocaptureListForViewer (out AString aNocaptureList); */
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAString & aNocaptureList) = 0;

  /* void WALLET_GetPrefillListForViewer (out AString aPrefillList); */
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAString & aPrefillList) = 0;

  /* void SI_SignonViewerReturn (in AString results); */
  NS_IMETHOD SI_SignonViewerReturn(const nsAString & 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(nsAString & walletList); \
  NS_IMETHOD WALLET_PostEdit(const nsAString & 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(const nsAString & results); \
  NS_IMETHOD WALLET_ExpirePassword(PRBool *_retval); \
  NS_IMETHOD WALLET_InitReencryptCallback(nsIDOMWindowInternal *win); \
  NS_IMETHOD HaveData(nsIPrompt *dialog, const char *key, const PRUnichar *userName, PRBool *_retval); \
  NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAString & aNopreviewList); \
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAString & aNocaptureList); \
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAString & aPrefillList); \
  NS_IMETHOD SI_SignonViewerReturn(const nsAString & 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(nsAString & walletList) { return _to WALLET_PreEdit(walletList); } \
  NS_IMETHOD WALLET_PostEdit(const nsAString & 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(const nsAString & results) { return _to WALLET_PrefillReturn(results); } \
  NS_IMETHOD WALLET_ExpirePassword(PRBool *_retval) { return _to WALLET_ExpirePassword(_retval); } \
  NS_IMETHOD WALLET_InitReencryptCallback(nsIDOMWindowInternal *win) { return _to WALLET_InitReencryptCallback(win); } \
  NS_IMETHOD HaveData(nsIPrompt *dialog, const char *key, const PRUnichar *userName, PRBool *_retval) { return _to HaveData(dialog, key, userName, _retval); } \
  NS_IMETHOD WALLET_GetNopreviewListForViewer(nsAString & aNopreviewList) { return _to WALLET_GetNopreviewListForViewer(aNopreviewList); } \
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAString & aNocaptureList) { return _to WALLET_GetNocaptureListForViewer(aNocaptureList); } \
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAString & aPrefillList) { return _to WALLET_GetPrefillListForViewer(aPrefillList); } \
  NS_IMETHOD SI_SignonViewerReturn(const nsAString & 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(nsAString & walletList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_PreEdit(walletList); } \
  NS_IMETHOD WALLET_PostEdit(const nsAString & 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(const nsAString & results) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_PrefillReturn(results); } \
  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 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(nsAString & aNopreviewList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_GetNopreviewListForViewer(aNopreviewList); } \
  NS_IMETHOD WALLET_GetNocaptureListForViewer(nsAString & aNocaptureList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_GetNocaptureListForViewer(aNocaptureList); } \
  NS_IMETHOD WALLET_GetPrefillListForViewer(nsAString & aPrefillList) { return !_to ? NS_ERROR_NULL_POINTER : _to->WALLET_GetPrefillListForViewer(aPrefillList); } \
  NS_IMETHOD SI_SignonViewerReturn(const nsAString & 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();

private:
  ~nsWalletService();

protected:
  /* additional members */
};

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

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

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

/* void WALLET_PreEdit (out AString walletList); */
NS_IMETHODIMP nsWalletService::WALLET_PreEdit(nsAString & walletList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void WALLET_PostEdit (in AString walletList); */
NS_IMETHODIMP nsWalletService::WALLET_PostEdit(const nsAString & 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;
}

/* void WALLET_PrefillReturn (in AString results); */
NS_IMETHODIMP nsWalletService::WALLET_PrefillReturn(const nsAString & results)
{
    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;
}

/* 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;
}

/* void WALLET_GetNopreviewListForViewer (out AString aNopreviewList); */
NS_IMETHODIMP nsWalletService::WALLET_GetNopreviewListForViewer(nsAString & aNopreviewList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void WALLET_GetNocaptureListForViewer (out AString aNocaptureList); */
NS_IMETHODIMP nsWalletService::WALLET_GetNocaptureListForViewer(nsAString & aNocaptureList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void WALLET_GetPrefillListForViewer (out AString aPrefillList); */
NS_IMETHODIMP nsWalletService::WALLET_GetPrefillListForViewer(nsAString & aPrefillList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SI_SignonViewerReturn (in AString results); */
NS_IMETHODIMP nsWalletService::SI_SignonViewerReturn(const nsAString & 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__ */
