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

#ifndef __gen_nsINSSDialogs_h__
#define __gen_nsINSSDialogs_h__


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

#ifndef __gen_nsIX509Cert_h__
#include "nsIX509Cert.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIInterfaceRequestor; /* forward declaration */


/* starting interface:    nsITokenPasswordDialogs */
#define NS_ITOKENPASSWORDDIALOGS_IID_STR "be26b580-1dd1-11b2-9946-c598d0d07727"

#define NS_ITOKENPASSWORDDIALOGS_IID \
  {0xbe26b580, 0x1dd1, 0x11b2, \
    { 0x99, 0x46, 0xc5, 0x98, 0xd0, 0xd0, 0x77, 0x27 }}

/**
 * nsITokenPasswordDialogs
 *  This is the interface for setting and changing password
 *  on a PKCS11 token.
 */
class NS_NO_VTABLE nsITokenPasswordDialogs : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ITOKENPASSWORDDIALOGS_IID)

  /**
   * setPassword - sets the password/PIN on the named token.
   *   The canceled output value should be set to TRUE when
   *   the user (or implementation) cancels the operation.
   */
  /* void setPassword (in nsIInterfaceRequestor ctx, in wstring tokenName, out boolean canceled); */
  NS_IMETHOD SetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRBool *canceled) = 0;

  /* void getPassword (in nsIInterfaceRequestor ctx, in wstring tokenName, out wstring password, out boolean canceled); */
  NS_IMETHOD GetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRUnichar **password, PRBool *canceled) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSITOKENPASSWORDDIALOGS \
  NS_IMETHOD SetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRBool *canceled); \
  NS_IMETHOD GetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRUnichar **password, PRBool *canceled); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSITOKENPASSWORDDIALOGS(_to) \
  NS_IMETHOD SetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRBool *canceled) { return _to ## SetPassword(ctx, tokenName, canceled); } \
  NS_IMETHOD GetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRUnichar **password, PRBool *canceled) { return _to ## GetPassword(ctx, tokenName, password, canceled); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSITOKENPASSWORDDIALOGS(_to) \
  NS_IMETHOD SetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRBool *canceled) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetPassword(ctx, tokenName, canceled); } \
  NS_IMETHOD GetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRUnichar **password, PRBool *canceled) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetPassword(ctx, tokenName, password, canceled); } 

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

/* Header file */
class nsTokenPasswordDialogs : public nsITokenPasswordDialogs
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSITOKENPASSWORDDIALOGS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsTokenPasswordDialogs, nsITokenPasswordDialogs)

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

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

/* void setPassword (in nsIInterfaceRequestor ctx, in wstring tokenName, out boolean canceled); */
NS_IMETHODIMP nsTokenPasswordDialogs::SetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRBool *canceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPassword (in nsIInterfaceRequestor ctx, in wstring tokenName, out wstring password, out boolean canceled); */
NS_IMETHODIMP nsTokenPasswordDialogs::GetPassword(nsIInterfaceRequestor *ctx, const PRUnichar *tokenName, PRUnichar **password, PRBool *canceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsINSSDialogs */
#define NS_INSSDIALOGS_IID_STR "4a8c5584-1dd2-11b2-bfff-f232dbfab27e"

#define NS_INSSDIALOGS_IID \
  {0x4a8c5584, 0x1dd2, 0x11b2, \
    { 0xbf, 0xff, 0xf2, 0x32, 0xdb, 0xfa, 0xb2, 0x7e }}

/**
 * nsINSSDialogs - a collection of functions that
 *   implement activities that may require interaction
 *   with the user.
 */
class NS_NO_VTABLE nsINSSDialogs : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_INSSDIALOGS_IID)

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINSSDIALOGS \
  /* no methods! */

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINSSDIALOGS(_to) \
  /* no methods! */

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSINSSDIALOGS(_to) \
  /* no methods! */

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

/* Header file */
class nsNSSDialogs : public nsINSSDialogs
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSINSSDIALOGS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsNSSDialogs, nsINSSDialogs)

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

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

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


/* starting interface:    nsISecurityWarningDialogs */
#define NS_ISECURITYWARNINGDIALOGS_IID_STR "1c399d06-1dd2-11b2-bc58-c87cbcacdb78"

#define NS_ISECURITYWARNINGDIALOGS_IID \
  {0x1c399d06, 0x1dd2, 0x11b2, \
    { 0xbc, 0x58, 0xc8, 0x7c, 0xbc, 0xac, 0xdb, 0x78 }}

