summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl')
-rw-r--r--src/VBox/Devices/Graphics/shaderlib/wine/include/imnxport.idl1123
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);")