gecko-dev/mailnews/imap/public/nsIMsgLogonRedirector.idl

53 строки
2.0 KiB
Plaintext

#include "nsISupports.idl"
typedef long nsMsgLogonRedirectionState;
[scriptable, uuid(e20261f6-df4f-11d3-b9f9-00108335942a)]
interface nsMsgLogonRedirectionStates
{
const long Idle = 0;
const long Connecting = 1;
const long Negotiating = 2;
const long Waiting = 3;
const long Validating = 4;
};
typedef long nsMsgLogonRedirectionServiceID;
[scriptable, uuid(182CB845-EB0D-11d3-98B7-001083010E9B)]
interface nsMsgLogonRedirectionServiceIDs
{
const long Imap = 0;
const long Smtp = 1;
const long AbSync = 2;
};
[scriptable, uuid(3c882b66-df4f-11d3-b9f9-00108335942a)]
interface nsIMsgLogonRedirectionRequester : nsISupports
{
/* Erron on processing the logon redirection */
void OnLogonRedirectionError(in wstring pErrMsg, in boolean badPassword);
/* Logon Redirection Progress */
void OnLogonRedirectionProgress(in nsMsgLogonRedirectionState pState);
/* reply with logon redirection data. */
void OnLogonRedirectionReply(in wstring pHost, in unsigned short pPort, in string pCookieData, in unsigned short pCookieSize);
};
/* this is the service we use to request a logon redirection */
[scriptable, uuid(0c2e96ac-e0ae-11d3-a560-0060b0fc04b7)]
interface nsIMsgLogonRedirector : nsISupports
{
// RequiresPassword --> if the subsequent logon call still requires a password to succeed, then the
// redirector will return true for this. If the redirector already has a connection open and doesn't really
// need a password again, then this will return false. This method gives us a poor man's version of password
// caching so the redirection requestor doesn't have to prompt for a password every time the requestor
// wishes to log on.
// aUserName --> the user name we wish to log in under...
boolean requiresPassword(in string aUserName);
void logon(in string userName, in string password, in nsIMsgLogonRedirectionRequester listener, in nsMsgLogonRedirectionServiceID aServiceID);
void logoff(in string userName); /* might not need this one */
};