diff options
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl | 1123 |
1 files changed, 1123 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl new file mode 100644 index 00000000..b30e17c9 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl @@ -0,0 +1,1123 @@ +/* + * 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 + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +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]; + }; + } 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]; + }; + } 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);") |