ReactOS  0.4.14-dev-376-gaedba84
imnxport.idl
Go to the documentation of this file.
1 /*
2  * Copyright 2006 Robert Shearman for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 import "imnact.idl";
20 
21 interface IInternetTransport;
22 interface ISMTPTransport;
23 interface IPOP3Transport;
24 interface IIMAPTransport;
25 
26 /* CLSIDs */
27 
28 cpp_quote("DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
29 cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport, 0xfd853ce6, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
30 cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport2, 0xdf2c7eC, 0x3435, 0x11d0, 0x81, 0xd0, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
31 cpp_quote("DEFINE_GUID(CLSID_IPOP3Transport, 0xfd853ce7, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
32 cpp_quote("DEFINE_GUID(CLSID_INNTPTransport, 0xfd853ce8, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
33 cpp_quote("DEFINE_GUID(CLSID_IRASTransport, 0xfd853ce9, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
34 cpp_quote("DEFINE_GUID(CLSID_IRangeList, 0xfd853cea, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
35 cpp_quote("DEFINE_GUID(CLSID_IIMAPTransport, 0xfd853ceb, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
36 cpp_quote("DEFINE_GUID(CLSID_IHTTPMailTransport, 0x5a580c11, 0xe5eb, 0x11d1, 0xa8, 0x6e, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
37 cpp_quote("DEFINE_GUID(CLSID_IPropFindRequest, 0xbb847b8a, 0x054a, 0x11d2, 0xa8, 0x94, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
38 cpp_quote("DEFINE_GUID(CLSID_IPropPatchRequest, 0xea678830, 0x235d, 0x11d2, 0xa8, 0xb6, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
39 
40 /* Error Codes */
41 
42 cpp_quote("#ifndef HR_E")
43 cpp_quote("#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)")
44 cpp_quote("#endif")
45 cpp_quote("#ifndef HR_S")
46 cpp_quote("#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)")
47 cpp_quote("#endif")
48 
49 /* General Error Codes */
50 cpp_quote("#define IXP_E_LOAD_SICILY_FAILED HR_E(0xCC00)")
51 cpp_quote("#define IXP_E_INVALID_CERT_CN HR_E(0xCC01)")
52 cpp_quote("#define IXP_E_INVALID_CERT_DATE HR_E(0xCC02)")
53 cpp_quote("#define IXP_E_ALREADY_CONNECTED HR_E(0xCC03)")
54 cpp_quote("#define IXP_E_CONN HR_E(0xCC04)")
55 cpp_quote("#define IXP_E_NOT_CONNECTED HR_E(0xCC05)")
56 cpp_quote("#define IXP_E_CONN_SEND HR_E(0xCC06)")
57 cpp_quote("#define IXP_E_WOULD_BLOCK HR_E(0xCC07)")
58 cpp_quote("#define IXP_E_INVALID_STATE HR_E(0xCC08)")
59 cpp_quote("#define IXP_E_CONN_RECV HR_E(0xCC09)")
60 cpp_quote("#define IXP_E_INCOMPLETE HR_E(0xCC0A)")
61 cpp_quote("#define IXP_E_BUSY HR_E(0xCC0B)")
62 cpp_quote("#define IXP_E_NOT_INIT HR_E(0xCC0C)")
63 cpp_quote("#define IXP_E_CANT_FIND_HOST HR_E(0xCC0D)")
64 cpp_quote("#define IXP_E_FAILED_TO_CONNECT HR_E(0xCC0E)")
65 cpp_quote("#define IXP_E_CONNECTION_DROPPED HR_E(0xCC0F)")
66 cpp_quote("#define IXP_E_INVALID_ADDRESS HR_E(0xCC10)")
67 cpp_quote("#define IXP_E_INVALID_ADDRESS_LIST HR_E(0xCC11)")
68 cpp_quote("#define IXP_E_SOCKET_READ_ERROR HR_E(0xCC12)")
69 cpp_quote("#define IXP_E_SOCKET_WRITE_ERROR HR_E(0xCC13)")
70 cpp_quote("#define IXP_E_SCOKET_INIT_ERROR HR_E(0xCC14)")
71 cpp_quote("#define IXP_E_SOCKET_CONNECT_ERROR HR_E(0xCC15)")
72 cpp_quote("#define IXP_E_INVALID_ACCOUNT HR_E(0xCC16)")
73 cpp_quote("#define IXP_E_USER_CANCEL HR_E(0xCC17)")
74 cpp_quote("#define IXP_E_SICILY_LOGON_FAILED HR_E(0xCC18)")
75 cpp_quote("#define IXP_E_TIMEOUT HR_E(0xCC19)")
76 cpp_quote("#define IXP_E_SECURE_CONNECT_FAILED HR_E(0xCC1A)")
77 
78 /* SMTP Failure Statuses */
79 cpp_quote("#define IXP_E_SMTP_RESPONSE_ERROR HR_E(0xCC60)")
80 cpp_quote("#define IXP_E_SMTP_UNKNOWN_RESPONSE_CODE HR_E(0xCC61)")
81 cpp_quote("#define IXP_E_SMTP_500_SYNTAX_ERROR HR_E(0xCC62)")
82 cpp_quote("#define IXP_E_SMTP_501_PARAM_SYNTAX HR_E(0xCC63)")
83 cpp_quote("#define IXP_E_SMTP_502_COMMAND_NOTIMPL HR_E(0xCC64)")
84 cpp_quote("#define IXP_E_SMTP_503_COMMAND_SEQ HR_E(0xCC65)")
85 cpp_quote("#define IXP_E_SMTP_504_COMMAND_PARAM_NOTIMPL HR_E(0xCC66)")
86 cpp_quote("#define IXP_E_SMTP_421_NOT_AVAILABLE HR_E(0xCC67)")
87 cpp_quote("#define IXP_E_SMTP_450_MAILBOX_BUSY HR_E(0xCC68)")
88 cpp_quote("#define IXP_E_SMTP_550_MAILBOX_NOT_FOUND HR_E(0xCC69)")
89 cpp_quote("#define IXP_E_SMTP_451_ERROR_PROCESSING HR_E(0xCC6A)")
90 cpp_quote("#define IXP_E_SMTP_551_USER_NOT_LOCAL HR_E(0xCC6B)")
91 cpp_quote("#define IXP_E_SMTP_452_NO_SYSTEM_STORAGE HR_E(0xCC6C)")
92 cpp_quote("#define IXP_E_SMTP_552_STORAGE_OVERFLOW HR_E(0xCC6D)")
93 cpp_quote("#define IXP_E_SMTP_553_MAILBOX_NAME_SYNTAX HR_E(0xCC6E)")
94 cpp_quote("#define IXP_E_SMTP_554_TRANSACT_FAILED HR_E(0xCC6F)")
95 
96 /* SMTP Success Statuses */
97 cpp_quote("#define IXP_E_SMTP_211_SYSTEM_STATUS HR_S(0xCC70)")
98 cpp_quote("#define IXP_E_SMTP_214_HELP_MESSAGE HR_S(0xCC71)")
99 cpp_quote("#define IXP_E_SMTP_220_READY HR_S(0xCC72)")
100 cpp_quote("#define IXP_E_SMTP_221_CLOSING HR_S(0xCC73)")
101 cpp_quote("#define IXP_E_SMTP_250_MAIL_ACTION_OKAY HR_S(0xCC74)")
102 cpp_quote("#define IXP_E_SMTP_251_FORWARDING_MAIL HR_S(0xCC75)")
103 cpp_quote("#define IXP_E_SMTP_354_START_MAIL_INPUT HR_S(0xCC76)")
104 cpp_quote("#define IXP_E_SMTP_CONTINUE HR_S(0xCC77)")
105 cpp_quote("#define IXP_E_SMTP_334_AUTH_READY_RESPONSE HR_S(0xCC78)")
106 cpp_quote("#define IXP_E_SMTP_245_AUTH_SUCCESS HR_S(0xCC79)")
107 
108 /* More SMTP Failure Statuses */
109 cpp_quote("#define IXP_E_SMTP_REJECTED_SENDER HR_E(0xCC78)")
110 cpp_quote("#define IXP_E_SMTP_REJECTED_RECIPIENTS HR_E(0xCC79)")
111 cpp_quote("#define IXP_E_SMTP_NO_SENDER HR_E(0xCC7A)")
112 cpp_quote("#define IXP_E_SMTP_NO_RECIPIENTS HR_E(0xCC7B)")
113 cpp_quote("#define IXP_E_SMTP_530_STARTTLS_REQUIRED HR_E(0xCC7C)")
114 cpp_quote("#define IXP_E_SMTP_NO_STARTTLS_SUPPORT HR_E(0xCC7D)")
115 cpp_quote("#define IXP_E_SMTP_NO_DSN_SUPPORT HR_E(0xCC7E)")
116 cpp_quote("#define IXP_E_SMTP_454_STARTTLS_FAILED HR_E(0xCC7F)")
117 
118 const SHORT CCHMAX_DOMAIN = 256;
120 
125 
126 typedef enum tagINETADDRTYPE
127 {
134 } INETADDRTYPE;
135 
137 const DWORD ADDR_DSN_MASK = 0xf0;
138 
139 typedef enum tagDSNRET
140 {
144 } DSNRET;
145 
146 typedef struct tagINETADDR
147 {
150 } INETADDR, *LPINETADDR;
151 
152 typedef struct tagINETADDRLIST
153 {
157 
158 typedef enum tagRASCONNTYPE
159 {
163 } RASCONNTYPE;
164 
166 {
180 
182 {
195 
197 {
202 
203 const DWORD DAVNAMESPACE_UNKNOWN = 0xFFFFFFFF;
209 
210 cpp_quote("#define ISF_SMTP_USEIPFORHELO 0x01")
211 cpp_quote("#define ISF_ALWAYSPROMPTFORPASSWORD 0x02")
212 /* for SMTP - send EHLO and use STARTTLS if available: */
213 cpp_quote("#define ISF_SSLONSAMEPORT 0x04")
214 cpp_quote("#define ISF_QUERYDSNSUPPORT 0x08")
215 /* for SMTP - send EHLO and use AUTH if available: */
216 cpp_quote("#define ISF_QUERYAUTHSUPPORT 0x10")
217 
219 {
221  CHAR szUserName[CCHMAX_USERNAME];
222  CHAR szPassword[CCHMAX_PASSWORD];
223  CHAR szServerName[CCHMAX_SERVER_NAME];
224  CHAR szConnectoid[CCHMAX_CONNECTOID];
232 
233 typedef enum tagIXPTYPE
234 {
241 } IXPTYPE;
242 
243 typedef enum tagIXPSTATUS
244 {
255 } IXPSTATUS;
256 
257 const DWORD DEPTH_INFINITY = 0xFFFFFFFE;
258 
260 
265 
267 
275 
276 [
277  object,
278  uuid(CA30F3FF-C9AC-11D1-9A3A-00C04FA309D4),
279  local
280 ]
282 {
284  [in] DWORD dwReserved,
285  [out] HWND *phwndParent);
286 
288  [out] LPDWORD pdwServerType,
289  [out] IImnAccount **ppAccount);
290 }
291 
292 [
293  object,
294  uuid(0DF2C7E1-3435-11D0-81D0-00C04FD85AB4),
295  local
296 ]
298 {
299  typedef struct tagIXPRESULT
300  {
308 
309  typedef enum tagCMDTYPE
310  {
313  } CMDTYPE;
314 
316  [in,out] DWORD *pdwTimeout,
317  [in] IInternetTransport *pTransport);
318 
320  [in,out] LPINETSERVER pInetServer,
321  [in] IInternetTransport *pTransport);
322 
323  INT OnPrompt(
324  [in] HRESULT hrError,
325  [in] LPCSTR pszText,
326  [in] LPCSTR pszCaption,
327  [in] UINT uType,
328  [in] IInternetTransport *pTransport);
329 
331  [in] IXPSTATUS ixpstatus,
332  [in] IInternetTransport *pTransport);
333 
335  [in] IXPSTATUS ixpstatus,
336  [in] LPIXPRESULT pResult,
337  [in] IInternetTransport *pTransport);
338 
340  [in] CMDTYPE cmdtype,
341  [in] LPSTR pszLine,
342  [in] HRESULT hrResponse,
343  [in] IInternetTransport *pTransport);
344 }
345 
346 [
347  object,
348  uuid(1F636C01-364E-11D0-81D3-00C04FD85AB4),
349  local
350 ]
352 {
353  const boolean iitAUTHENTICATE = TRUE;
354  const boolean iitDONT_AUTHENTICATe = FALSE;
355  const boolean iitENABLE_ONCOMMAND = TRUE;
356  const boolean iitDISABLE_ONCOMMAND = FALSE;
357 
358  typedef enum tagIXPISSTATE
359  {
364  } IXPISSTATE;
365 
367  [in,out] LPINETSERVER pInetServer);
368 
370 
372  [in] IXPISSTATE isstate);
373 
375  [in] IImnAccount *pAccount,
376  [in,out] LPINETSERVER pInetServer);
377 
379  [in] LPINETSERVER pInetServer,
380  [in] boolean fAuthenticate,
381  [in] boolean fCommandLogging);
382 
384 
386 
388 
390  [out] IXPSTATUS *pCurrentStatus);
391 }
392 
393 [
394  object,
395  uuid(1F636C02-364E-11D0-81D3-00C04FD85AB4),
396  local
397 ]
399 {
400  typedef enum tagSMTPCOMMAND
401  {
417  } SMTPCOMMAND;
418 
419  typedef struct tagSMTPSTREAM
420  {
425 
426  typedef struct tagSMTPRESPONSE
427  {
432 
433  [switch_type(SMTPCOMMAND), switch_is(command)]
434  union
435  {
437  [default];
438  } DUMMYUNIONNAME;
440 
442  [in] LPSMTPRESPONSE pResponse);
443 }
444 
445 [
446  object,
447  uuid(0DF2C7E2-3435-11D0-81D0-00C04FD85AB4),
448  local
449 ]
451 {
452  typedef struct tagSMTPMESSAGE
453  {
458 
460  [in] LPSTR pszLogFilePath,
461  [in] ISMTPCallback *pCallback);
462 
463 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
464 cpp_quote("#undef SendMessage")
465 cpp_quote("#endif")
466 
468  [in] LPSMTPMESSAGE pMessage);
469 
471  [in] LPSTR pszEmailFrom);
472 
474  [in] LPSTR pszEmailTo);
475 
477 
479 
481  [in] LPSTR pszAuthType);
482 
484 
486 
488 
490 
492  [in] IStream *pStream,
493  [in] ULONG cbSize);
494 }
495 
496 [
497  object,
498  uuid(0DF2C7EC-3435-11D0-81D0-00C04FD85AB4),
499  local
500 ]
502 {
503  typedef struct tagSMTPMESSAGE2
504  {
511 
512  HRESULT SetWindow();
513 
514  HRESULT ResetWindow();
515 
516  HRESULT SendMessage2(
517  [in] LPSMTPMESSAGE2 pMessage);
518 
519  HRESULT CommandRCPT2(
520  [in] LPSTR pszEmailTo,
521  [in] INETADDRTYPE atDSN);
522 }
523 
524 /* FIXME: IDAVNamespaceArbiter, IPropPatchRequest, IPropFindRequest, IPropFindMultiResponse, IPropFindResponse, IHTTPMailCallback, IHTTPMailTransport */
525 
526 [
527  object,
528  uuid(0DF2C7E3-3435-11D0-81D0-00C04FD85AB4),
529  local
530 ]
532 {
533  typedef enum tagPOP3COMMAND
534  {
550  POP3_CUSTOM
551  } POP3COMMAND;
552 
553  typedef struct tagPOP3RETR
554  {
561  } POP3RETR, *LPPOP3RETR;
562 
563  typedef struct tagPOP3TOP
564  {
572  } POP3TOP, *LPPOP3TOP;
573 
574  typedef struct tagPOP3LIST
575  {
578  } POP3LIST, *LPPOP3LIST;
579 
580  typedef struct tagPOP3UIDL
581  {
584  } POP3UIDL, *LPPOP3UIDL;
585 
586  typedef struct tagPOP3STAT
587  {
590  } POP3STAT, *LPPOP3STAT;
591 
592  typedef struct tagPOP3RESPONSE
593  {
599  [switch_type(POP3COMMAND), switch_is(command)]
600  union
601  {
602  [case(POP3_UIDL)] POP3UIDL rUidlInfo;
603  [case(POP3_STAT)] POP3STAT rStatInfo;
604  [case(POP3_LIST)] POP3LIST rListInfo;
605  [case(POP3_DELE)] DWORD dwPopId;
606  [case(POP3_RETR)] POP3RETR rRetrInfo;
607  [case(POP3_TOP)] POP3TOP rTopInfo;
608  [default];
609  } DUMMYUNIONNAME;
610  } POP3RESPONSE, *LPPOP3RESPONSE;
611 
612  HRESULT OnResponse(
613  [in] LPPOP3RESPONSE pResponse);
614 }
615 
616 [
617  object,
618  uuid(0DF2C7E4-3435-11D0-81D0-00C04FD85AB4),
619  local
620 ]
622 {
623  typedef enum tagPOP3CMDTYPE
624  {
627  POP3CMD_GET_ALL
628  } POP3CMDTYPE;
629 
630  typedef enum tagPOP3MARKTYPE
631  {
632  POP3_MARK_FOR_TOP = 0x01,
633  POP3_MARK_FOR_RETR = 0x02,
634  POP3_MARK_FOR_DELE = 0x04,
635  POP3_MARK_FOR_UIDL = 0x08,
636  POP3_MARK_FOR_LIST = 0x10
637  } POP3MARKTYPE;
638 
640  [in] LPSTR pszLogFilePath,
641  [in] IPOP3Callback *pCallback);
642 
643  HRESULT MarkItem(
644  [in] POP3MARKTYPE marktype,
645  [in] DWORD dwPopId,
646  [in] boolean fMarked);
647 
649  [in] LPSTR pszAuthType);
650 
651  HRESULT CommandUSER(
652  [in] LPSTR pszUserName);
653 
654  HRESULT CommandPASS(
655  [in] LPSTR pszPassword);
656 
657  HRESULT CommandLIST(
658  [in] POP3CMDTYPE cmdtype,
659  [in] DWORD dwPopId);
660 
661  HRESULT CommandTOP(
662  [in] POP3CMDTYPE cmdtype,
663  [in] DWORD dwPopId,
664  [in] DWORD cPreviewLines);
665 
667 
668  HRESULT CommandSTAT();
669 
670  HRESULT CommandNOOP();
671 
673 
674  HRESULT CommandUIDL(
675  [in] POP3CMDTYPE cmdtype,
676  [in] DWORD dwPopId);
677 
678  HRESULT CommandDELE(
679  [in] POP3CMDTYPE cmdtype,
680  [in] DWORD dwPopId);
681 
682  HRESULT CommandRETR(
683  [in] POP3CMDTYPE cmdtype,
684  [in] DWORD dwPopId);
685 }
686 
687 /* FIXME: INNTPCallback, INNTPTransport */
688 
689 [
690  object,
691  uuid(8C438160-4EF6-11d0-874F-00AA00530EE9),
692  local,
693 ]
694 interface IRangeList : IUnknown
695 {
696  const ULONG RL_RANGE_ERROR = ((ULONG)-1);
697  const ULONG RL_LAST_MESSAGE = ((ULONG)-1);
698 
699  HRESULT Clear();
700 
701  HRESULT IsInRange(
702  [in] const ULONG value);
703 
704  HRESULT Min(
705  [out] ULONG *pulMin);
706 
707  HRESULT Max(
708  [out] ULONG *pulMax);
709 
710  HRESULT Save(
711  [out] byte **ppbDestination,
712  [out] ULONG *pulSizeOfDestination);
713 
714  HRESULT Load(
715  [in, size_is(ulSizeOfSource)] byte *pbSource,
716  [in] const ULONG ulSizeOfSource);
717 
718  HRESULT AddRange(
719  [in] const ULONG low,
720  [in] const ULONG high);
721 
722  HRESULT AddSingleValue(
723  [in] const ULONG value);
724 
725  HRESULT AddRangeList(
726  [in] const IRangeList *prl);
727 
728  HRESULT DeleteRange(
729  [in] const ULONG low,
730  [in] const ULONG high);
731 
732  HRESULT DeleteSingleValue(
733  [in] const ULONG value);
734 
735  HRESULT DeleteRangeList(
736  [in] const IRangeList *prl);
737 
738  HRESULT MinOfRange(
739  [in] const ULONG value,
740  [out] ULONG *pulMinOfRange);
741 
742  HRESULT MaxOfRange(
743  [in] const ULONG value,
744  [out] ULONG *pulMaxOfRange);
745 
746  HRESULT RangeToIMAPString(
747  [out] LPSTR *ppszDestination,
748  [out] LPDWORD pdwLengthOfDestination);
749 
750  HRESULT Next(
751  [in] const ULONG current,
752  [out] ULONG *pulNext);
753 
754  HRESULT Prev(
755  [in] const ULONG current,
756  [out] ULONG *pulPrev);
757 
758  HRESULT Cardinality(
759  [out] ULONG *pulCardinality);
760 
761  HRESULT CardinalityFrom(
762  [in] const ULONG ulStartPoint,
763  [out] ULONG *pulCardinalityFrom);
764 }
765 
766 [
767  object,
768  uuid(E9E9D8A3-4EDD-11d0-874F-00AA00530EE9),
769  local
770 ]
772 {
774  const IMAP_MBOXFLAGS IMAP_MBOX_NOFLAGS = 0x0;
775  const IMAP_MBOXFLAGS IMAP_MBOX_MARKED = 0x1;
776  const IMAP_MBOXFLAGS IMAP_MBOX_NOINFERIORS = 0x2;
777  const IMAP_MBOXFLAGS IMAP_MBOX_NOSELECT = 0x4;
778  const IMAP_MBOXFLAGS IMAP_MBOX_UNMARKED = 0x8;
779  const IMAP_MBOXFLAGS IMAP_MBOX_ALLFLAGS = 0xf;
780 
782  {
800  irtUPDATE_MSG_EX
801  } IMAP_RESPONSE_TYPE;
802 
803  typedef struct tagFETCH_BODY_PART
804  {
814  } FETCH_BODY_PART;
815 
816  typedef struct tagFETCH_CMD_RESULTS
817  {
830 
831  typedef struct tagIMAPADDR
832  {
838  } IMAPADDR;
839 
840  typedef struct tagFETCH_CMD_RESULTS_EX
841  {
868 
869  typedef struct tagMBOX_MSGCOUNT
870  {
877  } MBOX_MSGCOUNT;
878 
880  {
885 
886  typedef struct tagIMAP_STATUS_RESPONSE
887  {
900 
901  typedef struct tagAPPEND_PROGRESS
902  {
905  } APPEND_PROGRESS;
906 
907  typedef [switch_type(IMAP_RESPONSE_TYPE)] union tagIMAP_RESPONSE_DATA
908  {
909  [case (irtMAILBOX_UPDATE)] MBOX_MSGCOUNT *pmcMsgCount;
910  [case (irtDELETED_MSG)] DWORD dwDeletedMsgSeqNum;
911  [case (irtFETCH_BODY)] FETCH_BODY_PART *pFetchBodyPart;
912  [case (irtUPDATE_MSG)] FETCH_CMD_RESULTS *pFetchResults;
913  [case (irtAPPLICABLE_FLAGS, irtPERMANENT_FLAGS)] IMAP_MSGFLAGS imfImapMessageFlags;
914  [case (irtUIDVALIDITY)] DWORD dwUIDValidity;
915  [case (irtREADWRITE_STATUS)] BOOL bReadWrite;
916  [case (irtSEARCH)] IRangeList *prlSearchResults;
917  [case (irtMAILBOX_LISTING)] IMAP_LISTLSUB_RESPONSE illrdMailboxListing;
918  [case (irtMAILBOX_STATUS)] IMAP_STATUS_RESPONSE *pisrStatusResponse;
919  [case (irtAPPEND_PROGRESS)] APPEND_PROGRESS *papAppendProgress;
920  [case (irtUPDATE_MSG_EX)] FETCH_CMD_RESULTS_EX *pFetchResultsEx;
922 
923  typedef struct tagIMAP_RESPONSE
924  {
930  [switch_is(irtResponseType)] IMAP_RESPONSE_DATA irdResponseData;
931  } IMAP_RESPONSE;
932 
933  HRESULT OnResponse([in] const IMAP_RESPONSE *pirIMAPResponse);
934 }
935 
936 [
937 object,
938 uuid(E9E9D8A8-4EDD-11d0-874F-00AA00530EE9),
939 local,
940 ]
942 {
943  const DWORD IMAP_CAPABILITY_IMAP4 = 0x1;
944  const DWORD IMAP_CAPABILITY_IMAP4rev1 = 0x2;
945  const DWORD IMAP_CAPABILITY_IDLE = 0x4;
946  const DWORD IMAP_CAPABILITY_ALLFLAGS = 0x7;
947 
949  [in] LPSTR pszLogFilePath,
950  [in] IIMAPCallback *pCBHandler);
951 
952  HRESULT NewIRangeList(
953  [out] IRangeList **pprlNewRangeList);
954 
955  HRESULT Capability(
956  [out] DWORD *pdwCapabilityFlags);
957 
958  HRESULT Select(
959  [in] WPARAM wParam,
960  [in] LPARAM lParam,
961  [in] IIMAPCallback *pCBHandler,
962  [in] LPSTR lpszMailboxName);
963 
964  HRESULT Examine(
965  [in] WPARAM wParam,
966  [in] LPARAM lParam,
967  [in] IIMAPCallback *pCBHandler,
968  [in] LPSTR lpszMailboxName);
969 
970  HRESULT Create(
971  [in] WPARAM wParam,
972  [in] LPARAM lParam,
973  [in] IIMAPCallback *pCBHandler,
974  [in] LPSTR lpszMailboxName);
975 
976  HRESULT Delete(
977  [in] WPARAM wParam,
978  [in] LPARAM lParam,
979  [in] IIMAPCallback *pCBHandler,
980  [in] LPSTR lpszMailboxName);
981 
982  HRESULT Rename(
983  [in] WPARAM wParam,
984  [in] LPARAM lParam,
985  [in] IIMAPCallback *pCBHandler,
986  [in] LPSTR lpszMailboxName,
987  [in] LPSTR lpszNewMailboxName);
988 
989  HRESULT Subscribe(
990  [in] WPARAM wParam,
991  [in] LPARAM lParam,
992  [in] IIMAPCallback *pCBHandler,
993  [in] LPSTR lpszMailboxName);
994 
995  HRESULT Unsubscribe(
996  [in] WPARAM wParam,
997  [in] LPARAM lParam,
998  [in] IIMAPCallback *pCBHandler,
999  [in] LPSTR lpszMailboxName);
1000 
1001  HRESULT List(
1002  [in] WPARAM wParam,
1003  [in] LPARAM lParam,
1004  [in] IIMAPCallback *pCBHandler,
1005  [in] LPSTR lpszMailboxNameReference,
1006  [in] LPSTR lpszMailboxNamePattern);
1007 
1008  HRESULT Lsub(
1009  [in] WPARAM wParam,
1010  [in] LPARAM lParam,
1011  [in] IIMAPCallback *pCBHandler,
1012  [in] LPSTR lpszMailboxNameReference,
1013  [in] LPSTR lpszMailboxNamePattern);
1014 
1015  HRESULT Append(
1016  [in] WPARAM wParam,
1017  [in] LPARAM lParam,
1018  [in] IIMAPCallback *pCBHandler,
1019  [in] LPSTR lpszMailboxName,
1020  [in] LPSTR lpszMessageFlags,
1021  [in] FILETIME ftMessageDateTime,
1022  [in] LPSTREAM lpstmMessageToSave);
1023 
1024  HRESULT Close(
1025  [in] WPARAM wParam,
1026  [in] LPARAM lParam,
1027  [in] IIMAPCallback *pCBHandler);
1028 
1029  HRESULT Expunge(
1030  [in] WPARAM wParam,
1031  [in] LPARAM lParam,
1032  [in] IIMAPCallback *pCBHandler);
1033 
1034  HRESULT Search(
1035  [in] WPARAM wParam,
1036  [in] LPARAM lParam,
1037  [in] IIMAPCallback *pCBHandler,
1038  [in] LPSTR lpszSearchCriteria,
1039  [in] boolean bReturnUIDs,
1040  [in] IRangeList *pMsgRange,
1041  [in] boolean bUIDRangeList);
1042 
1043  HRESULT Fetch(
1044  [in] WPARAM wParam,
1045  [in] LPARAM lParam,
1046  [in] IIMAPCallback *pCBHandler,
1047  [in] IRangeList *pMsgRange,
1048  [in] boolean bUIDMsgRange,
1049  [in] LPSTR lpszFetchArgs);
1050 
1051  HRESULT Store(
1052  [in] WPARAM wParam,
1053  [in] LPARAM lParam,
1054  [in] IIMAPCallback *pCBHandler,
1055  [in] IRangeList *pMsgRange,
1056  [in] boolean bUIDRangeList,
1057  [in] LPSTR lpszStoreArgs);
1058 
1059  HRESULT Copy(
1060  [in] WPARAM wParam,
1061  [in] LPARAM lParam,
1062  [in] IIMAPCallback *pCBHandler,
1063  [in] IRangeList *pMsgRange,
1064  [in] boolean bUIDRangeList,
1065  [in] LPSTR lpszMailboxName);
1066 
1067  HRESULT Noop(
1068  [in] WPARAM wParam,
1069  [in] LPARAM lParam,
1070  [in] IIMAPCallback *pCBHandler);
1071 
1072  HRESULT ResizeMsgSeqNumTable(
1073  [in] DWORD dwSizeOfMbox);
1074 
1075  HRESULT UpdateSeqNumToUID(
1076  [in] DWORD dwMsgSeqNum,
1077  [in] DWORD dwUID);
1078 
1079  HRESULT RemoveSequenceNum(
1080  [in] DWORD dwDeletedMsgSeqNum);
1081 
1082  HRESULT MsgSeqNumToUID(
1083  [in] DWORD dwMsgSeqNum,
1084  [out] DWORD *pdwUID);
1085 
1086  HRESULT GetMsgSeqNumToUIDArray(
1087  [out] DWORD **ppdwMsgSeqNumToUIDArray,
1088  [out] DWORD *pdwNumberOfElements);
1089 
1090  HRESULT GetHighestMsgSeqNum(
1091  [out] DWORD *pdwHighestMSN);
1092 
1093  HRESULT ResetMsgSeqNumToUID();
1094 
1095  HRESULT SetDefaultCBHandler(
1096  [in] IIMAPCallback *pCBHandler);
1097 
1098  HRESULT Status(
1099  [in] WPARAM wParam,
1100  [in] LPARAM lParam,
1101  [in] IIMAPCallback *pCBHandler,
1102  [in] LPSTR pszMailboxName,
1103  [in] LPSTR pszStatusCmdArgs);
1104 }
1105 
1106 #if 0
1107 cpp_quote("HRESULT WINAPI CreateRASTransport(IRASTransport **ppTransport);")
1108 cpp_quote("HRESULT WINAPI CreateNNTPTransport(INNTPTransport **ppTransport);")
1109 cpp_quote("HRESULT WINAPI CreateIMAPTransport2(IIMAPTransport2 **ppTransport);")
1110 #endif
1111 cpp_quote("HRESULT WINAPI CreateRangeList(IRangeList **ppRangeList);")
IXP_E_SMTP_454_STARTTLS_FAILED(n) const SHORT CCHMAX_DOMAIN
Definition: imnxport.idl:118
HRESULT InetServerFromAccount([in] IImnAccount *pAccount, [in, out] LPINETSERVER pInetServer)
HRESULT WINAPI CreateSMTPTransport(ISMTPTransport **ppTransport)
struct ISMTPTransport::tagSMTPMESSAGE * LPSMTPMESSAGE
const DWORD ADDR_TOFROM_MASK
Definition: imnxport.idl:136
#define TRUE
Definition: types.h:120
HRESULT CommandHELO()
IPOP3Transport * pTransport
Definition: imnxport.idl:597
HRESULT WINAPI CreatePOP3Transport(IPOP3Transport **ppTransport)
FETCH_CMD_RESULTS_EX * pFetchResultsEx
Definition: imnxport.idl:920
GLint x0
Definition: linetemp.h:95
struct ITransportCallback::tagIXPRESULT * LPIXPRESULT
const IMAP_MSGFLAGS IMAP_MSG_NOFLAGS
Definition: imnxport.idl:268
CHAR szEmail[CCHMAX_EMAIL_ADDRESS]
Definition: imnxport.idl:149
tagIXPSTATUS
Definition: imnxport.idl:243
HRESULT SendMessage([in] LPSMTPMESSAGE pMessage)
HRESULT SendDataStream([in] IStream *pStream, [in] ULONG cbSize)
enum tagHTTPMAILPROPTYPE HTTPMAILPROPTYPE
HRESULT CommandEHLO()
enum ISMTPCallback::tagSMTPCOMMAND SMTPCOMMAND
tagHTTPMAILSPECIALFOLDER
Definition: imnxport.idl:181
const SHORT CCHMAX_CONNECTOID
Definition: imnact.idl:45
struct tagIMAPADDR * pNext
Definition: imnxport.idl:837
_In_ BOOLEAN Create
Definition: pstypes.h:511
DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4)
const boolean iitAUTHENTICATE
Definition: imnxport.idl:353
char CHAR
Definition: xmlstorage.h:175
const boolean iitDISABLE_ONCOMMAND
Definition: imnxport.idl:356
ISF_QUERYAUTHSUPPORT struct INETSERVER * LPINETSERVER
HRESULT CommandDATA()
HRESULT Disconnect()
static BOOL Append(LPWSTR *ppszText, DWORD *pdwTextLen, LPCWSTR pszAppendText, DWORD dwAppendLen)
Definition: text.c:26
interface IStream * LPSTREAM
Definition: objfwd.h:10
HRESULT CommandQUIT()
const SHORT CCHMAX_SERVER_NAME
Definition: imnact.idl:41
union ISMTPCallback::tagSMTPRESPONSE::@2891 DUMMYUNIONNAME
UINT_PTR WPARAM
Definition: windef.h:207
char * LPSTR
Definition: xmlstorage.h:182
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
HRESULT GetServerInfo([in, out] LPINETSERVER pInetServer)
struct ITransportCallback::tagIXPRESULT IXPRESULT
int32_t INT
Definition: typedefs.h:56
WPARAM wParam
Definition: combotst.c:138
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
IMAP_STATUS_RESPONSE * pisrStatusResponse
Definition: imnxport.idl:918
RASCONNTYPE rasconntype
Definition: imnxport.idl:225
const SHORT CCHMAX_ACCOUNT_NAME
Definition: imnact.idl:40
IMAP_LISTLSUB_RESPONSE illrdMailboxListing
Definition: imnxport.idl:917
const DWORD DEPTH_INFINITY
Definition: imnxport.idl:257
IMAP_RESPONSE_TYPE irtResponseType
Definition: imnxport.idl:929
DWORD dwFlags
Definition: imnxport.idl:230
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
unsigned int BOOL
Definition: ntddk_ex.h:94
short SHORT
Definition: pedump.c:59
HRESULT OnCommand([in] CMDTYPE cmdtype, [in] LPSTR pszLine, [in] HRESULT hrResponse, [in] IInternetTransport *pTransport)
#define Max(a, b)
Definition: cdprocs.h:70
const DWORD DAVNAMESPACE_HOTMAIL
Definition: imnxport.idl:205
static int Save(const char **args)
Definition: vfdcmd.c:1851
HRESULT IsState([in] IXPISSTATE isstate)
struct tagINETADDR * LPINETADDR
LONG_PTR LPARAM
Definition: windef.h:208
struct ISMTPCallback::tagSMTPRESPONSE SMTPRESPONSE
const MEMBERINFOFLAGS HTTP_MEMBERINFO_COMMONPROPS
Definition: imnxport.idl:261
const boolean iitDONT_AUTHENTICATe
Definition: imnxport.idl:354
const char * LPCSTR
Definition: xmlstorage.h:183
struct ISMTPCallback::tagSMTPSTREAM * LPSMTPSTREAM
const DWORD DEFAULT_NNTP_PORT
Definition: imnxport.idl:124
HRESULT GetAccount([out] LPDWORD pdwServerType, [out] IImnAccount **ppAccount)
const DWORD DAVNAMESPACE_UNKNOWN
Definition: imnxport.idl:203
enum IIMAPCallback::tagIMAP_RESPONSE_TYPE IMAP_RESPONSE_TYPE
tagHTTPMAILPROPTYPE
Definition: imnxport.idl:165
enum tagINETADDRTYPE INETADDRTYPE
LIST_ENTRY List
Definition: psmgr.c:57
HRESULT OnResponse([in] LPSMTPRESPONSE pResponse)
struct tagINETADDR INETADDR
LONG HRESULT
Definition: typedefs.h:77
HRESULT GetParentWindow([in] DWORD dwReserved, [out] HWND *phwndParent)
BOOL fTrySicily
Definition: imnxport.idl:228
const IMAP_MSGFLAGS IMAP_MSG_SEEN
Definition: imnxport.idl:272
#define WINAPI
Definition: msvc.h:8
HRESULT HandsOffCallback()
enum IPOP3Callback::tagPOP3COMMAND POP3COMMAND
static FILE * out
Definition: regtests2xml.c:44
HRESULT GetStatus([out] IXPSTATUS *pCurrentStatus)
HRESULT Connect([in] LPINETSERVER pInetServer, [in] boolean fAuthenticate, [in] boolean fCommandLogging)
unsigned long DWORD
Definition: ntddk_ex.h:95
const DWORD ADDR_DSN_MASK
Definition: imnxport.idl:137
const IMAP_MSGFLAGS IMAP_MSG_ALLFLAGS
Definition: imnxport.idl:274
#define Min(a, b)
Definition: cdprocs.h:66
HRESULT OnError([in] IXPSTATUS ixpstatus, [in] LPIXPRESULT pResult, [in] IInternetTransport *pTransport)
HRESULT DropConnection()
tagHTTPMAILCONTACTTYPE
Definition: imnxport.idl:196
enum tagIXPTYPE IXPTYPE
enum ITransportCallback::tagCMDTYPE CMDTYPE
DWORD IMAP_MBOXFLAGS
Definition: imnxport.idl:773
DWORD MEMBERINFOFLAGS
Definition: imnxport.idl:259
const MEMBERINFOFLAGS HTTP_MEMBERINFO_ALLPROPS
Definition: imnxport.idl:264
HRESULT InitNew([in] LPSTR pszLogFilePath, [in] ISMTPCallback *pCallback)
const DWORD DAVNAMESPACE_HTTPMAIL
Definition: imnxport.idl:206
struct ISMTPTransport::tagSMTPMESSAGE SMTPMESSAGE
#define interface
Definition: basetyps.h:61
enum tagHTTPMAILCONTACTTYPE HTTPMAILCONTACTTYPE
Status
Definition: gdiplustypes.h:24
const DWORD DEFAULT_SMTP_PORT
Definition: imnxport.idl:123
#define local
Definition: zutil.h:30
const MEMBERINFOFLAGS HTTP_MEMBERINFO_FOLDERPROPS
Definition: imnxport.idl:262
IXPTYPE GetIXPType()
static const WCHAR E[]
Definition: oid.c:1253
const boolean iitENABLE_ONCOMMAND
Definition: imnxport.idl:355
VOID Copy(PVOID Src, PVOID Dst, ULONG NumBytes)
Definition: mmixer.c:131
const SHORT CCHMAX_PASSWORD
Definition: imnact.idl:42
HRESULT CommandDOT()
enum tagDSNRET DSNRET
HRESULT WINAPI CreateIMAPTransport(IIMAPTransport **ppTransport)
GLuint in
Definition: glext.h:9616
const SHORT CCHMAX_EMAIL_ADDRESS
Definition: imnact.idl:44
Definition: sacdrv.h:267
const DWORD DEFAULT_POP3_PORT
Definition: imnxport.idl:122
struct ISMTPCallback::tagSMTPRESPONSE * LPSMTPRESPONSE
const IMAP_MSGFLAGS IMAP_MSG_DELETED
Definition: imnxport.idl:271
const MEMBERINFOFLAGS HTTP_MEMBERINFO_MESSAGEPROPS
Definition: imnxport.idl:263
HRESULT CommandAUTH([in] LPSTR pszAuthType)
unsigned int UINT
Definition: ndis.h:50
const IMAP_MSGFLAGS IMAP_MSG_FLAGGED
Definition: imnxport.idl:270
enum tagIXPSTATUS IXPSTATUS
DWORD IMAP_MSGFLAGS
Definition: imnxport.idl:266
const SHORT CCHMAX_USERNAME
Definition: imnact.idl:43
const DWORD DEFAULT_IMAP_PORT
Definition: imnxport.idl:121
enum tagHTTPMAILSPECIALFOLDER HTTPMAILSPECIALFOLDER
HRESULT OnTimeout([in, out] DWORD *pdwTimeout, [in] IInternetTransport *pTransport)
const DWORD DAVNAMESPACE_MAIL
Definition: imnxport.idl:207
ISMTPTransport * pTransport
Definition: imnxport.idl:431
LPINETADDR prgAddress
Definition: imnxport.idl:155
uint32_t * LPDWORD
Definition: typedefs.h:57
const DWORD DAVNAMESPACE_CONTACTS
Definition: imnxport.idl:208
Definition: msctf.idl:510
unsigned int ULONG
Definition: retypes.h:1
DWORD dwTimeout
Definition: imnxport.idl:229
struct tagINETADDRLIST INETADDRLIST
HRESULT CommandRSET()
struct ISMTPCallback::tagSMTPSTREAM SMTPSTREAM
struct tagINETADDRLIST * LPINETADDRLIST
void Clear(USHORT Window)
Definition: hardware.c:705
tagRASCONNTYPE
Definition: imnxport.idl:158
ISF_QUERYAUTHSUPPORT struct INETSERVER INETSERVER
FETCH_CMD_RESULTS * pFetchResults
Definition: imnxport.idl:912
INT OnPrompt([in] HRESULT hrError, [in] LPCSTR pszText, [in] LPCSTR pszCaption, [in] UINT uType, [in] IInternetTransport *pTransport)
enum tagRASCONNTYPE RASCONNTYPE
tagIXPTYPE
Definition: imnxport.idl:233
enum IInternetTransport::tagIXPISSTATE IXPISSTATE
HRESULT OnLogonPrompt([in, out] LPINETSERVER pInetServer, [in] IInternetTransport *pTransport)
HRESULT CommandMAIL([in] LPSTR pszEmailFrom)
HRESULT CommandRCPT([in] LPSTR pszEmailTo)
tagDSNRET
Definition: imnxport.idl:139
DWORD dwPort
Definition: imnxport.idl:226
const IMAP_MSGFLAGS IMAP_MSG_DRAFT
Definition: imnxport.idl:273
BOOL Delete(LPCTSTR ServiceName)
Definition: delete.c:12
INETADDRTYPE addrtype
Definition: imnxport.idl:148
const DWORD DAVNAMESPACE_DAV
Definition: imnxport.idl:204
tagINETADDRTYPE
Definition: imnxport.idl:126
const IMAP_MSGFLAGS IMAP_MSG_ANSWERED
Definition: imnxport.idl:269
LPARAM lParam
Definition: combotst.c:139
void * object
Definition: jmemsys.h:48
const SHORT CCHMAX_PHONE_NUMBER
Definition: imnxport.idl:119
#define F(x, y, z)
Definition: md5.c:51
struct task_struct * current
Definition: linux.c:32
IMAP_RESPONSE_DATA irdResponseData
Definition: imnxport.idl:930
HRESULT OnStatus([in] IXPSTATUS ixpstatus, [in] IInternetTransport *pTransport)