/**
   * This is the base class for NSSDialogs.  It must support all
   * the interfaces for dialogs that it wants to support.
   * 
   * nsITokenPasswordDialogs is one such implementation.
   */
/**
 * nsISecurityWarningDialogs - functions that
 *   display warnings for transitions between secure
 *   and insecure pages, posts to insecure servers etc.
 */
class NS_NO_VTABLE nsISecurityWarningDialogs : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISECURITYWARNINGDIALOGS_IID)

  /**
   * alertEnteringSecure
   */
  /* void alertEnteringSecure (in nsIInterfaceRequestor ctx); */
  NS_IMETHOD AlertEnteringSecure(nsIInterfaceRequestor *ctx) = 0;

  /**
   * alertEnteringWeak
   */
  /* void alertEnteringWeak (in nsIInterfaceRequestor ctx); */
  NS_IMETHOD AlertEnteringWeak(nsIInterfaceRequestor *ctx) = 0;

  /**
   * alertLeavingSecure
   */
  /* void alertLeavingSecure (in nsIInterfaceRequestor ctx); */
  NS_IMETHOD AlertLeavingSecure(nsIInterfaceRequestor *ctx) = 0;

  /**
   * alertMixedMode
   */
  /* void alertMixedMode (in nsIInterfaceRequestor ctx); */
  NS_IMETHOD AlertMixedMode(nsIInterfaceRequestor *ctx) = 0;

  /**
   * confirmPostToInsecure
   */
  /* boolean confirmPostToInsecure (in nsIInterfaceRequestor ctx); */
  NS_IMETHOD ConfirmPostToInsecure(nsIInterfaceRequestor *ctx, PRBool *_retval) = 0;

  /**
   * confirmPostToInsecureFromSecure
   */
  /* boolean confirmPostToInsecureFromSecure (in nsIInterfaceRequestor ctx); */
  NS_IMETHOD ConfirmPostToInsecureFromSecure(nsIInterfaceRequestor *ctx, PRBool *_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISECURITYWARNINGDIALOGS \
  NS_IMETHOD AlertEnteringSecure(nsIInterfaceRequestor *ctx); \
  NS_IMETHOD AlertEnteringWeak(nsIInterfaceRequestor *ctx); \
  NS_IMETHOD AlertLeavingSecure(nsIInterfaceRequestor *ctx); \
  NS_IMETHOD AlertMixedMode(nsIInterfaceRequestor *ctx); \
  NS_IMETHOD ConfirmPostToInsecure(nsIInterfaceRequestor *ctx, PRBool *_retval); \
  NS_IMETHOD ConfirmPostToInsecureFromSecure(nsIInterfaceRequestor *ctx, PRBool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISECURITYWARNINGDIALOGS(_to) \
  NS_IMETHOD AlertEnteringSecure(nsIInterfaceRequestor *ctx) { return _to ## AlertEnteringSecure(ctx); } \
  NS_IMETHOD AlertEnteringWeak(nsIInterfaceRequestor *ctx) { return _to ## AlertEnteringWeak(ctx); } \
  NS_IMETHOD AlertLeavingSecure(nsIInterfaceRequestor *ctx) { return _to ## AlertLeavingSecure(ctx); } \
  NS_IMETHOD AlertMixedMode(nsIInterfaceRequestor *ctx) { return _to ## AlertMixedMode(ctx); } \
  NS_IMETHOD ConfirmPostToInsecure(nsIInterfaceRequestor *ctx, PRBool *_retval) { return _to ## ConfirmPostToInsecure(ctx, _retval); } \
  NS_IMETHOD ConfirmPostToInsecureFromSecure(nsIInterfaceRequestor *ctx, PRBool *_retval) { return _to ## ConfirmPostToInsecureFromSecure(ctx, _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_NSISECURITYWARNINGDIALOGS(_to) \
  NS_IMETHOD AlertEnteringSecure(nsIInterfaceRequestor *ctx) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AlertEnteringSecure(ctx); } \
  NS_IMETHOD AlertEnteringWeak(nsIInterfaceRequestor *ctx) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AlertEnteringWeak(ctx); } \
  NS_IMETHOD AlertLeavingSecure(nsIInterfaceRequestor *ctx) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AlertLeavingSecure(ctx); } \
  NS_IMETHOD AlertMixedMode(nsIInterfaceRequestor *ctx) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AlertMixedMode(ctx); } \
  NS_IMETHOD ConfirmPostToInsecure(nsIInterfaceRequestor *ctx, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ConfirmPostToInsecure(ctx, _retval); } \
  NS_IMETHOD ConfirmPostToInsecureFromSecure(nsIInterfaceRequestor *ctx, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ConfirmPostToInsecureFromSecure(ctx, _retval); } 

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

/* Header file */
class nsSecurityWarningDialogs : public nsISecurityWarningDialogs
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSISECURITYWARNINGDIALOGS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsSecurityWarningDialogs, nsISecurityWarningDialogs)

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

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

/* void alertEnteringSecure (in nsIInterfaceRequestor ctx); */
NS_IMETHODIMP nsSecurityWarningDialogs::AlertEnteringSecure(nsIInterfaceRequestor *ctx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void alertEnteringWeak (in nsIInterfaceRequestor ctx); */
NS_IMETHODIMP nsSecurityWarningDialogs::AlertEnteringWeak(nsIInterfaceRequestor *ctx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void alertLeavingSecure (in nsIInterfaceRequestor ctx); */
NS_IMETHODIMP nsSecurityWarningDialogs::AlertLeavingSecure(nsIInterfaceRequestor *ctx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void alertMixedMode (in nsIInterfaceRequestor ctx); */
NS_IMETHODIMP nsSecurityWarningDialogs::AlertMixedMode(nsIInterfaceRequestor *ctx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean confirmPostToInsecure (in nsIInterfaceRequestor ctx); */
NS_IMETHODIMP nsSecurityWarningDialogs::ConfirmPostToInsecure(nsIInterfaceRequestor *ctx, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean confirmPostToInsecureFromSecure (in nsIInterfaceRequestor ctx); */
NS_IMETHODIMP nsSecurityWarningDialogs::ConfirmPostToInsecureFromSecure(nsIInterfaceRequestor *ctx, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsICertificateDialogs */
#define NS_ICERTIFICATEDIALOGS_IID_STR "a03ca940-09be-11d5-ac5d-000064657374"

#define NS_ICERTIFICATEDIALOGS_IID \
  {0xa03ca940, 0x09be, 0x11d5, \
    { 0xac, 0x5d, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}

/**
 * nsICertificateDialogs
 * Provides UI for certificate-related dialogs.
 */
class NS_NO_VTABLE nsICertificateDialogs : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ICERTIFICATEDIALOGS_IID)

  /**
   * downloadCACert
   *   UI shown when a user is asked to download a new CA cert.  Provides
   *   user with ability to choose trust settings for the cert.
   */
  /* void downloadCACert (in nsIInterfaceRequestor ctx, in nsIX509Cert cert, out unsigned long trust, out boolean canceled); */
  NS_IMETHOD DownloadCACert(nsIInterfaceRequestor *ctx, nsIX509Cert *cert, PRUint32 *trust, PRBool *canceled) = 0;

  /* void setPKCS12FilePassword (in nsIInterfaceRequestor ctx, out wstring password, out boolean canceled); */
  NS_IMETHOD SetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled) = 0;

  /* void getPKCS12FilePassword (in nsIInterfaceRequestor ctx, out wstring password, out boolean canceled); */
  NS_IMETHOD GetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled) = 0;

  /* void viewCert (in nsIX509Cert cert); */
  NS_IMETHOD ViewCert(nsIX509Cert *cert) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICERTIFICATEDIALOGS \
  NS_IMETHOD DownloadCACert(nsIInterfaceRequestor *ctx, nsIX509Cert *cert, PRUint32 *trust, PRBool *canceled); \
  NS_IMETHOD SetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled); \
  NS_IMETHOD GetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled); \
  NS_IMETHOD ViewCert(nsIX509Cert *cert); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICERTIFICATEDIALOGS(_to) \
  NS_IMETHOD DownloadCACert(nsIInterfaceRequestor *ctx, nsIX509Cert *cert, PRUint32 *trust, PRBool *canceled) { return _to ## DownloadCACert(ctx, cert, trust, canceled); } \
  NS_IMETHOD SetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled) { return _to ## SetPKCS12FilePassword(ctx, password, canceled); } \
  NS_IMETHOD GetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled) { return _to ## GetPKCS12FilePassword(ctx, password, canceled); } \
  NS_IMETHOD ViewCert(nsIX509Cert *cert) { return _to ## ViewCert(cert); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSICERTIFICATEDIALOGS(_to) \
  NS_IMETHOD DownloadCACert(nsIInterfaceRequestor *ctx, nsIX509Cert *cert, PRUint32 *trust, PRBool *canceled) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> DownloadCACert(ctx, cert, trust, canceled); } \
  NS_IMETHOD SetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetPKCS12FilePassword(ctx, password, canceled); } \
  NS_IMETHOD GetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetPKCS12FilePassword(ctx, password, canceled); } \
  NS_IMETHOD ViewCert(nsIX509Cert *cert) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ViewCert(cert); } 

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

/* Header file */
class nsCertificateDialogs : public nsICertificateDialogs
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSICERTIFICATEDIALOGS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsCertificateDialogs, nsICertificateDialogs)

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

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

/* void downloadCACert (in nsIInterfaceRequestor ctx, in nsIX509Cert cert, out unsigned long trust, out boolean canceled); */
NS_IMETHODIMP nsCertificateDialogs::DownloadCACert(nsIInterfaceRequestor *ctx, nsIX509Cert *cert, PRUint32 *trust, PRBool *canceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setPKCS12FilePassword (in nsIInterfaceRequestor ctx, out wstring password, out boolean canceled); */
NS_IMETHODIMP nsCertificateDialogs::SetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPKCS12FilePassword (in nsIInterfaceRequestor ctx, out wstring password, out boolean canceled); */
NS_IMETHODIMP nsCertificateDialogs::GetPKCS12FilePassword(nsIInterfaceRequestor *ctx, PRUnichar **password, PRBool *canceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void viewCert (in nsIX509Cert cert); */
NS_IMETHODIMP nsCertificateDialogs::ViewCert(nsIX509Cert *cert)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIClientAuthDialogs */
#define NS_ICLIENTAUTHDIALOGS_IID_STR "fa4c7520-1433-11d5-ba24-00108303b117"

#define NS_ICLIENTAUTHDIALOGS_IID \
  {0xfa4c7520, 0x1433, 0x11d5, \
    { 0xba, 0x24, 0x00, 0x10, 0x83, 0x03, 0xb1, 0x17 }}

/**
 * nsIClientAuthDialog
 * Provides UI for SSL client-auth dialogs.
 */
class NS_NO_VTABLE nsIClientAuthDialogs : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ICLIENTAUTHDIALOGS_IID)

  /**
   * display
   *   UI shown when a user is asked to do SSL client auth.
   */
  /* void ChooseCertificate (in nsIInterfaceRequestor ctx, in wstring cn, in wstring organization, in wstring issuer, [array, size_is (count)] in wstring certNickList, in PRUint32 count, out wstring certNick, out boolean canceled); */
  NS_IMETHOD ChooseCertificate(nsIInterfaceRequestor *ctx, const PRUnichar *cn, const PRUnichar *organization, const PRUnichar *issuer, const PRUnichar **certNickList, PRUint32 count, PRUnichar **certNick, PRBool *canceled) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICLIENTAUTHDIALOGS \
  NS_IMETHOD ChooseCertificate(nsIInterfaceRequestor *ctx, const PRUnichar *cn, const PRUnichar *organization, const PRUnichar *issuer, const PRUnichar **certNickList, PRUint32 count, PRUnichar **certNick, PRBool *canceled); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICLIENTAUTHDIALOGS(_to) \
  NS_IMETHOD ChooseCertificate(nsIInterfaceRequestor *ctx, const PRUnichar *cn, const PRUnichar *organization, const PRUnichar *issuer, const PRUnichar **certNickList, PRUint32 count, PRUnichar **certNick, PRBool *canceled) { return _to ## ChooseCertificate(ctx, cn, organization, issuer, certNickList, count, certNick, canceled); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSICLIENTAUTHDIALOGS(_to) \
  NS_IMETHOD ChooseCertificate(nsIInterfaceRequestor *ctx, const PRUnichar *cn, const PRUnichar *organization, const PRUnichar *issuer, const PRUnichar **certNickList, PRUint32 count, PRUnichar **certNick, PRBool *canceled) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ChooseCertificate(ctx, cn, organization, issuer, certNickList, count, certNick, canceled); } 

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

/* Header file */
class nsClientAuthDialogs : public nsIClientAuthDialogs
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSICLIENTAUTHDIALOGS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsClientAuthDialogs, nsIClientAuthDialogs)

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

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

/* void ChooseCertificate (in nsIInterfaceRequestor ctx, in wstring cn, in wstring organization, in wstring issuer, [array, size_is (count)] in wstring certNickList, in PRUint32 count, out wstring certNick, out boolean canceled); */
NS_IMETHODIMP nsClientAuthDialogs::ChooseCertificate(nsIInterfaceRequestor *ctx, const PRUnichar *cn, const PRUnichar *organization, const PRUnichar *issuer, const PRUnichar **certNickList, PRUint32 count, PRUnichar **certNick, PRBool *canceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsITokenDialogs */
#define NS_ITOKENDIALOGS_IID_STR "bb4bae9c-39c5-11d5-ba26-00108303b117"

#define NS_ITOKENDIALOGS_IID \
  {0xbb4bae9c, 0x39c5, 0x11d5, \
    { 0xba, 0x26, 0x00, 0x10, 0x83, 0x03, 0xb1, 0x17 }}

class NS_NO_VTABLE nsITokenDialogs : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ITOKENDIALOGS_IID)

  /* void ChooseToken (in nsIInterfaceRequestor ctx, [array, size_is (count)] in wstring tokenNameList, in PRUint32 count, out wstring tokenName, out boolean canceled); */
  NS_IMETHOD ChooseToken(nsIInterfaceRequestor *ctx, const PRUnichar **tokenNameList, PRUint32 count, PRUnichar **tokenName, PRBool *canceled) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSITOKENDIALOGS \
  NS_IMETHOD ChooseToken(nsIInterfaceRequestor *ctx, const PRUnichar **tokenNameList, PRUint32 count, PRUnichar **tokenName, PRBool *canceled); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSITOKENDIALOGS(_to) \
  NS_IMETHOD ChooseToken(nsIInterfaceRequestor *ctx, const PRUnichar **tokenNameList, PRUint32 count, PRUnichar **tokenName, PRBool *canceled) { return _to ## ChooseToken(ctx, tokenNameList, count, tokenName, canceled); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSITOKENDIALOGS(_to) \
  NS_IMETHOD ChooseToken(nsIInterfaceRequestor *ctx, const PRUnichar **tokenNameList, PRUint32 count, PRUnichar **tokenName, PRBool *canceled) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ChooseToken(ctx, tokenNameList, count, tokenName, canceled); } 

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

/* Header file */
class nsTokenDialogs : public nsITokenDialogs
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSITOKENDIALOGS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsTokenDialogs, nsITokenDialogs)

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

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

/* void ChooseToken (in nsIInterfaceRequestor ctx, [array, size_is (count)] in wstring tokenNameList, in PRUint32 count, out wstring tokenName, out boolean canceled); */
NS_IMETHODIMP nsTokenDialogs::ChooseToken(nsIInterfaceRequestor *ctx, const PRUnichar **tokenNameList, PRUint32 count, PRUnichar **tokenName, PRBool *canceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIDOMCryptoDialogs */
#define NS_IDOMCRYPTODIALOGS_IID_STR "1f8fe77e-1dd2-11b2-8dd2-e55f8d3465b8"

#define NS_IDOMCRYPTODIALOGS_IID \
  {0x1f8fe77e, 0x1dd2, 0x11b2, \
    { 0x8d, 0xd2, 0xe5, 0x5f, 0x8d, 0x34, 0x65, 0xb8 }}

class NS_NO_VTABLE nsIDOMCryptoDialogs : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDOMCRYPTODIALOGS_IID)

  /**
   * This method is used to warn the user the web site is
   * trying to escrow the generated private key.  This 
   * method should return true if the user wants to proceed
   * and false if the user cancels the action.
   */
  /* boolean ConfirmKeyEscrow (in nsIX509Cert escrowAuthority); */
  NS_IMETHOD ConfirmKeyEscrow(nsIX509Cert *escrowAuthority, PRBool *_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMCRYPTODIALOGS \
  NS_IMETHOD ConfirmKeyEscrow(nsIX509Cert *escrowAuthority, PRBool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMCRYPTODIALOGS(_to) \
  NS_IMETHOD ConfirmKeyEscrow(nsIX509Cert *escrowAuthority, PRBool *_retval) { return _to ## ConfirmKeyEscrow(escrowAuthority, _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_NSIDOMCRYPTODIALOGS(_to) \
  NS_IMETHOD ConfirmKeyEscrow(nsIX509Cert *escrowAuthority, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ConfirmKeyEscrow(escrowAuthority, _retval); } 

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

/* Header file */
class nsDOMCryptoDialogs : public nsIDOMCryptoDialogs
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMCRYPTODIALOGS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMCryptoDialogs, nsIDOMCryptoDialogs)

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

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

/* boolean ConfirmKeyEscrow (in nsIX509Cert escrowAuthority); */
NS_IMETHODIMP nsDOMCryptoDialogs::ConfirmKeyEscrow(nsIX509Cert *escrowAuthority, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

#define NS_NSSDIALOGS_CONTRACTID "@mozilla.org/nsNSSDialogs;1"

#endif /* __gen_nsINSSDialogs_h__ */
