msvcirt: Add a partial implementation of class strstream.
[wine.git] / include / mimeole.idl
blob9b7826d721fe1971c7c665d78d5fb532257923d9
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);")
38 cpp_quote("#define MIME_E_REG_CREATE_KEY 0x800cce01")
39 cpp_quote("#define MIME_E_REG_QUERY_INFO 0x800cce02")
40 cpp_quote("#define MIME_E_INVALID_ENCTYPE 0x800cce03")
41 cpp_quote("#define MIME_E_BOUNDARY_MISMATCH 0x800cce04")
42 cpp_quote("#define MIME_E_NOT_FOUND 0x800cce05")
43 cpp_quote("#define MIME_E_NO_DATA 0x800cce05")
44 cpp_quote("#define MIME_E_BUFFER_TOO_SMALL 0x800cce06")
45 cpp_quote("#define MIME_E_INVALID_ITEM_FLAGS 0x800cce07")
46 cpp_quote("#define MIME_E_ONE_LINE_ITEME 0x800cce08")
47 cpp_quote("#define MIME_E_INVALID_HANDLE 0x800cce09")
48 cpp_quote("#define MIME_E_CHARSET_TRANSLATE 0x800cce0a")
49 cpp_quote("#define MIME_E_NOT_INITIALIZED 0x800cce0b")
51 cpp_quote("#define MIME_E_INVALID_OPTION_VALUE 0x800cce1f")
52 cpp_quote("#define MIME_E_INVALID_OPTION_ID 0x800cce20")
53 cpp_quote("#define MIME_E_INVALID_HEADER_NAME 0x800cce21")
54 cpp_quote("#define MIME_E_NOT_BOUND 0x800cce22")
55 cpp_quote("#define MIME_E_MAX_SIZE_TOO_SMALL 0x800cce23")
56 cpp_quote("#define MIME_E_MULTIPART_HAS_CHILDREN 0x800cce25")
57 cpp_quote("#define MIME_E_INVALID_PROP_FLAGS 0x800cce26")
58 cpp_quote("#define MIME_E_INVALID_ADDRESS_TYPE 0x800cce27")
59 cpp_quote("#define MIME_E_INVALID_OBJECT_IID 0x800cce28")
60 cpp_quote("#define MIME_E_MLANG_DLL_NOT_FOUND 0x800cce29")
61 cpp_quote("#define MIME_E_ROOT_NOT_EMPTY 0x800cce2a")
62 cpp_quote("#define MIME_E_MLANG_BAD_DLL 0x800cce2b")
63 cpp_quote("#define MIME_E_REG_OPEN_KEY 0x800cce2c")
64 cpp_quote("#define MIME_E_INVALID_INET_DATE 0x800cce2d")
65 cpp_quote("#define MIME_E_INVALID_BODYTYPE 0x800cce2e")
66 cpp_quote("#define MIME_E_INVALID_DELETE_TYPE 0x800cce2f")
67 cpp_quote("#define MIME_E_OPTION_HAS_NO_VALUE 0x800cce30")
68 cpp_quote("#define MIME_E_INVALID_CHARSET_TYPE 0x800cce31")
70 cpp_quote("#define MIME_E_INVALID_TEXT_TYPE 0x800cce38")
72 cpp_quote("#define MIME_E_SECURITY_NOOP 0x800cceb1")
73 cpp_quote("#define MIME_S_SECURITY_NOOP 0x000cceb1")
75 cpp_quote("typedef enum tagMIMEPROPID {")
76 cpp_quote(" PID_HDR_NEWSGROUP = 2,")
77 cpp_quote(" PID_HDR_NEWSGROUPS = 3,")
78 cpp_quote(" PID_HDR_REFS = 4,")
79 cpp_quote(" PID_HDR_SUBJECT = 5,")
80 cpp_quote(" PID_HDR_FROM = 6,")
81 cpp_quote(" PID_HDR_MESSAGEID = 7,")
82 cpp_quote(" PID_HDR_RETURNPATH = 8,")
83 cpp_quote(" PID_HDR_RR = 9,")
84 cpp_quote(" PID_HDR_RETRCPTO = 10,")
85 cpp_quote(" PID_HDR_APPARTO = 11,")
86 cpp_quote(" PID_HDR_DATE = 12,")
87 cpp_quote(" PID_HDR_RECEIVED = 13,")
88 cpp_quote(" PID_HDR_REPLYTO = 14,")
89 cpp_quote(" PID_HDR_XMAILER = 15,")
90 cpp_quote(" PID_HDR_BCC = 16,")
91 cpp_quote(" PID_HDR_MIMEVER = 17,")
92 cpp_quote(" PID_HDR_CNTTYPE = 18,")
93 cpp_quote(" PID_HDR_CNTXFER = 19,")
94 cpp_quote(" PID_HDR_CNTID = 20,")
95 cpp_quote(" PID_HDR_CNTDESC = 21,")
96 cpp_quote(" PID_HDR_CNTDISP = 22,")
97 cpp_quote(" PID_HDR_CNTBASE = 23,")
98 cpp_quote(" PID_HDR_CNTLOC = 24,")
99 cpp_quote(" PID_HDR_TO = 25,")
100 cpp_quote(" PID_HDR_PATH = 26,")
101 cpp_quote(" PID_HDR_FOLLOWUPTO = 27,")
102 cpp_quote(" PID_HDR_EXPIRES = 28,")
103 cpp_quote(" PID_HDR_CC = 29,")
104 cpp_quote(" PID_HDR_CONTROL = 30,")
105 cpp_quote(" PID_HDR_DISTRIB = 31,")
106 cpp_quote(" PID_HDR_KEYWORDS = 32,")
107 cpp_quote(" PID_HDR_SUMMARY = 33,")
108 cpp_quote(" PID_HDR_APPROVED = 34,")
109 cpp_quote(" PID_HDR_LINES = 35,")
110 cpp_quote(" PID_HDR_XREF = 36,")
111 cpp_quote(" PID_HDR_ORG = 37,")
112 cpp_quote(" PID_HDR_XNEWSRDR = 38,")
113 cpp_quote(" PID_HDR_XPRI = 39,")
114 cpp_quote(" PID_HDR_XMSPRI = 40,")
115 cpp_quote(" PID_PAR_FILENAME = 41,")
116 cpp_quote(" PID_PAR_BOUNDARY = 42,")
117 cpp_quote(" PID_PAR_CHARSET = 43,")
118 cpp_quote(" PID_PAR_NAME = 44,")
119 cpp_quote(" PID_ATT_FILENAME = 45,")
120 cpp_quote(" PID_ATT_GENFNAME = 46,")
121 cpp_quote(" PID_ATT_PRITYPE = 47,")
122 cpp_quote(" PID_ATT_SUBTYPE = 48,")
123 cpp_quote(" PID_ATT_NORMSUBJ = 49,")
124 cpp_quote(" PID_ATT_ILLEGAL = 50,")
125 cpp_quote(" PID_ATT_RENDERED = 51,")
126 cpp_quote(" PID_ATT_SENTTIME = 52,")
127 cpp_quote(" PID_ATT_RECVTIME = 53,")
128 cpp_quote(" PID_ATT_PRIORITY = 54,")
129 cpp_quote(" PID_HDR_COMMENT = 55,")
130 cpp_quote(" PID_HDR_ENCODING = 56,")
131 cpp_quote(" PID_HDR_ENCRYPTED = 57,")
132 cpp_quote(" PID_HDR_OFFSETS = 58,")
133 cpp_quote(" PID_HDR_XUNSENT = 59,")
134 cpp_quote(" PID_HDR_ARTICLEID = 60,")
135 cpp_quote(" PID_HDR_SENDER = 61,")
136 cpp_quote(" PID_ATT_SERVER = 62,")
137 cpp_quote(" PID_ATT_ACCOUNT = 63,")
138 cpp_quote(" PID_ATT_UIDL = 64,")
139 cpp_quote(" PID_ATT_STOREMSGID = 65,")
140 cpp_quote(" PID_ATT_USERNAME = 66,")
141 cpp_quote(" PID_ATT_FORWARDTO = 67,")
142 cpp_quote(" PID_ATT_STOREFOLDERID = 68,")
143 cpp_quote(" PID_ATT_GHOSTED = 69,")
144 cpp_quote(" PID_ATT_UNCACHEDSIZE = 70,")
145 cpp_quote(" PID_ATT_COMBINED = 71,")
146 cpp_quote(" PID_ATT_AUTOINLINED = 72,")
147 cpp_quote(" PID_HDR_DISP_NOTIFICATION_TO = 73,")
148 cpp_quote(" PID_PAR_REPLYTYPE = 74,")
149 cpp_quote(" PID_PAR_FORMAT = 75,")
150 cpp_quote(" PID_ATT_FORMAT = 76,")
151 cpp_quote(" PID_HDR_INREPLYTO = 77,")
152 cpp_quote(" PID_ATT_ACCOUNTNAME = 78,")
153 cpp_quote(" PID_LAST = 79,")
154 cpp_quote("} MIMEPROPID;")
156 cpp_quote("#define ISPIDSTR(_name) (((DWORD_PTR)(_name) >> 16) == 0)")
157 cpp_quote("#define STRTOPID(_name) ((DWORD)((DWORD_PTR)((LPCSTR)(_name))))")
158 cpp_quote("#define PIDTOSTR(_id) ((LPCSTR)((DWORD_PTR)(_id)))")
160 cpp_quote("#define TYPEDID_ID(_typedid) (((ULONG)(_typedid))>>16)")
161 cpp_quote("#define TYPEDID_MASK ((ULONG)0xffff)")
162 cpp_quote("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))")
164 cpp_quote("#define OID_ALLOW_8BIT_HEADER (0x00010000 | VT_BOOL)")
165 cpp_quote("#define OID_CBMAX_HEADER_LINE (0x00020000 | VT_UI4)")
166 cpp_quote("#define OID_SAVE_FORMAT (0x00030000 | VT_UI4)")
167 cpp_quote("#define OID_WRAP_BODY_TEXT (0x00040000 | VT_BOOL)")
168 cpp_quote("#define OID_CBMAX_BODY_LINE (0x00050000 | VT_UI4)")
169 cpp_quote("#define OID_TRANSMIT_BODY_ENCODING (0x00060000 | VT_UI4)")
170 cpp_quote("#define OID_TRANSMIT_TEXT_ENCODING (0x00070000 | VT_UI4)")
171 cpp_quote("#define OID_GENERATE_MESSAGE_ID (0x00080000 | VT_BOOL)")
172 cpp_quote("#define OID_HIDE_TNEF_ATTACHMENTS (0x000e0000 | VT_BOOL)")
173 cpp_quote("#define OID_CLEANUP_TREE_ON_SAVE (0x000f0000 | VT_BOOL)")
174 cpp_quote("#define OID_BODY_REMOVE_NBSP (0x00140000 | VT_BOOL)")
175 cpp_quote("#define OID_DEFAULT_BODY_CHARSET (0x00150000 | VT_UI4)")
176 cpp_quote("#define OID_DEFAULT_HEADER_CHARSET (0x00160000 | VT_UI4)")
177 cpp_quote("#define OID_DBCS_ESCAPE_IS_8BIT (0x00170000 | VT_BOOL)")
178 cpp_quote("#define OID_SECURITY_TYPE (0x00180000 | VT_UI4)")
179 cpp_quote("#define OID_SECURITY_HWND_OWNER (0x00320000 | VT_UI4)")
180 cpp_quote("#define OID_HEADER_RELOAD_TYPE (0x00370000 | VT_UI4)")
181 cpp_quote("#define OID_CAN_INLINE_TEXT_BODIES (0x00380000 | VT_BOOL)")
182 cpp_quote("#define OID_SHOW_MACBINARY (0x00390000 | VT_BOOL)")
183 cpp_quote("#define OID_SAVEBODY_KEEPBOUNDARY (0x00400000 | VT_BOOL)")
185 cpp_quote("#define OID_SECURITY_2KEY_CERT_BAG (0x00590000 | VT_VECTOR | VT_UI4)")
186 cpp_quote("#define OID_SECURITY_2KEY_CERT_BAG_64 (0x00590000 | VT_VECTOR | VT_UI8)")
189 uuid(e4b28371-83b0-11d0-8259-00c04fd85ab4),
190 version(1.0)
192 library MIMEOLE
194 importlib("stdole2.tlb");
196 DECLARE_HANDLE(HCHARSET);
197 DECLARE_HANDLE(HBODY);
198 DECLARE_HANDLE(HHEADERROW);
200 typedef HCHARSET *LPHCHARSET;
201 typedef HBODY *LPHBODY;
202 typedef HHEADERROW *LPHHEADERROW;
203 typedef DWORD TYPEDID;
204 typedef const PROPVARIANT *LPCPROPVARIANT;
205 typedef const BLOB *LPCBLOB;
207 typedef enum tagRELOADTYPE
209 RELOAD_HEADER_NONE,
210 RELOAD_HEADER_RESET,
211 RELOAD_HEADER_APPEND,
212 RELOAD_HEADER_REPLACE,
213 } RELOADTYPE;
215 typedef enum tagMIMESAVETYPE
217 SAVE_RFC822,
218 SAVE_RFC1521,
219 } MIMESAVETYPE;
221 typedef enum tagCSETAPPLYTYPE
223 CSET_APPLY_UNTAGGED,
224 CSET_APPLY_ALL,
225 CSET_APPLY_TAG_ALL,
226 } CSETAPPLYTYPE;
228 typedef enum tagENCODINGTYPE
230 IET_BINARY,
231 IET_BASE64,
232 IET_UUENCODE,
233 IET_QP,
234 IET_7BIT,
235 IET_8BIT,
236 IET_INETCSET,
237 IET_UNICODE,
238 IET_RFC1522,
239 IET_ENCODED,
240 IET_CURRENT,
241 IET_UNKNOWN,
242 IET_BINHEX40,
243 IET_LAST
244 } ENCODINGTYPE;
246 const SHORT IET_DECODED = IET_BINARY;
248 const SHORT CCHMAX_HEADER_LINE = 1000;
251 uuid(c5588349-7f86-11d0-8252-00c04fd85ab4),
252 object
254 interface IMimeInternational : IUnknown
256 typedef [unique] IMimeInternational *LPMIMEINTERNATIONAL;
257 typedef DWORD CODEPAGEID;
259 const CODEPAGEID CP_USASCII = 1252;
260 const CODEPAGEID CP_UNICODE = 1200;
261 const CODEPAGEID CP_JAUTODETECT = 50932;
262 const CODEPAGEID CP_KAUTODETECT = 50949;
263 const CODEPAGEID CP_ISO2022JPESC = 50221;
264 const CODEPAGEID CP_ISO2022JPSIO = 50222;
266 const SHORT CCHMAX_CSET_NAME = 128;
267 const SHORT CCHMAX_LANG_NAME = 128;
268 const SHORT CCHMAX_FACE_NAME = 128;
270 typedef struct tagINETCSETINFO
272 CHAR szName[CCHMAX_CSET_NAME];
273 HCHARSET hCharset;
274 CODEPAGEID cpiWindows;
275 CODEPAGEID cpiInternet;
276 DWORD dwReserved1;
277 } INETCSETINFO, *LPINETCSETINFO;
279 typedef enum tagINETLANGMASK
281 ILM_FAMILY = 0x01,
282 ILM_NAME = 0x02,
283 ILM_BODYCSET = 0x04,
284 ILM_HEADERCSET = 0x08,
285 ILM_WEBCSET = 0x10,
286 ILM_FIXEDFONT = 0x20,
287 ILM_VARIABLEFONT = 0x40,
288 } INETLANGMASK;
290 typedef struct tagCODEPAGEINFO
292 DWORD dwMask;
293 CODEPAGEID cpiCodePage;
294 BOOL fIsValidCodePage;
295 ULONG ulMaxCharSize;
296 BOOL fInternetCP;
297 CODEPAGEID cpiFamily;
298 CHAR szName[CCHMAX_LANG_NAME];
299 CHAR szBodyCset[CCHMAX_CSET_NAME];
300 CHAR szHeaderCset[CCHMAX_CSET_NAME];
301 CHAR szWebCset[CCHMAX_CSET_NAME];
302 CHAR szFixedFont[CCHMAX_FACE_NAME];
303 CHAR szVariableFont[CCHMAX_FACE_NAME];
304 ENCODINGTYPE ietNewsDefault;
305 ENCODINGTYPE ietMailDefault;
306 DWORD dwReserved1;
307 } CODEPAGEINFO, *LPCODEPAGEINFO;
309 typedef struct tagRFC1522INFO
311 BOOL fRfc1522Allowed;
312 BOOL fRfc1522Used;
313 BOOL fAllow8bit;
314 HCHARSET hRfc1522Cset;
315 } RFC1522INFO, *LPRFC1522INFO;
317 typedef enum tagCHARSETTYPE
319 CHARSET_BODY,
320 CHARSET_HEADER,
321 CHARSET_WEB,
322 } CHARSETTYPE;
325 HRESULT SetDefaultCharset(
326 [in] HCHARSET hCharset);
327 HRESULT GetDefaultCharset(
328 [out] LPHCHARSET phCharset);
329 HRESULT GetCodePageCharset(
330 [in] CODEPAGEID cpiCodePage,
331 [in] CHARSETTYPE ctCsetType,
332 [out] LPHCHARSET phCharset);
333 HRESULT FindCharset(
334 [in] LPCSTR pszCharset,
335 [out] LPHCHARSET phCharset);
336 HRESULT GetCharsetInfo(
337 [in] HCHARSET hCharset,
338 [in, out] LPINETCSETINFO pCsetInfo);
339 HRESULT GetCodePageInfo(
340 [in] CODEPAGEID cpiCodePage,
341 [in, out] LPCODEPAGEINFO pCodePageInfo);
342 HRESULT CanConvertCodePages(
343 [in] CODEPAGEID cpiSource,
344 [in] CODEPAGEID cpiDest);
345 HRESULT DecodeHeader(
346 [in] HCHARSET hCharset,
347 [in] LPCSTR pszData,
348 [in, out] LPPROPVARIANT pDecoded,
349 [in, out] LPRFC1522INFO pRfc1522Info);
350 HRESULT EncodeHeader(
351 [in] HCHARSET hCharset,
352 [in] LPPROPVARIANT pData,
353 [out] LPSTR *ppszEncoded,
354 [in, out] LPRFC1522INFO pRfc1522Info);
355 HRESULT ConvertBuffer(
356 [in] CODEPAGEID cpiSource,
357 [in] CODEPAGEID cpiDest,
358 [in] LPBLOB pIn,
359 [in, out] LPBLOB pOut,
360 [out] ULONG *pcbRead);
361 HRESULT ConvertString(
362 [in] CODEPAGEID cpiSource,
363 [in] CODEPAGEID cpiDest,
364 [in] LPPROPVARIANT pIn,
365 [in, out] LPPROPVARIANT pOut);
366 HRESULT MLANG_ConvertInetReset(void);
367 HRESULT MLANG_ConvertInetString(
368 [in] CODEPAGEID cpiSource,
369 [in] CODEPAGEID cpiDest,
370 [in] LPCSTR pSource,
371 [in] int *pnSizeOfSource,
372 [in,out,unique] LPSTR pDestination,
373 [in] int *pnDstSize);
374 HRESULT Rfc1522Decode(
375 [in] LPCSTR pszValue,
376 [in,ref] LPSTR pszCharset,
377 [in] ULONG cchmax,
378 [out] LPSTR *ppszDecoded);
379 HRESULT Rfc1522Encode(
380 [in] LPCSTR pszValue,
381 [in] HCHARSET hCharset,
382 [out] LPSTR *ppszEncoded);
386 uuid(c5588353-7f86-11d0-8252-00c04fd85ab4),
387 object
389 interface IMimeSecurity : IUnknown
391 typedef [unique] IMimeSecurity *LPMIMESECURITY;
393 cpp_quote("#ifdef __WINE_WINCRYPT_H")
394 cpp_quote("typedef PCCERT_CONTEXT PCX509CERT;")
395 cpp_quote("#else")
396 typedef const void *PCX509CERT;
397 typedef void *HCERTSTORE;
398 cpp_quote("#endif")
400 typedef BLOB THUMBBLOB;
401 typedef void *HCAPICERTSTORE;
403 cpp_quote("#define MST_NONE 0x00000000")
404 cpp_quote("#define MST_THIS_SIGN 0x00000001")
405 cpp_quote("#define MST_THIS_ENCRYPT 0x00000002")
406 cpp_quote("#define MST_BLOB_FLAG 0x00000004")
407 cpp_quote("#define MST_THIS_BLOBSIGN (MST_BLOB_FLAG | MST_THIS_SIGN)")
408 cpp_quote("#define MST_CHILD_SIGN 0x00000100")
409 cpp_quote("#define MST_CHILD_ENCRYPT 0x00000200")
410 cpp_quote("#define MST_SUBMSG_SIGN 0x00001000")
411 cpp_quote("#define MST_SUBMSG_ENCRYPT 0x00002000")
412 cpp_quote("#define MST_RECEIPT_REQUEST 0x00010000")
413 cpp_quote("#define MST_CLASS_SMIME_V1 0x00000000")
414 cpp_quote("#define MST_CLASS_PGP 0x01000000")
416 typedef enum tagCERTSTATE
418 CERTIFICATE_OK,
419 CERTIFICATE_NOT_PRESENT,
420 CERTIFICATE_EXPIRED,
421 CERTIFICATE_CHAIN_TOO_LONG,
422 CERTIFICATE_MISSING_ISSUER,
423 CERTIFICATE_CRL_LISTED,
424 CERTIFICATE_NOT_TRUSTED,
425 CERTIFICATE_INVALID,
426 CERTIFICATE_ERROR,
427 CERTIFICATE_NOPRINT,
428 CERTIFICATE_UNKNOWN
429 } CERTSTATE;
431 typedef enum tagCERTNAMETYPE
433 SIMPLE,
434 OID,
435 X500,
436 } CERTNAMETYPE;
438 typedef enum tagCERTDATAID
440 CDID_EMAIL,
441 CDID_MAX
442 } CERTDATAID;
444 typedef struct tagX509CERTRESULT
446 DWORD cEntries;
447 CERTSTATE *rgcs;
448 PCX509CERT *rgpCert;
449 } X509CERTRESULT, *PX509CERTRESULT;
450 typedef const X509CERTRESULT *PCX509CERTRESULT;
452 HRESULT InitNew(void);
454 HRESULT CheckInit(void);
456 HRESULT EncodeMessage(
457 [in] IMimeMessageTree */*const*/ pTree,
458 [in] DWORD dwFlags);
460 HRESULT EncodeBody(
461 [in] IMimeMessageTree */*const*/ pTree,
462 [in] HBODY hEncodeRoot,
463 [in] DWORD dwFlags);
465 HRESULT DecodeMessage(
466 [in] IMimeMessageTree */*const*/ pTree,
467 [in] DWORD dwFlags);
469 HRESULT DecodeBody(
470 [in] IMimeMessageTree */*const*/ pTree,
471 [in] HBODY hDecodeRoot,
472 [in] DWORD dwFlags);
474 HRESULT EnumCertificates(
475 [in] HCAPICERTSTORE hc,
476 [in] DWORD dwUsage,
477 [in] PCX509CERT pPrev,
478 [out] PCX509CERT *ppCert);
480 HRESULT GetCertificateName(
481 [in] const PCX509CERT pX509Cert,
482 [in] const CERTNAMETYPE cn,
483 [out] LPSTR *ppszName);
485 HRESULT GetMessageType(
486 [in] const HWND hwndParent,
487 [in] IMimeBody */*const*/ pBody,
488 [out] DWORD */*const*/ pdwSecType);
490 HRESULT GetCertData(
491 [in] const PCX509CERT pX509Cert,
492 [in] const CERTDATAID dataid,
493 [out, ref] LPPROPVARIANT pValue);
497 uuid(fd853cd1-7f86-11d0-8252-00c04fd85ab4),
498 object
500 interface IMimeHeaderTable : IPersistStream
502 /* FIXME: fill this in */
506 uuid(fd853cec-7f86-11d0-8252-00c04fd85ab4),
507 object
509 interface IMimePropertySchema : IUnknown
511 typedef [unique] IMimePropertySchema *LPMIMEPROPERTYSCHEMA;
513 typedef enum tagMIMEPROPFLAGS
515 MPF_INETCSET = 0x01,
516 MPF_RFC1522 = 0x02,
517 MPF_ADDRESS = 0x04,
518 MPF_HASPARAMS = 0x08,
519 MPF_MIME = 0x10,
520 MPF_READONLY = 0x20
521 } MIMEPROPFLAGS;
523 HRESULT RegisterProperty(
524 [in] const char *name,
525 [in] DWORD flags,
526 [in] DWORD rownumber,
527 [in] VARTYPE vtdefault,
528 [out] DWORD *propid);
530 HRESULT ModifyProperty(
531 [in] const char *name,
532 [in] DWORD flags,
533 [in] DWORD rownumber,
534 [in] VARTYPE vtdefault);
536 HRESULT GetPropertyId(
537 [in] const char *name,
538 [out] DWORD *propid);
540 HRESULT GetPropertyName(
541 [in] DWORD propid,
542 [out] char **name);
544 HRESULT RegisterAddressType(
545 [in] const char *name,
546 [out] DWORD *adrtype);
550 uuid(fd853cd3-7f86-11d0-8252-00c04fd85ab4),
551 object
553 interface IMimePropertySet : IPersistStreamInit
555 typedef [unique] IMimePropertySet *LPMIMEPROPERTYSET;
557 cpp_quote("#define PDF_ENCODED 0x00000001")
558 cpp_quote("#define PDF_NAMEINDATA 0x00000002")
559 cpp_quote("#define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)")
560 cpp_quote("#define PDF_NOCOMMENTS 0x00000008")
561 cpp_quote("#define PDF_SAVENOENCODE 0x00000010")
562 cpp_quote("#define PDF_VECTOR 0x00000020")
564 typedef struct tagMIMEPARAMINFO
566 LPSTR pszName;
567 LPSTR pszData;
568 } MIMEPARAMINFO, *LPMIMEPARAMINFO;
570 typedef enum tagPROPINFOMASK
572 PIM_CHARSET = 0x01,
573 PIM_ENCODINGTYPE = 0x02,
574 PIM_ROWNUMBER = 0x04,
575 PIM_FLAGS = 0x08,
576 PIM_PROPID = 0x10,
577 PIM_VALUES = 0x20,
578 PIM_VTDEFAULT = 0x40,
579 PIM_VTCURRENT = 0x80
580 } PROPINFOMASK;
582 typedef struct tagMIMEPROPINFO
584 DWORD dwMask;
585 HCHARSET hCharset;
586 ENCODINGTYPE ietEncoding;
587 DWORD dwRowNumber;
588 DWORD dwFlags;
589 DWORD dwPropId;
590 DWORD cValues;
591 VARTYPE vtDefault;
592 VARTYPE vtCurrent;
593 } MIMEPROPINFO, *LPMIMEPROPINFO;
594 typedef const MIMEPROPINFO *LPCMIMEPROPINFO;
596 HRESULT GetPropInfo(
597 [in] LPCSTR pszName,
598 [in,out] LPMIMEPROPINFO pInfo);
600 HRESULT SetPropInfo(
601 [in] LPCSTR pszName,
602 [in] LPCMIMEPROPINFO pInfo);
604 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
605 cpp_quote("#undef GetProp")
606 cpp_quote("#undef SetProp")
607 cpp_quote("#undef EnumProps")
608 cpp_quote("#endif")
609 HRESULT GetProp(
610 [in] LPCSTR pszName,
611 [in] DWORD dwFlags,
612 [in,out] LPPROPVARIANT pValue);
614 HRESULT SetProp(
615 [in] LPCSTR pszName,
616 [in] DWORD dwFlags,
617 [in] LPCPROPVARIANT pValue);
619 HRESULT AppendProp(
620 [in] LPCSTR pszName,
621 [in] DWORD dwFlags,
622 [in] LPPROPVARIANT pValue);
624 HRESULT DeleteProp(
625 [in] LPCSTR pszName);
627 HRESULT CopyProps(
628 [in] ULONG cNames,
629 [in,unique] LPCSTR *prgszName,
630 [in] IMimePropertySet *pPropertySet);
632 HRESULT MoveProps(
633 [in] ULONG cNames,
634 [in] LPCSTR *prgszName,
635 [in] IMimePropertySet *pPropertySet);
637 HRESULT DeleteExcept(
638 [in] ULONG cNames,
639 [in] LPCSTR *prgszName);
641 HRESULT QueryProp(
642 [in] LPCSTR pszName,
643 [in] LPCSTR pszCriteria,
644 [in] boolean fSubString,
645 [in] boolean fCaseSensitive);
647 HRESULT GetCharset(
648 [out] LPHCHARSET phCharset);
650 HRESULT SetCharset(
651 [in] HCHARSET hCharset,
652 [in] CSETAPPLYTYPE applytype);
654 HRESULT GetParameters(
655 [in] LPCSTR pszName,
656 [out] ULONG *pcParams,
657 [out] LPMIMEPARAMINFO *pprgParam);
659 HRESULT IsContentType(
660 [in] LPCSTR pszPriType,
661 [in,unique] LPCSTR pszSubType);
663 HRESULT BindToObject(
664 [in] REFIID riid,
665 [out,iid_is(riid)] void **ppvObject);
667 HRESULT Clone(
668 [out] IMimePropertySet **ppPropertySet);
670 HRESULT SetOption(
671 [in] const TYPEDID oid,
672 [in] LPCPROPVARIANT pValue);
674 HRESULT GetOption(
675 [in] const TYPEDID oid,
676 [in,out] LPPROPVARIANT pValue);
678 cpp_quote("#define EPF_NONAME 0x00000001")
680 HRESULT EnumProps(
681 [in] DWORD dwFlags,
682 [out] IMimeEnumProperties **ppEnum);
687 uuid(c558834a-7f86-11d0-8252-00c04fd85ab4),
688 object
690 interface IMimeAddressTable : IUnknown
692 typedef [unique] IMimeAddressTable *LPMIMEADDRESSTABLE;
694 DECLARE_HANDLE(HADDRESS);
695 typedef HADDRESS *LPHADDRESS;
696 typedef DWORD IADDRESSTYPE;
698 typedef enum tagADDRESSFORMAT
700 AFT_DISPLAY_FRIENDLY,
701 AFT_DISPLAY_EMAIL,
702 AFT_DISPLAY_BOTH,
703 AFT_RFC822_DECODED,
704 AFT_RFC822_ENCODED,
705 AFT_RFC822_TRANSMIT,
706 } ADDRESSFORMAT;
708 cpp_quote("#define IAT_UNKNOWN 0x00000000")
709 cpp_quote("#define IAT_FROM 0x00000001")
710 cpp_quote("#define IAT_SENDER 0x00000002")
711 cpp_quote("#define IAT_TO 0x00000004")
712 cpp_quote("#define IAT_CC 0x00000008")
713 cpp_quote("#define IAT_BCC 0x00000010")
714 cpp_quote("#define IAT_REPLYTO 0x00000020")
715 cpp_quote("#define IAT_RETURNPATH 0x00000040")
716 cpp_quote("#define IAT_RETRCPTTO 0x00000080")
717 cpp_quote("#define IAT_RR 0x00000100")
718 cpp_quote("#define IAT_APPARTO 0x00000200")
719 cpp_quote("#define IAT_DISP_NOTIFICATION_TO 0x00000400")
720 cpp_quote("#define IAT_ALL 0xffffffff")
721 cpp_quote("#define IAT_KNOWN (IAT_FROM | IAT_TO | IAT_CC | IAT_BCC | IAT_REPLYTO | IAT_SENDER)")
722 cpp_quote("#define IAT_RECIPS (IAT_TO | IAT_CC | IAT_BCC)")
724 typedef struct tagADDRESSPROPS
726 DWORD dwProps;
727 HADDRESS hAddress;
728 ENCODINGTYPE ietFriendly;
729 HCHARSET hCharset;
730 DWORD dwAdrType;
731 LPSTR pszFriendly;
732 LPWSTR pwszReserved;
733 LPSTR pszEmail;
734 CERTSTATE certstate;
735 THUMBBLOB tbSigning;
736 THUMBBLOB tbEncryption;
737 DWORD dwCookie;
738 DWORD dwReserved1;
739 DWORD dwReserved2;
740 } ADDRESSPROPS, *LPADDRESSPROPS;
742 cpp_quote("#define IAP_CHARSET 0x00000001")
743 cpp_quote("#define IAP_HANDLE 0x00000002")
744 cpp_quote("#define IAP_ADRTYPE 0x00000004")
745 cpp_quote("#define IAP_FRIENDLY 0x00000008")
746 cpp_quote("#define IAP_EMAIL 0x00000020")
747 cpp_quote("#define IAP_CERTSTATE 0x00000100")
748 cpp_quote("#define IAP_SIGNING_PRINT 0x00000200")
749 cpp_quote("#define IAP_ENCRYPTION_PRINT 0x00000400")
750 cpp_quote("#define IAP_ENCODING 0x00000800")
751 cpp_quote("#define IAP_COOKIE 0x00001000")
752 cpp_quote("#define IAP_FRIENDLYW 0x00002000")
753 cpp_quote("#define IAP_ALL 0xffffffff")
755 typedef struct tagADDRESSLIST
757 ULONG cAdrs;
758 LPADDRESSPROPS prgAdr;
759 } ADDRESSLIST, *LPADDRESSLIST;
761 HRESULT Append(
762 [in] DWORD addrtype,
763 [in] ENCODINGTYPE encoding,
764 [in] const char *friendly,
765 [in,unique] const char *email,
766 [in,out,unique] HADDRESS *address);
768 HRESULT Insert(
769 [in] ADDRESSPROPS *addressprop,
770 [in,out,unique] HADDRESS *address);
772 HRESULT SetProps(
773 [in] HADDRESS address,
774 [in] ADDRESSPROPS *addressprop);
776 HRESULT GetProps(
777 [in] HADDRESS address,
778 [in] ADDRESSPROPS *addressprop);
780 HRESULT GetSender(
781 [in,out] ADDRESSPROPS *addressprop);
783 HRESULT CountTypes(
784 [in] DWORD addrtype,
785 [out] ULONG *count);
787 HRESULT GetTypes(
788 [in] DWORD addrtype,
789 [in] DWORD dwProps,
790 [in,out] ADDRESSLIST *list);
792 HRESULT EnumTypes(
793 [in] DWORD addrtype,
794 [in] DWORD props,
795 [out] IMimeEnumAddressTypes **types);
797 HRESULT Delete(
798 [in] HADDRESS hAddress);
800 HRESULT DeleteTypes(
801 [in] DWORD addrtype);
803 HRESULT GetFormat(
804 [in] DWORD addrtype,
805 [in] ADDRESSFORMAT addrformat,
806 [out] char **format);
808 HRESULT AppendRfc822(
809 [in] DWORD addrtype,
810 [in] ENCODINGTYPE encoding,
811 [in] const char *rfcaddr);
813 HRESULT ParseRfc822(
814 [in] DWORD addrtype,
815 [in] ENCODINGTYPE encoding,
816 [in] const char *rfcaddr,
817 [in,out] ADDRESSLIST *list);
819 HRESULT Clone(
820 [out] IMimeAddressTable **table);
822 HRESULT BindToObject(
823 [in] REFIID riid,
824 [out, iid_is(riid)] void **obj);
828 uuid(ee519f11-851a-11d0-8252-00c04fd85ab4),
829 object
831 interface IMimeWebDocument : IUnknown
833 /* FIXME: fill this in */
837 uuid(c558834c-7f86-11d0-8252-00c04fd85ab4),
838 object
840 interface IMimeBody : IMimePropertySet
842 typedef [unique] IMimeBody *LPMIMEBODY;
844 typedef enum tagIMSGBODYTYPE
846 IBT_SECURE,
847 IBT_ATTACHMENT,
848 IBT_EMPTY,
849 IBT_CSETTAGGED,
850 IBT_AUTOATTACH,
851 } IMSGBODYTYPE;
853 typedef struct tagBODYOFFSETS
855 DWORD cbBoundaryStart;
856 DWORD cbHeaderStart;
857 DWORD cbBodyStart;
858 DWORD cbBodyEnd;
859 } BODYOFFSETS, *LPBODYOFFSETS;
861 typedef struct tagTRANSMITINFO
863 ENCODINGTYPE ietCurrent;
864 ENCODINGTYPE ietXmitMime;
865 ENCODINGTYPE ietXmit822;
866 ULONG cbLongestLine;
867 ULONG cExtended;
868 ULONG ulPercentExt;
869 ULONG cbSize;
870 ULONG cLines;
871 } TRANSMITINFO, *LPTRANSMITINFO;
873 HRESULT IsType(
874 [in] IMSGBODYTYPE bodytype);
876 HRESULT SetDisplayName(
877 [in] LPCSTR pszDisplay);
879 HRESULT GetDisplayName(
880 [out] LPSTR *ppszDisplay);
882 HRESULT GetOffsets(
883 [out] LPBODYOFFSETS pOffsets);
885 HRESULT GetCurrentEncoding(
886 [out] ENCODINGTYPE *pietEncoding);
888 HRESULT SetCurrentEncoding(
889 [in] ENCODINGTYPE ietEncoding);
891 HRESULT GetEstimatedSize(
892 [in] ENCODINGTYPE ietEncoding,
893 [out] ULONG *pcbSize);
895 HRESULT GetDataHere(
896 [in] ENCODINGTYPE ietEncoding,
897 [in] IStream *pStream);
899 HRESULT GetData(
900 [in] ENCODINGTYPE ietEncoding,
901 [out] IStream **ppStream);
903 HRESULT SetData(
904 [in] ENCODINGTYPE ietEncoding,
905 [in,unique] LPCSTR pszPriType,
906 [in,unique] LPCSTR pszSubType,
907 [in] REFIID riid,
908 [in,iid_is(riid)] LPVOID pvObject);
910 HRESULT EmptyData(void);
912 HRESULT CopyTo(
913 [in] IMimeBody *pBody);
915 HRESULT GetTransmitInfo(
916 [in,out] LPTRANSMITINFO pTransmitInfo);
918 HRESULT SaveToFile(
919 [in] ENCODINGTYPE ietEncoding,
920 [in] LPCSTR pszFilePath);
922 HRESULT GetHandle(
923 [out] LPHBODY phBody);
928 uuid(fd853cd4-7f86-11d0-8252-00c04fd85ab4),
929 object
931 interface IMimeMessageTree : IPersistStreamInit
933 typedef [unique] IMimeMessageTree *LPMIMEMESSAGETREE;
935 const HBODY HBODY_ROOT = (HBODY)-1;
937 typedef enum tagBODYLOCATION
939 IBL_ROOT,
940 IBL_PARENT,
941 IBL_FIRST,
942 IBL_LAST,
943 IBL_NEXT,
944 IBL_PREVIOUS,
945 } BODYLOCATION;
947 typedef struct tagFINDBODY
949 LPSTR pszPriType;
950 LPSTR pszSubType;
951 DWORD dwReserved;
952 } FINDBODY, *LPFINDBODY;
954 HRESULT GetMessageSource(
955 [out] IStream **ppStream,
956 [in] DWORD dwFlags);
958 HRESULT GetMessageSize(
959 [out] ULONG *pcbSize,
960 [in] DWORD dwFlags);
962 HRESULT LoadOffsetTable(
963 [in] IStream *pStream);
965 HRESULT SaveOffsetTable(
966 [in] IStream *pStream,
967 [in] DWORD dwFlags);
969 HRESULT GetFlags(
970 [out] DWORD *pdwFlags);
972 HRESULT Commit(
973 [in] DWORD dwFlags);
975 HRESULT HandsOffStorage();
977 HRESULT BindToObject(
978 [in] const HBODY hBody,
979 [in] REFIID riid,
980 [out, iid_is(riid)] void **ppvObject);
982 HRESULT SaveBody(
983 [in] HBODY hBody,
984 [in] DWORD dwFlags,
985 [in] IStream *pStream);
987 HRESULT InsertBody(
988 [in] BODYLOCATION location,
989 [in] HBODY hPivot,
990 [out] LPHBODY phBody);
992 HRESULT GetBody(
993 [in] BODYLOCATION location,
994 [in] HBODY hPivot,
995 [out] LPHBODY phBody);
997 HRESULT DeleteBody(
998 [in] HBODY hBody,
999 [in] DWORD dwFlags);
1001 HRESULT MoveBody(
1002 [in] HBODY hBody,
1003 [in] BODYLOCATION location);
1005 HRESULT CountBodies(
1006 [in] HBODY hParent,
1007 [in] boolean fRecurse,
1008 [out] ULONG *pcBodies);
1010 HRESULT FindFirst(
1011 [in, out] LPFINDBODY pFindBody,
1012 [out] LPHBODY phBody);
1014 HRESULT FindNext(
1015 [in, out] LPFINDBODY pFindBody,
1016 [out] LPHBODY phBody);
1018 HRESULT ResolveURL(
1019 [in] HBODY hRelated,
1020 [in] LPCSTR pszBase,
1021 [in] LPCSTR pszURL,
1022 [in] DWORD dwFlags,
1023 [out] LPHBODY phBody);
1025 HRESULT ToMultipart(
1026 [in] HBODY hBody,
1027 [in] LPCSTR pszSubType,
1028 [out] LPHBODY phMultipart);
1030 HRESULT GetBodyOffsets(
1031 [in] HBODY hBody,
1032 [in, out] LPBODYOFFSETS pOffsets);
1034 HRESULT GetCharset(
1035 [out] LPHCHARSET phCharset);
1037 HRESULT SetCharset(
1038 [in] HCHARSET hCharset,
1039 [in] CSETAPPLYTYPE applytype);
1041 HRESULT IsBodyType(
1042 [in] HBODY hBody,
1043 [in] IMSGBODYTYPE bodytype);
1045 HRESULT IsContentType(
1046 [in] HBODY hBody,
1047 [in] LPCSTR pszPriType,
1048 [in] LPCSTR pszSubType);
1050 HRESULT QueryBodyProp(
1051 [in] HBODY hBody,
1052 [in] LPCSTR pszName,
1053 [in] LPCSTR pszCriteria,
1054 [in] boolean fSubString,
1055 [in] boolean fCaseSensitive);
1057 HRESULT GetBodyProp(
1058 [in] HBODY hBody,
1059 [in] LPCSTR pszName,
1060 [in] DWORD dwFlags,
1061 [in, out] LPPROPVARIANT pValue);
1063 HRESULT SetBodyProp(
1064 [in] HBODY hBody,
1065 [in] LPCSTR pszName,
1066 [in] DWORD dwFlags,
1067 [in] LPCPROPVARIANT pValue);
1069 HRESULT DeleteBodyProp(
1070 [in] HBODY hBody,
1071 [in] LPCSTR pszName);
1073 HRESULT SetOption(
1074 [in] const TYPEDID oid,
1075 [in] LPCPROPVARIANT pValue);
1077 HRESULT GetOption(
1078 [in] const TYPEDID oid,
1079 [in, out] LPPROPVARIANT pValue);
1083 uuid(fd853cd5-7f86-11d0-8252-00c04fd85ab4),
1084 object
1086 interface IMimeMessage : IMimeMessageTree
1088 typedef [unique] IMimeMessage *LPMIMEMESSAGE;
1090 typedef DWORD TEXTTYPE;
1092 typedef enum tagIMSGFLAGS
1094 IMF_ATTACHMENTS = 0x00000001,
1095 IMF_MULTIPART = 0x00000002,
1096 IMF_SUBMULTIPART = 0x00000004,
1097 IMF_MIME = 0x00000008,
1098 IMF_HTML = 0x00000010,
1099 IMF_PLAIN = 0x00000020,
1100 IMF_PARTIAL = 0x00000040,
1101 IMF_SIGNED = 0x00000080,
1102 IMF_ENCRYPTED = 0x00000100,
1103 IMF_TNEF = 0x00000200,
1104 IMF_MHTML = 0x00000400,
1105 IMF_SECURE = 0x00000800,
1106 IMF_TEXT = 0x00001000,
1107 IMF_CSETTAGGED = 0x00002000,
1108 IMF_NEWS = 0x00004000,
1109 IMF_VOICEMAIL = 0x00008000,
1110 IMF_HASVCARD = 0x00010000,
1111 IMF_RFC1154 = 0x00020000,
1112 } IMSGFLAGS;
1114 typedef enum tagIMSGPRIORITY
1116 IMSG_PRI_LOW = 5,
1117 IMSG_PRI_NORMAL = 3,
1118 IMSG_PRI_HIGH = 1,
1119 } IMSGPRIORITY;
1121 cpp_quote("#define WPF_HTML 0x00000001")
1122 cpp_quote("#define WPF_AUTOINLINE 0x00000002")
1123 cpp_quote("#define WPF_SLIDESHOW 0x00000004")
1124 cpp_quote("#define WPF_ATTACHLINKS 0x00000008")
1125 cpp_quote("#define WPF_IMAGESONLY 0x00000010")
1126 cpp_quote("#define WPF_NOMETACHARSET 0x00000020")
1128 typedef struct tagWEPAGEOPTIONS
1130 DWORD cbSize;
1131 DWORD dwFlags;
1132 DWORD dwDelay;
1133 WCHAR wchQuote;
1134 } WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS;
1136 cpp_quote("#define TXT_PLAIN 1")
1137 cpp_quote("#define TXT_HTML 2")
1139 HRESULT CreateWebPage(
1140 [in] IStream *pRootStm,
1141 [in] LPWEBPAGEOPTIONS pOptions,
1142 [in] IMimeMessageCallback *pCallback,
1143 [out] IMoniker **ppMoniker);
1145 HRESULT GetProp(
1146 [in] LPCSTR pszName,
1147 [in] DWORD dwFlags,
1148 [in,out] LPPROPVARIANT pValue);
1150 HRESULT SetProp(
1151 [in] LPCSTR pszName,
1152 [in] DWORD dwFlags,
1153 [in] LPCPROPVARIANT pValue);
1155 HRESULT DeleteProp(
1156 [in] LPCSTR pszName);
1158 HRESULT QueryProp(
1159 [in] LPCSTR pszName,
1160 [in] LPCSTR pszCriteria,
1161 [in] boolean fSubString,
1162 [in] boolean fCaseSensitive);
1164 HRESULT GetTextBody(
1165 [in] DWORD dwTxtType,
1166 [in] ENCODINGTYPE ietEncoding,
1167 [out] IStream **pStream,
1168 [out] LPHBODY phBody);
1170 HRESULT SetTextBody(
1171 [in] DWORD dwTxtType,
1172 [in] ENCODINGTYPE ietEncoding,
1173 [in] HBODY hAlternative,
1174 [in] IStream *pStream,
1175 [out] LPHBODY phBody);
1177 HRESULT AttachObject(
1178 [in] REFIID riid,
1179 [in, iid_is(riid)] void *pvObject,
1180 [out] LPHBODY phBody);
1182 HRESULT AttachFile(
1183 [in] LPCSTR pszFilePath,
1184 [in] IStream *pstmFile,
1185 [out] LPHBODY phBody);
1187 HRESULT AttachURL(
1188 [in] LPCSTR pszBase,
1189 [in] LPCSTR pszURL,
1190 [in] DWORD dwFlags,
1191 [in] IStream *pstmURL,
1192 [out] LPSTR *ppszCIDURL,
1193 [out] LPHBODY phBody);
1195 HRESULT GetAttachments(
1196 [out] ULONG *pcAttach,
1197 [out] LPHBODY *pprghAttach);
1199 HRESULT GetAddressTable(
1200 [out] IMimeAddressTable **ppTable);
1202 HRESULT GetSender(
1203 [in, out] LPADDRESSPROPS pAddress);
1205 HRESULT GetAddressTypes(
1206 [in] DWORD dwAdrTypes,
1207 [in] DWORD dwProps,
1208 [in, out] LPADDRESSLIST pList);
1210 HRESULT GetAddressFormat(
1211 [in] DWORD dwAdrTypes,
1212 [in] ADDRESSFORMAT format,
1213 [out] LPSTR *ppszFormat);
1215 HRESULT EnumAddressTypes(
1216 [in] DWORD dwAdrTypes,
1217 [in] DWORD dwProps,
1218 [out] IMimeEnumAddressTypes **ppEnum);
1220 HRESULT SplitMessage(
1221 [in] ULONG cbMaxPart,
1222 [out] IMimeMessageParts **ppParts);
1224 HRESULT GetRootMoniker(
1225 [out] IMoniker **ppMoniker);
1229 uuid(761aa741-7bda-11d1-8aa9-00c04fb951f3),
1230 object
1232 interface IMimeMessageCallback : IUnknown
1234 HRESULT OnWebPageSplitter(
1235 [in] DWORD cInlined,
1236 [in] IStream *ppStream);
1240 uuid(de4ad8da-555f-11d1-8dd0-00c04fb951f9),
1241 object
1243 interface IPersistMime : IPersist
1245 /* FIXME: fill this in */
1249 uuid(c558834f-7f86-11d0-8252-00c04fd85ab4),
1250 object
1252 interface IMimeMessageParts : IUnknown
1254 /* FIXME: fill this in */
1258 uuid(c558834d-7f86-11d0-8252-00c04fd85ab4),
1259 object
1261 interface IMimeEnumHeaderRows : IUnknown
1263 typedef struct tagENUMHEADERROW
1265 HHEADERROW hRow;
1266 LPSTR pszHeader;
1267 LPSTR pszData;
1268 ULONG cchData;
1269 DWORD_PTR dwReserved;
1270 } ENUMHEADERROW, *LPENUMHEADERROW;
1272 /* FIXME: fill this in */
1276 uuid(fd853cee-7f86-11d0-8252-00c04fd85ab4),
1277 object
1279 interface IMimeEnumProperties : IUnknown
1281 typedef [unique] IMimeEnumProperties *LPMIMEENUMPROPERTIES;
1283 typedef struct tagENUMPROPERTY
1285 LPSTR pszName;
1286 HHEADERROW hRow;
1287 DWORD dwPropId;
1288 } ENUMPROPERTY, *LPENUMPROPERTY;
1290 HRESULT Next(
1291 [in] ULONG cFetch,
1292 [in, out] LPENUMPROPERTY prgProp,
1293 [out] ULONG *pcFetched);
1295 HRESULT Skip(
1296 [in] ULONG cItems);
1298 HRESULT Reset(void);
1300 HRESULT Clone(
1301 [out] IMimeEnumProperties **ppEnum);
1303 HRESULT Count(
1304 [out] ULONG *pcItems);
1309 uuid(c5588354-7f86-11d0-8252-00c04fd85ab4),
1310 object
1312 interface IMimeEnumAddressTypes : IUnknown
1314 /* FIXME: fill this in */
1318 uuid(c5588350-7f86-11d0-8252-00c04fd85ab4),
1319 object
1321 interface IMimeEnumMessageParts : IUnknown
1323 /* FIXME: fill this in */
1327 uuid(64577981-86d7-11d1-bdfc-00c04fa31009),
1328 object
1330 interface IHashTable : IUnknown
1332 /* FIXME: fill this in */
1336 uuid(c5588351-7f86-11d0-8252-00c04fd85ab4),
1337 object
1339 interface IMimeAllocator : IMalloc
1341 typedef [unique] IMimeAllocator *LPMIMEALLOCATOR;
1343 HRESULT FreeParamInfoArray(
1344 [in] ULONG cParams,
1345 [in] LPMIMEPARAMINFO prgParam,
1346 [in] boolean fFreeArray);
1348 HRESULT FreeAddressList(
1349 [in,out] LPADDRESSLIST pList);
1351 HRESULT FreeAddressProps(
1352 [in,out] LPADDRESSPROPS pAddress);
1354 HRESULT ReleaseObjects(
1355 [in] ULONG cObjects,
1356 [in] IUnknown **prgpUnknown,
1357 [in] boolean fFreeArray);
1359 HRESULT FreeEnumHeaderRowArray(
1360 [in] ULONG cRows,
1361 [in] LPENUMHEADERROW prgRow,
1362 [in] boolean fFreeArray);
1364 HRESULT FreeEnumPropertyArray(
1365 [in] ULONG cProps,
1366 [in] LPENUMPROPERTY prgProp,
1367 [in] boolean fFreeArray);
1369 HRESULT FreeThumbprint(
1370 [in] THUMBBLOB *pthumbprint);
1372 HRESULT PropVariantClear(
1373 [in] LPPROPVARIANT pProp);
1378 uuid(feceaffd-c441-11d1-960e-00c04fbd7c09),
1379 object
1381 interface IMimeObjResolver : IUnknown
1383 /* FIXME: fill this in */
1387 uuid(b0d17fc2-7bc4-11d1-bdfa-00c04fa31009),
1388 object
1390 interface IFontCache : IUnknown
1392 /* FIXME: fill this in */
1396 uuid(b0d17fc5-7bc4-11d1-bdfa-00c04fa31009),
1397 object
1399 interface IFontCacheNotify : IUnknown
1401 /* FIXME: fill this in */
1405 uuid(70183210-7b36-11d2-8c12-00c04fa31009),
1406 object
1408 interface IMimeEditTag : IUnknown
1410 /* FIXME: fill this in */
1414 uuid(d09ee528-7b38-11d2-8c12-00c04fa31009),
1415 object
1417 interface IMimeEditTagCollection : IUnknown
1419 /* FIXME: fill this in */
1423 uuid(ba715ae0-a740-11d2-8b22-0080c76b34c6),
1424 local
1426 interface IMimeSecurityCallback : IUnknown
1428 /* FIXME: fill this in */
1430 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_UNKNOWN 0")
1431 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYTRANS 1")
1432 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYAGREE 2")
1433 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_MAIL_LIST 3")
1435 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_CERTIFICATE 0")
1436 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_KEYTRANS 1")
1437 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_PROVIDER 2")
1438 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_EPHEMERAL_KEYAGREE 3")
1439 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_STATIC_KEYAGREE 4")
1441 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_CERTIFICATE 0")
1442 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_ISSUERSERIAL 1")
1443 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_KEY_ID 2")
1448 cpp_quote("#ifdef __cplusplus")
1449 cpp_quote(" extern \"C\" {")
1450 cpp_quote("#endif")
1452 cpp_quote("")
1453 cpp_quote("HRESULT WINAPI MimeOleSetCompatMode(DWORD);")
1454 cpp_quote("HRESULT WINAPI MimeOleContentTypeFromUrl(LPCSTR,LPCSTR,LPSTR*);")
1455 cpp_quote("HRESULT WINAPI MimeOleParseMhtmlUrl(LPSTR,LPSTR*,LPSTR*);")
1456 cpp_quote("HRESULT WINAPI MimeOleObjectFromUrl(LPCSTR,BOOL,REFIID,LPVOID*,IUnknown**);")
1457 cpp_quote("HRESULT WINAPI MimeOleObjectFromMoniker(BINDF,IMoniker*,IBindCtx*,REFIID,LPVOID*,IMoniker**);")
1458 cpp_quote("HRESULT WINAPI MimeOleCombineURL(LPCSTR,ULONG,LPCSTR,ULONG,BOOL,LPSTR*);")
1459 cpp_quote("HRESULT WINAPI MimeOleGetSubjectFileName(IMimePropertySet*,ULONG*,ULONG*,LPSTR,ULONG);")
1460 cpp_quote("HRESULT WINAPI MimeOleCreateWebDocument(LPCSTR,LPCSTR,IMimeWebDocument**);")
1461 cpp_quote("HRESULT WINAPI MimeOleGetRelatedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1462 cpp_quote("HRESULT WINAPI MimeOleGetMixedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1463 cpp_quote("HRESULT WINAPI MimeOleGetAlternativeSection(IMimeMessageTree*,LPHBODY,boolean*);")
1464 cpp_quote("HRESULT WINAPI MimeOleGenerateCID(LPSTR,ULONG,boolean);")
1465 cpp_quote("HRESULT WINAPI MimeOleGenerateMID(LPSTR,ULONG,boolean);")
1466 cpp_quote("HRESULT WINAPI MimeOleCreateByteStream(IStream**);")
1467 cpp_quote("HRESULT WINAPI MimeOlGetPropertySchema(IMimePropertySchema**);")
1468 cpp_quote("HRESULT WINAPI MimeOleQueryString(LPCSTR,LPCSTR,boolean,boolean);")
1469 cpp_quote("HRESULT WINAPI MimeOleGetPropA(IMimePropertySet*,LPCSTR,DWORD,LPSTR*);")
1470 cpp_quote("HRESULT WINAPI MimeOleSetPropA(IMimePropertySet*,LPCSTR,DWORD,LPCSTR);")
1471 cpp_quote("HRESULT WINAPI MimeOleGetPropW(IMimePropertySet*,LPCSTR,DWORD,LPWSTR*);")
1472 cpp_quote("HRESULT WINAPI MimeOleSetPropW(IMimePropertySet*,LPCSTR,DWORD,LPCWSTR);")
1473 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPSTR*);")
1474 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCSTR);")
1475 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPWSTR*);")
1476 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCWSTR);")
1477 cpp_quote("HRESULT WINAPI MimeOleCreateHeaderTable(IMimeHeaderTable**);")
1478 cpp_quote("HRESULT WINAPI MimeOleVariantFree(LPPROPVARIANT);")
1479 cpp_quote("HRESULT WINAPI MimeOleVariantCopy(LPPROPVARIANT,LPPROPVARIANT);")
1480 cpp_quote("HRESULT WINAPI MimeOleGetExtClassId(LPCSTR,LPCLSID);")
1481 cpp_quote("HRESULT WINAPI MimeOleEncodeHeader(HCHARSET,LPPROPVARIANT,LPSTR*,LPRFC1522INFO);")
1482 cpp_quote("HRESULT WINAPI MimeOleDecodeHeader(HCHARSET,LPCSTR,LPPROPVARIANT,LPRFC1522INFO);")
1483 cpp_quote("HRESULT WINAPI MimeOleRfc1522Decode(LPCSTR,LPSTR,ULONG,LPSTR*);")
1484 cpp_quote("HRESULT WINAPI MimeOleRfc1522Encode(LPCSTR,HCHARSET,LPSTR*);")
1485 cpp_quote("HRESULT WINAPI MimeOleGetInternat(IMimeInternational**);")
1486 cpp_quote("HRESULT WINAPI MimeOleFindCharset(LPCSTR,LPHCHARSET);")
1487 cpp_quote("HRESULT WINAPI MimeOleGetCharsetInfo(HCHARSET,LPINETCSETINFO);")
1488 cpp_quote("HRESULT WINAPI MimeOleGetCodePageInfo(HCHARSET,LPCODEPAGEINFO);")
1489 cpp_quote("HRESULT WINAPI MimeOleGetDefaultCharset(LPHCHARSET);")
1490 cpp_quote("HRESULT WINAPI MimeOleSetDefaultCharset(HCHARSET);")
1491 cpp_quote("HRESULT WINAPI MimeOleGetCodePageCharset(CODEPAGEID,CHARSETTYPE,LPHCHARSET);")
1492 cpp_quote("HRESULT WINAPI MimeOleCreateVirtualStream(IStream**);")
1493 cpp_quote("HRESULT WINAPI MimeOleOpenFileStream(LPCSTR,DWORD,DWORD,IStream**);")
1494 cpp_quote("HRESULT WINAPI MimeOleIsTnefStream(IStream*);")
1495 cpp_quote("HRESULT WINAPI MimeOleGenerateFileName(LPCSTR,LPCSTR,LPCSTR,LPSTR*);")
1496 cpp_quote("HRESULT WINAPI MimeOleGetFileExtension(LPCSTR,LPSTR,ULONG);")
1497 cpp_quote("HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity**);")
1498 cpp_quote("HRESULT WINAPI MimeOleInetDateToFileTime(LPCSTR,LPFILETIME);")
1499 cpp_quote("HRESULT WINAPI MimeOleFileTimeToInetDate(LPFILETIME,LPSTR,ULONG);")
1500 cpp_quote("HRESULT WINAPI MimeOleCreateMessageParts(IMimeMessageParts**);")
1501 cpp_quote("HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator**);")
1502 cpp_quote("HRESULT WINAPI MimeOleParseRfc822Address(DWORD,ENCODINGTYPE,LPCSTR,LPADDRESSLIST);")
1503 cpp_quote("HRESULT WINAPI MimeOleCreateMessage(IUnknown*,IMimeMessage**);")
1504 cpp_quote("HRESULT WINAPI MimeOleMergePartialHeaders(IStream*,IStream*);")
1505 cpp_quote("HRESULT WINAPI MimeOleEscapeString(CODEPAGEID,LPCSTR,LPSTR*);")
1506 cpp_quote("HRESULT WINAPI MimeOleGetExtContentType(LPCSTR,LPSTR*);")
1507 cpp_quote("HRESULT WINAPI MimeOleGetContentTypeExt(LPCSTR,LPSTR*);")
1508 cpp_quote("HRESULT WINAPI MimeOleGetFileInfo(LPSTR,LPSTR*,LPSTR*,LPSTR*,LPSTR*,LPSTR*);")
1509 cpp_quote("HRESULT WINAPI MimeOleCreateBody(IMimeBody**);")
1510 cpp_quote("HRESULT WINAPI MimeOleCreatePropertySet(IUnknown*,IMimePropertySet**);")
1511 cpp_quote("HRESULT WINAPI MimeOleCreateMessageTree(IUnknown*,IMimeMessageTree**);")
1512 cpp_quote("HRESULT WINAPI MimeOleGetCertsFromThumbprints(THUMBBLOB*,X509CERTRESULT*,const HCERTSTORE*,DWORD);")
1513 cpp_quote("HRESULT WINAPI MimeOleSplitMessage(IMimeMessage*,ULONG,IMimeMessageParts**);")
1514 cpp_quote("HRESULT WINAPI MimeOleClearDirtyTree(IMimeMessageTree*);")
1515 cpp_quote("HRESULT WINAPI MimeOleConvertEnrichedToHTML(CODEPAGEID,IStream*,IStream*);")
1516 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsToDlg(LPBYTE,DWORD,DWORD,PCX509CERT*,HWND,DWORD,DWORD,DWORD);")
1517 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFromDlg(HWND,DWORD,DWORD,DWORD,LPBYTE,DWORD*);")
1518 cpp_quote("HRESULT WINAPI MimeOleSMimeCapInit(LPBYTE,DWORD,LPVOID*);")
1519 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddSMimeCap(LPBYTE,DWORD,LPVOID);")
1520 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddCert(LPBYTE,DWORD,BOOL,LPVOID);")
1521 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetEncAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1522 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetHashAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1523 cpp_quote("HRESULT WINAPI MimeOleSMimeCapRelease(LPVOID);")
1524 cpp_quote("HRESULT WINAPI MimeOleAlgNameFromSMimeap(LPBYTE,DWORD,LPCSTR*);")
1525 cpp_quote("HRESULT WINAPI MimeOleAlgStrengthFromSMimeCap(LPBYTE,DWORD,BOOL,DWORD*);")
1526 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFull(LPVOID,BOOL,BOOL,LPBYTE,DWORD*);")
1527 cpp_quote("HRESULT WINAPI MimeOleCreateHashTable(DWORD,BOOL,IHashTable**);")
1528 cpp_quote("HRESULT WINAPI MimeOleStripHeaders(IMimeMessage*,HBODY,LPCSTR,LPCSTR,IStream**);")
1530 cpp_quote("HRESULT WINAPI MimeEditViewSource(HWND,IMimeMessage*);")
1531 cpp_quote("HRESULT WINAPI MimeEditIsSafeToRun(HWND,LPCSTR);")
1532 cpp_quote("HRESULT WINAPI MimeEditVerifyTrust(HWND,LPCSTR,LPCSTR);")
1533 cpp_quote("HRESULT WINAPI MimeEditCreateMimeDocument(IUnknown*,IMimeMessage*,DWORD,IMimeMessage**);")
1534 cpp_quote("HRESULT WINAPI MimeEditGetBackgroundImageUrl(IUnknown*,BSTR*);")
1535 cpp_quote("HRESULT WINAPI MimeEditDocumentFromStream(IStream*,REFIID,void**);")
1537 cpp_quote("HRESULT WINAPI MimeOleGetPropertySchema(IMimePropertySchema**);")
1538 cpp_quote("HRESULT WINAPI MimeGetAddressFormatW(REFIID,void*,DWORD,ADDRESSFORMAT,WCHAR**);")
1539 cpp_quote("#ifdef __cplusplus")
1540 cpp_quote("}")
1541 cpp_quote("#endif")