quartz/tests: Fix overflow in 32-bit time calculation.
[wine.git] / include / mimeole.idl
blobb560caeed1840c4c3c9be6599a8db6beb2c5b86a
1 /*
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
19 import "ocidl.idl";
20 import "objidl.idl";
21 import "propidl.idl";
23 #define DECLARE_HANDLE(name) typedef void *name
25 interface IMimeMessageCallback;
26 interface IMimeEnumAddressTypes;
27 interface IMimeMessageParts;
28 interface IMimeMessageTree;
29 interface IMimeBody;
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);")
35 cpp_quote("DEFINE_GUID(CLSID_IMimeSecurity, 0xfd853cde, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
36 cpp_quote("DEFINE_GUID(CLSID_IVirtualStream, 0xfd853cdf, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
37 cpp_quote("DEFINE_GUID(CLSID_IMimeHtmlProtocol,0x5300401,0xbcbc, 0x11d0, 0x85, 0xe3, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
38 cpp_quote("DEFINE_GUID(CLSID_MimeEdit, 0x1c82ead9, 0x508e, 0x11d1, 0x8d, 0xcf, 0x0, 0xc0, 0x4f, 0xb9, 0x51, 0xf9);")
40 cpp_quote("#define MIME_E_REG_CREATE_KEY 0x800cce01")
41 cpp_quote("#define MIME_E_REG_QUERY_INFO 0x800cce02")
42 cpp_quote("#define MIME_E_INVALID_ENCTYPE 0x800cce03")
43 cpp_quote("#define MIME_E_BOUNDARY_MISMATCH 0x800cce04")
44 cpp_quote("#define MIME_E_NOT_FOUND 0x800cce05")
45 cpp_quote("#define MIME_E_NO_DATA 0x800cce05")
46 cpp_quote("#define MIME_E_BUFFER_TOO_SMALL 0x800cce06")
47 cpp_quote("#define MIME_E_INVALID_ITEM_FLAGS 0x800cce07")
48 cpp_quote("#define MIME_E_ONE_LINE_ITEME 0x800cce08")
49 cpp_quote("#define MIME_E_INVALID_HANDLE 0x800cce09")
50 cpp_quote("#define MIME_E_CHARSET_TRANSLATE 0x800cce0a")
51 cpp_quote("#define MIME_E_NOT_INITIALIZED 0x800cce0b")
53 cpp_quote("#define MIME_E_INVALID_OPTION_VALUE 0x800cce1f")
54 cpp_quote("#define MIME_E_INVALID_OPTION_ID 0x800cce20")
55 cpp_quote("#define MIME_E_INVALID_HEADER_NAME 0x800cce21")
56 cpp_quote("#define MIME_E_NOT_BOUND 0x800cce22")
57 cpp_quote("#define MIME_E_MAX_SIZE_TOO_SMALL 0x800cce23")
58 cpp_quote("#define MIME_E_MULTIPART_HAS_CHILDREN 0x800cce25")
59 cpp_quote("#define MIME_E_INVALID_PROP_FLAGS 0x800cce26")
60 cpp_quote("#define MIME_E_INVALID_ADDRESS_TYPE 0x800cce27")
61 cpp_quote("#define MIME_E_INVALID_OBJECT_IID 0x800cce28")
62 cpp_quote("#define MIME_E_MLANG_DLL_NOT_FOUND 0x800cce29")
63 cpp_quote("#define MIME_E_ROOT_NOT_EMPTY 0x800cce2a")
64 cpp_quote("#define MIME_E_MLANG_BAD_DLL 0x800cce2b")
65 cpp_quote("#define MIME_E_REG_OPEN_KEY 0x800cce2c")
66 cpp_quote("#define MIME_E_INVALID_INET_DATE 0x800cce2d")
67 cpp_quote("#define MIME_E_INVALID_BODYTYPE 0x800cce2e")
68 cpp_quote("#define MIME_E_INVALID_DELETE_TYPE 0x800cce2f")
69 cpp_quote("#define MIME_E_OPTION_HAS_NO_VALUE 0x800cce30")
70 cpp_quote("#define MIME_E_INVALID_CHARSET_TYPE 0x800cce31")
72 cpp_quote("#define MIME_E_INVALID_TEXT_TYPE 0x800cce38")
74 cpp_quote("#define MIME_E_SECURITY_NOOP 0x800cceb1")
75 cpp_quote("#define MIME_S_SECURITY_NOOP 0x000cceb1")
77 cpp_quote("typedef enum tagMIMEPROPID {")
78 cpp_quote(" PID_HDR_NEWSGROUP = 2,")
79 cpp_quote(" PID_HDR_NEWSGROUPS = 3,")
80 cpp_quote(" PID_HDR_REFS = 4,")
81 cpp_quote(" PID_HDR_SUBJECT = 5,")
82 cpp_quote(" PID_HDR_FROM = 6,")
83 cpp_quote(" PID_HDR_MESSAGEID = 7,")
84 cpp_quote(" PID_HDR_RETURNPATH = 8,")
85 cpp_quote(" PID_HDR_RR = 9,")
86 cpp_quote(" PID_HDR_RETRCPTO = 10,")
87 cpp_quote(" PID_HDR_APPARTO = 11,")
88 cpp_quote(" PID_HDR_DATE = 12,")
89 cpp_quote(" PID_HDR_RECEIVED = 13,")
90 cpp_quote(" PID_HDR_REPLYTO = 14,")
91 cpp_quote(" PID_HDR_XMAILER = 15,")
92 cpp_quote(" PID_HDR_BCC = 16,")
93 cpp_quote(" PID_HDR_MIMEVER = 17,")
94 cpp_quote(" PID_HDR_CNTTYPE = 18,")
95 cpp_quote(" PID_HDR_CNTXFER = 19,")
96 cpp_quote(" PID_HDR_CNTID = 20,")
97 cpp_quote(" PID_HDR_CNTDESC = 21,")
98 cpp_quote(" PID_HDR_CNTDISP = 22,")
99 cpp_quote(" PID_HDR_CNTBASE = 23,")
100 cpp_quote(" PID_HDR_CNTLOC = 24,")
101 cpp_quote(" PID_HDR_TO = 25,")
102 cpp_quote(" PID_HDR_PATH = 26,")
103 cpp_quote(" PID_HDR_FOLLOWUPTO = 27,")
104 cpp_quote(" PID_HDR_EXPIRES = 28,")
105 cpp_quote(" PID_HDR_CC = 29,")
106 cpp_quote(" PID_HDR_CONTROL = 30,")
107 cpp_quote(" PID_HDR_DISTRIB = 31,")
108 cpp_quote(" PID_HDR_KEYWORDS = 32,")
109 cpp_quote(" PID_HDR_SUMMARY = 33,")
110 cpp_quote(" PID_HDR_APPROVED = 34,")
111 cpp_quote(" PID_HDR_LINES = 35,")
112 cpp_quote(" PID_HDR_XREF = 36,")
113 cpp_quote(" PID_HDR_ORG = 37,")
114 cpp_quote(" PID_HDR_XNEWSRDR = 38,")
115 cpp_quote(" PID_HDR_XPRI = 39,")
116 cpp_quote(" PID_HDR_XMSPRI = 40,")
117 cpp_quote(" PID_PAR_FILENAME = 41,")
118 cpp_quote(" PID_PAR_BOUNDARY = 42,")
119 cpp_quote(" PID_PAR_CHARSET = 43,")
120 cpp_quote(" PID_PAR_NAME = 44,")
121 cpp_quote(" PID_ATT_FILENAME = 45,")
122 cpp_quote(" PID_ATT_GENFNAME = 46,")
123 cpp_quote(" PID_ATT_PRITYPE = 47,")
124 cpp_quote(" PID_ATT_SUBTYPE = 48,")
125 cpp_quote(" PID_ATT_NORMSUBJ = 49,")
126 cpp_quote(" PID_ATT_ILLEGAL = 50,")
127 cpp_quote(" PID_ATT_RENDERED = 51,")
128 cpp_quote(" PID_ATT_SENTTIME = 52,")
129 cpp_quote(" PID_ATT_RECVTIME = 53,")
130 cpp_quote(" PID_ATT_PRIORITY = 54,")
131 cpp_quote(" PID_HDR_COMMENT = 55,")
132 cpp_quote(" PID_HDR_ENCODING = 56,")
133 cpp_quote(" PID_HDR_ENCRYPTED = 57,")
134 cpp_quote(" PID_HDR_OFFSETS = 58,")
135 cpp_quote(" PID_HDR_XUNSENT = 59,")
136 cpp_quote(" PID_HDR_ARTICLEID = 60,")
137 cpp_quote(" PID_HDR_SENDER = 61,")
138 cpp_quote(" PID_ATT_SERVER = 62,")
139 cpp_quote(" PID_ATT_ACCOUNT = 63,")
140 cpp_quote(" PID_ATT_UIDL = 64,")
141 cpp_quote(" PID_ATT_STOREMSGID = 65,")
142 cpp_quote(" PID_ATT_USERNAME = 66,")
143 cpp_quote(" PID_ATT_FORWARDTO = 67,")
144 cpp_quote(" PID_ATT_STOREFOLDERID = 68,")
145 cpp_quote(" PID_ATT_GHOSTED = 69,")
146 cpp_quote(" PID_ATT_UNCACHEDSIZE = 70,")
147 cpp_quote(" PID_ATT_COMBINED = 71,")
148 cpp_quote(" PID_ATT_AUTOINLINED = 72,")
149 cpp_quote(" PID_HDR_DISP_NOTIFICATION_TO = 73,")
150 cpp_quote(" PID_PAR_REPLYTYPE = 74,")
151 cpp_quote(" PID_PAR_FORMAT = 75,")
152 cpp_quote(" PID_ATT_FORMAT = 76,")
153 cpp_quote(" PID_HDR_INREPLYTO = 77,")
154 cpp_quote(" PID_ATT_ACCOUNTNAME = 78,")
155 cpp_quote(" PID_LAST = 79,")
156 cpp_quote("} MIMEPROPID;")
158 cpp_quote("#define ISPIDSTR(_name) (((DWORD_PTR)(_name) >> 16) == 0)")
159 cpp_quote("#define STRTOPID(_name) ((DWORD)((DWORD_PTR)((LPCSTR)(_name))))")
160 cpp_quote("#define PIDTOSTR(_id) ((LPCSTR)((DWORD_PTR)(_id)))")
162 cpp_quote("#define TYPEDID_ID(_typedid) (((ULONG)(_typedid))>>16)")
163 cpp_quote("#define TYPEDID_MASK ((ULONG)0xffff)")
164 cpp_quote("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))")
166 cpp_quote("#define OID_ALLOW_8BIT_HEADER (0x00010000 | VT_BOOL)")
167 cpp_quote("#define OID_CBMAX_HEADER_LINE (0x00020000 | VT_UI4)")
168 cpp_quote("#define OID_SAVE_FORMAT (0x00030000 | VT_UI4)")
169 cpp_quote("#define OID_WRAP_BODY_TEXT (0x00040000 | VT_BOOL)")
170 cpp_quote("#define OID_CBMAX_BODY_LINE (0x00050000 | VT_UI4)")
171 cpp_quote("#define OID_TRANSMIT_BODY_ENCODING (0x00060000 | VT_UI4)")
172 cpp_quote("#define OID_TRANSMIT_TEXT_ENCODING (0x00070000 | VT_UI4)")
173 cpp_quote("#define OID_GENERATE_MESSAGE_ID (0x00080000 | VT_BOOL)")
174 cpp_quote("#define OID_HIDE_TNEF_ATTACHMENTS (0x000e0000 | VT_BOOL)")
175 cpp_quote("#define OID_CLEANUP_TREE_ON_SAVE (0x000f0000 | VT_BOOL)")
176 cpp_quote("#define OID_BODY_REMOVE_NBSP (0x00140000 | VT_BOOL)")
177 cpp_quote("#define OID_DEFAULT_BODY_CHARSET (0x00150000 | VT_UI4)")
178 cpp_quote("#define OID_DEFAULT_HEADER_CHARSET (0x00160000 | VT_UI4)")
179 cpp_quote("#define OID_DBCS_ESCAPE_IS_8BIT (0x00170000 | VT_BOOL)")
180 cpp_quote("#define OID_SECURITY_TYPE (0x00180000 | VT_UI4)")
181 cpp_quote("#define OID_SECURITY_HWND_OWNER (0x00320000 | VT_UI4)")
182 cpp_quote("#define OID_HEADER_RELOAD_TYPE (0x00370000 | VT_UI4)")
183 cpp_quote("#define OID_CAN_INLINE_TEXT_BODIES (0x00380000 | VT_BOOL)")
184 cpp_quote("#define OID_SHOW_MACBINARY (0x00390000 | VT_BOOL)")
185 cpp_quote("#define OID_SAVEBODY_KEEPBOUNDARY (0x00400000 | VT_BOOL)")
187 cpp_quote("#define OID_SECURITY_2KEY_CERT_BAG (0x00590000 | VT_VECTOR | VT_UI4)")
188 cpp_quote("#define OID_SECURITY_2KEY_CERT_BAG_64 (0x00590000 | VT_VECTOR | VT_UI8)")
191 uuid(e4b28371-83b0-11d0-8259-00c04fd85ab4),
192 version(1.0)
194 library MIMEOLE
196 importlib("stdole2.tlb");
198 DECLARE_HANDLE(HCHARSET);
199 DECLARE_HANDLE(HBODY);
200 DECLARE_HANDLE(HHEADERROW);
202 typedef HCHARSET *LPHCHARSET;
203 typedef HBODY *LPHBODY;
204 typedef HHEADERROW *LPHHEADERROW;
205 typedef DWORD TYPEDID;
206 typedef const PROPVARIANT *LPCPROPVARIANT;
207 typedef const BLOB *LPCBLOB;
209 typedef enum tagRELOADTYPE
211 RELOAD_HEADER_NONE,
212 RELOAD_HEADER_RESET,
213 RELOAD_HEADER_APPEND,
214 RELOAD_HEADER_REPLACE,
215 } RELOADTYPE;
217 typedef enum tagMIMESAVETYPE
219 SAVE_RFC822,
220 SAVE_RFC1521,
221 } MIMESAVETYPE;
223 typedef enum tagCSETAPPLYTYPE
225 CSET_APPLY_UNTAGGED,
226 CSET_APPLY_ALL,
227 CSET_APPLY_TAG_ALL,
228 } CSETAPPLYTYPE;
230 typedef enum tagENCODINGTYPE
232 IET_BINARY,
233 IET_BASE64,
234 IET_UUENCODE,
235 IET_QP,
236 IET_7BIT,
237 IET_8BIT,
238 IET_INETCSET,
239 IET_UNICODE,
240 IET_RFC1522,
241 IET_ENCODED,
242 IET_CURRENT,
243 IET_UNKNOWN,
244 IET_BINHEX40,
245 IET_LAST
246 } ENCODINGTYPE;
248 const SHORT IET_DECODED = IET_BINARY;
250 const SHORT CCHMAX_HEADER_LINE = 1000;
253 uuid(c5588349-7f86-11d0-8252-00c04fd85ab4),
254 object
256 interface IMimeInternational : IUnknown
258 typedef [unique] IMimeInternational *LPMIMEINTERNATIONAL;
259 typedef DWORD CODEPAGEID;
261 const CODEPAGEID CP_USASCII = 1252;
262 const CODEPAGEID CP_UNICODE = 1200;
263 const CODEPAGEID CP_JAUTODETECT = 50932;
264 const CODEPAGEID CP_KAUTODETECT = 50949;
265 const CODEPAGEID CP_ISO2022JPESC = 50221;
266 const CODEPAGEID CP_ISO2022JPSIO = 50222;
268 const SHORT CCHMAX_CSET_NAME = 128;
269 const SHORT CCHMAX_LANG_NAME = 128;
270 const SHORT CCHMAX_FACE_NAME = 128;
272 typedef struct tagINETCSETINFO
274 CHAR szName[CCHMAX_CSET_NAME];
275 HCHARSET hCharset;
276 CODEPAGEID cpiWindows;
277 CODEPAGEID cpiInternet;
278 DWORD dwReserved1;
279 } INETCSETINFO, *LPINETCSETINFO;
281 typedef enum tagINETLANGMASK
283 ILM_FAMILY = 0x01,
284 ILM_NAME = 0x02,
285 ILM_BODYCSET = 0x04,
286 ILM_HEADERCSET = 0x08,
287 ILM_WEBCSET = 0x10,
288 ILM_FIXEDFONT = 0x20,
289 ILM_VARIABLEFONT = 0x40,
290 } INETLANGMASK;
292 typedef struct tagCODEPAGEINFO
294 DWORD dwMask;
295 CODEPAGEID cpiCodePage;
296 BOOL fIsValidCodePage;
297 ULONG ulMaxCharSize;
298 BOOL fInternetCP;
299 CODEPAGEID cpiFamily;
300 CHAR szName[CCHMAX_LANG_NAME];
301 CHAR szBodyCset[CCHMAX_CSET_NAME];
302 CHAR szHeaderCset[CCHMAX_CSET_NAME];
303 CHAR szWebCset[CCHMAX_CSET_NAME];
304 CHAR szFixedFont[CCHMAX_FACE_NAME];
305 CHAR szVariableFont[CCHMAX_FACE_NAME];
306 ENCODINGTYPE ietNewsDefault;
307 ENCODINGTYPE ietMailDefault;
308 DWORD dwReserved1;
309 } CODEPAGEINFO, *LPCODEPAGEINFO;
311 typedef struct tagRFC1522INFO
313 BOOL fRfc1522Allowed;
314 BOOL fRfc1522Used;
315 BOOL fAllow8bit;
316 HCHARSET hRfc1522Cset;
317 } RFC1522INFO, *LPRFC1522INFO;
319 typedef enum tagCHARSETTYPE
321 CHARSET_BODY,
322 CHARSET_HEADER,
323 CHARSET_WEB,
324 } CHARSETTYPE;
327 HRESULT SetDefaultCharset(
328 [in] HCHARSET hCharset);
329 HRESULT GetDefaultCharset(
330 [out] LPHCHARSET phCharset);
331 HRESULT GetCodePageCharset(
332 [in] CODEPAGEID cpiCodePage,
333 [in] CHARSETTYPE ctCsetType,
334 [out] LPHCHARSET phCharset);
335 HRESULT FindCharset(
336 [in] LPCSTR pszCharset,
337 [out] LPHCHARSET phCharset);
338 HRESULT GetCharsetInfo(
339 [in] HCHARSET hCharset,
340 [in, out] LPINETCSETINFO pCsetInfo);
341 HRESULT GetCodePageInfo(
342 [in] CODEPAGEID cpiCodePage,
343 [in, out] LPCODEPAGEINFO pCodePageInfo);
344 HRESULT CanConvertCodePages(
345 [in] CODEPAGEID cpiSource,
346 [in] CODEPAGEID cpiDest);
347 HRESULT DecodeHeader(
348 [in] HCHARSET hCharset,
349 [in] LPCSTR pszData,
350 [in, out] LPPROPVARIANT pDecoded,
351 [in, out] LPRFC1522INFO pRfc1522Info);
352 HRESULT EncodeHeader(
353 [in] HCHARSET hCharset,
354 [in] LPPROPVARIANT pData,
355 [out] LPSTR *ppszEncoded,
356 [in, out] LPRFC1522INFO pRfc1522Info);
357 HRESULT ConvertBuffer(
358 [in] CODEPAGEID cpiSource,
359 [in] CODEPAGEID cpiDest,
360 [in] LPBLOB pIn,
361 [in, out] LPBLOB pOut,
362 [out] ULONG *pcbRead);
363 HRESULT ConvertString(
364 [in] CODEPAGEID cpiSource,
365 [in] CODEPAGEID cpiDest,
366 [in] LPPROPVARIANT pIn,
367 [in, out] LPPROPVARIANT pOut);
368 HRESULT MLANG_ConvertInetReset(void);
369 HRESULT MLANG_ConvertInetString(
370 [in] CODEPAGEID cpiSource,
371 [in] CODEPAGEID cpiDest,
372 [in] LPCSTR pSource,
373 [in] int *pnSizeOfSource,
374 [in,out,unique] LPSTR pDestination,
375 [in] int *pnDstSize);
376 HRESULT Rfc1522Decode(
377 [in] LPCSTR pszValue,
378 [in,ref] LPSTR pszCharset,
379 [in] ULONG cchmax,
380 [out] LPSTR *ppszDecoded);
381 HRESULT Rfc1522Encode(
382 [in] LPCSTR pszValue,
383 [in] HCHARSET hCharset,
384 [out] LPSTR *ppszEncoded);
388 uuid(c5588353-7f86-11d0-8252-00c04fd85ab4),
389 object
391 interface IMimeSecurity : IUnknown
393 typedef [unique] IMimeSecurity *LPMIMESECURITY;
395 cpp_quote("#ifdef __WINE_WINCRYPT_H")
396 cpp_quote("typedef PCCERT_CONTEXT PCX509CERT;")
397 cpp_quote("#else")
398 typedef const void *PCX509CERT;
399 typedef void *HCERTSTORE;
400 cpp_quote("#endif")
402 typedef BLOB THUMBBLOB;
403 typedef void *HCAPICERTSTORE;
405 cpp_quote("#define MST_NONE 0x00000000")
406 cpp_quote("#define MST_THIS_SIGN 0x00000001")
407 cpp_quote("#define MST_THIS_ENCRYPT 0x00000002")
408 cpp_quote("#define MST_BLOB_FLAG 0x00000004")
409 cpp_quote("#define MST_THIS_BLOBSIGN (MST_BLOB_FLAG | MST_THIS_SIGN)")
410 cpp_quote("#define MST_CHILD_SIGN 0x00000100")
411 cpp_quote("#define MST_CHILD_ENCRYPT 0x00000200")
412 cpp_quote("#define MST_SUBMSG_SIGN 0x00001000")
413 cpp_quote("#define MST_SUBMSG_ENCRYPT 0x00002000")
414 cpp_quote("#define MST_RECEIPT_REQUEST 0x00010000")
415 cpp_quote("#define MST_CLASS_SMIME_V1 0x00000000")
416 cpp_quote("#define MST_CLASS_PGP 0x01000000")
418 typedef enum tagCERTSTATE
420 CERTIFICATE_OK,
421 CERTIFICATE_NOT_PRESENT,
422 CERTIFICATE_EXPIRED,
423 CERTIFICATE_CHAIN_TOO_LONG,
424 CERTIFICATE_MISSING_ISSUER,
425 CERTIFICATE_CRL_LISTED,
426 CERTIFICATE_NOT_TRUSTED,
427 CERTIFICATE_INVALID,
428 CERTIFICATE_ERROR,
429 CERTIFICATE_NOPRINT,
430 CERTIFICATE_UNKNOWN
431 } CERTSTATE;
433 typedef enum tagCERTNAMETYPE
435 SIMPLE,
436 OID,
437 X500,
438 } CERTNAMETYPE;
440 typedef enum tagCERTDATAID
442 CDID_EMAIL,
443 CDID_MAX
444 } CERTDATAID;
446 typedef struct tagX509CERTRESULT
448 DWORD cEntries;
449 CERTSTATE *rgcs;
450 PCX509CERT *rgpCert;
451 } X509CERTRESULT, *PX509CERTRESULT;
452 typedef const X509CERTRESULT *PCX509CERTRESULT;
454 HRESULT InitNew(void);
456 HRESULT CheckInit(void);
458 HRESULT EncodeMessage(
459 [in] IMimeMessageTree */*const*/ pTree,
460 [in] DWORD dwFlags);
462 HRESULT EncodeBody(
463 [in] IMimeMessageTree */*const*/ pTree,
464 [in] HBODY hEncodeRoot,
465 [in] DWORD dwFlags);
467 HRESULT DecodeMessage(
468 [in] IMimeMessageTree */*const*/ pTree,
469 [in] DWORD dwFlags);
471 HRESULT DecodeBody(
472 [in] IMimeMessageTree */*const*/ pTree,
473 [in] HBODY hDecodeRoot,
474 [in] DWORD dwFlags);
476 HRESULT EnumCertificates(
477 [in] HCAPICERTSTORE hc,
478 [in] DWORD dwUsage,
479 [in] PCX509CERT pPrev,
480 [out] PCX509CERT *ppCert);
482 HRESULT GetCertificateName(
483 [in] const PCX509CERT pX509Cert,
484 [in] const CERTNAMETYPE cn,
485 [out] LPSTR *ppszName);
487 HRESULT GetMessageType(
488 [in] const HWND hwndParent,
489 [in] IMimeBody */*const*/ pBody,
490 [out] DWORD */*const*/ pdwSecType);
492 HRESULT GetCertData(
493 [in] const PCX509CERT pX509Cert,
494 [in] const CERTDATAID dataid,
495 [out, ref] LPPROPVARIANT pValue);
499 uuid(c558834d-7f86-11d0-8252-00c04fd85ab4),
500 object
502 interface IMimeEnumHeaderRows : IUnknown
504 typedef struct tagENUMHEADERROW
506 HHEADERROW hRow;
507 LPSTR pszHeader;
508 LPSTR pszData;
509 ULONG cchData;
510 DWORD_PTR dwReserved;
511 } ENUMHEADERROW, *LPENUMHEADERROW;
513 HRESULT Next(
514 [in] ULONG fetch,
515 [in,out] LPENUMHEADERROW row,
516 [out] ULONG *fetched);
518 HRESULT Skip(
519 [in] ULONG items);
521 HRESULT Reset(void);
523 HRESULT Clone(
524 [out] IMimeEnumHeaderRows **rows);
526 HRESULT Count(
527 [out] ULONG *pcItems);
531 uuid(fd853cd1-7f86-11d0-8252-00c04fd85ab4),
532 object
534 interface IMimeHeaderTable : IPersistStream
536 typedef struct tagFINDHEADER
538 LPCSTR pszHeader;
539 DWORD dwReserved;
540 } FINDHEADER, *LPFINDHEADER;
542 typedef struct tagHEADERROWINFO
544 DWORD dwRowNumber;
545 ULONG cboffStart;
546 ULONG cboffColon;
547 ULONG cboffEnd;
548 } HEADERROWINFO, *LPHEADERROWINFO;
550 typedef enum tagHEADERTABLEFLAGS
552 HTF_NAMEINDATA = 0x00000001,
553 HTF_ENUMHANDLESONLY = 0x00000002
554 } HEADERTABLEFLAGS;
556 HRESULT FindFirstRow(
557 [in] LPFINDHEADER header,
558 [out] LPHHEADERROW row);
560 HRESULT FindNextRow(
561 [in] LPFINDHEADER header,
562 [out] LPHHEADERROW row);
564 HRESULT CountRows(
565 [in] const char *header,
566 [out] ULONG *rows);
568 HRESULT AppendRow(
569 [in] const char *header,
570 [in] DWORD flags,
571 [in] const char *data,
572 [in] ULONG count,
573 [out] LPHHEADERROW row);
575 HRESULT DeleteRow(
576 [in] HHEADERROW row);
578 HRESULT GetRowData(
579 [in] HHEADERROW row,
580 [in] DWORD flags,
581 [out] char **data,
582 [out] ULONG *len);
584 HRESULT SetRowData(
585 [in] HHEADERROW row,
586 [in] DWORD flags,
587 [in] const char *data,
588 [in] ULONG len);
590 HRESULT GetRowInfo(
591 [in] HHEADERROW row,
592 [in,out] LPHEADERROWINFO info);
594 HRESULT SetRowNumber(
595 [in] HHEADERROW row,
596 [in] DWORD number);
598 HRESULT EnumRows(
599 [in] const char *header,
600 [in] DWORD flags,
601 [out] IMimeEnumHeaderRows **rows);
603 HRESULT Clone(
604 [out] IMimeHeaderTable **table);
606 HRESULT BindToObject(
607 [in] REFIID riid,
608 [out, iid_is(riid)] void *object);
612 uuid(fd853cec-7f86-11d0-8252-00c04fd85ab4),
613 object
615 interface IMimePropertySchema : IUnknown
617 typedef [unique] IMimePropertySchema *LPMIMEPROPERTYSCHEMA;
619 typedef enum tagMIMEPROPFLAGS
621 MPF_INETCSET = 0x01,
622 MPF_RFC1522 = 0x02,
623 MPF_ADDRESS = 0x04,
624 MPF_HASPARAMS = 0x08,
625 MPF_MIME = 0x10,
626 MPF_READONLY = 0x20
627 } MIMEPROPFLAGS;
629 HRESULT RegisterProperty(
630 [in] const char *name,
631 [in] DWORD flags,
632 [in] DWORD rownumber,
633 [in] VARTYPE vtdefault,
634 [out] DWORD *propid);
636 HRESULT ModifyProperty(
637 [in] const char *name,
638 [in] DWORD flags,
639 [in] DWORD rownumber,
640 [in] VARTYPE vtdefault);
642 HRESULT GetPropertyId(
643 [in] const char *name,
644 [out] DWORD *propid);
646 HRESULT GetPropertyName(
647 [in] DWORD propid,
648 [out] char **name);
650 HRESULT RegisterAddressType(
651 [in] const char *name,
652 [out] DWORD *adrtype);
656 uuid(fd853cd3-7f86-11d0-8252-00c04fd85ab4),
657 object
659 interface IMimePropertySet : IPersistStreamInit
661 typedef [unique] IMimePropertySet *LPMIMEPROPERTYSET;
663 cpp_quote("#define PDF_ENCODED 0x00000001")
664 cpp_quote("#define PDF_NAMEINDATA 0x00000002")
665 cpp_quote("#define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)")
666 cpp_quote("#define PDF_NOCOMMENTS 0x00000008")
667 cpp_quote("#define PDF_SAVENOENCODE 0x00000010")
668 cpp_quote("#define PDF_VECTOR 0x00000020")
670 typedef struct tagMIMEPARAMINFO
672 LPSTR pszName;
673 LPSTR pszData;
674 } MIMEPARAMINFO, *LPMIMEPARAMINFO;
676 typedef enum tagPROPINFOMASK
678 PIM_CHARSET = 0x01,
679 PIM_ENCODINGTYPE = 0x02,
680 PIM_ROWNUMBER = 0x04,
681 PIM_FLAGS = 0x08,
682 PIM_PROPID = 0x10,
683 PIM_VALUES = 0x20,
684 PIM_VTDEFAULT = 0x40,
685 PIM_VTCURRENT = 0x80
686 } PROPINFOMASK;
688 typedef struct tagMIMEPROPINFO
690 DWORD dwMask;
691 HCHARSET hCharset;
692 ENCODINGTYPE ietEncoding;
693 DWORD dwRowNumber;
694 DWORD dwFlags;
695 DWORD dwPropId;
696 DWORD cValues;
697 VARTYPE vtDefault;
698 VARTYPE vtCurrent;
699 } MIMEPROPINFO, *LPMIMEPROPINFO;
700 typedef const MIMEPROPINFO *LPCMIMEPROPINFO;
702 HRESULT GetPropInfo(
703 [in] LPCSTR pszName,
704 [in,out] LPMIMEPROPINFO pInfo);
706 HRESULT SetPropInfo(
707 [in] LPCSTR pszName,
708 [in] LPCMIMEPROPINFO pInfo);
710 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
711 cpp_quote("#undef GetProp")
712 cpp_quote("#undef SetProp")
713 cpp_quote("#undef EnumProps")
714 cpp_quote("#endif")
715 HRESULT GetProp(
716 [in] LPCSTR pszName,
717 [in] DWORD dwFlags,
718 [in,out] LPPROPVARIANT pValue);
720 HRESULT SetProp(
721 [in] LPCSTR pszName,
722 [in] DWORD dwFlags,
723 [in] LPCPROPVARIANT pValue);
725 HRESULT AppendProp(
726 [in] LPCSTR pszName,
727 [in] DWORD dwFlags,
728 [in] LPPROPVARIANT pValue);
730 HRESULT DeleteProp(
731 [in] LPCSTR pszName);
733 HRESULT CopyProps(
734 [in] ULONG cNames,
735 [in,unique] LPCSTR *prgszName,
736 [in] IMimePropertySet *pPropertySet);
738 HRESULT MoveProps(
739 [in] ULONG cNames,
740 [in] LPCSTR *prgszName,
741 [in] IMimePropertySet *pPropertySet);
743 HRESULT DeleteExcept(
744 [in] ULONG cNames,
745 [in] LPCSTR *prgszName);
747 HRESULT QueryProp(
748 [in] LPCSTR pszName,
749 [in] LPCSTR pszCriteria,
750 [in] boolean fSubString,
751 [in] boolean fCaseSensitive);
753 HRESULT GetCharset(
754 [out] LPHCHARSET phCharset);
756 HRESULT SetCharset(
757 [in] HCHARSET hCharset,
758 [in] CSETAPPLYTYPE applytype);
760 HRESULT GetParameters(
761 [in] LPCSTR pszName,
762 [out] ULONG *pcParams,
763 [out] LPMIMEPARAMINFO *pprgParam);
765 HRESULT IsContentType(
766 [in] LPCSTR pszPriType,
767 [in,unique] LPCSTR pszSubType);
769 HRESULT BindToObject(
770 [in] REFIID riid,
771 [out,iid_is(riid)] void **ppvObject);
773 HRESULT Clone(
774 [out] IMimePropertySet **ppPropertySet);
776 HRESULT SetOption(
777 [in] const TYPEDID oid,
778 [in] LPCPROPVARIANT pValue);
780 HRESULT GetOption(
781 [in] const TYPEDID oid,
782 [in,out] LPPROPVARIANT pValue);
784 cpp_quote("#define EPF_NONAME 0x00000001")
786 HRESULT EnumProps(
787 [in] DWORD dwFlags,
788 [out] IMimeEnumProperties **ppEnum);
793 uuid(c558834a-7f86-11d0-8252-00c04fd85ab4),
794 object
796 interface IMimeAddressTable : IUnknown
798 typedef [unique] IMimeAddressTable *LPMIMEADDRESSTABLE;
800 DECLARE_HANDLE(HADDRESS);
801 typedef HADDRESS *LPHADDRESS;
802 typedef DWORD IADDRESSTYPE;
804 typedef enum tagADDRESSFORMAT
806 AFT_DISPLAY_FRIENDLY,
807 AFT_DISPLAY_EMAIL,
808 AFT_DISPLAY_BOTH,
809 AFT_RFC822_DECODED,
810 AFT_RFC822_ENCODED,
811 AFT_RFC822_TRANSMIT,
812 } ADDRESSFORMAT;
814 cpp_quote("#define IAT_UNKNOWN 0x00000000")
815 cpp_quote("#define IAT_FROM 0x00000001")
816 cpp_quote("#define IAT_SENDER 0x00000002")
817 cpp_quote("#define IAT_TO 0x00000004")
818 cpp_quote("#define IAT_CC 0x00000008")
819 cpp_quote("#define IAT_BCC 0x00000010")
820 cpp_quote("#define IAT_REPLYTO 0x00000020")
821 cpp_quote("#define IAT_RETURNPATH 0x00000040")
822 cpp_quote("#define IAT_RETRCPTTO 0x00000080")
823 cpp_quote("#define IAT_RR 0x00000100")
824 cpp_quote("#define IAT_APPARTO 0x00000200")
825 cpp_quote("#define IAT_DISP_NOTIFICATION_TO 0x00000400")
826 cpp_quote("#define IAT_ALL 0xffffffff")
827 cpp_quote("#define IAT_KNOWN (IAT_FROM | IAT_TO | IAT_CC | IAT_BCC | IAT_REPLYTO | IAT_SENDER)")
828 cpp_quote("#define IAT_RECIPS (IAT_TO | IAT_CC | IAT_BCC)")
830 typedef struct tagADDRESSPROPS
832 DWORD dwProps;
833 HADDRESS hAddress;
834 ENCODINGTYPE ietFriendly;
835 HCHARSET hCharset;
836 DWORD dwAdrType;
837 LPSTR pszFriendly;
838 LPWSTR pwszReserved;
839 LPSTR pszEmail;
840 CERTSTATE certstate;
841 THUMBBLOB tbSigning;
842 THUMBBLOB tbEncryption;
843 DWORD dwCookie;
844 DWORD dwReserved1;
845 DWORD dwReserved2;
846 } ADDRESSPROPS, *LPADDRESSPROPS;
848 cpp_quote("#define IAP_CHARSET 0x00000001")
849 cpp_quote("#define IAP_HANDLE 0x00000002")
850 cpp_quote("#define IAP_ADRTYPE 0x00000004")
851 cpp_quote("#define IAP_FRIENDLY 0x00000008")
852 cpp_quote("#define IAP_EMAIL 0x00000020")
853 cpp_quote("#define IAP_CERTSTATE 0x00000100")
854 cpp_quote("#define IAP_SIGNING_PRINT 0x00000200")
855 cpp_quote("#define IAP_ENCRYPTION_PRINT 0x00000400")
856 cpp_quote("#define IAP_ENCODING 0x00000800")
857 cpp_quote("#define IAP_COOKIE 0x00001000")
858 cpp_quote("#define IAP_FRIENDLYW 0x00002000")
859 cpp_quote("#define IAP_ALL 0xffffffff")
861 typedef struct tagADDRESSLIST
863 ULONG cAdrs;
864 LPADDRESSPROPS prgAdr;
865 } ADDRESSLIST, *LPADDRESSLIST;
867 HRESULT Append(
868 [in] DWORD addrtype,
869 [in] ENCODINGTYPE encoding,
870 [in] const char *friendly,
871 [in,unique] const char *email,
872 [in,out,unique] HADDRESS *address);
874 HRESULT Insert(
875 [in] ADDRESSPROPS *addressprop,
876 [in,out,unique] HADDRESS *address);
878 HRESULT SetProps(
879 [in] HADDRESS address,
880 [in] ADDRESSPROPS *addressprop);
882 HRESULT GetProps(
883 [in] HADDRESS address,
884 [in] ADDRESSPROPS *addressprop);
886 HRESULT GetSender(
887 [in,out] ADDRESSPROPS *addressprop);
889 HRESULT CountTypes(
890 [in] DWORD addrtype,
891 [out] ULONG *count);
893 HRESULT GetTypes(
894 [in] DWORD addrtype,
895 [in] DWORD dwProps,
896 [in,out] ADDRESSLIST *list);
898 HRESULT EnumTypes(
899 [in] DWORD addrtype,
900 [in] DWORD props,
901 [out] IMimeEnumAddressTypes **types);
903 HRESULT Delete(
904 [in] HADDRESS hAddress);
906 HRESULT DeleteTypes(
907 [in] DWORD addrtype);
909 HRESULT GetFormat(
910 [in] DWORD addrtype,
911 [in] ADDRESSFORMAT addrformat,
912 [out] char **format);
914 HRESULT AppendRfc822(
915 [in] DWORD addrtype,
916 [in] ENCODINGTYPE encoding,
917 [in] const char *rfcaddr);
919 HRESULT ParseRfc822(
920 [in] DWORD addrtype,
921 [in] ENCODINGTYPE encoding,
922 [in] const char *rfcaddr,
923 [in,out] ADDRESSLIST *list);
925 HRESULT Clone(
926 [out] IMimeAddressTable **table);
928 HRESULT BindToObject(
929 [in] REFIID riid,
930 [out, iid_is(riid)] void **obj);
934 uuid(ee519f11-851a-11d0-8252-00c04fd85ab4),
935 object
937 interface IMimeWebDocument : IUnknown
939 /* FIXME: fill this in */
943 uuid(c558834c-7f86-11d0-8252-00c04fd85ab4),
944 object
946 interface IMimeBody : IMimePropertySet
948 typedef [unique] IMimeBody *LPMIMEBODY;
950 typedef enum tagIMSGBODYTYPE
952 IBT_SECURE,
953 IBT_ATTACHMENT,
954 IBT_EMPTY,
955 IBT_CSETTAGGED,
956 IBT_AUTOATTACH,
957 } IMSGBODYTYPE;
959 typedef struct tagBODYOFFSETS
961 DWORD cbBoundaryStart;
962 DWORD cbHeaderStart;
963 DWORD cbBodyStart;
964 DWORD cbBodyEnd;
965 } BODYOFFSETS, *LPBODYOFFSETS;
967 typedef struct tagTRANSMITINFO
969 ENCODINGTYPE ietCurrent;
970 ENCODINGTYPE ietXmitMime;
971 ENCODINGTYPE ietXmit822;
972 ULONG cbLongestLine;
973 ULONG cExtended;
974 ULONG ulPercentExt;
975 ULONG cbSize;
976 ULONG cLines;
977 } TRANSMITINFO, *LPTRANSMITINFO;
979 HRESULT IsType(
980 [in] IMSGBODYTYPE bodytype);
982 HRESULT SetDisplayName(
983 [in] LPCSTR pszDisplay);
985 HRESULT GetDisplayName(
986 [out] LPSTR *ppszDisplay);
988 HRESULT GetOffsets(
989 [out] LPBODYOFFSETS pOffsets);
991 HRESULT GetCurrentEncoding(
992 [out] ENCODINGTYPE *pietEncoding);
994 HRESULT SetCurrentEncoding(
995 [in] ENCODINGTYPE ietEncoding);
997 HRESULT GetEstimatedSize(
998 [in] ENCODINGTYPE ietEncoding,
999 [out] ULONG *pcbSize);
1001 HRESULT GetDataHere(
1002 [in] ENCODINGTYPE ietEncoding,
1003 [in] IStream *pStream);
1005 HRESULT GetData(
1006 [in] ENCODINGTYPE ietEncoding,
1007 [out] IStream **ppStream);
1009 HRESULT SetData(
1010 [in] ENCODINGTYPE ietEncoding,
1011 [in,unique] LPCSTR pszPriType,
1012 [in,unique] LPCSTR pszSubType,
1013 [in] REFIID riid,
1014 [in,iid_is(riid)] LPVOID pvObject);
1016 HRESULT EmptyData(void);
1018 HRESULT CopyTo(
1019 [in] IMimeBody *pBody);
1021 HRESULT GetTransmitInfo(
1022 [in,out] LPTRANSMITINFO pTransmitInfo);
1024 HRESULT SaveToFile(
1025 [in] ENCODINGTYPE ietEncoding,
1026 [in] LPCSTR pszFilePath);
1028 HRESULT GetHandle(
1029 [out] LPHBODY phBody);
1034 uuid(fd853cd4-7f86-11d0-8252-00c04fd85ab4),
1035 object
1037 interface IMimeMessageTree : IPersistStreamInit
1039 typedef [unique] IMimeMessageTree *LPMIMEMESSAGETREE;
1041 const HBODY HBODY_ROOT = (HBODY)-1;
1043 typedef enum tagBODYLOCATION
1045 IBL_ROOT,
1046 IBL_PARENT,
1047 IBL_FIRST,
1048 IBL_LAST,
1049 IBL_NEXT,
1050 IBL_PREVIOUS,
1051 } BODYLOCATION;
1053 typedef struct tagFINDBODY
1055 LPSTR pszPriType;
1056 LPSTR pszSubType;
1057 DWORD dwReserved;
1058 } FINDBODY, *LPFINDBODY;
1060 HRESULT GetMessageSource(
1061 [out] IStream **ppStream,
1062 [in] DWORD dwFlags);
1064 HRESULT GetMessageSize(
1065 [out] ULONG *pcbSize,
1066 [in] DWORD dwFlags);
1068 HRESULT LoadOffsetTable(
1069 [in] IStream *pStream);
1071 HRESULT SaveOffsetTable(
1072 [in] IStream *pStream,
1073 [in] DWORD dwFlags);
1075 HRESULT GetFlags(
1076 [out] DWORD *pdwFlags);
1078 HRESULT Commit(
1079 [in] DWORD dwFlags);
1081 HRESULT HandsOffStorage();
1083 HRESULT BindToObject(
1084 [in] const HBODY hBody,
1085 [in] REFIID riid,
1086 [out, iid_is(riid)] void **ppvObject);
1088 HRESULT SaveBody(
1089 [in] HBODY hBody,
1090 [in] DWORD dwFlags,
1091 [in] IStream *pStream);
1093 HRESULT InsertBody(
1094 [in] BODYLOCATION location,
1095 [in] HBODY hPivot,
1096 [out] LPHBODY phBody);
1098 HRESULT GetBody(
1099 [in] BODYLOCATION location,
1100 [in] HBODY hPivot,
1101 [out] LPHBODY phBody);
1103 HRESULT DeleteBody(
1104 [in] HBODY hBody,
1105 [in] DWORD dwFlags);
1107 HRESULT MoveBody(
1108 [in] HBODY hBody,
1109 [in] BODYLOCATION location);
1111 HRESULT CountBodies(
1112 [in] HBODY hParent,
1113 [in] boolean fRecurse,
1114 [out] ULONG *pcBodies);
1116 HRESULT FindFirst(
1117 [in, out] LPFINDBODY pFindBody,
1118 [out] LPHBODY phBody);
1120 HRESULT FindNext(
1121 [in, out] LPFINDBODY pFindBody,
1122 [out] LPHBODY phBody);
1124 HRESULT ResolveURL(
1125 [in] HBODY hRelated,
1126 [in] LPCSTR pszBase,
1127 [in] LPCSTR pszURL,
1128 [in] DWORD dwFlags,
1129 [out] LPHBODY phBody);
1131 HRESULT ToMultipart(
1132 [in] HBODY hBody,
1133 [in] LPCSTR pszSubType,
1134 [out] LPHBODY phMultipart);
1136 HRESULT GetBodyOffsets(
1137 [in] HBODY hBody,
1138 [in, out] LPBODYOFFSETS pOffsets);
1140 HRESULT GetCharset(
1141 [out] LPHCHARSET phCharset);
1143 HRESULT SetCharset(
1144 [in] HCHARSET hCharset,
1145 [in] CSETAPPLYTYPE applytype);
1147 HRESULT IsBodyType(
1148 [in] HBODY hBody,
1149 [in] IMSGBODYTYPE bodytype);
1151 HRESULT IsContentType(
1152 [in] HBODY hBody,
1153 [in] LPCSTR pszPriType,
1154 [in] LPCSTR pszSubType);
1156 HRESULT QueryBodyProp(
1157 [in] HBODY hBody,
1158 [in] LPCSTR pszName,
1159 [in] LPCSTR pszCriteria,
1160 [in] boolean fSubString,
1161 [in] boolean fCaseSensitive);
1163 HRESULT GetBodyProp(
1164 [in] HBODY hBody,
1165 [in] LPCSTR pszName,
1166 [in] DWORD dwFlags,
1167 [in, out] LPPROPVARIANT pValue);
1169 HRESULT SetBodyProp(
1170 [in] HBODY hBody,
1171 [in] LPCSTR pszName,
1172 [in] DWORD dwFlags,
1173 [in] LPCPROPVARIANT pValue);
1175 HRESULT DeleteBodyProp(
1176 [in] HBODY hBody,
1177 [in] LPCSTR pszName);
1179 HRESULT SetOption(
1180 [in] const TYPEDID oid,
1181 [in] LPCPROPVARIANT pValue);
1183 HRESULT GetOption(
1184 [in] const TYPEDID oid,
1185 [in, out] LPPROPVARIANT pValue);
1189 uuid(fd853cd5-7f86-11d0-8252-00c04fd85ab4),
1190 object
1192 interface IMimeMessage : IMimeMessageTree
1194 typedef [unique] IMimeMessage *LPMIMEMESSAGE;
1196 typedef DWORD TEXTTYPE;
1198 typedef enum tagIMSGFLAGS
1200 IMF_ATTACHMENTS = 0x00000001,
1201 IMF_MULTIPART = 0x00000002,
1202 IMF_SUBMULTIPART = 0x00000004,
1203 IMF_MIME = 0x00000008,
1204 IMF_HTML = 0x00000010,
1205 IMF_PLAIN = 0x00000020,
1206 IMF_PARTIAL = 0x00000040,
1207 IMF_SIGNED = 0x00000080,
1208 IMF_ENCRYPTED = 0x00000100,
1209 IMF_TNEF = 0x00000200,
1210 IMF_MHTML = 0x00000400,
1211 IMF_SECURE = 0x00000800,
1212 IMF_TEXT = 0x00001000,
1213 IMF_CSETTAGGED = 0x00002000,
1214 IMF_NEWS = 0x00004000,
1215 IMF_VOICEMAIL = 0x00008000,
1216 IMF_HASVCARD = 0x00010000,
1217 IMF_RFC1154 = 0x00020000,
1218 } IMSGFLAGS;
1220 typedef enum tagIMSGPRIORITY
1222 IMSG_PRI_LOW = 5,
1223 IMSG_PRI_NORMAL = 3,
1224 IMSG_PRI_HIGH = 1,
1225 } IMSGPRIORITY;
1227 cpp_quote("#define WPF_HTML 0x00000001")
1228 cpp_quote("#define WPF_AUTOINLINE 0x00000002")
1229 cpp_quote("#define WPF_SLIDESHOW 0x00000004")
1230 cpp_quote("#define WPF_ATTACHLINKS 0x00000008")
1231 cpp_quote("#define WPF_IMAGESONLY 0x00000010")
1232 cpp_quote("#define WPF_NOMETACHARSET 0x00000020")
1234 typedef struct tagWEPAGEOPTIONS
1236 DWORD cbSize;
1237 DWORD dwFlags;
1238 DWORD dwDelay;
1239 WCHAR wchQuote;
1240 } WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS;
1242 cpp_quote("#define TXT_PLAIN 1")
1243 cpp_quote("#define TXT_HTML 2")
1245 HRESULT CreateWebPage(
1246 [in] IStream *pRootStm,
1247 [in] LPWEBPAGEOPTIONS pOptions,
1248 [in] IMimeMessageCallback *pCallback,
1249 [out] IMoniker **ppMoniker);
1251 HRESULT GetProp(
1252 [in] LPCSTR pszName,
1253 [in] DWORD dwFlags,
1254 [in,out] LPPROPVARIANT pValue);
1256 HRESULT SetProp(
1257 [in] LPCSTR pszName,
1258 [in] DWORD dwFlags,
1259 [in] LPCPROPVARIANT pValue);
1261 HRESULT DeleteProp(
1262 [in] LPCSTR pszName);
1264 HRESULT QueryProp(
1265 [in] LPCSTR pszName,
1266 [in] LPCSTR pszCriteria,
1267 [in] boolean fSubString,
1268 [in] boolean fCaseSensitive);
1270 HRESULT GetTextBody(
1271 [in] DWORD dwTxtType,
1272 [in] ENCODINGTYPE ietEncoding,
1273 [out] IStream **pStream,
1274 [out] LPHBODY phBody);
1276 HRESULT SetTextBody(
1277 [in] DWORD dwTxtType,
1278 [in] ENCODINGTYPE ietEncoding,
1279 [in] HBODY hAlternative,
1280 [in] IStream *pStream,
1281 [out] LPHBODY phBody);
1283 HRESULT AttachObject(
1284 [in] REFIID riid,
1285 [in, iid_is(riid)] void *pvObject,
1286 [out] LPHBODY phBody);
1288 HRESULT AttachFile(
1289 [in] LPCSTR pszFilePath,
1290 [in] IStream *pstmFile,
1291 [out] LPHBODY phBody);
1293 HRESULT AttachURL(
1294 [in] LPCSTR pszBase,
1295 [in] LPCSTR pszURL,
1296 [in] DWORD dwFlags,
1297 [in] IStream *pstmURL,
1298 [out] LPSTR *ppszCIDURL,
1299 [out] LPHBODY phBody);
1301 HRESULT GetAttachments(
1302 [out] ULONG *pcAttach,
1303 [out] LPHBODY *pprghAttach);
1305 HRESULT GetAddressTable(
1306 [out] IMimeAddressTable **ppTable);
1308 HRESULT GetSender(
1309 [in, out] LPADDRESSPROPS pAddress);
1311 HRESULT GetAddressTypes(
1312 [in] DWORD dwAdrTypes,
1313 [in] DWORD dwProps,
1314 [in, out] LPADDRESSLIST pList);
1316 HRESULT GetAddressFormat(
1317 [in] DWORD dwAdrTypes,
1318 [in] ADDRESSFORMAT format,
1319 [out] LPSTR *ppszFormat);
1321 HRESULT EnumAddressTypes(
1322 [in] DWORD dwAdrTypes,
1323 [in] DWORD dwProps,
1324 [out] IMimeEnumAddressTypes **ppEnum);
1326 HRESULT SplitMessage(
1327 [in] ULONG cbMaxPart,
1328 [out] IMimeMessageParts **ppParts);
1330 HRESULT GetRootMoniker(
1331 [out] IMoniker **ppMoniker);
1335 uuid(761aa741-7bda-11d1-8aa9-00c04fb951f3),
1336 object
1338 interface IMimeMessageCallback : IUnknown
1340 HRESULT OnWebPageSplitter(
1341 [in] DWORD cInlined,
1342 [in] IStream *ppStream);
1346 uuid(de4ad8da-555f-11d1-8dd0-00c04fb951f9),
1347 object
1349 interface IPersistMime : IPersist
1351 /* FIXME: fill this in */
1355 uuid(c558834f-7f86-11d0-8252-00c04fd85ab4),
1356 object
1358 interface IMimeMessageParts : IUnknown
1360 /* FIXME: fill this in */
1364 uuid(fd853cee-7f86-11d0-8252-00c04fd85ab4),
1365 object
1367 interface IMimeEnumProperties : IUnknown
1369 typedef [unique] IMimeEnumProperties *LPMIMEENUMPROPERTIES;
1371 typedef struct tagENUMPROPERTY
1373 LPSTR pszName;
1374 HHEADERROW hRow;
1375 DWORD dwPropId;
1376 } ENUMPROPERTY, *LPENUMPROPERTY;
1378 HRESULT Next(
1379 [in] ULONG cFetch,
1380 [in, out] LPENUMPROPERTY prgProp,
1381 [out] ULONG *pcFetched);
1383 HRESULT Skip(
1384 [in] ULONG cItems);
1386 HRESULT Reset(void);
1388 HRESULT Clone(
1389 [out] IMimeEnumProperties **ppEnum);
1391 HRESULT Count(
1392 [out] ULONG *pcItems);
1397 uuid(c5588354-7f86-11d0-8252-00c04fd85ab4),
1398 object
1400 interface IMimeEnumAddressTypes : IUnknown
1402 /* FIXME: fill this in */
1406 uuid(c5588350-7f86-11d0-8252-00c04fd85ab4),
1407 object
1409 interface IMimeEnumMessageParts : IUnknown
1411 /* FIXME: fill this in */
1415 uuid(64577981-86d7-11d1-bdfc-00c04fa31009),
1416 object
1418 interface IHashTable : IUnknown
1420 /* FIXME: fill this in */
1424 uuid(c5588351-7f86-11d0-8252-00c04fd85ab4),
1425 object
1427 interface IMimeAllocator : IMalloc
1429 typedef [unique] IMimeAllocator *LPMIMEALLOCATOR;
1431 HRESULT FreeParamInfoArray(
1432 [in] ULONG cParams,
1433 [in] LPMIMEPARAMINFO prgParam,
1434 [in] boolean fFreeArray);
1436 HRESULT FreeAddressList(
1437 [in,out] LPADDRESSLIST pList);
1439 HRESULT FreeAddressProps(
1440 [in,out] LPADDRESSPROPS pAddress);
1442 HRESULT ReleaseObjects(
1443 [in] ULONG cObjects,
1444 [in] IUnknown **prgpUnknown,
1445 [in] boolean fFreeArray);
1447 HRESULT FreeEnumHeaderRowArray(
1448 [in] ULONG cRows,
1449 [in] LPENUMHEADERROW prgRow,
1450 [in] boolean fFreeArray);
1452 HRESULT FreeEnumPropertyArray(
1453 [in] ULONG cProps,
1454 [in] LPENUMPROPERTY prgProp,
1455 [in] boolean fFreeArray);
1457 HRESULT FreeThumbprint(
1458 [in] THUMBBLOB *pthumbprint);
1460 HRESULT PropVariantClear(
1461 [in] LPPROPVARIANT pProp);
1466 uuid(feceaffd-c441-11d1-960e-00c04fbd7c09),
1467 object
1469 interface IMimeObjResolver : IUnknown
1471 /* FIXME: fill this in */
1475 uuid(b0d17fc2-7bc4-11d1-bdfa-00c04fa31009),
1476 object
1478 interface IFontCache : IUnknown
1480 /* FIXME: fill this in */
1484 uuid(b0d17fc5-7bc4-11d1-bdfa-00c04fa31009),
1485 object
1487 interface IFontCacheNotify : IUnknown
1489 /* FIXME: fill this in */
1493 uuid(70183210-7b36-11d2-8c12-00c04fa31009),
1494 object
1496 interface IMimeEditTag : IUnknown
1498 /* FIXME: fill this in */
1502 uuid(d09ee528-7b38-11d2-8c12-00c04fa31009),
1503 object
1505 interface IMimeEditTagCollection : IUnknown
1507 /* FIXME: fill this in */
1511 uuid(ba715ae0-a740-11d2-8b22-0080c76b34c6),
1512 local
1514 interface IMimeSecurityCallback : IUnknown
1516 /* FIXME: fill this in */
1518 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_UNKNOWN 0")
1519 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYTRANS 1")
1520 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYAGREE 2")
1521 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_MAIL_LIST 3")
1523 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_CERTIFICATE 0")
1524 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_KEYTRANS 1")
1525 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_PROVIDER 2")
1526 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_EPHEMERAL_KEYAGREE 3")
1527 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_STATIC_KEYAGREE 4")
1529 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_CERTIFICATE 0")
1530 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_ISSUERSERIAL 1")
1531 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_KEY_ID 2")
1536 cpp_quote("")
1537 cpp_quote("HRESULT WINAPI MimeOleSetCompatMode(DWORD);")
1538 cpp_quote("HRESULT WINAPI MimeOleContentTypeFromUrl(LPCSTR,LPCSTR,LPSTR*);")
1539 cpp_quote("HRESULT WINAPI MimeOleParseMhtmlUrl(LPSTR,LPSTR*,LPSTR*);")
1540 cpp_quote("HRESULT WINAPI MimeOleObjectFromUrl(LPCSTR,BOOL,REFIID,LPVOID*,IUnknown**);")
1541 cpp_quote("HRESULT WINAPI MimeOleObjectFromMoniker(BINDF,IMoniker*,IBindCtx*,REFIID,LPVOID*,IMoniker**);")
1542 cpp_quote("HRESULT WINAPI MimeOleCombineURL(LPCSTR,ULONG,LPCSTR,ULONG,BOOL,LPSTR*);")
1543 cpp_quote("HRESULT WINAPI MimeOleGetSubjectFileName(IMimePropertySet*,ULONG*,ULONG*,LPSTR,ULONG);")
1544 cpp_quote("HRESULT WINAPI MimeOleCreateWebDocument(LPCSTR,LPCSTR,IMimeWebDocument**);")
1545 cpp_quote("HRESULT WINAPI MimeOleGetRelatedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1546 cpp_quote("HRESULT WINAPI MimeOleGetMixedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1547 cpp_quote("HRESULT WINAPI MimeOleGetAlternativeSection(IMimeMessageTree*,LPHBODY,boolean*);")
1548 cpp_quote("HRESULT WINAPI MimeOleGenerateCID(LPSTR,ULONG,boolean);")
1549 cpp_quote("HRESULT WINAPI MimeOleGenerateMID(LPSTR,ULONG,boolean);")
1550 cpp_quote("HRESULT WINAPI MimeOleCreateByteStream(IStream**);")
1551 cpp_quote("HRESULT WINAPI MimeOlGetPropertySchema(IMimePropertySchema**);")
1552 cpp_quote("HRESULT WINAPI MimeOleQueryString(LPCSTR,LPCSTR,boolean,boolean);")
1553 cpp_quote("HRESULT WINAPI MimeOleGetPropA(IMimePropertySet*,LPCSTR,DWORD,LPSTR*);")
1554 cpp_quote("HRESULT WINAPI MimeOleSetPropA(IMimePropertySet*,LPCSTR,DWORD,LPCSTR);")
1555 cpp_quote("HRESULT WINAPI MimeOleGetPropW(IMimePropertySet*,LPCSTR,DWORD,LPWSTR*);")
1556 cpp_quote("HRESULT WINAPI MimeOleSetPropW(IMimePropertySet*,LPCSTR,DWORD,LPCWSTR);")
1557 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPSTR*);")
1558 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCSTR);")
1559 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPWSTR*);")
1560 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCWSTR);")
1561 cpp_quote("HRESULT WINAPI MimeOleCreateHeaderTable(IMimeHeaderTable**);")
1562 cpp_quote("HRESULT WINAPI MimeOleVariantFree(LPPROPVARIANT);")
1563 cpp_quote("HRESULT WINAPI MimeOleVariantCopy(LPPROPVARIANT,LPPROPVARIANT);")
1564 cpp_quote("HRESULT WINAPI MimeOleGetExtClassId(LPCSTR,LPCLSID);")
1565 cpp_quote("HRESULT WINAPI MimeOleEncodeHeader(HCHARSET,LPPROPVARIANT,LPSTR*,LPRFC1522INFO);")
1566 cpp_quote("HRESULT WINAPI MimeOleDecodeHeader(HCHARSET,LPCSTR,LPPROPVARIANT,LPRFC1522INFO);")
1567 cpp_quote("HRESULT WINAPI MimeOleRfc1522Decode(LPCSTR,LPSTR,ULONG,LPSTR*);")
1568 cpp_quote("HRESULT WINAPI MimeOleRfc1522Encode(LPCSTR,HCHARSET,LPSTR*);")
1569 cpp_quote("HRESULT WINAPI MimeOleGetInternat(IMimeInternational**);")
1570 cpp_quote("HRESULT WINAPI MimeOleFindCharset(LPCSTR,LPHCHARSET);")
1571 cpp_quote("HRESULT WINAPI MimeOleGetCharsetInfo(HCHARSET,LPINETCSETINFO);")
1572 cpp_quote("HRESULT WINAPI MimeOleGetCodePageInfo(HCHARSET,LPCODEPAGEINFO);")
1573 cpp_quote("HRESULT WINAPI MimeOleGetDefaultCharset(LPHCHARSET);")
1574 cpp_quote("HRESULT WINAPI MimeOleSetDefaultCharset(HCHARSET);")
1575 cpp_quote("HRESULT WINAPI MimeOleGetCodePageCharset(CODEPAGEID,CHARSETTYPE,LPHCHARSET);")
1576 cpp_quote("HRESULT WINAPI MimeOleCreateVirtualStream(IStream**);")
1577 cpp_quote("HRESULT WINAPI MimeOleOpenFileStream(LPCSTR,DWORD,DWORD,IStream**);")
1578 cpp_quote("HRESULT WINAPI MimeOleIsTnefStream(IStream*);")
1579 cpp_quote("HRESULT WINAPI MimeOleGenerateFileName(LPCSTR,LPCSTR,LPCSTR,LPSTR*);")
1580 cpp_quote("HRESULT WINAPI MimeOleGetFileExtension(LPCSTR,LPSTR,ULONG);")
1581 cpp_quote("HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity**);")
1582 cpp_quote("HRESULT WINAPI MimeOleInetDateToFileTime(LPCSTR,LPFILETIME);")
1583 cpp_quote("HRESULT WINAPI MimeOleFileTimeToInetDate(LPFILETIME,LPSTR,ULONG);")
1584 cpp_quote("HRESULT WINAPI MimeOleCreateMessageParts(IMimeMessageParts**);")
1585 cpp_quote("HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator**);")
1586 cpp_quote("HRESULT WINAPI MimeOleParseRfc822Address(DWORD,ENCODINGTYPE,LPCSTR,LPADDRESSLIST);")
1587 cpp_quote("HRESULT WINAPI MimeOleCreateMessage(IUnknown*,IMimeMessage**);")
1588 cpp_quote("HRESULT WINAPI MimeOleMergePartialHeaders(IStream*,IStream*);")
1589 cpp_quote("HRESULT WINAPI MimeOleEscapeString(CODEPAGEID,LPCSTR,LPSTR*);")
1590 cpp_quote("HRESULT WINAPI MimeOleGetExtContentType(LPCSTR,LPSTR*);")
1591 cpp_quote("HRESULT WINAPI MimeOleGetContentTypeExt(LPCSTR,LPSTR*);")
1592 cpp_quote("HRESULT WINAPI MimeOleGetFileInfo(LPSTR,LPSTR*,LPSTR*,LPSTR*,LPSTR*,LPSTR*);")
1593 cpp_quote("HRESULT WINAPI MimeOleCreateBody(IMimeBody**);")
1594 cpp_quote("HRESULT WINAPI MimeOleCreatePropertySet(IUnknown*,IMimePropertySet**);")
1595 cpp_quote("HRESULT WINAPI MimeOleCreateMessageTree(IUnknown*,IMimeMessageTree**);")
1596 cpp_quote("HRESULT WINAPI MimeOleGetCertsFromThumbprints(THUMBBLOB*,X509CERTRESULT*,const HCERTSTORE*,DWORD);")
1597 cpp_quote("HRESULT WINAPI MimeOleSplitMessage(IMimeMessage*,ULONG,IMimeMessageParts**);")
1598 cpp_quote("HRESULT WINAPI MimeOleClearDirtyTree(IMimeMessageTree*);")
1599 cpp_quote("HRESULT WINAPI MimeOleConvertEnrichedToHTML(CODEPAGEID,IStream*,IStream*);")
1600 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsToDlg(LPBYTE,DWORD,DWORD,PCX509CERT*,HWND,DWORD,DWORD,DWORD);")
1601 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFromDlg(HWND,DWORD,DWORD,DWORD,LPBYTE,DWORD*);")
1602 cpp_quote("HRESULT WINAPI MimeOleSMimeCapInit(LPBYTE,DWORD,LPVOID*);")
1603 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddSMimeCap(LPBYTE,DWORD,LPVOID);")
1604 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddCert(LPBYTE,DWORD,BOOL,LPVOID);")
1605 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetEncAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1606 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetHashAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1607 cpp_quote("HRESULT WINAPI MimeOleSMimeCapRelease(LPVOID);")
1608 cpp_quote("HRESULT WINAPI MimeOleAlgNameFromSMimeap(LPBYTE,DWORD,LPCSTR*);")
1609 cpp_quote("HRESULT WINAPI MimeOleAlgStrengthFromSMimeCap(LPBYTE,DWORD,BOOL,DWORD*);")
1610 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFull(LPVOID,BOOL,BOOL,LPBYTE,DWORD*);")
1611 cpp_quote("HRESULT WINAPI MimeOleCreateHashTable(DWORD,BOOL,IHashTable**);")
1612 cpp_quote("HRESULT WINAPI MimeOleStripHeaders(IMimeMessage*,HBODY,LPCSTR,LPCSTR,IStream**);")
1614 cpp_quote("HRESULT WINAPI MimeEditViewSource(HWND,IMimeMessage*);")
1615 cpp_quote("HRESULT WINAPI MimeEditIsSafeToRun(HWND,LPCSTR);")
1616 cpp_quote("HRESULT WINAPI MimeEditVerifyTrust(HWND,LPCSTR,LPCSTR);")
1617 cpp_quote("HRESULT WINAPI MimeEditCreateMimeDocument(IUnknown*,IMimeMessage*,DWORD,IMimeMessage**);")
1618 cpp_quote("HRESULT WINAPI MimeEditGetBackgroundImageUrl(IUnknown*,BSTR*);")
1619 cpp_quote("HRESULT WINAPI MimeEditDocumentFromStream(IStream*,REFIID,void**);")
1621 cpp_quote("HRESULT WINAPI MimeOleGetPropertySchema(IMimePropertySchema**);")
1622 cpp_quote("HRESULT WINAPI MimeGetAddressFormatW(REFIID,void*,DWORD,ADDRESSFORMAT,WCHAR**);")