Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / sdk / include / psdk / imnxport.idl
diff --git a/reactos/sdk/include/psdk/imnxport.idl b/reactos/sdk/include/psdk/imnxport.idl
deleted file mode 100644 (file)
index ef4f8ac..0000000
+++ /dev/null
@@ -1,1114 +0,0 @@
-/*
- * Copyright 2006 Robert Shearman for CodeWeavers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-import "imnact.idl";
-
-interface IInternetTransport;
-interface ISMTPTransport;
-interface IPOP3Transport;
-interface IIMAPTransport;
-
-/* CLSIDs */
-
-cpp_quote("DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport, 0xfd853ce6, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport2, 0xdf2c7eC, 0x3435, 0x11d0, 0x81, 0xd0, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_IPOP3Transport, 0xfd853ce7, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_INNTPTransport, 0xfd853ce8, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_IRASTransport, 0xfd853ce9, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_IRangeList, 0xfd853cea, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_IIMAPTransport, 0xfd853ceb, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
-cpp_quote("DEFINE_GUID(CLSID_IHTTPMailTransport, 0x5a580c11, 0xe5eb, 0x11d1, 0xa8, 0x6e, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
-cpp_quote("DEFINE_GUID(CLSID_IPropFindRequest, 0xbb847b8a, 0x054a, 0x11d2, 0xa8, 0x94, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
-cpp_quote("DEFINE_GUID(CLSID_IPropPatchRequest, 0xea678830, 0x235d, 0x11d2, 0xa8, 0xb6, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
-
-/* Error Codes */
-
-cpp_quote("#ifndef HR_E")
-cpp_quote("#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)")
-cpp_quote("#endif")
-cpp_quote("#ifndef HR_S")
-cpp_quote("#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)")
-cpp_quote("#endif")
-
-/* General Error Codes */
-cpp_quote("#define IXP_E_LOAD_SICILY_FAILED     HR_E(0xCC00)")
-cpp_quote("#define IXP_E_INVALID_CERT_CN        HR_E(0xCC01)")
-cpp_quote("#define IXP_E_INVALID_CERT_DATE      HR_E(0xCC02)")
-cpp_quote("#define IXP_E_ALREADY_CONNECTED      HR_E(0xCC03)")
-cpp_quote("#define IXP_E_CONN                   HR_E(0xCC04)")
-cpp_quote("#define IXP_E_NOT_CONNECTED          HR_E(0xCC05)")
-cpp_quote("#define IXP_E_CONN_SEND              HR_E(0xCC06)")
-cpp_quote("#define IXP_E_WOULD_BLOCK            HR_E(0xCC07)")
-cpp_quote("#define IXP_E_INVALID_STATE          HR_E(0xCC08)")
-cpp_quote("#define IXP_E_CONN_RECV              HR_E(0xCC09)")
-cpp_quote("#define IXP_E_INCOMPLETE             HR_E(0xCC0A)")
-cpp_quote("#define IXP_E_BUSY                   HR_E(0xCC0B)")
-cpp_quote("#define IXP_E_NOT_INIT               HR_E(0xCC0C)")
-cpp_quote("#define IXP_E_CANT_FIND_HOST         HR_E(0xCC0D)")
-cpp_quote("#define IXP_E_FAILED_TO_CONNECT      HR_E(0xCC0E)")
-cpp_quote("#define IXP_E_CONNECTION_DROPPED     HR_E(0xCC0F)")
-cpp_quote("#define IXP_E_INVALID_ADDRESS        HR_E(0xCC10)")
-cpp_quote("#define IXP_E_INVALID_ADDRESS_LIST   HR_E(0xCC11)")
-cpp_quote("#define IXP_E_SOCKET_READ_ERROR      HR_E(0xCC12)")
-cpp_quote("#define IXP_E_SOCKET_WRITE_ERROR     HR_E(0xCC13)")
-cpp_quote("#define IXP_E_SCOKET_INIT_ERROR      HR_E(0xCC14)")
-cpp_quote("#define IXP_E_SOCKET_CONNECT_ERROR   HR_E(0xCC15)")
-cpp_quote("#define IXP_E_INVALID_ACCOUNT        HR_E(0xCC16)")
-cpp_quote("#define IXP_E_USER_CANCEL            HR_E(0xCC17)")
-cpp_quote("#define IXP_E_SICILY_LOGON_FAILED    HR_E(0xCC18)")
-cpp_quote("#define IXP_E_TIMEOUT                HR_E(0xCC19)")
-cpp_quote("#define IXP_E_SECURE_CONNECT_FAILED  HR_E(0xCC1A)")
-
-/* SMTP Failure Statuses */
-cpp_quote("#define IXP_E_SMTP_RESPONSE_ERROR            HR_E(0xCC60)")
-cpp_quote("#define IXP_E_SMTP_UNKNOWN_RESPONSE_CODE     HR_E(0xCC61)")
-cpp_quote("#define IXP_E_SMTP_500_SYNTAX_ERROR          HR_E(0xCC62)")
-cpp_quote("#define IXP_E_SMTP_501_PARAM_SYNTAX          HR_E(0xCC63)")
-cpp_quote("#define IXP_E_SMTP_502_COMMAND_NOTIMPL       HR_E(0xCC64)")
-cpp_quote("#define IXP_E_SMTP_503_COMMAND_SEQ           HR_E(0xCC65)")
-cpp_quote("#define IXP_E_SMTP_504_COMMAND_PARAM_NOTIMPL HR_E(0xCC66)")
-cpp_quote("#define IXP_E_SMTP_421_NOT_AVAILABLE         HR_E(0xCC67)")
-cpp_quote("#define IXP_E_SMTP_450_MAILBOX_BUSY          HR_E(0xCC68)")
-cpp_quote("#define IXP_E_SMTP_550_MAILBOX_NOT_FOUND     HR_E(0xCC69)")
-cpp_quote("#define IXP_E_SMTP_451_ERROR_PROCESSING      HR_E(0xCC6A)")
-cpp_quote("#define IXP_E_SMTP_551_USER_NOT_LOCAL        HR_E(0xCC6B)")
-cpp_quote("#define IXP_E_SMTP_452_NO_SYSTEM_STORAGE     HR_E(0xCC6C)")
-cpp_quote("#define IXP_E_SMTP_552_STORAGE_OVERFLOW      HR_E(0xCC6D)")
-cpp_quote("#define IXP_E_SMTP_553_MAILBOX_NAME_SYNTAX   HR_E(0xCC6E)")
-cpp_quote("#define IXP_E_SMTP_554_TRANSACT_FAILED       HR_E(0xCC6F)")
-
-/* SMTP Success Statuses */
-cpp_quote("#define IXP_E_SMTP_211_SYSTEM_STATUS         HR_S(0xCC70)")
-cpp_quote("#define IXP_E_SMTP_214_HELP_MESSAGE          HR_S(0xCC71)")
-cpp_quote("#define IXP_E_SMTP_220_READY                 HR_S(0xCC72)")
-cpp_quote("#define IXP_E_SMTP_221_CLOSING               HR_S(0xCC73)")
-cpp_quote("#define IXP_E_SMTP_250_MAIL_ACTION_OKAY      HR_S(0xCC74)")
-cpp_quote("#define IXP_E_SMTP_251_FORWARDING_MAIL       HR_S(0xCC75)")
-cpp_quote("#define IXP_E_SMTP_354_START_MAIL_INPUT      HR_S(0xCC76)")
-cpp_quote("#define IXP_E_SMTP_CONTINUE                  HR_S(0xCC77)")
-cpp_quote("#define IXP_E_SMTP_334_AUTH_READY_RESPONSE   HR_S(0xCC78)")
-cpp_quote("#define IXP_E_SMTP_245_AUTH_SUCCESS          HR_S(0xCC79)")
-
-/* More SMTP Failure Statuses */
-cpp_quote("#define IXP_E_SMTP_REJECTED_SENDER           HR_E(0xCC78)")
-cpp_quote("#define IXP_E_SMTP_REJECTED_RECIPIENTS       HR_E(0xCC79)")
-cpp_quote("#define IXP_E_SMTP_NO_SENDER                 HR_E(0xCC7A)")
-cpp_quote("#define IXP_E_SMTP_NO_RECIPIENTS             HR_E(0xCC7B)")
-cpp_quote("#define IXP_E_SMTP_530_STARTTLS_REQUIRED     HR_E(0xCC7C)")
-cpp_quote("#define IXP_E_SMTP_NO_STARTTLS_SUPPORT       HR_E(0xCC7D)")
-cpp_quote("#define IXP_E_SMTP_NO_DSN_SUPPORT            HR_E(0xCC7E)")
-cpp_quote("#define IXP_E_SMTP_454_STARTTLS_FAILED       HR_E(0xCC7F)")
-
-const SHORT CCHMAX_DOMAIN = 256;
-const SHORT CCHMAX_PHONE_NUMBER = 128;
-
-const DWORD DEFAULT_IMAP_PORT = 143;
-const DWORD DEFAULT_POP3_PORT = 110;
-const DWORD DEFAULT_SMTP_PORT = 25;
-const DWORD DEFAULT_NNTP_PORT = 119;
-
-typedef enum tagINETADDRTYPE
-{
-    ADDR_TO,
-    ADDR_FROM,
-    ADDR_DSN_NEVER = 16,
-    ADDR_DSN_SUCCESS = 32,
-    ADDR_DSN_FAILURE = 64,
-    ADDR_DSN_DELAY = 128
-} INETADDRTYPE;
-
-const DWORD ADDR_TOFROM_MASK = 0x1;
-const DWORD ADDR_DSN_MASK = 0xf0;
-
-typedef enum tagDSNRET
-{
-    DSNRET_DEFAULT,
-    DSNRET_HDRS,
-    DSNRET_FULL,
-} DSNRET;
-
-typedef struct tagINETADDR
-{
-    INETADDRTYPE addrtype;
-    CHAR szEmail[CCHMAX_EMAIL_ADDRESS];
-} INETADDR, *LPINETADDR;
-
-typedef struct tagINETADDRLIST
-{
-    ULONG cAddress;
-    LPINETADDR prgAddress;
-} INETADDRLIST, *LPINETADDRLIST;
-
-typedef enum tagRASCONNTYPE
-{
-    RAS_CONNECT_LAN,
-    RAS_CONNECT_MANUAL,
-    RAS_CONNECT_RAS
-} RASCONNTYPE;
-
-typedef enum tagHTTPMAILPROPTYPE
-{
-    HTTPMAIL_PROP_INVALID,
-    HTTPMAIL_PROP_ADBAR,
-    HTTPMAIL_PROP_CONTACTS,
-    HTTPMAIL_PROP_INBOX,
-    HTTPMAIL_PROP_OUTBOX,
-    HTTPMAIL_PROP_SENDMSG,
-    HTTPMAIL_PROP_SENTITEMS,
-    HTTPMAIL_PROP_DELETEDITEMS,
-    HTTPMAIL_PROP_DRAFTS,
-    HTTPMAIL_PROP_MSGFOLDERROOT,
-    HTTPMAIL_PROP_SIG,
-    HTTPMAIL_PROP_LAST
-} HTTPMAILPROPTYPE;
-
-typedef enum tagHTTPMAILSPECIALFOLDER
-{
-    HTTPMAIL_SF_NONE,
-    HTTPMAIL_SF_UNRECOGNIZED,
-    HTTPMAIL_SF_INBOX,
-    HTTPMAIL_SF_DELETEDITEMS,
-    HTTPMAIL_SF_DRAFTS,
-    HTTPMAIL_SF_OUTBOX,
-    HTTPMAIL_SF_SENTITEMS,
-    HTTPMAIL_SF_CONTACTS,
-    HTTPMAIL_SF_CALENDAR,
-    HTTPMAIL_SF_MSNPROMO,
-    HTTPMAIL_SF_LAST
-} HTTPMAILSPECIALFOLDER;
-
-typedef enum tagHTTPMAILCONTACTTYPE
-{
-    HTTPMAIL_CT_CONTACT,
-    HTTPMAIL_CT_GROUP,
-    HTTPMAIL_CT_LAST
-} HTTPMAILCONTACTTYPE;
-
-const DWORD DAVNAMESPACE_UNKNOWN = 0xFFFFFFFF;
-const DWORD DAVNAMESPACE_DAV = 0;
-const DWORD DAVNAMESPACE_HOTMAIL = 1;
-const DWORD DAVNAMESPACE_HTTPMAIL = 2;
-const DWORD DAVNAMESPACE_MAIL = 3;
-const DWORD DAVNAMESPACE_CONTACTS = 4;
-
-cpp_quote("#define ISF_SMTP_USEIPFORHELO        0x01")
-cpp_quote("#define ISF_ALWAYSPROMPTFORPASSWORD  0x02")
-/* for SMTP - send EHLO and use STARTTLS if available: */
-cpp_quote("#define ISF_SSLONSAMEPORT            0x04")
-cpp_quote("#define ISF_QUERYDSNSUPPORT          0x08")
-/* for SMTP - send EHLO and use AUTH if available: */
-cpp_quote("#define ISF_QUERYAUTHSUPPORT         0x10")
-
-typedef struct INETSERVER
-{
-    CHAR szAccount[CCHMAX_ACCOUNT_NAME];
-    CHAR szUserName[CCHMAX_USERNAME];
-    CHAR szPassword[CCHMAX_PASSWORD];
-    CHAR szServerName[CCHMAX_SERVER_NAME];
-    CHAR szConnectoid[CCHMAX_CONNECTOID];
-    RASCONNTYPE rasconntype;
-    DWORD dwPort;
-    BOOL fSSL;
-    BOOL fTrySicily;
-    DWORD dwTimeout;
-    DWORD dwFlags;
-} INETSERVER, *LPINETSERVER;
-
-typedef enum tagIXPTYPE
-{
-    IXP_NNTP,
-    IXP_SMTP,
-    IXP_POP3,
-    IXP_IMAP,
-    IXP_RAS,
-    IXP_HTTPMail
-} IXPTYPE;
-
-typedef enum tagIXPSTATUS
-{
-    IXP_FINDINGHOST,
-    IXP_CONNECTING,
-    IXP_SECURING,
-    IXP_CONNECTED,
-    IXP_AUTHORIZING,
-    IXP_AUTHRETRY,
-    IXP_AUTHORIZED,
-    IXP_DISCONNECTING,
-    IXP_DISCONNECTED,
-    IXP_LAST
-} IXPSTATUS;
-
-const DWORD DEPTH_INFINITY = 0xFFFFFFFE;
-
-typedef DWORD MEMBERINFOFLAGS;
-
-const MEMBERINFOFLAGS HTTP_MEMBERINFO_COMMONPROPS = 0x0;
-const MEMBERINFOFLAGS HTTP_MEMBERINFO_FOLDERPROPS = 0x1;
-const MEMBERINFOFLAGS HTTP_MEMBERINFO_MESSAGEPROPS = 0x2;
-const MEMBERINFOFLAGS HTTP_MEMBERINFO_ALLPROPS = HTTP_MEMBERINFO_FOLDERPROPS | HTTP_MEMBERINFO_MESSAGEPROPS;
-
-typedef DWORD IMAP_MSGFLAGS;
-
-const IMAP_MSGFLAGS IMAP_MSG_NOFLAGS = 0x00;
-const IMAP_MSGFLAGS IMAP_MSG_ANSWERED = 0x01;
-const IMAP_MSGFLAGS IMAP_MSG_FLAGGED = 0x02;
-const IMAP_MSGFLAGS IMAP_MSG_DELETED = 0x04;
-const IMAP_MSGFLAGS IMAP_MSG_SEEN = 0x08;
-const IMAP_MSGFLAGS IMAP_MSG_DRAFT = 0x10;
-const IMAP_MSGFLAGS IMAP_MSG_ALLFLAGS = 0x1f;
-
-[
-    object,
-    uuid(CA30F3FF-C9AC-11D1-9A3A-00C04FA309D4),
-    local
-]
-interface ITransportCallbackService : IUnknown
-{
-    HRESULT GetParentWindow(
-        [in]    DWORD dwReserved,
-        [out]   HWND *phwndParent);
-
-    HRESULT GetAccount(
-        [out]   LPDWORD pdwServerType,
-        [out]   IImnAccount **ppAccount);
-}
-
-[
-    object,
-    uuid(0DF2C7E1-3435-11D0-81D0-00C04FD85AB4),
-    local
-]
-interface ITransportCallback : IUnknown
-{
-    typedef struct tagIXPRESULT
-    {
-        HRESULT hrResult;
-        LPSTR pszResponse;
-        UINT uiServerError;
-        HRESULT hrServerError;
-        DWORD dwSocketError;
-        LPSTR pszProblem;
-    } IXPRESULT, *LPIXPRESULT;
-
-    typedef enum tagCMDTYPE
-    {
-        CMD_SEND,
-        CMD_RESP
-    } CMDTYPE;
-
-    HRESULT OnTimeout(
-        [in,out]    DWORD *pdwTimeout,
-        [in]        IInternetTransport *pTransport);
-
-    HRESULT OnLogonPrompt(
-        [in,out]    LPINETSERVER pInetServer,
-        [in]        IInternetTransport *pTransport);
-
-    INT OnPrompt(
-        [in]    HRESULT hrError,
-        [in]    LPCSTR pszText,
-        [in]    LPCSTR pszCaption,
-        [in]    UINT uType,
-        [in]    IInternetTransport *pTransport);
-
-    HRESULT OnStatus(
-        [in]    IXPSTATUS ixpstatus,
-        [in]    IInternetTransport *pTransport);
-
-    HRESULT OnError(
-        [in]    IXPSTATUS ixpstatus,
-        [in]    LPIXPRESULT pResult,
-        [in]    IInternetTransport *pTransport);
-
-    HRESULT OnCommand(
-        [in]    CMDTYPE cmdtype,
-        [in]    LPSTR pszLine,
-        [in]    HRESULT hrResponse,
-        [in]    IInternetTransport *pTransport);
-}
-
-[
-    object,
-    uuid(1F636C01-364E-11D0-81D3-00C04FD85AB4),
-    local
-]
-interface IInternetTransport : IUnknown
-{
-    const boolean iitAUTHENTICATE = TRUE;
-    const boolean iitDONT_AUTHENTICATe = FALSE;
-    const boolean iitENABLE_ONCOMMAND = TRUE;
-    const boolean iitDISABLE_ONCOMMAND = FALSE;
-
-    typedef enum tagIXPISSTATE
-    {
-        IXP_IS_CONNECTED,
-        IXP_IS_BUSY,
-        IXP_IS_READY,
-        IXP_IS_AUTHENTICATED
-    } IXPISSTATE;
-
-    HRESULT GetServerInfo(
-        [in,out]    LPINETSERVER pInetServer);
-
-    IXPTYPE GetIXPType();
-
-    HRESULT IsState(
-        [in]    IXPISSTATE isstate);
-
-    HRESULT InetServerFromAccount(
-        [in]        IImnAccount *pAccount,
-        [in,out]    LPINETSERVER pInetServer);
-
-    HRESULT Connect(
-        [in]    LPINETSERVER pInetServer,
-        [in]    boolean fAuthenticate,
-        [in]    boolean fCommandLogging);
-
-    HRESULT HandsOffCallback();
-
-    HRESULT Disconnect();
-
-    HRESULT DropConnection();
-
-    HRESULT GetStatus(
-        [out]   IXPSTATUS *pCurrentStatus);
-}
-
-[
-    object,
-    uuid(1F636C02-364E-11D0-81D3-00C04FD85AB4),
-    local
-]
-interface ISMTPCallback : ITransportCallback
-{
-    typedef enum tagSMTPCOMMAND
-    {
-        SMTP_NONE,
-        SMTP_BANNER,
-        SMTP_CONNECTED,
-        SMTP_SEND_MESSAGE,
-        SMTP_AUTH,
-        SMTP_EHLO,
-        SMTP_HELO,
-        SMTP_MAIL,
-        SMTP_RCPT,
-        SMTP_RSET,
-        SMTP_QUIT,
-        SMTP_DATA,
-        SMTP_DOT,
-        SMTP_SEND_STREAM,
-        SMTP_CUSTOM
-    } SMTPCOMMAND;
-
-    typedef struct tagSMTPSTREAM
-    {
-        DWORD cbIncrement;
-        DWORD cbCurrent;
-        DWORD cbTotal;
-    } SMTPSTREAM, *LPSMTPSTREAM;
-
-    typedef struct tagSMTPRESPONSE
-    {
-        SMTPCOMMAND command;
-        BOOL fDone;
-        IXPRESULT rIxpResult;
-        ISMTPTransport *pTransport;
-
-        [switch_type(SMTPCOMMAND), switch_is(command)]
-        union
-        {
-        [case(SMTP_SEND_STREAM)]    SMTPSTREAM rStreamInfo;
-        [default];
-        } DUMMYUNIONNAME;
-    } SMTPRESPONSE, *LPSMTPRESPONSE;
-
-    HRESULT OnResponse(
-        [in] LPSMTPRESPONSE pResponse);
-}
-
-[
-    object,
-    uuid(0DF2C7E2-3435-11D0-81D0-00C04FD85AB4),
-    local
-]
-interface ISMTPTransport : IInternetTransport
-{
-    typedef struct tagSMTPMESSAGE
-    {
-        ULONG cbSize;
-        LPSTREAM pstmMsg;
-        INETADDRLIST rAddressList;
-    } SMTPMESSAGE, *LPSMTPMESSAGE;
-
-    HRESULT InitNew(
-        [in]    LPSTR pszLogFilePath,
-        [in]    ISMTPCallback *pCallback);
-
-cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
-cpp_quote("#undef SendMessage")
-cpp_quote("#endif")
-
-    HRESULT SendMessage(
-        [in]    LPSMTPMESSAGE pMessage);
-
-    HRESULT CommandMAIL(
-        [in]    LPSTR pszEmailFrom);
-
-    HRESULT CommandRCPT(
-        [in]    LPSTR pszEmailTo);
-
-    HRESULT CommandEHLO();
-
-    HRESULT CommandHELO();
-
-    HRESULT CommandAUTH(
-        [in]    LPSTR pszAuthType);
-
-    HRESULT CommandQUIT();
-
-    HRESULT CommandRSET();
-
-    HRESULT CommandDATA();
-
-    HRESULT CommandDOT();
-
-    HRESULT SendDataStream(
-        [in]    IStream *pStream,
-        [in]    ULONG cbSize);
-}
-
-[
-    object,
-    uuid(0DF2C7EC-3435-11D0-81D0-00C04FD85AB4),
-    local
-]
-interface ISMTPTransport2 : ISMTPTransport
-{
-    typedef struct tagSMTPMESSAGE2
-    {
-        SMTPMESSAGE smtpMsg;
-        LPSTR pszDSNENVID;
-        DSNRET dsnRet;
-        DWORD dwReserved;
-        DWORD dwReserved2;
-    } SMTPMESSAGE2, *LPSMTPMESSAGE2;
-
-    HRESULT SetWindow();
-
-    HRESULT ResetWindow();
-
-    HRESULT SendMessage2(
-        [in]    LPSMTPMESSAGE2 pMessage);
-
-    HRESULT CommandRCPT2(
-        [in]    LPSTR pszEmailTo,
-        [in]    INETADDRTYPE atDSN);
-}
-
-/* FIXME: IDAVNamespaceArbiter, IPropPatchRequest, IPropFindRequest, IPropFindMultiResponse, IPropFindResponse, IHTTPMailCallback, IHTTPMailTransport */
-
-[
-    object,
-    uuid(0DF2C7E3-3435-11D0-81D0-00C04FD85AB4),
-    local
-]
-interface IPOP3Callback : ITransportCallback
-{
-    typedef enum tagPOP3COMMAND
-    {
-        POP3_NONE,
-        POP3_BANNER,
-        POP3_CONNECTED,
-        POP3_USER,
-        POP3_PASS,
-        POP3_AUTH,
-        POP3_UIDL,
-        POP3_STAT,
-        POP3_LIST,
-        POP3_DELE,
-        POP3_RETR,
-        POP3_TOP,
-        POP3_NOOP,
-        POP3_QUIT,
-        POP3_RSET,
-        POP3_CUSTOM
-    } POP3COMMAND;
-
-    typedef struct tagPOP3RETR
-    {
-        BOOL fHeader;
-        BOOL fBody;
-        DWORD dwPopId;
-        DWORD cbSoFar;
-        LPSTR pszLines;
-        ULONG cbLines;
-    } POP3RETR, *LPPOP3RETR;
-
-    typedef struct tagPOP3TOP
-    {
-        BOOL fHeader;
-        BOOL fBody;
-        DWORD dwPopId;
-        DWORD cPreviewLines;
-        DWORD cbSoFar;
-        LPSTR pszLines;
-        ULONG cbLines;
-    } POP3TOP, *LPPOP3TOP;
-
-    typedef struct tagPOP3LIST
-    {
-        DWORD dwPopId;
-        DWORD cbSize;
-    } POP3LIST, *LPPOP3LIST;
-
-    typedef struct tagPOP3UIDL
-    {
-        DWORD dwPopId;
-        LPSTR pszUidl;
-    } POP3UIDL, *LPPOP3UIDL;
-
-    typedef struct tagPOP3STAT
-    {
-        DWORD cMessages;
-        DWORD cbMessages;
-    } POP3STAT, *LPPOP3STAT;
-
-    typedef struct tagPOP3RESPONSE
-    {
-        POP3COMMAND command;
-        BOOL fDone;
-        IXPRESULT rIxpResult;
-        IPOP3Transport *pTransport;
-        BOOL fValidInfo;
-        [switch_type(POP3COMMAND), switch_is(command)]
-        union
-        {
-        [case(POP3_UIDL)] POP3UIDL rUidlInfo;
-        [case(POP3_STAT)] POP3STAT rStatInfo;
-        [case(POP3_LIST)] POP3LIST rListInfo;
-        [case(POP3_DELE)] DWORD dwPopId;
-        [case(POP3_RETR)] POP3RETR rRetrInfo;
-        [case(POP3_TOP)]  POP3TOP rTopInfo;
-        [default];
-        } DUMMYUNIONNAME;
-    } POP3RESPONSE, *LPPOP3RESPONSE;
-
-    HRESULT OnResponse(
-        [in]    LPPOP3RESPONSE pResponse);
-}
-
-[
-    object,
-    uuid(0DF2C7E4-3435-11D0-81D0-00C04FD85AB4),
-    local
-]
-interface IPOP3Transport : IInternetTransport
-{
-    typedef enum tagPOP3CMDTYPE
-    {
-        POP3CMD_GET_POPID,
-        POP3CMD_GET_MARKED,
-        POP3CMD_GET_ALL
-    } POP3CMDTYPE;
-
-    typedef enum tagPOP3MARKTYPE
-    {
-        POP3_MARK_FOR_TOP = 0x01,
-        POP3_MARK_FOR_RETR = 0x02,
-        POP3_MARK_FOR_DELE = 0x04,
-        POP3_MARK_FOR_UIDL = 0x08,
-        POP3_MARK_FOR_LIST = 0x10
-    } POP3MARKTYPE;
-
-    HRESULT InitNew(
-        [in]    LPSTR pszLogFilePath,
-        [in]    IPOP3Callback *pCallback);
-
-    HRESULT MarkItem(
-        [in]    POP3MARKTYPE marktype,
-        [in]    DWORD dwPopId,
-        [in]    boolean fMarked);
-
-    HRESULT CommandAUTH(
-        [in]    LPSTR pszAuthType);
-
-    HRESULT CommandUSER(
-        [in]    LPSTR pszUserName);
-
-    HRESULT CommandPASS(
-        [in]    LPSTR pszPassword);
-
-    HRESULT CommandLIST(
-        [in]    POP3CMDTYPE cmdtype,
-        [in]    DWORD dwPopId);
-
-    HRESULT CommandTOP(
-        [in]    POP3CMDTYPE cmdtype,
-        [in]    DWORD dwPopId,
-        [in]    DWORD cPreviewLines);
-
-    HRESULT CommandQUIT();
-
-    HRESULT CommandSTAT();
-
-    HRESULT CommandNOOP();
-
-    HRESULT CommandRSET();
-
-    HRESULT CommandUIDL(
-        [in]    POP3CMDTYPE cmdtype,
-        [in]    DWORD dwPopId);
-
-    HRESULT CommandDELE(
-        [in]    POP3CMDTYPE cmdtype,
-        [in]    DWORD dwPopId);
-
-    HRESULT CommandRETR(
-        [in]    POP3CMDTYPE cmdtype,
-        [in]    DWORD dwPopId);
-}
-
-/* FIXME: INNTPCallback, INNTPTransport */
-
-[
-    object,
-    uuid(8C438160-4EF6-11d0-874F-00AA00530EE9),
-    local,
-]
-interface IRangeList : IUnknown
-{
-    const ULONG RL_RANGE_ERROR = ((ULONG)-1);
-    const ULONG RL_LAST_MESSAGE = ((ULONG)-1);
-
-    HRESULT Clear();
-
-    HRESULT IsInRange(
-        [in]    const ULONG value);
-
-    HRESULT Min(
-        [out]   ULONG *pulMin);
-
-    HRESULT Max(
-        [out]   ULONG *pulMax);
-
-    HRESULT Save(
-        [out]   byte **ppbDestination,
-        [out]   ULONG *pulSizeOfDestination);
-
-    HRESULT Load(
-        [in, size_is(ulSizeOfSource)]   byte *pbSource,
-        [in]    const ULONG ulSizeOfSource);
-
-    HRESULT AddRange(
-        [in]    const ULONG low,
-        [in]    const ULONG high);
-
-    HRESULT AddSingleValue(
-        [in]    const ULONG value);
-
-    HRESULT AddRangeList(
-        [in]    const IRangeList *prl);
-
-    HRESULT DeleteRange(
-        [in]    const ULONG low,
-        [in]    const ULONG high);
-
-    HRESULT DeleteSingleValue(
-        [in]    const ULONG value);
-
-    HRESULT DeleteRangeList(
-        [in]    const IRangeList *prl);
-
-    HRESULT MinOfRange(
-        [in]    const ULONG value,
-        [out]   ULONG *pulMinOfRange);
-
-    HRESULT MaxOfRange(
-        [in]    const ULONG value,
-        [out]   ULONG *pulMaxOfRange);
-
-    HRESULT RangeToIMAPString(
-        [out]   LPSTR *ppszDestination,
-        [out]   LPDWORD pdwLengthOfDestination);
-
-    HRESULT Next(
-        [in]    const ULONG current,
-        [out]   ULONG *pulNext);
-
-    HRESULT Prev(
-        [in]    const ULONG current,
-        [out]   ULONG *pulPrev);
-
-    HRESULT Cardinality(
-        [out]   ULONG *pulCardinality);
-
-    HRESULT CardinalityFrom(
-        [in]    const ULONG ulStartPoint,
-        [out]   ULONG *pulCardinalityFrom);
-}
-
-[
-    object,
-    uuid(E9E9D8A3-4EDD-11d0-874F-00AA00530EE9),
-    local
-]
-interface IIMAPCallback : ITransportCallback
-{
-    typedef DWORD IMAP_MBOXFLAGS;
-    const IMAP_MBOXFLAGS IMAP_MBOX_NOFLAGS = 0x0;
-    const IMAP_MBOXFLAGS IMAP_MBOX_MARKED = 0x1;
-    const IMAP_MBOXFLAGS IMAP_MBOX_NOINFERIORS = 0x2;
-    const IMAP_MBOXFLAGS IMAP_MBOX_NOSELECT = 0x4;
-    const IMAP_MBOXFLAGS IMAP_MBOX_UNMARKED = 0x8;
-    const IMAP_MBOXFLAGS IMAP_MBOX_ALLFLAGS = 0xf;
-
-    typedef enum tagIMAP_RESPONSE_TYPE
-    {
-        irtERROR_NOTIFICATION,
-        irtCOMMAND_COMPLETION,
-        irtSERVER_ALERT,
-        irtPARSE_ERROR,
-        irtMAILBOX_UPDATE,
-        irtDELETED_MSG,
-        irtFETCH_BODY,
-        irtUPDATE_MSG,
-        irtAPPLICABLE_FLAGS,
-        irtPERMANENT_FLAGS,
-        irtUIDVALIDITY,
-        irtREADWRITE_STATUS,
-        irtTRYCREATE,
-        irtSEARCH,
-        irtMAILBOX_LISTING,
-        irtMAILBOX_STATUS,
-        irtAPPEND_PROGRESS,
-        irtUPDATE_MSG_EX
-    } IMAP_RESPONSE_TYPE;
-
-    typedef struct tagFETCH_BODY_PART
-    {
-        DWORD dwMsgSeqNum;
-        LPSTR pszBodyTag;
-        DWORD dwTotalBytes;
-        DWORD dwSizeOfData;
-        DWORD dwOffset;
-        BOOL fDone;
-        LPSTR pszData;
-        LPARAM lpFetchCookie1;
-        LPARAM lpFetchCookie2;
-    } FETCH_BODY_PART;
-
-    typedef struct tagFETCH_CMD_RESULTS
-    {
-        DWORD dwMsgSeqNum;
-        BOOL bMsgFlags;
-        IMAP_MSGFLAGS mfMsgFlags;
-        BOOL bRFC822Size;
-        DWORD dwRFC822Size;
-        BOOL bUID;
-        DWORD dwUID;
-        BOOL bInternalDate;
-        FILETIME ftInternalDate;
-        LPARAM lpFetchCookie1;
-        LPARAM lpFetchCookie2;
-    } FETCH_CMD_RESULTS;
-
-    typedef struct tagIMAPADDR
-    {
-        LPSTR pszName;
-        LPSTR pszADL;
-        LPSTR pszMailbox;
-        LPSTR pszHost;
-        struct tagIMAPADDR *pNext;
-    } IMAPADDR;
-
-    typedef struct tagFETCH_CMD_RESULTS_EX
-    {
-        DWORD dwMsgSeqNum;
-        BOOL bMsgFlags;
-        IMAP_MSGFLAGS mfMsgFlags;
-        BOOL bRFC822Size;
-        DWORD dwRFC822Size;
-        BOOL bUID;
-        DWORD dwUID;
-        BOOL bInternalDate;
-        FILETIME ftInternalDate;
-        LPARAM lpFetchCookie1;
-        LPARAM lpFetchCookie2;
-        BOOL bEnvelope;
-        FILETIME ftENVDate;
-        LPSTR pszENVSubject;
-        IMAPADDR *piaENVFrom;
-        IMAPADDR *piaENVSender;
-        IMAPADDR *piaENVReplyTo;
-        IMAPADDR *piaENVTo;
-        IMAPADDR *piaENVCc;
-        IMAPADDR *piaENVBcc;
-        LPSTR pszENVInReplyTo;
-        LPSTR pszENVMessageID;
-        DWORD dwReserved1;
-        DWORD dwReserved2;
-        DWORD dwReserved3;
-    } FETCH_CMD_RESULTS_EX;
-
-    typedef struct tagMBOX_MSGCOUNT
-    {
-        BOOL bGotExistsResponse;
-        DWORD dwExists;
-        BOOL bGotRecentResponse;
-        DWORD dwRecent;
-        BOOL bGotUnseenResponse;
-        DWORD dwUnseen;
-    } MBOX_MSGCOUNT;
-
-    typedef struct tagIMAP_LISTLSUB_RESPONSE
-    {
-        LPSTR pszMailboxName;
-        IMAP_MBOXFLAGS imfMboxFlags;
-        char cHierarchyChar;
-    } IMAP_LISTLSUB_RESPONSE;
-
-    typedef struct tagIMAP_STATUS_RESPONSE
-    {
-        LPSTR pszMailboxName;
-        BOOL fMessages;
-        DWORD dwMessages;
-        BOOL fRecent;
-        DWORD dwRecent;
-        BOOL fUIDNext;
-        DWORD dwUIDNext;
-        BOOL fUIDValidity;
-        DWORD dwUIDValidity;
-        BOOL fUnseen;
-        DWORD dwUnseen;
-    } IMAP_STATUS_RESPONSE;
-
-    typedef struct tagAPPEND_PROGRESS
-    {
-        DWORD dwUploaded;
-        DWORD dwTotal;
-    } APPEND_PROGRESS;
-
-    typedef [switch_type(IMAP_RESPONSE_TYPE)] union tagIMAP_RESPONSE_DATA
-    {
-        [case (irtMAILBOX_UPDATE)] MBOX_MSGCOUNT *pmcMsgCount;
-        [case (irtDELETED_MSG)] DWORD dwDeletedMsgSeqNum;
-        [case (irtFETCH_BODY)] FETCH_BODY_PART *pFetchBodyPart;
-        [case (irtUPDATE_MSG)] FETCH_CMD_RESULTS *pFetchResults;
-        [case (irtAPPLICABLE_FLAGS, irtPERMANENT_FLAGS)] IMAP_MSGFLAGS imfImapMessageFlags;
-        [case (irtUIDVALIDITY)] DWORD dwUIDValidity;
-        [case (irtREADWRITE_STATUS)] BOOL bReadWrite;
-        [case (irtSEARCH)] IRangeList *prlSearchResults;
-        [case (irtMAILBOX_LISTING)] IMAP_LISTLSUB_RESPONSE illrdMailboxListing;
-        [case (irtMAILBOX_STATUS)] IMAP_STATUS_RESPONSE *pisrStatusResponse;
-        [case (irtAPPEND_PROGRESS)] APPEND_PROGRESS *papAppendProgress;
-        [case (irtUPDATE_MSG_EX)] FETCH_CMD_RESULTS_EX *pFetchResultsEx;
-    } IMAP_RESPONSE_DATA;
-
-    typedef struct tagIMAP_RESPONSE
-    {
-        WPARAM wParam;
-        LPARAM lParam;
-        HRESULT hrResult;
-        LPSTR lpszResponseText;
-        IMAP_RESPONSE_TYPE irtResponseType;
-        [switch_is(irtResponseType)] IMAP_RESPONSE_DATA irdResponseData;
-    } IMAP_RESPONSE;
-
-    HRESULT OnResponse([in] const IMAP_RESPONSE *pirIMAPResponse);
-}
-
-[
-object,
-uuid(E9E9D8A8-4EDD-11d0-874F-00AA00530EE9),
-local,
-]
-interface IIMAPTransport : IInternetTransport
-{
-    const DWORD IMAP_CAPABILITY_IMAP4 = 0x1;
-    const DWORD IMAP_CAPABILITY_IMAP4rev1 = 0x2;
-    const DWORD IMAP_CAPABILITY_IDLE = 0x4;
-    const DWORD IMAP_CAPABILITY_ALLFLAGS = 0x7;
-
-    HRESULT InitNew(
-        [in]    LPSTR pszLogFilePath,
-        [in]    IIMAPCallback *pCBHandler);
-
-    HRESULT NewIRangeList(
-        [out]   IRangeList **pprlNewRangeList);
-
-    HRESULT Capability(
-        [out]   DWORD *pdwCapabilityFlags);
-
-    HRESULT Select(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName);
-
-    HRESULT Examine(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName);
-
-    HRESULT Create(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName);
-
-    HRESULT Delete(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName);
-
-    HRESULT Rename(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName,
-        [in]    LPSTR lpszNewMailboxName);
-
-    HRESULT Subscribe(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName);
-
-    HRESULT Unsubscribe(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName);
-
-    HRESULT List(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxNameReference,
-        [in]    LPSTR lpszMailboxNamePattern);
-
-    HRESULT Lsub(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxNameReference,
-        [in]    LPSTR lpszMailboxNamePattern);
-
-    HRESULT Append(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszMailboxName,
-        [in]    LPSTR lpszMessageFlags,
-        [in]    FILETIME ftMessageDateTime,
-        [in]    LPSTREAM lpstmMessageToSave);
-
-    HRESULT Close(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler);
-
-    HRESULT Expunge(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler);
-
-    HRESULT Search(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR lpszSearchCriteria,
-        [in]    boolean bReturnUIDs,
-        [in]    IRangeList *pMsgRange,
-        [in]    boolean bUIDRangeList);
-
-    HRESULT Fetch(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    IRangeList *pMsgRange,
-        [in]    boolean bUIDMsgRange,
-        [in]    LPSTR lpszFetchArgs);
-
-    HRESULT Store(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    IRangeList *pMsgRange,
-        [in]    boolean bUIDRangeList,
-        [in]    LPSTR lpszStoreArgs);
-
-    HRESULT Copy(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    IRangeList *pMsgRange,
-        [in]    boolean bUIDRangeList,
-        [in]    LPSTR lpszMailboxName);
-
-    HRESULT Noop(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler);
-
-    HRESULT ResizeMsgSeqNumTable(
-        [in]    DWORD dwSizeOfMbox);
-
-    HRESULT UpdateSeqNumToUID(
-        [in]    DWORD dwMsgSeqNum,
-        [in]    DWORD dwUID);
-
-    HRESULT RemoveSequenceNum(
-        [in]    DWORD dwDeletedMsgSeqNum);
-
-    HRESULT MsgSeqNumToUID(
-        [in]    DWORD dwMsgSeqNum,
-        [out]   DWORD *pdwUID);
-
-    HRESULT GetMsgSeqNumToUIDArray(
-        [out]   DWORD **ppdwMsgSeqNumToUIDArray,
-        [out]   DWORD *pdwNumberOfElements);
-
-    HRESULT GetHighestMsgSeqNum(
-        [out]   DWORD *pdwHighestMSN);
-
-    HRESULT ResetMsgSeqNumToUID();
-
-    HRESULT SetDefaultCBHandler(
-        [in]    IIMAPCallback *pCBHandler);
-
-    HRESULT Status(
-        [in]    WPARAM wParam,
-        [in]    LPARAM lParam,
-        [in]    IIMAPCallback *pCBHandler,
-        [in]    LPSTR pszMailboxName,
-        [in]    LPSTR pszStatusCmdArgs);
-}
-
-#if 0
-cpp_quote("HRESULT WINAPI CreateRASTransport(IRASTransport **ppTransport);")
-cpp_quote("HRESULT WINAPI CreateNNTPTransport(INNTPTransport **ppTransport);")
-cpp_quote("HRESULT WINAPI CreateIMAPTransport2(IIMAPTransport2 **ppTransport);")
-#endif
-cpp_quote("HRESULT WINAPI CreateRangeList(IRangeList **ppRangeList);")
-cpp_quote("HRESULT WINAPI CreateSMTPTransport(ISMTPTransport **ppTransport);")
-cpp_quote("HRESULT WINAPI CreatePOP3Transport(IPOP3Transport **ppTransport);")
-cpp_quote("HRESULT WINAPI CreateIMAPTransport(IIMAPTransport **ppTransport);")