2 * Copyright 2007 Robert Shearman for CodeWeavers
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.
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.
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
23 #define DECLARE_HANDLE(name) typedef void *name
25 interface IMimeMessageCallback;
26 interface IMimeEnumAddressTypes;
27 interface IMimeMessageParts;
28 interface IMimeMessageTree;
30 interface IMimeEnumProperties;
32 cpp_quote("DEFINE_GUID(CLSID_IMimeBody, 0xfd853cdb, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
33 cpp_quote("DEFINE_GUID(CLSID_IMimeAllocator, 0xfd853cdd, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
34 cpp_quote("DEFINE_GUID(CLSID_IMimeMessage, 0xfd853ce3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
36 cpp_quote("#define MIME_E_REG_CREATE_KEY 0x800cce01")
37 cpp_quote("#define MIME_E_REG_QUERY_INFO 0x800cce02")
38 cpp_quote("#define MIME_E_INVALID_ENCTYPE 0x800cce03")
39 cpp_quote("#define MIME_E_BOUNDARY_MISMATCH 0x800cce04")
40 cpp_quote("#define MIME_E_NOT_FOUND 0x800cce05")
41 cpp_quote("#define MIME_E_NO_DATA 0x800cce05")
42 cpp_quote("#define MIME_E_BUFFER_TOO_SMALL 0x800cce06")
44 cpp_quote("typedef enum tagMIMEPROPID {")
45 cpp_quote(" PID_HDR_NEWSGROUP = 2,")
46 cpp_quote(" PID_HDR_NEWSGROUPS = 3,")
47 cpp_quote(" PID_HDR_REFS = 4,")
48 cpp_quote(" PID_HDR_SUBJECT = 5,")
49 cpp_quote(" PID_HDR_FROM = 6,")
50 cpp_quote(" PID_HDR_MESSAGEID = 7,")
51 cpp_quote(" PID_HDR_RETURNPATH = 8,")
52 cpp_quote(" PID_HDR_RR = 9,")
53 cpp_quote(" PID_HDR_RETRCPTO = 10,")
54 cpp_quote(" PID_HDR_APPARTO = 11,")
55 cpp_quote(" PID_HDR_DATE = 12,")
56 cpp_quote(" PID_HDR_RECEIVED = 13,")
57 cpp_quote(" PID_HDR_REPLYTO = 14,")
58 cpp_quote(" PID_HDR_XMAILER = 15,")
59 cpp_quote(" PID_HDR_BCC = 16,")
60 cpp_quote(" PID_HDR_MIMEVER = 17,")
61 cpp_quote(" PID_HDR_CNTTYPE = 18,")
62 cpp_quote(" PID_HDR_CNTXFER = 19,")
63 cpp_quote(" PID_HDR_CNTID = 20,")
64 cpp_quote(" PID_HDR_CNTDESC = 21,")
65 cpp_quote(" PID_HDR_CNTDISP = 22,")
66 cpp_quote(" PID_HDR_CNTBASE = 23,")
67 cpp_quote(" PID_HDR_CNTLOC = 24,")
68 cpp_quote(" PID_HDR_TO = 25,")
69 cpp_quote(" PID_HDR_PATH = 26,")
70 cpp_quote(" PID_HDR_FOLLOWUPTO = 27,")
71 cpp_quote(" PID_HDR_EXPIRES = 28,")
72 cpp_quote(" PID_HDR_CC = 29,")
74 cpp_quote(" PID_HDR_SENDER = 61,")
76 cpp_quote(" PID_HDR_INREPLYTO = 77,")
77 cpp_quote("} MIMEPROPID;")
79 cpp_quote("#define OID_HEADER_RELOAD_TYPE (0x00370000 | VT_UI4)")
83 uuid(e4b28371-83b0-11d0-8259-00c04fd85ab4),
88 importlib("stdole2.tlb");
90 DECLARE_HANDLE(HCHARSET);
91 DECLARE_HANDLE(HBODY);
92 DECLARE_HANDLE(HHEADERROW);
94 typedef HCHARSET *LPHCHARSET;
95 typedef HBODY *LPHBODY;
96 typedef HHEADERROW *LPHHEADERROW;
97 typedef DWORD TYPEDID;
98 typedef const PROPVARIANT *LPCPROPVARIANT;
99 typedef const BLOB *LPCBLOB;
101 typedef enum tagRELOADTYPE
105 RELOAD_HEADER_APPEND,
106 RELOAD_HEADER_REPLACE,
109 typedef enum tagMIMESAVETYPE
115 typedef enum tagCSETAPPLYTYPE
122 typedef enum tagENCODINGTYPE
140 const SHORT IET_DECODED = IET_BINARY;
142 const SHORT CCHMAX_HEADER_LINE = 1000;
145 uuid(c5588349-7f86-11d0-8252-00c04fd85ab4),
148 interface IMimeInternational : IUnknown
150 typedef [unique] IMimeInternational *LPMIMEINTERNATIONAL;
151 typedef DWORD CODEPAGEID;
153 const CODEPAGEID CP_USASCII = 1252;
154 const CODEPAGEID CP_UNICODE = 1200;
155 const CODEPAGEID CP_JAUTODETECT = 50932;
156 const CODEPAGEID CP_KAUTODETECT = 50949;
157 const CODEPAGEID CP_ISO2022JPESC = 50221;
158 const CODEPAGEID CP_ISO2022JPSIO = 50222;
160 const SHORT CCHMAX_CSET_NAME = 128;
161 const SHORT CCHMAX_LANG_NAME = 128;
162 const SHORT CCHMAX_FACE_NAME = 128;
164 typedef struct tagINETCSETINFO
166 CHAR szName[CCHMAX_CSET_NAME];
168 CODEPAGEID cpiWindows;
169 CODEPAGEID cpiInternet;
171 } INETCSETINFO, *LPINETCSETINFO;
173 typedef enum tagINETLANGMASK
178 ILM_HEADERCSET = 0x08,
180 ILM_FIXEDFONT = 0x20,
181 ILM_VARIABLEFONT = 0x40,
184 typedef struct tagCODEPAGEINFO
187 CODEPAGEID cpiCodePage;
188 BOOL fIsValidCodePage;
191 CODEPAGEID cpiFamily;
192 CHAR szName[CCHMAX_LANG_NAME];
193 CHAR szBodyCset[CCHMAX_CSET_NAME];
194 CHAR szHeaderCset[CCHMAX_CSET_NAME];
195 CHAR szWebCset[CCHMAX_CSET_NAME];
196 CHAR szFixedFont[CCHMAX_FACE_NAME];
197 CHAR szVariableFont[CCHMAX_FACE_NAME];
198 ENCODINGTYPE ietNewsDefault;
199 ENCODINGTYPE ietMailDefault;
201 } CODEPAGEINFO, *LPCODEPAGEINFO;
203 typedef struct tagRFC1522INFO
205 BOOL fRfc1522Allowed;
208 HCHARSET hRfc1522Cset;
209 } RFC1522INFO, *LPRFC1522INFO;
211 typedef enum tagCHARSETTYPE
219 HRESULT SetDefaultCharset(
220 [in] HCHARSET hCharset);
221 HRESULT GetDefaultCharset(
222 [out] LPHCHARSET phCharset);
223 HRESULT GetCodePageCharset(
224 [in] CODEPAGEID cpiCodePage,
225 [in] CHARSETTYPE ctCsetType,
226 [out] LPHCHARSET phCharset);
228 [in] LPCSTR pszCharset,
229 [out] LPHCHARSET phCharset);
230 HRESULT GetCharsetInfo(
231 [in] HCHARSET hCharset,
232 [in, out] LPINETCSETINFO pCsetInfo);
233 HRESULT GetCodePageInfo(
234 [in] CODEPAGEID cpiCodePage,
235 [in, out] LPCODEPAGEINFO pCodePageInfo);
236 HRESULT DecodeHeader(
237 [in] HCHARSET hCharset,
239 [in, out] LPPROPVARIANT pDecoded,
240 [in, out] LPRFC1522INFO pRfc1522Info);
241 HRESULT EncodeHeader(
242 [in] HCHARSET hCharset,
243 [in] LPPROPVARIANT pData,
244 [out] LPSTR *ppszEncoded,
245 [in, out] LPRFC1522INFO pRfc1522Info);
246 HRESULT ConvertBuffer(
247 [in] CODEPAGEID cpiSource,
248 [in] CODEPAGEID cpiDest,
250 [in, out] LPBLOB pOut,
251 [out] ULONG *pcbRead);
252 HRESULT ConvertString(
253 [in] CODEPAGEID cpiSource,
254 [in] CODEPAGEID cpiDest,
255 [in] LPPROPVARIANT pIn,
256 [in, out] LPPROPVARIANT pOut);
257 HRESULT MLANG_ConvertInetReset();
258 HRESULT MLANG_ConvertInetString(
259 [in] CODEPAGEID cpiSource,
260 [in] CODEPAGEID cpiDest,
262 [in] int *pnSizeOfSource,
263 [out] LPSTR pDestination,
264 [in] int *pnDstSize);
265 HRESULT Rfc1522Decode(
266 [in] LPCSTR pszValue,
267 [in] LPCSTR pszCharset,
269 [out] LPSTR *ppszDecoded);
270 HRESULT Rfc1522Encode(
271 [in] LPCSTR pszValue,
272 [in] HCHARSET hCharset,
273 [out] LPSTR *ppszEncoded);
277 uuid(c5588353-7f86-11d0-8252-00c04fd85ab4),
280 interface IMimeSecurity : IUnknown
282 typedef [unique] IMimeSecurity *LPMIMESECURITY;
284 cpp_quote("#ifdef __WINE_WINCRYPT_H")
285 cpp_quote("typedef PCCERT_CONTEXT PCX509CERT;")
287 typedef const void *PCX509CERT;
288 typedef void *HCERTSTORE;
291 typedef BLOB THUMBBLOB;
292 typedef void *HCAPICERTSTORE;
294 typedef enum tagCERTSTATE
297 CERTIFICATE_NOT_PRESENT,
299 CERTIFICATE_CHAIN_TOO_LONG,
300 CERTIFICATE_MISSING_ISSUER,
301 CERTIFICATE_CRL_LISTED,
302 CERTIFICATE_NOT_TRUSTED,
309 typedef enum tagCERTNAMETYPE
316 typedef enum tagCERTDATAID
322 typedef struct tagX509CERTRESULT
327 } X509CERTRESULT, *PX509CERTRESULT;
328 typedef const X509CERTRESULT *PCX509CERTRESULT;
330 HRESULT InitNew(void);
332 HRESULT CheckInit(void);
334 HRESULT EncodeMessage(
335 [in] IMimeMessageTree */*const*/ pTree,
339 [in] IMimeMessageTree */*const*/ pTree,
340 [in] HBODY hEncodeRoot,
343 HRESULT DecodeMessage(
344 [in] IMimeMessageTree */*const*/ pTree,
348 [in] IMimeMessageTree */*const*/ pTree,
349 [in] HBODY hDecodeRoot,
352 HRESULT EnumCertificates(
353 [in] HCAPICERTSTORE hc,
355 [in] PCX509CERT pPrev,
356 [out] PCX509CERT *ppCert);
358 HRESULT GetCertificateName(
359 [in] const PCX509CERT pX509Cert,
360 [in] const CERTNAMETYPE cn,
361 [out] LPSTR *ppszName);
363 HRESULT GetMessageType(
364 [in] const HWND hwndParent,
365 [in] IMimeBody */*const*/ pBody,
366 [out] DWORD */*const*/ pdwSecType);
369 [in] const PCX509CERT pX509Cert,
370 [in] const CERTDATAID dataid,
371 [out, ref] LPPROPVARIANT pValue);
375 uuid(fd853cd1-7f86-11d0-8252-00c04fd85ab4),
378 interface IMimeHeaderTable : IPersistStream
380 /* FIXME: fill this in */
384 uuid(fd853cec-7f86-11d0-8252-00c04fd85ab4),
387 interface IMimePropertySchema : IUnknown
389 typedef enum tagMIMEPROPFLAGS
394 MPF_HASPARAMS = 0x08,
399 /* FIXME: fill this in */
403 uuid(fd853cd3-7f86-11d0-8252-00c04fd85ab4),
406 interface IMimePropertySet : IPersistStreamInit
408 typedef [unique] IMimePropertySet *LPMIMEPROPERTYSET;
410 cpp_quote("#define PDF_ENCODED 0x00000001")
411 cpp_quote("#define PDF_NAMEINDATA 0x00000002")
412 cpp_quote("#define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)")
413 cpp_quote("#define PDF_NOCOMMENTS 0x00000008")
414 cpp_quote("#define PDF_SAVENOENCODE 0x00000010")
415 cpp_quote("#define PDF_VECTOR 0x00000020")
417 typedef struct tagMIMEPARAMINFO
421 } MIMEPARAMINFO, *LPMIMEPARAMINFO;
423 typedef enum tagPROPINFOMASK
426 PIM_ENCODINGTYPE = 0x02,
427 PIM_ROWNUMBER = 0x04,
431 PIM_VTDEFAULT = 0x40,
435 typedef struct tagMIMEPROPINFO
439 ENCODINGTYPE ietEncoding;
446 } MIMEPROPINFO, *LPMIMEPROPINFO;
447 typedef const MIMEPROPINFO *LPCMIMEPROPINFO;
451 [in,out] LPMIMEPROPINFO pInfo);
455 [in] LPCMIMEPROPINFO pInfo);
457 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
458 cpp_quote("#undef GetProp")
459 cpp_quote("#undef SetProp")
460 cpp_quote("#undef EnumProps")
465 [in,out] LPPROPVARIANT pValue);
470 [in] LPCPROPVARIANT pValue);
475 [in] LPPROPVARIANT pValue);
478 [in] LPCSTR pszName);
482 [in,unique] LPCSTR *prgszName,
483 [in] IMimePropertySet *pPropertySet);
487 [in] LPCSTR *prgszName,
488 [in] IMimePropertySet *pPropertySet);
490 HRESULT DeleteExcept(
492 [in] LPCSTR *prgszName);
496 [in] LPCSTR pszCriteria,
497 [in] boolean fSubString,
498 [in] boolean fCaseSensitive);
501 [out] LPHCHARSET phCharset);
504 [in] HCHARSET hCharset,
505 [in] CSETAPPLYTYPE applytype);
507 HRESULT GetParameters(
509 [out] ULONG *pcParams,
510 [out] LPMIMEPARAMINFO *pprgParam);
512 HRESULT IsContentType(
513 [in] LPCSTR pszPriType,
514 [in,unique] LPCSTR pszSubType);
516 HRESULT BindToObject(
518 [out,iid_is(riid)] void **ppvObject);
521 [out] IMimePropertySet **ppPropertySet);
524 [in] const TYPEDID oid,
525 [in] LPCPROPVARIANT pValue);
528 [in] const TYPEDID oid,
529 [in,out] LPPROPVARIANT pValue);
531 cpp_quote("#define EPF_NONAME 0x00000001")
535 [out] IMimeEnumProperties **ppEnum);
540 uuid(c558834a-7f86-11d0-8252-00c04fd85ab4),
543 interface IMimeAddressTable : IUnknown
545 typedef [unique] IMimeAddressTable *LPMIMEADDRESSTABLE;
547 DECLARE_HANDLE(HADDRESS);
548 typedef HADDRESS *LPHADDRESS;
549 typedef DWORD IADDRESSTYPE;
551 typedef enum tagADDRESSFORMAT
553 AFT_DISPLAY_FRIENDLY,
561 typedef struct tagADDRESSPROPS
565 ENCODINGTYPE ietFriendly;
573 THUMBBLOB tbEncryption;
577 } ADRESSPROPS, *LPADDRESSPROPS;
579 typedef struct tagADDRESSLIST
582 LPADDRESSPROPS prgAdr;
583 } ADDRESSLIST, *LPADDRESSLIST;
585 /* FIXME: fill this in */
589 uuid(ee519f11-851a-11d0-8252-00c04fd85ab4),
592 interface IMimeWebDocument : IUnknown
594 /* FIXME: fill this in */
598 uuid(c558834c-7f86-11d0-8252-00c04fd85ab4),
601 interface IMimeBody : IMimePropertySet
603 typedef [unique] IMimeBody *LPMIMEBODY;
605 typedef enum tagIMSGBODYTYPE
614 typedef struct tagBODYOFFSETS
616 DWORD cbBoundaryStart;
620 } BODYOFFSETS, *LPBODYOFFSETS;
622 typedef struct tagTRANSMITINFO
624 ENCODINGTYPE ietCurrent;
625 ENCODINGTYPE ietXmitMime;
626 ENCODINGTYPE ietXmit822;
632 } TRANSMITINFO, *LPTRANSMITINFO;
635 [in] IMSGBODYTYPE bodytype);
637 HRESULT SetDisplayName(
638 [in] LPCSTR pszDisplay);
640 HRESULT GetDisplayName(
641 [out] LPSTR *ppszDisplay);
644 [out] LPBODYOFFSETS pOffsets);
646 HRESULT GetCurrentEncoding(
647 [out] ENCODINGTYPE *pietEncoding);
649 HRESULT SetCurrentEncoding(
650 [in] ENCODINGTYPE ietEncoding);
652 HRESULT GetEstimatedSize(
653 [in] ENCODINGTYPE ietEncoding,
654 [out] ULONG *pcbSize);
657 [in] ENCODINGTYPE ietEncoding,
658 [in] IStream *pStream);
661 [in] ENCODINGTYPE ietEncoding,
662 [out] IStream **ppStream);
665 [in] ENCODINGTYPE ietEncoding,
666 [in,unique] LPCSTR pszPriType,
667 [in,unique] LPCSTR pszSubType,
669 [in,iid_is(riid)] LPVOID pvObject);
671 HRESULT EmptyData(void);
674 [in] IMimeBody *pBody);
676 HRESULT GetTransmitInfo(
677 [in,out] LPTRANSMITINFO pTransmitInfo);
680 [in] ENCODINGTYPE ietEncoding,
681 [in] LPCSTR pszFilePath);
684 [out] LPHBODY phBody);
689 uuid(fd853cd4-7f86-11d0-8252-00c04fd85ab4),
692 interface IMimeMessageTree : IPersistStreamInit
694 typedef [unique] IMimeMessageTree *LPMIMEMESSAGETREE;
696 const HBODY HBODY_ROOT = (HBODY)-1;
698 typedef enum tagBODYLOCATION
708 typedef struct tagFINDBODY
713 } FINDBODY, *LPFINDBODY;
715 HRESULT GetMessageSource(
716 [out] IStream **ppStream,
719 HRESULT GetMessageSize(
720 [out] ULONG *pcbSize,
723 HRESULT LoadOffsetTable(
724 [in] IStream *pStream);
726 HRESULT SaveOffsetTable(
727 [in] IStream *pStream,
731 [out] DWORD *pdwFlags);
736 HRESULT HandsOffStorage();
738 HRESULT BindToObject(
739 [in] const HBODY hBody,
741 [out, iid_is(riid)] void **ppvObject);
746 [in] IStream *pStream);
749 [in] BODYLOCATION location,
751 [out] LPHBODY phBody);
754 [in] BODYLOCATION location,
756 [out] LPHBODY phBody);
764 [in] BODYLOCATION location);
768 [in] boolean fRecurse,
769 [out] ULONG *pcBodies);
772 [in, out] LPFINDBODY pFindBody,
773 [out] LPHBODY phBody);
776 [in, out] LPFINDBODY pFindBody,
777 [out] LPHBODY phBody);
784 [out] LPHBODY phBody);
788 [in] LPCSTR pszSubType,
789 [out] LPHBODY phMultipart);
791 HRESULT GetBodyOffsets(
793 [in, out] LPBODYOFFSETS pOffsets);
796 [out] LPHCHARSET phCharset);
799 [in] HCHARSET hCharset,
800 [in] CSETAPPLYTYPE applytype);
804 [in] IMSGBODYTYPE bodytype);
806 HRESULT IsContentType(
808 [in] LPCSTR pszPriType,
809 [in] LPCSTR pszSubType);
811 HRESULT QueryBodyProp(
814 [in] LPCSTR pszCriteria,
815 [in] boolean fSubString,
816 [in] boolean fCaseSensitive);
822 [in, out] LPPROPVARIANT pValue);
828 [in] LPCPROPVARIANT pValue);
830 HRESULT DeleteBodyProp(
832 [in] LPCSTR pszName);
835 [in] const TYPEDID oid,
836 [in] LPCPROPVARIANT pValue);
839 [in] const TYPEDID oid,
840 [in, out] LPPROPVARIANT pValue);
844 uuid(fd853cd5-7f86-11d0-8252-00c04fd85ab4),
847 interface IMimeMessage : IMimeMessageTree
849 typedef [unique] IMimeMessage *LPMIMEMESSAGE;
851 typedef DWORD TEXTTYPE;
853 typedef enum tagIMSGFLAGS
855 IMF_ATTACHMENTS = 0x00000001,
856 IMF_MULTIPART = 0x00000002,
857 IMF_SUBMULTIPART = 0x00000004,
858 IMF_MIME = 0x00000008,
859 IMF_HTML = 0x00000010,
860 IMF_PLAIN = 0x00000020,
861 IMF_PARTIAL = 0x00000040,
862 IMF_SIGNED = 0x00000080,
863 IMF_ENCRYPTED = 0x00000100,
864 IMF_TNEF = 0x00000200,
865 IMF_MHTML = 0x00000400,
866 IMF_SECURE = 0x00000800,
867 IMF_TEXT = 0x00001000,
868 IMF_CSETTAGGED = 0x00002000,
869 IMF_NEWS = 0x00004000,
870 IMF_VOICEMAIL = 0x00008000,
871 IMF_HASVCARD = 0x00010000,
872 IMF_RFC1154 = 0x00020000,
875 typedef enum tagIMSGPRIORITY
882 cpp_quote("#define WPF_HTML 0x00000001")
883 cpp_quote("#define WPF_AUTOINLINE 0x00000002")
884 cpp_quote("#define WPF_SLIDESHOW 0x00000004")
885 cpp_quote("#define WPF_ATTACHLINKS 0x00000008")
886 cpp_quote("#define WPF_IMAGESONLY 0x00000010")
887 cpp_quote("#define WPF_NOMETACHARSET 0x00000020")
889 typedef struct tagWEPAGEOPTIONS
895 } WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS;
897 HRESULT CreateWebPage(
898 [in] IStream *pRootStm,
899 [in] LPWEBPAGEOPTIONS pOptions,
900 [in] IMimeMessageCallback *pCallback,
901 [out] IMoniker **ppMoniker);
906 [in,out] LPPROPVARIANT pValue);
911 [in] LPCPROPVARIANT pValue);
914 [in] LPCSTR pszName);
918 [in] LPCSTR pszCriteria,
919 [in] boolean fSubString,
920 [in] boolean fCaseSensitive);
923 [in] DWORD dwTxtType,
924 [in] ENCODINGTYPE ietEncoding,
925 [out] IStream **pStream,
926 [out] LPHBODY phBody);
929 [in] DWORD dwTxtType,
930 [in] ENCODINGTYPE ietEncoding,
931 [in] HBODY hAlternative,
932 [in] IStream *pStream,
933 [out] LPHBODY phBody);
935 HRESULT AttachObject(
937 [in, iid_is(riid)] void *pvObject,
938 [out] LPHBODY phBody);
941 [in] LPCSTR pszFilePath,
942 [in] IStream *pstmFile,
943 [out] LPHBODY phBody);
949 [in] IStream *pstmURL,
950 [out] LPSTR *ppszCIDURL,
951 [out] LPHBODY phBody);
953 HRESULT GetAttachments(
954 [out] ULONG *pcAttach,
955 [out] LPHBODY *pprghAttach);
957 HRESULT GetAddressTable(
958 [out] IMimeAddressTable **ppTable);
961 [in, out] LPADDRESSPROPS pAddress);
963 HRESULT GetAddressTypes(
964 [in] DWORD dwAdrTypes,
966 [in, out] LPADDRESSLIST pList);
968 HRESULT GetAddressFormat(
969 [in] DWORD dwAdrTypes,
970 [in] ADDRESSFORMAT format,
971 [out] LPSTR *ppszFormat);
973 HRESULT EnumAddressTypes(
974 [in] DWORD dwAdrTypes,
976 [out] IMimeEnumAddressTypes **ppEnum);
978 HRESULT SplitMessage(
979 [in] ULONG cbMaxPart,
980 [out] IMimeMessageParts **ppParts);
982 HRESULT GetRootMoniker(
983 [out] IMoniker **ppMoniker);
987 uuid(761aa741-7bda-11d1-8aa9-00c04fb951f3),
990 interface IMimeMessageCallback : IUnknown
992 HRESULT OnWebPageSplitter(
994 [in] IStream *ppStream);
998 uuid(de4ad8da-555f-11d1-8dd0-00c04fb951f9),
1001 interface IPersistMime : IPersist
1003 /* FIXME: fill this in */
1007 uuid(c558834f-7f86-11d0-8252-00c04fd85ab4),
1010 interface IMimeMessageParts : IUnknown
1012 /* FIXME: fill this in */
1016 uuid(c558834d-7f86-11d0-8252-00c04fd85ab4),
1019 interface IMimeEnumHeaderRows : IUnknown
1021 typedef struct tagENUMHEADERROW
1027 DWORD_PTR dwReserved;
1028 } ENUMHEADERROW, *LPENUMHEADERROW;
1030 /* FIXME: fill this in */
1034 uuid(fd853cee-7f86-11d0-8252-00c04fd85ab4),
1037 interface IMimeEnumProperties : IUnknown
1039 typedef struct tagENUMPROPERTY
1044 } ENUMPROPERTY, *LPENUMPROPERTY;
1046 /* FIXME: fill this in */
1050 uuid(c5588354-7f86-11d0-8252-00c04fd85ab4),
1053 interface IMimeEnumAddressTypes : IUnknown
1055 /* FIXME: fill this in */
1059 uuid(c5588350-7f86-11d0-8252-00c04fd85ab4),
1062 interface IMimeEnumMessageParts : IUnknown
1064 /* FIXME: fill this in */
1068 uuid(64577981-86d7-11d1-bdfc-00c04fa31009),
1071 interface IHashTable : IUnknown
1073 /* FIXME: fill this in */
1077 uuid(c5588351-7f86-11d0-8252-00c04fd85ab4),
1080 interface IMimeAllocator : IMalloc
1082 typedef [unique] IMimeAllocator *LPMIMEALLOCATOR;
1084 HRESULT FreeParamInfoArray(
1086 [in] LPMIMEPARAMINFO prgParam,
1087 [in] boolean fFreeArray);
1089 HRESULT FreeAddressList(
1090 [in,out] LPADDRESSLIST pList);
1092 HRESULT FreeAddressProps(
1093 [in,out] LPADDRESSPROPS pAddress);
1095 HRESULT ReleaseObjects(
1096 [in] ULONG cObjects,
1097 [in] IUnknown **prgpUnknown,
1098 [in] boolean fFreeArray);
1100 HRESULT FreeEnumHeaderRowArray(
1102 [in] LPENUMHEADERROW prgRow,
1103 [in] boolean fFreeArray);
1105 HRESULT FreeEnumPropertyArray(
1107 [in] LPENUMPROPERTY prgProp,
1108 [in] boolean fFreeArray);
1110 HRESULT FreeThumbprint(
1111 [in] THUMBBLOB *pthumbprint);
1113 HRESULT PropVariantClear(
1114 [in] LPPROPVARIANT pProp);
1119 uuid(feceaffd-c441-11d1-960e-00c04fbd7c09),
1122 interface IMimeObjResolver : IUnknown
1124 /* FIXME: fill this in */
1128 uuid(b0d17fc2-7bc4-11d1-bdfa-00c04fa31009),
1131 interface IFontCache : IUnknown
1133 /* FIXME: fill this in */
1137 uuid(b0d17fc5-7bc4-11d1-bdfa-00c04fa31009),
1140 interface IFontCacheNotify : IUnknown
1142 /* FIXME: fill this in */
1146 uuid(70183210-7b36-11d2-8c12-00c04fa31009),
1149 interface IMimeEditTag : IUnknown
1151 /* FIXME: fill this in */
1155 uuid(d09ee528-7b38-11d2-8c12-00c04fa31009),
1158 interface IMimeEditTagCollection : IUnknown
1160 /* FIXME: fill this in */
1164 cpp_quote("#ifdef __cplusplus")
1165 cpp_quote(" extern \"C\" {")
1169 cpp_quote("HRESULT WINAPI MimeOleSetCompatMode(DWORD);")
1170 cpp_quote("HRESULT WINAPI MimeOleContentTypeFromUrl(LPCSTR,LPCSTR,LPSTR*);")
1171 cpp_quote("HRESULT WINAPI MimeOleParseMhtmlUrl(LPSTR,LPSTR*,LPSTR*);")
1172 cpp_quote("HRESULT WINAPI MimeOleObjectFromUrl(LPCSTR,BOOL,REFIID,LPVOID*,IUnknown**);")
1173 cpp_quote("HRESULT WINAPI MimeOleObjectFromMoniker(BINDF,IMoniker*,IBindCtx*,REFIID,LPVOID*,IMoniker**);")
1174 cpp_quote("HRESULT WINAPI MimeOleCombineURL(LPCSTR,ULONG,LPCSTR,ULONG,BOOL,LPSTR*);")
1175 cpp_quote("HRESULT WINAPI MimeOleGetSubjectFileName(IMimePropertySet*,ULONG*,ULONG*,LPSTR,ULONG);")
1176 cpp_quote("HRESULT WINAPI MimeOleCreateWebDocument(LPCSTR,LPCSTR,IMimeWebDocument**);")
1177 cpp_quote("HRESULT WINAPI MimeOleGetRelatedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1178 cpp_quote("HRESULT WINAPI MimeOleGetMixedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1179 cpp_quote("HRESULT WINAPI MimeOleGetAlternativeSection(IMimeMessageTree*,LPHBODY,boolean*);")
1180 cpp_quote("HRESULT WINAPI MimeOleGenerateCID(LPSTR,ULONG,boolean);")
1181 cpp_quote("HRESULT WINAPI MimeOleGenerateMID(LPSTR,ULONG,boolean);")
1182 cpp_quote("HRESULT WINAPI MimeOleCreateByteStream(IStream**);")
1183 cpp_quote("HRESULT WINAPI MimeOlGetPropertySchema(IMimePropertySchema**);")
1184 cpp_quote("HRESULT WINAPI MimeOleQueryString(LPCSTR,LPCSTR,boolean,boolean);")
1185 cpp_quote("HRESULT WINAPI MimeOleGetPropA(IMimePropertySet*,LPCSTR,DWORD,LPSTR*);")
1186 cpp_quote("HRESULT WINAPI MimeOleSetPropA(IMimePropertySet*,LPCSTR,DWORD,LPCSTR);")
1187 cpp_quote("HRESULT WINAPI MimeOleGetPropW(IMimePropertySet*,LPCSTR,DWORD,LPWSTR*);")
1188 cpp_quote("HRESULT WINAPI MimeOleSetPropW(IMimePropertySet*,LPCSTR,DWORD,LPCWSTR);")
1189 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPSTR*);")
1190 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCSTR);")
1191 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPWSTR*);")
1192 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCWSTR);")
1193 cpp_quote("HRESULT WINAPI MimeOleCreateHeaderTable(IMimeHeaderTable**);")
1194 cpp_quote("HRESULT WINAPI MimeOleVariantFree(LPPROPVARIANT);")
1195 cpp_quote("HRESULT WINAPI MimeOleVariantCopy(LPPROPVARIANT,LPPROPVARIANT);")
1196 cpp_quote("HRESULT WINAPI MimeOleGetExtClassId(LPCSTR,LPCLSID);")
1197 cpp_quote("HRESULT WINAPI MimeOleEncodeHeader(HCHARSET,LPPROPVARIANT,LPSTR*,LPRFC1522INFO);")
1198 cpp_quote("HRESULT WINAPI MimeOleDecodeHeader(HCHARSET,LPCSTR,LPPROPVARIANT,LPRFC1522INFO);")
1199 cpp_quote("HRESULT WINAPI MimeOleRfc1522Decode(LPCSTR,LPSTR,ULONG,LPSTR*);")
1200 cpp_quote("HRESULT WINAPI MimeOleRfc1522Encode(LPCSTR,HCHARSET,LPSTR*);")
1201 cpp_quote("HRESULT WINAPI MimeOleGetInternat(IMimeInternational**);")
1202 cpp_quote("HRESULT WINAPI MimeOleFindCharset(LPCSTR,LPHCHARSET);")
1203 cpp_quote("HRESULT WINAPI MimeOleGetCharsetInfo(HCHARSET,LPINETCSETINFO);")
1204 cpp_quote("HRESULT WINAPI MimeOleGetCodePageInfo(HCHARSET,LPCODEPAGEINFO);")
1205 cpp_quote("HRESULT WINAPI MimeOleGetDefaultCharset(LPHCHARSET);")
1206 cpp_quote("HRESULT WINAPI MimeOleSetDefaultCharset(HCHARSET);")
1207 cpp_quote("HRESULT WINAPI MimeOleGetCodePageCharset(CODEPAGEID,CHARSETTYPE,LPHCHARSET);")
1208 cpp_quote("HRESULT WINAPI MimeOleCreateVirtualStream(IStream**);")
1209 cpp_quote("HRESULT WINAPI MimeOleOpenFileStream(LPCSTR,DWORD,DWORD,IStream**);")
1210 cpp_quote("HRESULT WINAPI MimeOleIsTnefStream(IStream*);")
1211 cpp_quote("HRESULT WINAPI MimeOleGenerateFileName(LPCSTR,LPCSTR,LPCSTR,LPSTR*);")
1212 cpp_quote("HRESULT WINAPI MimeOleGetFileExtension(LPCSTR,LPSTR,ULONG);")
1213 cpp_quote("HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity**);")
1214 cpp_quote("HRESULT WINAPI MimeOleInetDateToFileTime(LPCSTR,LPFILETIME);")
1215 cpp_quote("HRESULT WINAPI MimeOleFileTimeToInetDate(LPFILETIME,LPSTR,ULONG);")
1216 cpp_quote("HRESULT WINAPI MimeOleCreateMessageParts(IMimeMessageParts**);")
1217 cpp_quote("HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator**);")
1218 cpp_quote("HRESULT WINAPI MimeOleParseRfc822Address(DWORD,ENCODINGTYPE,LPCSTR,LPADDRESSLIST);")
1219 cpp_quote("HRESULT WINAPI MimeOleCreateMessage(IUnknown*,IMimeMessage**);")
1220 cpp_quote("HRESULT WINAPI MimeOleMergePartialHeaders(IStream*,IStream*);")
1221 cpp_quote("HRESULT WINAPI MimeOleEscapeString(CODEPAGEID,LPCSTR,LPSTR*);")
1222 cpp_quote("HRESULT WINAPI MimeOleGetExtContentType(LPCSTR,LPSTR*);")
1223 cpp_quote("HRESULT WINAPI MimeOleGetContentTypeExt(LPCSTR,LPSTR*);")
1224 cpp_quote("HRESULT WINAPI MimeOleGetFileInfo(LPSTR,LPSTR*,LPSTR*,LPSTR*,LPSTR*,LPSTR*);")
1225 cpp_quote("HRESULT WINAPI MimeOleCreateBody(IMimeBody**);")
1226 cpp_quote("HRESULT WINAPI MimeOleCreatePropertySet(IUnknown*,IMimePropertySet**);")
1227 cpp_quote("HRESULT WINAPI MimeOleCreateMessageTree(IUnknown*,IMimeMessageTree**);")
1228 cpp_quote("HRESULT WINAPI MimeOleGetCertsFromThumbprints(THUMBBLOB*,X509CERTRESULT*,const HCERTSTORE*,DWORD);")
1229 cpp_quote("HRESULT WINAPI MimeOleSplitMessage(IMimeMessage*,ULONG,IMimeMessageParts**);")
1230 cpp_quote("HRESULT WINAPI MimeOleClearDirtyTree(IMimeMessageTree*);")
1231 cpp_quote("HRESULT WINAPI MimeOleConvertEnrichedToHTML(CODEPAGEID,IStream*,IStream*);")
1232 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsToDlg(LPBYTE,DWORD,DWORD,PCX509CERT*,HWND,DWORD,DWORD,DWORD);")
1233 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFromDlg(HWND,DWORD,DWORD,DWORD,LPBYTE,DWORD*);")
1234 cpp_quote("HRESULT WINAPI MimeOleSMimeCapInit(LPBYTE,DWORD,LPVOID*);")
1235 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddSMimeCap(LPBYTE,DWORD,LPVOID);")
1236 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddCert(LPBYTE,DWORD,BOOL,LPVOID);")
1237 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetEncAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1238 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetHashAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1239 cpp_quote("HRESULT WINAPI MimeOleSMimeCapRelease(LPVOID);")
1240 cpp_quote("HRESULT WINAPI MimeOleAlgNameFromSMimeap(LPBYTE,DWORD,LPCSTR*);")
1241 cpp_quote("HRESULT WINAPI MimeOleAlgStrengthFromSMimeCap(LPBYTE,DWORD,BOOL,DWORD*);")
1242 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFull(LPVOID,BOOL,BOOL,LPBYTE,DWORD*);")
1243 cpp_quote("HRESULT WINAPI MimeOleCreateHashTable(DWORD,BOOL,IHashTable**);")
1244 cpp_quote("HRESULT WINAPI MimeOleStripHeaders(IMimeMessage*,HBODY,LPCSTR,LPCSTR,IStream**);")
1246 cpp_quote("HRESULT WINAPI MimeEditViewSource(HWND,IMimeMessage*);")
1247 cpp_quote("HRESULT WINAPI MimeEditIsSafeToRun(HWND,LPCSTR);")
1248 cpp_quote("HRESULT WINAPI MimeEditVerifyTrust(HWND,LPCSTR,LPCSTR);")
1249 cpp_quote("HRESULT WINAPI MimeEditCreateMimeDocument(IUnknown*,IMimeMessage*,DWORD,IMimeMessage**);")
1250 cpp_quote("HRESULT WINAPI MimeEditGetBackgroundImageUrl(IUnknown*,BSTR*);")
1251 cpp_quote("HRESULT WINAPI MimeEditDocumentFromStream(IStream*,REFIID,void**);")
1253 cpp_quote("#ifdef __cplusplus")