ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

imnxport.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright 2006 Robert Shearman for CodeWeavers
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 import "imnact.idl";
00020 
00021 interface IInternetTransport;
00022 interface ISMTPTransport;
00023 interface IPOP3Transport;
00024 interface IIMAPTransport;
00025 
00026 /* CLSIDs */
00027 
00028 cpp_quote("DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00029 cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport, 0xfd853ce6, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00030 cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport2, 0xdf2c7eC, 0x3435, 0x11d0, 0x81, 0xd0, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00031 cpp_quote("DEFINE_GUID(CLSID_IPOP3Transport, 0xfd853ce7, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00032 cpp_quote("DEFINE_GUID(CLSID_INNTPTransport, 0xfd853ce8, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00033 cpp_quote("DEFINE_GUID(CLSID_IRASTransport, 0xfd853ce9, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00034 cpp_quote("DEFINE_GUID(CLSID_IRangeList, 0xfd853cea, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00035 cpp_quote("DEFINE_GUID(CLSID_IIMAPTransport, 0xfd853ceb, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
00036 cpp_quote("DEFINE_GUID(CLSID_IHTTPMailTransport, 0x5a580c11, 0xe5eb, 0x11d1, 0xa8, 0x6e, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
00037 cpp_quote("DEFINE_GUID(CLSID_IPropFindRequest, 0xbb847b8a, 0x054a, 0x11d2, 0xa8, 0x94, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
00038 cpp_quote("DEFINE_GUID(CLSID_IPropPatchRequest, 0xea678830, 0x235d, 0x11d2, 0xa8, 0xb6, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
00039 
00040 /* Error Codes */
00041 
00042 cpp_quote("#ifndef HR_E")
00043 cpp_quote("#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)")
00044 cpp_quote("#endif")
00045 cpp_quote("#ifndef HR_S")
00046 cpp_quote("#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)")
00047 cpp_quote("#endif")
00048 
00049 /* General Error Codes */
00050 cpp_quote("#define IXP_E_LOAD_SICILY_FAILED     HR_E(0xCC00)")
00051 cpp_quote("#define IXP_E_INVALID_CERT_CN        HR_E(0xCC01)")
00052 cpp_quote("#define IXP_E_INVALID_CERT_DATE      HR_E(0xCC02)")
00053 cpp_quote("#define IXP_E_ALREADY_CONNECTED      HR_E(0xCC03)")
00054 cpp_quote("#define IXP_E_CONN                   HR_E(0xCC04)")
00055 cpp_quote("#define IXP_E_NOT_CONNECTED          HR_E(0xCC05)")
00056 cpp_quote("#define IXP_E_CONN_SEND              HR_E(0xCC06)")
00057 cpp_quote("#define IXP_E_WOULD_BLOCK            HR_E(0xCC07)")
00058 cpp_quote("#define IXP_E_INVALID_STATE          HR_E(0xCC08)")
00059 cpp_quote("#define IXP_E_CONN_RECV              HR_E(0xCC09)")
00060 cpp_quote("#define IXP_E_INCOMPLETE             HR_E(0xCC0A)")
00061 cpp_quote("#define IXP_E_BUSY                   HR_E(0xCC0B)")
00062 cpp_quote("#define IXP_E_NOT_INIT               HR_E(0xCC0C)")
00063 cpp_quote("#define IXP_E_CANT_FIND_HOST         HR_E(0xCC0D)")
00064 cpp_quote("#define IXP_E_FAILED_TO_CONNECT      HR_E(0xCC0E)")
00065 cpp_quote("#define IXP_E_CONNECTION_DROPPED     HR_E(0xCC0F)")
00066 cpp_quote("#define IXP_E_INVALID_ADDRESS        HR_E(0xCC10)")
00067 cpp_quote("#define IXP_E_INVALID_ADDRESS_LIST   HR_E(0xCC11)")
00068 cpp_quote("#define IXP_E_SOCKET_READ_ERROR      HR_E(0xCC12)")
00069 cpp_quote("#define IXP_E_SOCKET_WRITE_ERROR     HR_E(0xCC13)")
00070 cpp_quote("#define IXP_E_SCOKET_INIT_ERROR      HR_E(0xCC14)")
00071 cpp_quote("#define IXP_E_SOCKET_CONNECT_ERROR   HR_E(0xCC15)")
00072 cpp_quote("#define IXP_E_INVALID_ACCOUNT        HR_E(0xCC16)")
00073 cpp_quote("#define IXP_E_USER_CANCEL            HR_E(0xCC17)")
00074 cpp_quote("#define IXP_E_SICILY_LOGON_FAILED    HR_E(0xCC18)")
00075 cpp_quote("#define IXP_E_TIMEOUT                HR_E(0xCC19)")
00076 cpp_quote("#define IXP_E_SECURE_CONNECT_FAILED  HR_E(0xCC1A)")
00077 
00078 /* SMTP Failure Statuses */
00079 cpp_quote("#define IXP_E_SMTP_RESPONSE_ERROR            HR_E(0xCC60)")
00080 cpp_quote("#define IXP_E_SMTP_UNKNOWN_RESPONSE_CODE     HR_E(0xCC61)")
00081 cpp_quote("#define IXP_E_SMTP_500_SYNTAX_ERROR          HR_E(0xCC62)")
00082 cpp_quote("#define IXP_E_SMTP_501_PARAM_SYNTAX          HR_E(0xCC63)")
00083 cpp_quote("#define IXP_E_SMTP_502_COMMAND_NOTIMPL       HR_E(0xCC64)")
00084 cpp_quote("#define IXP_E_SMTP_503_COMMAND_SEQ           HR_E(0xCC65)")
00085 cpp_quote("#define IXP_E_SMTP_504_COMMAND_PARAM_NOTIMPL HR_E(0xCC66)")
00086 cpp_quote("#define IXP_E_SMTP_421_NOT_AVAILABLE         HR_E(0xCC67)")
00087 cpp_quote("#define IXP_E_SMTP_450_MAILBOX_BUSY          HR_E(0xCC68)")
00088 cpp_quote("#define IXP_E_SMTP_550_MAILBOX_NOT_FOUND     HR_E(0xCC69)")
00089 cpp_quote("#define IXP_E_SMTP_451_ERROR_PROCESSING      HR_E(0xCC6A)")
00090 cpp_quote("#define IXP_E_SMTP_551_USER_NOT_LOCAL        HR_E(0xCC6B)")
00091 cpp_quote("#define IXP_E_SMTP_452_NO_SYSTEM_STORAGE     HR_E(0xCC6C)")
00092 cpp_quote("#define IXP_E_SMTP_552_STORAGE_OVERFLOW      HR_E(0xCC6D)")
00093 cpp_quote("#define IXP_E_SMTP_553_MAILBOX_NAME_SYNTAX   HR_E(0xCC6E)")
00094 cpp_quote("#define IXP_E_SMTP_554_TRANSACT_FAILED       HR_E(0xCC6F)")
00095 
00096 /* SMTP Success Statuses */
00097 cpp_quote("#define IXP_E_SMTP_211_SYSTEM_STATUS         HR_S(0xCC70)")
00098 cpp_quote("#define IXP_E_SMTP_214_HELP_MESSAGE          HR_S(0xCC71)")
00099 cpp_quote("#define IXP_E_SMTP_220_READY                 HR_S(0xCC72)")
00100 cpp_quote("#define IXP_E_SMTP_221_CLOSING               HR_S(0xCC73)")
00101 cpp_quote("#define IXP_E_SMTP_250_MAIL_ACTION_OKAY      HR_S(0xCC74)")
00102 cpp_quote("#define IXP_E_SMTP_251_FORWARDING_MAIL       HR_S(0xCC75)")
00103 cpp_quote("#define IXP_E_SMTP_354_START_MAIL_INPUT      HR_S(0xCC76)")
00104 cpp_quote("#define IXP_E_SMTP_CONTINUE                  HR_S(0xCC77)")
00105 cpp_quote("#define IXP_E_SMTP_334_AUTH_READY_RESPONSE   HR_S(0xCC78)")
00106 cpp_quote("#define IXP_E_SMTP_245_AUTH_SUCCESS          HR_S(0xCC79)")
00107 
00108 /* More SMTP Failure Statuses */
00109 cpp_quote("#define IXP_E_SMTP_REJECTED_SENDER           HR_E(0xCC78)")
00110 cpp_quote("#define IXP_E_SMTP_REJECTED_RECIPIENTS       HR_E(0xCC79)")
00111 cpp_quote("#define IXP_E_SMTP_NO_SENDER                 HR_E(0xCC7A)")
00112 cpp_quote("#define IXP_E_SMTP_NO_RECIPIENTS             HR_E(0xCC7B)")
00113 cpp_quote("#define IXP_E_SMTP_530_STARTTLS_REQUIRED     HR_E(0xCC7C)")
00114 cpp_quote("#define IXP_E_SMTP_NO_STARTTLS_SUPPORT       HR_E(0xCC7D)")
00115 cpp_quote("#define IXP_E_SMTP_NO_DSN_SUPPORT            HR_E(0xCC7E)")
00116 cpp_quote("#define IXP_E_SMTP_454_STARTTLS_FAILED       HR_E(0xCC7F)")
00117 
00118 const SHORT CCHMAX_DOMAIN = 256;
00119 const SHORT CCHMAX_PHONE_NUMBER = 128;
00120 
00121 const DWORD DEFAULT_IMAP_PORT = 143;
00122 const DWORD DEFAULT_POP3_PORT = 110;
00123 const DWORD DEFAULT_SMTP_PORT = 25;
00124 const DWORD DEFAULT_NNTP_PORT = 119;
00125 
00126 typedef enum tagINETADDRTYPE
00127 {
00128     ADDR_TO,
00129     ADDR_FROM,
00130     ADDR_DSN_NEVER = 16,
00131     ADDR_DSN_SUCCESS = 32,
00132     ADDR_DSN_FAILURE = 64,
00133     ADDR_DSN_DELAY = 128
00134 } INETADDRTYPE;
00135 
00136 const DWORD ADDR_TOFROM_MASK = 0x1;
00137 const DWORD ADDR_DSN_MASK = 0xf0;
00138 
00139 typedef enum tagDSNRET
00140 {
00141     DSNRET_DEFAULT,
00142     DSNRET_HDRS,
00143     DSNRET_FULL,
00144 } DSNRET;
00145 
00146 typedef struct tagINETADDR
00147 {
00148     INETADDRTYPE addrtype;
00149     CHAR szEmail[CCHMAX_EMAIL_ADDRESS];
00150 } INETADDR, *LPINETADDR;
00151 
00152 typedef struct tagINETADDRLIST
00153 {
00154     ULONG cAddress;
00155     LPINETADDR prgAddress;
00156 } INETADDRLIST, *LPINETADDRLIST;
00157 
00158 typedef enum tagRASCONNTYPE
00159 {
00160     RAS_CONNECT_LAN,
00161     RAS_CONNECT_MANUAL,
00162     RAS_CONNECT_RAS
00163 } RASCONNTYPE;
00164 
00165 typedef enum tagHTTPMAILPROPTYPE
00166 {
00167     HTTPMAIL_PROP_INVALID,
00168     HTTPMAIL_PROP_ADBAR,
00169     HTTPMAIL_PROP_CONTACTS,
00170     HTTPMAIL_PROP_INBOX,
00171     HTTPMAIL_PROP_OUTBOX,
00172     HTTPMAIL_PROP_SENDMSG,
00173     HTTPMAIL_PROP_SENTITEMS,
00174     HTTPMAIL_PROP_DELETEDITEMS,
00175     HTTPMAIL_PROP_DRAFTS,
00176     HTTPMAIL_PROP_MSGFOLDERROOT,
00177     HTTPMAIL_PROP_SIG,
00178     HTTPMAIL_PROP_LAST
00179 } HTTPMAILPROPTYPE;
00180 
00181 typedef enum tagHTTPMAILSPECIALFOLDER
00182 {
00183     HTTPMAIL_SF_NONE,
00184     HTTPMAIL_SF_UNRECOGNIZED,
00185     HTTPMAIL_SF_INBOX,
00186     HTTPMAIL_SF_DELETEDITEMS,
00187     HTTPMAIL_SF_DRAFTS,
00188     HTTPMAIL_SF_OUTBOX,
00189     HTTPMAIL_SF_SENTITEMS,
00190     HTTPMAIL_SF_CONTACTS,
00191     HTTPMAIL_SF_CALENDAR,
00192     HTTPMAIL_SF_MSNPROMO,
00193     HTTPMAIL_SF_LAST
00194 } HTTPMAILSPECIALFOLDER;
00195 
00196 typedef enum tagHTTPMAILCONTACTTYPE
00197 {
00198     HTTPMAIL_CT_CONTACT,
00199     HTTPMAIL_CT_GROUP,
00200     HTTPMAIL_CT_LAST
00201 } HTTPMAILCONTACTTYPE;
00202 
00203 const DWORD DAVNAMESPACE_UNKNOWN = 0xFFFFFFFF;
00204 const DWORD DAVNAMESPACE_DAV = 0;
00205 const DWORD DAVNAMESPACE_HOTMAIL = 1;
00206 const DWORD DAVNAMESPACE_HTTPMAIL = 2;
00207 const DWORD DAVNAMESPACE_MAIL = 3;
00208 const DWORD DAVNAMESPACE_CONTACTS = 4;
00209 
00210 cpp_quote("#define ISF_SMTP_USEIPFORHELO        0x01")
00211 cpp_quote("#define ISF_ALWAYSPROMPTFORPASSWORD  0x02")
00212 /* for SMTP - send EHLO and use STARTTLS if available: */
00213 cpp_quote("#define ISF_SSLONSAMEPORT            0x04")
00214 cpp_quote("#define ISF_QUERYDSNSUPPORT          0x08")
00215 /* for SMTP - send EHLO and use AUTH if available: */
00216 cpp_quote("#define ISF_QUERYAUTHSUPPORT         0x10")
00217 
00218 typedef struct INETSERVER
00219 {
00220     CHAR szAccount[CCHMAX_ACCOUNT_NAME];
00221     CHAR szUserName[CCHMAX_USERNAME];
00222     CHAR szPassword[CCHMAX_PASSWORD];
00223     CHAR szServerName[CCHMAX_SERVER_NAME];
00224     CHAR szConnectoid[CCHMAX_CONNECTOID];
00225     RASCONNTYPE rasconntype;
00226     DWORD dwPort;
00227     BOOL fSSL;
00228     BOOL fTrySicily;
00229     DWORD dwTimeout;
00230     DWORD dwFlags;
00231 } INETSERVER, *LPINETSERVER;
00232 
00233 typedef enum tagIXPTYPE
00234 {
00235     IXP_NNTP,
00236     IXP_SMTP,
00237     IXP_POP3,
00238     IXP_IMAP,
00239     IXP_RAS,
00240     IXP_HTTPMail
00241 } IXPTYPE;
00242 
00243 typedef enum tagIXPSTATUS
00244 {
00245     IXP_FINDINGHOST,
00246     IXP_CONNECTING,
00247     IXP_SECURING,
00248     IXP_CONNECTED,
00249     IXP_AUTHORIZING,
00250     IXP_AUTHRETRY,
00251     IXP_AUTHORIZED,
00252     IXP_DISCONNECTING,
00253     IXP_DISCONNECTED,
00254     IXP_LAST
00255 } IXPSTATUS;
00256 
00257 const DWORD DEPTH_INFINITY = 0xFFFFFFFE;
00258 
00259 typedef DWORD MEMBERINFOFLAGS;
00260 
00261 const MEMBERINFOFLAGS HTTP_MEMBERINFO_COMMONPROPS = 0x0;
00262 const MEMBERINFOFLAGS HTTP_MEMBERINFO_FOLDERPROPS = 0x1;
00263 const MEMBERINFOFLAGS HTTP_MEMBERINFO_MESSAGEPROPS = 0x2;
00264 const MEMBERINFOFLAGS HTTP_MEMBERINFO_ALLPROPS = HTTP_MEMBERINFO_FOLDERPROPS | HTTP_MEMBERINFO_MESSAGEPROPS;
00265 
00266 typedef DWORD IMAP_MSGFLAGS;
00267 
00268 const IMAP_MSGFLAGS IMAP_MSG_NOFLAGS = 0x00;
00269 const IMAP_MSGFLAGS IMAP_MSG_ANSWERED = 0x01;
00270 const IMAP_MSGFLAGS IMAP_MSG_FLAGGED = 0x02;
00271 const IMAP_MSGFLAGS IMAP_MSG_DELETED = 0x04;
00272 const IMAP_MSGFLAGS IMAP_MSG_SEEN = 0x08;
00273 const IMAP_MSGFLAGS IMAP_MSG_DRAFT = 0x10;
00274 const IMAP_MSGFLAGS IMAP_MSG_ALLFLAGS = 0x1f;
00275 
00276 [
00277     object,
00278     uuid(CA30F3FF-C9AC-11D1-9A3A-00C04FA309D4),
00279     local
00280 ]
00281 interface ITransportCallbackService : IUnknown
00282 {
00283     HRESULT GetParentWindow(
00284         [in]    DWORD dwReserved,
00285         [out]   HWND *phwndParent);
00286 
00287     HRESULT GetAccount(
00288         [out]   LPDWORD pdwServerType,
00289         [out]   IImnAccount **ppAccount);
00290 }
00291 
00292 [
00293     object,
00294     uuid(0DF2C7E1-3435-11D0-81D0-00C04FD85AB4),
00295     local
00296 ]
00297 interface ITransportCallback : IUnknown
00298 {
00299     typedef struct tagIXPRESULT
00300     {
00301         HRESULT hrResult;
00302         LPSTR pszResponse;
00303         UINT uiServerError;
00304         HRESULT hrServerError;
00305         DWORD dwSocketError;
00306         LPSTR pszProblem;
00307     } IXPRESULT, *LPIXPRESULT;
00308 
00309     typedef enum tagCMDTYPE
00310     {
00311         CMD_SEND,
00312         CMD_RESP
00313     } CMDTYPE;
00314 
00315     HRESULT OnTimeout(
00316         [in,out]    DWORD *pdwTimeout,
00317         [in]        IInternetTransport *pTransport);
00318 
00319     HRESULT OnLogonPrompt(
00320         [in,out]    LPINETSERVER pInetServer,
00321         [in]        IInternetTransport *pTransport);
00322 
00323     INT OnPrompt(
00324         [in]    HRESULT hrError,
00325         [in]    LPCSTR pszText,
00326         [in]    LPCSTR pszCaption,
00327         [in]    UINT uType,
00328         [in]    IInternetTransport *pTransport);
00329 
00330     HRESULT OnStatus(
00331         [in]    IXPSTATUS ixpstatus,
00332         [in]    IInternetTransport *pTransport);
00333 
00334     HRESULT OnError(
00335         [in]    IXPSTATUS ixpstatus,
00336         [in]    LPIXPRESULT pResult,
00337         [in]    IInternetTransport *pTransport);
00338 
00339     HRESULT OnCommand(
00340         [in]    CMDTYPE cmdtype,
00341         [in]    LPSTR pszLine,
00342         [in]    HRESULT hrResponse,
00343         [in]    IInternetTransport *pTransport);
00344 }
00345 
00346 [
00347     object,
00348     uuid(1F636C01-364E-11D0-81D3-00C04FD85AB4),
00349     local
00350 ]
00351 interface IInternetTransport : IUnknown
00352 {
00353     const boolean iitAUTHENTICATE = TRUE;
00354     const boolean iitDONT_AUTHENTICATe = FALSE;
00355     const boolean iitENABLE_ONCOMMAND = TRUE;
00356     const boolean iitDISABLE_ONCOMMAND = FALSE;
00357 
00358     typedef enum tagIXPISSTATE
00359     {
00360         IXP_IS_CONNECTED,
00361         IXP_IS_BUSY,
00362         IXP_IS_READY,
00363         IXP_IS_AUTHENTICATED
00364     } IXPISSTATE;
00365 
00366     HRESULT GetServerInfo(
00367         [in,out]    LPINETSERVER pInetServer);
00368 
00369     IXPTYPE GetIXPType();
00370 
00371     HRESULT IsState(
00372         [in]    IXPISSTATE isstate);
00373 
00374     HRESULT InetServerFromAccount(
00375         [in]        IImnAccount *pAccount,
00376         [in,out]    LPINETSERVER pInetServer);
00377 
00378     HRESULT Connect(
00379         [in]    LPINETSERVER pInetServer,
00380         [in]    boolean fAuthenticate,
00381         [in]    boolean fCommandLogging);
00382 
00383     HRESULT HandsOffCallback();
00384 
00385     HRESULT Disconnect();
00386 
00387     HRESULT DropConnection();
00388 
00389     HRESULT GetStatus(
00390         [out]   IXPSTATUS *pCurrentStatus);
00391 }
00392 
00393 [
00394     object,
00395     uuid(1F636C02-364E-11D0-81D3-00C04FD85AB4),
00396     local
00397 ]
00398 interface ISMTPCallback : ITransportCallback
00399 {
00400     typedef enum tagSMTPCOMMAND
00401     {
00402         SMTP_NONE,
00403         SMTP_BANNER,
00404         SMTP_CONNECTED,
00405         SMTP_SEND_MESSAGE,
00406         SMTP_AUTH,
00407         SMTP_EHLO,
00408         SMTP_HELO,
00409         SMTP_MAIL,
00410         SMTP_RCPT,
00411         SMTP_RSET,
00412         SMTP_QUIT,
00413         SMTP_DATA,
00414         SMTP_DOT,
00415         SMTP_SEND_STREAM,
00416         SMTP_CUSTOM
00417     } SMTPCOMMAND;
00418 
00419     typedef struct tagSMTPSTREAM
00420     {
00421         DWORD cbIncrement;
00422         DWORD cbCurrent;
00423         DWORD cbTotal;
00424     } SMTPSTREAM, *LPSMTPSTREAM;
00425 
00426     typedef struct tagSMTPRESPONSE
00427     {
00428         SMTPCOMMAND command;
00429         BOOL fDone;
00430         IXPRESULT rIxpResult;
00431         ISMTPTransport *pTransport;
00432 
00433         [switch_type(SMTPCOMMAND), switch_is(command)]
00434         union
00435         {
00436         [case(SMTP_SEND_STREAM)]    SMTPSTREAM rStreamInfo;
00437         [default];
00438         } DUMMYUNIONNAME;
00439     } SMTPRESPONSE, *LPSMTPRESPONSE;
00440 
00441     HRESULT OnResponse(
00442         [in] LPSMTPRESPONSE pResponse);
00443 }
00444 
00445 [
00446     object,
00447     uuid(0DF2C7E2-3435-11D0-81D0-00C04FD85AB4),
00448     local
00449 ]
00450 interface ISMTPTransport : IInternetTransport
00451 {
00452     typedef struct tagSMTPMESSAGE
00453     {
00454         ULONG cbSize;
00455         LPSTREAM pstmMsg;
00456         INETADDRLIST rAddressList;
00457     } SMTPMESSAGE, *LPSMTPMESSAGE;
00458 
00459     HRESULT InitNew(
00460         [in]    LPSTR pszLogFilePath,
00461         [in]    ISMTPCallback *pCallback);
00462 
00463 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
00464 cpp_quote("#undef SendMessage")
00465 cpp_quote("#endif")
00466 
00467     HRESULT SendMessage(
00468         [in]    LPSMTPMESSAGE pMessage);
00469 
00470     HRESULT CommandMAIL(
00471         [in]    LPSTR pszEmailFrom);
00472 
00473     HRESULT CommandRCPT(
00474         [in]    LPSTR pszEmailTo);
00475 
00476     HRESULT CommandEHLO();
00477 
00478     HRESULT CommandHELO();
00479 
00480     HRESULT CommandAUTH(
00481         [in]    LPSTR pszAuthType);
00482 
00483     HRESULT CommandQUIT();
00484 
00485     HRESULT CommandRSET();
00486 
00487     HRESULT CommandDATA();
00488 
00489     HRESULT CommandDOT();
00490 
00491     HRESULT SendDataStream(
00492         [in]    IStream *pStream,
00493         [in]    ULONG cbSize);
00494 }
00495 
00496 [
00497     object,
00498     uuid(0DF2C7EC-3435-11D0-81D0-00C04FD85AB4),
00499     local
00500 ]
00501 interface ISMTPTransport2 : ISMTPTransport
00502 {
00503     typedef struct tagSMTPMESSAGE2
00504     {
00505         SMTPMESSAGE smtpMsg;
00506         LPSTR pszDSNENVID;
00507         DSNRET dsnRet;
00508         DWORD dwReserved;
00509         DWORD dwReserved2;
00510     } SMTPMESSAGE2, *LPSMTPMESSAGE2;
00511 
00512     HRESULT SetWindow();
00513 
00514     HRESULT ResetWindow();
00515 
00516     HRESULT SendMessage2(
00517         [in]    LPSMTPMESSAGE2 pMessage);
00518 
00519     HRESULT CommandRCPT2(
00520         [in]    LPSTR pszEmailTo,
00521         [in]    INETADDRTYPE atDSN);
00522 }
00523 
00524 /* FIXME: IDAVNamespaceArbiter, IPropPatchRequest, IPropFindRequest, IPropFindMultiResponse, IPropFindResponse, IHTTPMailCallback, IHTTPMailTransport */
00525 
00526 [
00527     object,
00528     uuid(0DF2C7E3-3435-11D0-81D0-00C04FD85AB4),
00529     local
00530 ]
00531 interface IPOP3Callback : ITransportCallback
00532 {
00533     typedef enum tagPOP3COMMAND
00534     {
00535         POP3_NONE,
00536         POP3_BANNER,
00537         POP3_CONNECTED,
00538         POP3_USER,
00539         POP3_PASS,
00540         POP3_AUTH,
00541         POP3_UIDL,
00542         POP3_STAT,
00543         POP3_LIST,
00544         POP3_DELE,
00545         POP3_RETR,
00546         POP3_TOP,
00547         POP3_NOOP,
00548         POP3_QUIT,
00549         POP3_RSET,
00550         POP3_CUSTOM
00551     } POP3COMMAND;
00552 
00553     typedef struct tagPOP3RETR
00554     {
00555         BOOL fHeader;
00556         BOOL fBody;
00557         DWORD dwPopId;
00558         DWORD cbSoFar;
00559         LPSTR pszLines;
00560         ULONG cbLines;
00561     } POP3RETR, *LPPOP3RETR;
00562 
00563     typedef struct tagPOP3TOP
00564     {
00565         BOOL fHeader;
00566         BOOL fBody;
00567         DWORD dwPopId;
00568         DWORD cPreviewLines;
00569         DWORD cbSoFar;
00570         LPSTR pszLines;
00571         ULONG cbLines;
00572     } POP3TOP, *LPPOP3TOP;
00573 
00574     typedef struct tagPOP3LIST
00575     {
00576         DWORD dwPopId;
00577         DWORD cbSize;
00578     } POP3LIST, *LPPOP3LIST;
00579 
00580     typedef struct tagPOP3UIDL
00581     {
00582         DWORD dwPopId;
00583         LPSTR pszUidl;
00584     } POP3UIDL, *LPPOP3UIDL;
00585 
00586     typedef struct tagPOP3STAT
00587     {
00588         DWORD cMessages;
00589         DWORD cbMessages;
00590     } POP3STAT, *LPPOP3STAT;
00591 
00592     typedef struct tagPOP3RESPONSE
00593     {
00594         POP3COMMAND command;
00595         BOOL fDone;
00596         IXPRESULT rIxpResult;
00597         IPOP3Transport *pTransport;
00598         BOOL fValidInfo;
00599         [switch_type(POP3COMMAND), switch_is(command)]
00600         union
00601         {
00602         [case(POP3_UIDL)] POP3UIDL rUidlInfo;
00603         [case(POP3_STAT)] POP3STAT rStatInfo;
00604         [case(POP3_LIST)] POP3LIST rListInfo;
00605         [case(POP3_DELE)] DWORD dwPopId;
00606         [case(POP3_RETR)] POP3RETR rRetrInfo;
00607         [case(POP3_TOP)]  POP3TOP rTopInfo;
00608         [default];
00609         } DUMMYUNIONNAME;
00610     } POP3RESPONSE, *LPPOP3RESPONSE;
00611 
00612     HRESULT OnResponse(
00613         [in]    LPPOP3RESPONSE pResponse);
00614 }
00615 
00616 [
00617     object,
00618     uuid(0DF2C7E4-3435-11D0-81D0-00C04FD85AB4),
00619     local
00620 ]
00621 interface IPOP3Transport : IInternetTransport
00622 {
00623     typedef enum tagPOP3CMDTYPE
00624     {
00625         POP3CMD_GET_POPID,
00626         POP3CMD_GET_MARKED,
00627         POP3CMD_GET_ALL
00628     } POP3CMDTYPE;
00629 
00630     typedef enum tagPOP3MARKTYPE
00631     {
00632         POP3_MARK_FOR_TOP = 0x01,
00633         POP3_MARK_FOR_RETR = 0x02,
00634         POP3_MARK_FOR_DELE = 0x04,
00635         POP3_MARK_FOR_UIDL = 0x08,
00636         POP3_MARK_FOR_LIST = 0x10
00637     } POP3MARKTYPE;
00638 
00639     HRESULT InitNew(
00640         [in]    LPSTR pszLogFilePath,
00641         [in]    IPOP3Callback *pCallback);
00642 
00643     HRESULT MarkItem(
00644         [in]    POP3MARKTYPE marktype,
00645         [in]    DWORD dwPopId,
00646         [in]    boolean fMarked);
00647 
00648     HRESULT CommandAUTH(
00649         [in]    LPSTR pszAuthType);
00650 
00651     HRESULT CommandUSER(
00652         [in]    LPSTR pszUserName);
00653 
00654     HRESULT CommandPASS(
00655         [in]    LPSTR pszPassword);
00656 
00657     HRESULT CommandLIST(
00658         [in]    POP3CMDTYPE cmdtype,
00659         [in]    DWORD dwPopId);
00660 
00661     HRESULT CommandTOP(
00662         [in]    POP3CMDTYPE cmdtype,
00663         [in]    DWORD dwPopId,
00664         [in]    DWORD cPreviewLines);
00665 
00666     HRESULT CommandQUIT();
00667 
00668     HRESULT CommandSTAT();
00669 
00670     HRESULT CommandNOOP();
00671 
00672     HRESULT CommandRSET();
00673 
00674     HRESULT CommandUIDL(
00675         [in]    POP3CMDTYPE cmdtype,
00676         [in]    DWORD dwPopId);
00677 
00678     HRESULT CommandDELE(
00679         [in]    POP3CMDTYPE cmdtype,
00680         [in]    DWORD dwPopId);
00681 
00682     HRESULT CommandRETR(
00683         [in]    POP3CMDTYPE cmdtype,
00684         [in]    DWORD dwPopId);
00685 }
00686 
00687 /* FIXME: INNTPCallback, INNTPTransport */
00688 
00689 [
00690     object,
00691     uuid(8C438160-4EF6-11d0-874F-00AA00530EE9),
00692     local,
00693 ]
00694 interface IRangeList : IUnknown
00695 {
00696     const ULONG RL_RANGE_ERROR = ((ULONG)-1);
00697     const ULONG RL_LAST_MESSAGE = ((ULONG)-1);
00698 
00699     HRESULT Clear();
00700 
00701     HRESULT IsInRange(
00702         [in]    const ULONG value);
00703 
00704     HRESULT Min(
00705         [out]   ULONG *pulMin);
00706 
00707     HRESULT Max(
00708         [out]   ULONG *pulMax);
00709 
00710     HRESULT Save(
00711         [out]   byte **ppbDestination,
00712         [out]   ULONG *pulSizeOfDestination);
00713 
00714     HRESULT Load(
00715         [in, size_is(ulSizeOfSource)]   byte *pbSource,
00716         [in]    const ULONG ulSizeOfSource);
00717 
00718     HRESULT AddRange(
00719         [in]    const ULONG low,
00720         [in]    const ULONG high);
00721 
00722     HRESULT AddSingleValue(
00723         [in]    const ULONG value);
00724 
00725     HRESULT AddRangeList(
00726         [in]    const IRangeList *prl);
00727 
00728     HRESULT DeleteRange(
00729         [in]    const ULONG low,
00730         [in]    const ULONG high);
00731 
00732     HRESULT DeleteSingleValue(
00733         [in]    const ULONG value);
00734 
00735     HRESULT DeleteRangeList(
00736         [in]    const IRangeList *prl);
00737 
00738     HRESULT MinOfRange(
00739         [in]    const ULONG value,
00740         [out]   ULONG *pulMinOfRange);
00741 
00742     HRESULT MaxOfRange(
00743         [in]    const ULONG value,
00744         [out]   ULONG *pulMaxOfRange);
00745 
00746     HRESULT RangeToIMAPString(
00747         [out]   LPSTR *ppszDestination,
00748         [out]   LPDWORD pdwLengthOfDestination);
00749 
00750     HRESULT Next(
00751         [in]    const ULONG current,
00752         [out]   ULONG *pulNext);
00753 
00754     HRESULT Prev(
00755         [in]    const ULONG current,
00756         [out]   ULONG *pulPrev);
00757 
00758     HRESULT Cardinality(
00759         [out]   ULONG *pulCardinality);
00760 
00761     HRESULT CardinalityFrom(
00762         [in]    const ULONG ulStartPoint,
00763         [out]   ULONG *pulCardinalityFrom);
00764 }
00765 
00766 [
00767     object,
00768     uuid(E9E9D8A3-4EDD-11d0-874F-00AA00530EE9),
00769     local
00770 ]
00771 interface IIMAPCallback : ITransportCallback
00772 {
00773     typedef DWORD IMAP_MBOXFLAGS;
00774     const IMAP_MBOXFLAGS IMAP_MBOX_NOFLAGS = 0x0;
00775     const IMAP_MBOXFLAGS IMAP_MBOX_MARKED = 0x1;
00776     const IMAP_MBOXFLAGS IMAP_MBOX_NOINFERIORS = 0x2;
00777     const IMAP_MBOXFLAGS IMAP_MBOX_NOSELECT = 0x4;
00778     const IMAP_MBOXFLAGS IMAP_MBOX_UNMARKED = 0x8;
00779     const IMAP_MBOXFLAGS IMAP_MBOX_ALLFLAGS = 0xf;
00780 
00781     typedef enum tagIMAP_RESPONSE_TYPE
00782     {
00783         irtERROR_NOTIFICATION,
00784         irtCOMMAND_COMPLETION,
00785         irtSERVER_ALERT,
00786         irtPARSE_ERROR,
00787         irtMAILBOX_UPDATE,
00788         irtDELETED_MSG,
00789         irtFETCH_BODY,
00790         irtUPDATE_MSG,
00791         irtAPPLICABLE_FLAGS,
00792         irtPERMANENT_FLAGS,
00793         irtUIDVALIDITY,
00794         irtREADWRITE_STATUS,
00795         irtTRYCREATE,
00796         irtSEARCH,
00797         irtMAILBOX_LISTING,
00798         irtMAILBOX_STATUS,
00799         irtAPPEND_PROGRESS,
00800         irtUPDATE_MSG_EX
00801     } IMAP_RESPONSE_TYPE;
00802 
00803     typedef struct tagFETCH_BODY_PART
00804     {
00805         DWORD dwMsgSeqNum;
00806         LPSTR pszBodyTag;
00807         DWORD dwTotalBytes;
00808         DWORD dwSizeOfData;
00809         DWORD dwOffset;
00810         BOOL fDone;
00811         LPSTR pszData;
00812         LPARAM lpFetchCookie1;
00813         LPARAM lpFetchCookie2;
00814     } FETCH_BODY_PART;
00815 
00816     typedef struct tagFETCH_CMD_RESULTS
00817     {
00818         DWORD dwMsgSeqNum;
00819         BOOL bMsgFlags;
00820         IMAP_MSGFLAGS mfMsgFlags;
00821         BOOL bRFC822Size;
00822         DWORD dwRFC822Size;
00823         BOOL bUID;
00824         DWORD dwUID;
00825         BOOL bInternalDate;
00826         FILETIME ftInternalDate;
00827         LPARAM lpFetchCookie1;
00828         LPARAM lpFetchCookie2;
00829     } FETCH_CMD_RESULTS;
00830 
00831     typedef struct tagIMAPADDR
00832     {
00833         LPSTR pszName;
00834         LPSTR pszADL;
00835         LPSTR pszMailbox;
00836         LPSTR pszHost;
00837         struct tagIMAPADDR *pNext;
00838     } IMAPADDR;
00839 
00840     typedef struct tagFETCH_CMD_RESULTS_EX
00841     {
00842         DWORD dwMsgSeqNum;
00843         BOOL bMsgFlags;
00844         IMAP_MSGFLAGS mfMsgFlags;
00845         BOOL bRFC822Size;
00846         DWORD dwRFC822Size;
00847         BOOL bUID;
00848         DWORD dwUID;
00849         BOOL bInternalDate;
00850         FILETIME ftInternalDate;
00851         LPARAM lpFetchCookie1;
00852         LPARAM lpFetchCookie2;
00853         BOOL bEnvelope;
00854         FILETIME ftENVDate;
00855         LPSTR pszENVSubject;
00856         IMAPADDR *piaENVFrom;
00857         IMAPADDR *piaENVSender;
00858         IMAPADDR *piaENVReplyTo;
00859         IMAPADDR *piaENVTo;
00860         IMAPADDR *piaENVCc;
00861         IMAPADDR *piaENVBcc;
00862         LPSTR pszENVInReplyTo;
00863         LPSTR pszENVMessageID;
00864         DWORD dwReserved1;
00865         DWORD dwReserved2;
00866         DWORD dwReserved3;
00867     } FETCH_CMD_RESULTS_EX;
00868 
00869     typedef struct tagMBOX_MSGCOUNT
00870     {
00871         BOOL bGotExistsResponse;
00872         DWORD dwExists;
00873         BOOL bGotRecentResponse;
00874         DWORD dwRecent;
00875         BOOL bGotUnseenResponse;
00876         DWORD dwUnseen;
00877     } MBOX_MSGCOUNT;
00878 
00879     typedef struct tagIMAP_LISTLSUB_RESPONSE
00880     {
00881         LPSTR pszMailboxName;
00882         IMAP_MBOXFLAGS imfMboxFlags;
00883         char cHierarchyChar;
00884     } IMAP_LISTLSUB_RESPONSE;
00885 
00886     typedef struct tagIMAP_STATUS_RESPONSE
00887     {
00888         LPSTR pszMailboxName;
00889         BOOL fMessages;
00890         DWORD dwMessages;
00891         BOOL fRecent;
00892         DWORD dwRecent;
00893         BOOL fUIDNext;
00894         DWORD dwUIDNext;
00895         BOOL fUIDValidity;
00896         DWORD dwUIDValidity;
00897         BOOL fUnseen;
00898         DWORD dwUnseen;
00899     } IMAP_STATUS_RESPONSE;
00900 
00901     typedef struct tagAPPEND_PROGRESS
00902     {
00903         DWORD dwUploaded;
00904         DWORD dwTotal;
00905     } APPEND_PROGRESS;
00906 
00907     typedef [switch_type(IMAP_RESPONSE_TYPE)] union tagIMAP_RESPONSE_DATA
00908     {
00909         [case (irtMAILBOX_UPDATE)] MBOX_MSGCOUNT *pmcMsgCount;
00910         [case (irtDELETED_MSG)] DWORD dwDeletedMsgSeqNum;
00911         [case (irtFETCH_BODY)] FETCH_BODY_PART *pFetchBodyPart;
00912         [case (irtUPDATE_MSG)] FETCH_CMD_RESULTS *pFetchResults;
00913         [case (irtAPPLICABLE_FLAGS, irtPERMANENT_FLAGS)] IMAP_MSGFLAGS imfImapMessageFlags;
00914         [case (irtUIDVALIDITY)] DWORD dwUIDValidity;
00915         [case (irtREADWRITE_STATUS)] BOOL bReadWrite;
00916         [case (irtSEARCH)] IRangeList *prlSearchResults;
00917         [case (irtMAILBOX_LISTING)] IMAP_LISTLSUB_RESPONSE illrdMailboxListing;
00918         [case (irtMAILBOX_STATUS)] IMAP_STATUS_RESPONSE *pisrStatusResponse;
00919         [case (irtAPPEND_PROGRESS)] APPEND_PROGRESS *papAppendProgress;
00920         [case (irtUPDATE_MSG_EX)] FETCH_CMD_RESULTS_EX *pFetchResultsEx;
00921     } IMAP_RESPONSE_DATA;
00922 
00923     typedef struct tagIMAP_RESPONSE
00924     {
00925         WPARAM wParam;
00926         LPARAM lParam;
00927         HRESULT hrResult;
00928         LPSTR lpszResponseText;
00929         IMAP_RESPONSE_TYPE irtResponseType;
00930         [switch_is(irtResponseType)] IMAP_RESPONSE_DATA irdResponseData;
00931     } IMAP_RESPONSE;
00932 
00933     HRESULT OnResponse([in] const IMAP_RESPONSE *pirIMAPResponse);
00934 }
00935 
00936 [
00937 object,
00938 uuid(E9E9D8A8-4EDD-11d0-874F-00AA00530EE9),
00939 local,
00940 ]
00941 interface IIMAPTransport : IInternetTransport
00942 {
00943     const DWORD IMAP_CAPABILITY_IMAP4 = 0x1;
00944     const DWORD IMAP_CAPABILITY_IMAP4rev1 = 0x2;
00945     const DWORD IMAP_CAPABILITY_IDLE = 0x4;
00946     const DWORD IMAP_CAPABILITY_ALLFLAGS = 0x7;
00947 
00948     HRESULT InitNew(
00949         [in]    LPSTR pszLogFilePath,
00950         [in]    IIMAPCallback *pCBHandler);
00951 
00952     HRESULT NewIRangeList(
00953         [out]   IRangeList **pprlNewRangeList);
00954 
00955     HRESULT Capability(
00956         [out]   DWORD *pdwCapabilityFlags);
00957 
00958     HRESULT Select(
00959         [in]    WPARAM wParam,
00960         [in]    LPARAM lParam,
00961         [in]    IIMAPCallback *pCBHandler,
00962         [in]    LPSTR lpszMailboxName);
00963 
00964     HRESULT Examine(
00965         [in]    WPARAM wParam,
00966         [in]    LPARAM lParam,
00967         [in]    IIMAPCallback *pCBHandler,
00968         [in]    LPSTR lpszMailboxName);
00969 
00970     HRESULT Create(
00971         [in]    WPARAM wParam,
00972         [in]    LPARAM lParam,
00973         [in]    IIMAPCallback *pCBHandler,
00974         [in]    LPSTR lpszMailboxName);
00975 
00976     HRESULT Delete(
00977         [in]    WPARAM wParam,
00978         [in]    LPARAM lParam,
00979         [in]    IIMAPCallback *pCBHandler,
00980         [in]    LPSTR lpszMailboxName);
00981 
00982     HRESULT Rename(
00983         [in]    WPARAM wParam,
00984         [in]    LPARAM lParam,
00985         [in]    IIMAPCallback *pCBHandler,
00986         [in]    LPSTR lpszMailboxName,
00987         [in]    LPSTR lpszNewMailboxName);
00988 
00989     HRESULT Subscribe(
00990         [in]    WPARAM wParam,
00991         [in]    LPARAM lParam,
00992         [in]    IIMAPCallback *pCBHandler,
00993         [in]    LPSTR lpszMailboxName);
00994 
00995     HRESULT Unsubscribe(
00996         [in]    WPARAM wParam,
00997         [in]    LPARAM lParam,
00998         [in]    IIMAPCallback *pCBHandler,
00999         [in]    LPSTR lpszMailboxName);
01000 
01001     HRESULT List(
01002         [in]    WPARAM wParam,
01003         [in]    LPARAM lParam,
01004         [in]    IIMAPCallback *pCBHandler,
01005         [in]    LPSTR lpszMailboxNameReference,
01006         [in]    LPSTR lpszMailboxNamePattern);
01007 
01008     HRESULT Lsub(
01009         [in]    WPARAM wParam,
01010         [in]    LPARAM lParam,
01011         [in]    IIMAPCallback *pCBHandler,
01012         [in]    LPSTR lpszMailboxNameReference,
01013         [in]    LPSTR lpszMailboxNamePattern);
01014 
01015     HRESULT Append(
01016         [in]    WPARAM wParam,
01017         [in]    LPARAM lParam,
01018         [in]    IIMAPCallback *pCBHandler,
01019         [in]    LPSTR lpszMailboxName,
01020         [in]    LPSTR lpszMessageFlags,
01021         [in]    FILETIME ftMessageDateTime,
01022         [in]    LPSTREAM lpstmMessageToSave);
01023 
01024     HRESULT Close(
01025         [in]    WPARAM wParam,
01026         [in]    LPARAM lParam,
01027         [in]    IIMAPCallback *pCBHandler);
01028 
01029     HRESULT Expunge(
01030         [in]    WPARAM wParam,
01031         [in]    LPARAM lParam,
01032         [in]    IIMAPCallback *pCBHandler);
01033 
01034     HRESULT Search(
01035         [in]    WPARAM wParam,
01036         [in]    LPARAM lParam,
01037         [in]    IIMAPCallback *pCBHandler,
01038         [in]    LPSTR lpszSearchCriteria,
01039         [in]    boolean bReturnUIDs,
01040         [in]    IRangeList *pMsgRange,
01041         [in]    boolean bUIDRangeList);
01042 
01043     HRESULT Fetch(
01044         [in]    WPARAM wParam,
01045         [in]    LPARAM lParam,
01046         [in]    IIMAPCallback *pCBHandler,
01047         [in]    IRangeList *pMsgRange,
01048         [in]    boolean bUIDMsgRange,
01049         [in]    LPSTR lpszFetchArgs);
01050 
01051     HRESULT Store(
01052         [in]    WPARAM wParam,
01053         [in]    LPARAM lParam,
01054         [in]    IIMAPCallback *pCBHandler,
01055         [in]    IRangeList *pMsgRange,
01056         [in]    boolean bUIDRangeList,
01057         [in]    LPSTR lpszStoreArgs);
01058 
01059     HRESULT Copy(
01060         [in]    WPARAM wParam,
01061         [in]    LPARAM lParam,
01062         [in]    IIMAPCallback *pCBHandler,
01063         [in]    IRangeList *pMsgRange,
01064         [in]    boolean bUIDRangeList,
01065         [in]    LPSTR lpszMailboxName);
01066 
01067     HRESULT Noop(
01068         [in]    WPARAM wParam,
01069         [in]    LPARAM lParam,
01070         [in]    IIMAPCallback *pCBHandler);
01071 
01072     HRESULT ResizeMsgSeqNumTable(
01073         [in]    DWORD dwSizeOfMbox);
01074 
01075     HRESULT UpdateSeqNumToUID(
01076         [in]    DWORD dwMsgSeqNum,
01077         [in]    DWORD dwUID);
01078 
01079     HRESULT RemoveSequenceNum(
01080         [in]    DWORD dwDeletedMsgSeqNum);
01081 
01082     HRESULT MsgSeqNumToUID(
01083         [in]    DWORD dwMsgSeqNum,
01084         [out]   DWORD *pdwUID);
01085 
01086     HRESULT GetMsgSeqNumToUIDArray(
01087         [out]   DWORD **ppdwMsgSeqNumToUIDArray,
01088         [out]   DWORD *pdwNumberOfElements);
01089 
01090     HRESULT GetHighestMsgSeqNum(
01091         [out]   DWORD *pdwHighestMSN);
01092 
01093     HRESULT ResetMsgSeqNumToUID();
01094 
01095     HRESULT SetDefaultCBHandler(
01096         [in]    IIMAPCallback *pCBHandler);
01097 
01098     HRESULT Status(
01099         [in]    WPARAM wParam,
01100         [in]    LPARAM lParam,
01101         [in]    IIMAPCallback *pCBHandler,
01102         [in]    LPSTR pszMailboxName,
01103         [in]    LPSTR pszStatusCmdArgs);
01104 }
01105 
01106 #if 0
01107 cpp_quote("HRESULT WINAPI CreateRASTransport(IRASTransport **ppTransport);")
01108 cpp_quote("HRESULT WINAPI CreateNNTPTransport(INNTPTransport **ppTransport);")
01109 cpp_quote("HRESULT WINAPI CreateIMAPTransport2(IIMAPTransport2 **ppTransport);")
01110 #endif
01111 cpp_quote("HRESULT WINAPI CreateRangeList(IRangeList **ppRangeList);")
01112 cpp_quote("HRESULT WINAPI CreateSMTPTransport(ISMTPTransport **ppTransport);")
01113 cpp_quote("HRESULT WINAPI CreatePOP3Transport(IPOP3Transport **ppTransport);")
01114 cpp_quote("HRESULT WINAPI CreateIMAPTransport(IIMAPTransport **ppTransport);")

Generated on Sat May 26 2012 04:30:16 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.