ole32: Fix a typo in a TRACE() message.
[wine.git] / include / mimeole.idl
blobbc1f3acaa8eb748b3d9f7e1847d829f4c2ba95fe
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 TYPEDID_MASK ((ULONG)0xffff)")
157 cpp_quote("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))")
159 cpp_quote("#define OID_ALLOW_8BIT_HEADER (0x00010000 | VT_BOOL)")
160 cpp_quote("#define OID_CBMAX_HEADER_LINE (0x00020000 | VT_UI4)")
161 cpp_quote("#define OID_SAVE_FORMAT (0x00030000 | VT_UI4)")
162 cpp_quote("#define OID_WRAP_BODY_TEXT (0x00040000 | VT_BOOL)")
163 cpp_quote("#define OID_CBMAX_BODY_LINE (0x00050000 | VT_UI4)")
164 cpp_quote("#define OID_TRANSMIT_BODY_ENCODING (0x00060000 | VT_UI4)")
165 cpp_quote("#define OID_TRANSMIT_TEXT_ENCODING (0x00070000 | VT_UI4)")
166 cpp_quote("#define OID_GENERATE_MESSAGE_ID (0x00080000 | VT_BOOL)")
167 cpp_quote("#define OID_HIDE_TNEF_ATTACHMENTS (0x000e0000 | VT_BOOL)")
168 cpp_quote("#define OID_CLEANUP_TREE_ON_SAVE (0x000f0000 | VT_BOOL)")
169 cpp_quote("#define OID_BODY_REMOVE_NBSP (0x00140000 | VT_BOOL)")
170 cpp_quote("#define OID_DEFAULT_BODY_CHARSET (0x00150000 | VT_UI4)")
171 cpp_quote("#define OID_DEFAULT_HEADER_CHARSET (0x00160000 | VT_UI4)")
172 cpp_quote("#define OID_DBCS_ESCAPE_IS_8BIT (0x00170000 | VT_BOOL)")
173 cpp_quote("#define OID_SECURITY_TYPE (0x00180000 | VT_UI4)")
174 cpp_quote("#define OID_SECURITY_HWND_OWNER (0x00320000 | VT_UI4)")
175 cpp_quote("#define OID_HEADER_RELOAD_TYPE (0x00370000 | VT_UI4)")
176 cpp_quote("#define OID_CAN_INLINE_TEXT_BODIES (0x00380000 | VT_BOOL)")
177 cpp_quote("#define OID_SHOW_MACBINARY (0x00390000 | VT_BOOL)")
178 cpp_quote("#define OID_SAVEBODY_KEEPBOUNDARY (0x00400000 | VT_BOOL)")
181 uuid(e4b28371-83b0-11d0-8259-00c04fd85ab4),
182 version(1.0)
184 library MIMEOLE
186 importlib("stdole2.tlb");
188 DECLARE_HANDLE(HCHARSET);
189 DECLARE_HANDLE(HBODY);
190 DECLARE_HANDLE(HHEADERROW);
192 typedef HCHARSET *LPHCHARSET;
193 typedef HBODY *LPHBODY;
194 typedef HHEADERROW *LPHHEADERROW;
195 typedef DWORD TYPEDID;
196 typedef const PROPVARIANT *LPCPROPVARIANT;
197 typedef const BLOB *LPCBLOB;
199 typedef enum tagRELOADTYPE
201 RELOAD_HEADER_NONE,
202 RELOAD_HEADER_RESET,
203 RELOAD_HEADER_APPEND,
204 RELOAD_HEADER_REPLACE,
205 } RELOADTYPE;
207 typedef enum tagMIMESAVETYPE
209 SAVE_RFC822,
210 SAVE_RFC1521,
211 } MIMESAVETYPE;
213 typedef enum tagCSETAPPLYTYPE
215 CSET_APPLY_UNTAGGED,
216 CSET_APPLY_ALL,
217 CSET_APPLY_TAG_ALL,
218 } CSETAPPLYTYPE;
220 typedef enum tagENCODINGTYPE
222 IET_BINARY,
223 IET_BASE64,
224 IET_UUENCODE,
225 IET_QP,
226 IET_7BIT,
227 IET_8BIT,
228 IET_INETCSET,
229 IET_UNICODE,
230 IET_RFC1522,
231 IET_ENCODED,
232 IET_CURRENT,
233 IET_UNKNOWN,
234 IET_BINHEX40,
235 IET_LAST
236 } ENCODINGTYPE;
238 const SHORT IET_DECODED = IET_BINARY;
240 const SHORT CCHMAX_HEADER_LINE = 1000;
243 uuid(c5588349-7f86-11d0-8252-00c04fd85ab4),
244 object
246 interface IMimeInternational : IUnknown
248 typedef [unique] IMimeInternational *LPMIMEINTERNATIONAL;
249 typedef DWORD CODEPAGEID;
251 const CODEPAGEID CP_USASCII = 1252;
252 const CODEPAGEID CP_UNICODE = 1200;
253 const CODEPAGEID CP_JAUTODETECT = 50932;
254 const CODEPAGEID CP_KAUTODETECT = 50949;
255 const CODEPAGEID CP_ISO2022JPESC = 50221;
256 const CODEPAGEID CP_ISO2022JPSIO = 50222;
258 const SHORT CCHMAX_CSET_NAME = 128;
259 const SHORT CCHMAX_LANG_NAME = 128;
260 const SHORT CCHMAX_FACE_NAME = 128;
262 typedef struct tagINETCSETINFO
264 CHAR szName[CCHMAX_CSET_NAME];
265 HCHARSET hCharset;
266 CODEPAGEID cpiWindows;
267 CODEPAGEID cpiInternet;
268 DWORD dwReserved1;
269 } INETCSETINFO, *LPINETCSETINFO;
271 typedef enum tagINETLANGMASK
273 ILM_FAMILY = 0x01,
274 ILM_NAME = 0x02,
275 ILM_BODYCSET = 0x04,
276 ILM_HEADERCSET = 0x08,
277 ILM_WEBCSET = 0x10,
278 ILM_FIXEDFONT = 0x20,
279 ILM_VARIABLEFONT = 0x40,
280 } INETLANGMASK;
282 typedef struct tagCODEPAGEINFO
284 DWORD dwMask;
285 CODEPAGEID cpiCodePage;
286 BOOL fIsValidCodePage;
287 ULONG ulMaxCharSize;
288 BOOL fInternetCP;
289 CODEPAGEID cpiFamily;
290 CHAR szName[CCHMAX_LANG_NAME];
291 CHAR szBodyCset[CCHMAX_CSET_NAME];
292 CHAR szHeaderCset[CCHMAX_CSET_NAME];
293 CHAR szWebCset[CCHMAX_CSET_NAME];
294 CHAR szFixedFont[CCHMAX_FACE_NAME];
295 CHAR szVariableFont[CCHMAX_FACE_NAME];
296 ENCODINGTYPE ietNewsDefault;
297 ENCODINGTYPE ietMailDefault;
298 DWORD dwReserved1;
299 } CODEPAGEINFO, *LPCODEPAGEINFO;
301 typedef struct tagRFC1522INFO
303 BOOL fRfc1522Allowed;
304 BOOL fRfc1522Used;
305 BOOL fAllow8bit;
306 HCHARSET hRfc1522Cset;
307 } RFC1522INFO, *LPRFC1522INFO;
309 typedef enum tagCHARSETTYPE
311 CHARSET_BODY,
312 CHARSET_HEADER,
313 CHARSET_WEB,
314 } CHARSETTYPE;
317 HRESULT SetDefaultCharset(
318 [in] HCHARSET hCharset);
319 HRESULT GetDefaultCharset(
320 [out] LPHCHARSET phCharset);
321 HRESULT GetCodePageCharset(
322 [in] CODEPAGEID cpiCodePage,
323 [in] CHARSETTYPE ctCsetType,
324 [out] LPHCHARSET phCharset);
325 HRESULT FindCharset(
326 [in] LPCSTR pszCharset,
327 [out] LPHCHARSET phCharset);
328 HRESULT GetCharsetInfo(
329 [in] HCHARSET hCharset,
330 [in, out] LPINETCSETINFO pCsetInfo);
331 HRESULT GetCodePageInfo(
332 [in] CODEPAGEID cpiCodePage,
333 [in, out] LPCODEPAGEINFO pCodePageInfo);
334 HRESULT CanConvertCodePages(
335 [in] CODEPAGEID cpiSource,
336 [in] CODEPAGEID cpiDest);
337 HRESULT DecodeHeader(
338 [in] HCHARSET hCharset,
339 [in] LPCSTR pszData,
340 [in, out] LPPROPVARIANT pDecoded,
341 [in, out] LPRFC1522INFO pRfc1522Info);
342 HRESULT EncodeHeader(
343 [in] HCHARSET hCharset,
344 [in] LPPROPVARIANT pData,
345 [out] LPSTR *ppszEncoded,
346 [in, out] LPRFC1522INFO pRfc1522Info);
347 HRESULT ConvertBuffer(
348 [in] CODEPAGEID cpiSource,
349 [in] CODEPAGEID cpiDest,
350 [in] LPBLOB pIn,
351 [in, out] LPBLOB pOut,
352 [out] ULONG *pcbRead);
353 HRESULT ConvertString(
354 [in] CODEPAGEID cpiSource,
355 [in] CODEPAGEID cpiDest,
356 [in] LPPROPVARIANT pIn,
357 [in, out] LPPROPVARIANT pOut);
358 HRESULT MLANG_ConvertInetReset(void);
359 HRESULT MLANG_ConvertInetString(
360 [in] CODEPAGEID cpiSource,
361 [in] CODEPAGEID cpiDest,
362 [in] LPCSTR pSource,
363 [in] int *pnSizeOfSource,
364 [in,out,unique] LPSTR pDestination,
365 [in] int *pnDstSize);
366 HRESULT Rfc1522Decode(
367 [in] LPCSTR pszValue,
368 [in,ref] LPSTR pszCharset,
369 [in] ULONG cchmax,
370 [out] LPSTR *ppszDecoded);
371 HRESULT Rfc1522Encode(
372 [in] LPCSTR pszValue,
373 [in] HCHARSET hCharset,
374 [out] LPSTR *ppszEncoded);
378 uuid(c5588353-7f86-11d0-8252-00c04fd85ab4),
379 object
381 interface IMimeSecurity : IUnknown
383 typedef [unique] IMimeSecurity *LPMIMESECURITY;
385 cpp_quote("#ifdef __WINE_WINCRYPT_H")
386 cpp_quote("typedef PCCERT_CONTEXT PCX509CERT;")
387 cpp_quote("#else")
388 typedef const void *PCX509CERT;
389 typedef void *HCERTSTORE;
390 cpp_quote("#endif")
392 typedef BLOB THUMBBLOB;
393 typedef void *HCAPICERTSTORE;
395 cpp_quote("#define MST_NONE 0x00000000")
396 cpp_quote("#define MST_THIS_SIGN 0x00000001")
397 cpp_quote("#define MST_THIS_ENCRYPT 0x00000002")
398 cpp_quote("#define MST_BLOB_FLAG 0x00000004")
399 cpp_quote("#define MST_THIS_BLOBSIGN (MST_BLOB_FLAG | MST_THIS_SIGN)")
400 cpp_quote("#define MST_CHILD_SIGN 0x00000100")
401 cpp_quote("#define MST_CHILD_ENCRYPT 0x00000200")
402 cpp_quote("#define MST_SUBMSG_SIGN 0x00001000")
403 cpp_quote("#define MST_SUBMSG_ENCRYPT 0x00002000")
404 cpp_quote("#define MST_RECEIPT_REQUEST 0x00010000")
405 cpp_quote("#define MST_CLASS_SMIME_V1 0x00000000")
406 cpp_quote("#define MST_CLASS_PGP 0x01000000")
408 typedef enum tagCERTSTATE
410 CERTIFICATE_OK,
411 CERTIFICATE_NOT_PRESENT,
412 CERTIFICATE_EXPIRED,
413 CERTIFICATE_CHAIN_TOO_LONG,
414 CERTIFICATE_MISSING_ISSUER,
415 CERTIFICATE_CRL_LISTED,
416 CERTIFICATE_NOT_TRUSTED,
417 CERTIFICATE_INVALID,
418 CERTIFICATE_ERROR,
419 CERTIFICATE_NOPRINT,
420 CERTIFICATE_UNKNOWN
421 } CERTSTATE;
423 typedef enum tagCERTNAMETYPE
425 SIMPLE,
426 OID,
427 X500,
428 } CERTNAMETYPE;
430 typedef enum tagCERTDATAID
432 CDID_EMAIL,
433 CDID_MAX
434 } CERTDATAID;
436 typedef struct tagX509CERTRESULT
438 DWORD cEntries;
439 CERTSTATE *rgcs;
440 PCX509CERT *rgpCert;
441 } X509CERTRESULT, *PX509CERTRESULT;
442 typedef const X509CERTRESULT *PCX509CERTRESULT;
444 HRESULT InitNew(void);
446 HRESULT CheckInit(void);
448 HRESULT EncodeMessage(
449 [in] IMimeMessageTree */*const*/ pTree,
450 [in] DWORD dwFlags);
452 HRESULT EncodeBody(
453 [in] IMimeMessageTree */*const*/ pTree,
454 [in] HBODY hEncodeRoot,
455 [in] DWORD dwFlags);
457 HRESULT DecodeMessage(
458 [in] IMimeMessageTree */*const*/ pTree,
459 [in] DWORD dwFlags);
461 HRESULT DecodeBody(
462 [in] IMimeMessageTree */*const*/ pTree,
463 [in] HBODY hDecodeRoot,
464 [in] DWORD dwFlags);
466 HRESULT EnumCertificates(
467 [in] HCAPICERTSTORE hc,
468 [in] DWORD dwUsage,
469 [in] PCX509CERT pPrev,
470 [out] PCX509CERT *ppCert);
472 HRESULT GetCertificateName(
473 [in] const PCX509CERT pX509Cert,
474 [in] const CERTNAMETYPE cn,
475 [out] LPSTR *ppszName);
477 HRESULT GetMessageType(
478 [in] const HWND hwndParent,
479 [in] IMimeBody */*const*/ pBody,
480 [out] DWORD */*const*/ pdwSecType);
482 HRESULT GetCertData(
483 [in] const PCX509CERT pX509Cert,
484 [in] const CERTDATAID dataid,
485 [out, ref] LPPROPVARIANT pValue);
489 uuid(fd853cd1-7f86-11d0-8252-00c04fd85ab4),
490 object
492 interface IMimeHeaderTable : IPersistStream
494 /* FIXME: fill this in */
498 uuid(fd853cec-7f86-11d0-8252-00c04fd85ab4),
499 object
501 interface IMimePropertySchema : IUnknown
503 typedef [unique] IMimePropertySchema *LPMIMEPROPERTYSCHEMA;
505 typedef enum tagMIMEPROPFLAGS
507 MPF_INETCSET = 0x01,
508 MPF_RFC1522 = 0x02,
509 MPF_ADDRESS = 0x04,
510 MPF_HASPARAMS = 0x08,
511 MPF_MIME = 0x10,
512 MPF_READONLY = 0x20
513 } MIMEPROPFLAGS;
515 HRESULT RegisterProperty(
516 [in] const char *name,
517 [in] DWORD flags,
518 [in] DWORD rownumber,
519 [in] VARTYPE vtdefault,
520 [out] DWORD *propid);
522 HRESULT ModifyProperty(
523 [in] const char *name,
524 [in] DWORD flags,
525 [in] DWORD rownumber,
526 [in] VARTYPE vtdefault);
528 HRESULT GetPropertyId(
529 [in] const char *name,
530 [out] DWORD *propid);
532 HRESULT GetPropertyName(
533 [in] DWORD propid,
534 [out] char **name);
536 HRESULT RegisterAddressType(
537 [in] const char *name,
538 [out] DWORD *adrtype);
542 uuid(fd853cd3-7f86-11d0-8252-00c04fd85ab4),
543 object
545 interface IMimePropertySet : IPersistStreamInit
547 typedef [unique] IMimePropertySet *LPMIMEPROPERTYSET;
549 cpp_quote("#define PDF_ENCODED 0x00000001")
550 cpp_quote("#define PDF_NAMEINDATA 0x00000002")
551 cpp_quote("#define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)")
552 cpp_quote("#define PDF_NOCOMMENTS 0x00000008")
553 cpp_quote("#define PDF_SAVENOENCODE 0x00000010")
554 cpp_quote("#define PDF_VECTOR 0x00000020")
556 typedef struct tagMIMEPARAMINFO
558 LPSTR pszName;
559 LPSTR pszData;
560 } MIMEPARAMINFO, *LPMIMEPARAMINFO;
562 typedef enum tagPROPINFOMASK
564 PIM_CHARSET = 0x01,
565 PIM_ENCODINGTYPE = 0x02,
566 PIM_ROWNUMBER = 0x04,
567 PIM_FLAGS = 0x08,
568 PIM_PROPID = 0x10,
569 PIM_VALUES = 0x20,
570 PIM_VTDEFAULT = 0x40,
571 PIM_VTCURRENT = 0x80
572 } PROPINFOMASK;
574 typedef struct tagMIMEPROPINFO
576 DWORD dwMask;
577 HCHARSET hCharset;
578 ENCODINGTYPE ietEncoding;
579 DWORD dwRowNumber;
580 DWORD dwFlags;
581 DWORD dwPropId;
582 DWORD cValues;
583 VARTYPE vtDefault;
584 VARTYPE vtCurrent;
585 } MIMEPROPINFO, *LPMIMEPROPINFO;
586 typedef const MIMEPROPINFO *LPCMIMEPROPINFO;
588 HRESULT GetPropInfo(
589 [in] LPCSTR pszName,
590 [in,out] LPMIMEPROPINFO pInfo);
592 HRESULT SetPropInfo(
593 [in] LPCSTR pszName,
594 [in] LPCMIMEPROPINFO pInfo);
596 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
597 cpp_quote("#undef GetProp")
598 cpp_quote("#undef SetProp")
599 cpp_quote("#undef EnumProps")
600 cpp_quote("#endif")
601 HRESULT GetProp(
602 [in] LPCSTR pszName,
603 [in] DWORD dwFlags,
604 [in,out] LPPROPVARIANT pValue);
606 HRESULT SetProp(
607 [in] LPCSTR pszName,
608 [in] DWORD dwFlags,
609 [in] LPCPROPVARIANT pValue);
611 HRESULT AppendProp(
612 [in] LPCSTR pszName,
613 [in] DWORD dwFlags,
614 [in] LPPROPVARIANT pValue);
616 HRESULT DeleteProp(
617 [in] LPCSTR pszName);
619 HRESULT CopyProps(
620 [in] ULONG cNames,
621 [in,unique] LPCSTR *prgszName,
622 [in] IMimePropertySet *pPropertySet);
624 HRESULT MoveProps(
625 [in] ULONG cNames,
626 [in] LPCSTR *prgszName,
627 [in] IMimePropertySet *pPropertySet);
629 HRESULT DeleteExcept(
630 [in] ULONG cNames,
631 [in] LPCSTR *prgszName);
633 HRESULT QueryProp(
634 [in] LPCSTR pszName,
635 [in] LPCSTR pszCriteria,
636 [in] boolean fSubString,
637 [in] boolean fCaseSensitive);
639 HRESULT GetCharset(
640 [out] LPHCHARSET phCharset);
642 HRESULT SetCharset(
643 [in] HCHARSET hCharset,
644 [in] CSETAPPLYTYPE applytype);
646 HRESULT GetParameters(
647 [in] LPCSTR pszName,
648 [out] ULONG *pcParams,
649 [out] LPMIMEPARAMINFO *pprgParam);
651 HRESULT IsContentType(
652 [in] LPCSTR pszPriType,
653 [in,unique] LPCSTR pszSubType);
655 HRESULT BindToObject(
656 [in] REFIID riid,
657 [out,iid_is(riid)] void **ppvObject);
659 HRESULT Clone(
660 [out] IMimePropertySet **ppPropertySet);
662 HRESULT SetOption(
663 [in] const TYPEDID oid,
664 [in] LPCPROPVARIANT pValue);
666 HRESULT GetOption(
667 [in] const TYPEDID oid,
668 [in,out] LPPROPVARIANT pValue);
670 cpp_quote("#define EPF_NONAME 0x00000001")
672 HRESULT EnumProps(
673 [in] DWORD dwFlags,
674 [out] IMimeEnumProperties **ppEnum);
679 uuid(c558834a-7f86-11d0-8252-00c04fd85ab4),
680 object
682 interface IMimeAddressTable : IUnknown
684 typedef [unique] IMimeAddressTable *LPMIMEADDRESSTABLE;
686 DECLARE_HANDLE(HADDRESS);
687 typedef HADDRESS *LPHADDRESS;
688 typedef DWORD IADDRESSTYPE;
690 typedef enum tagADDRESSFORMAT
692 AFT_DISPLAY_FRIENDLY,
693 AFT_DISPLAY_EMAIL,
694 AFT_DISPLAY_BOTH,
695 AFT_RFC822_DECODED,
696 AFT_RFC822_ENCODED,
697 AFT_RFC822_TRANSMIT,
698 } ADDRESSFORMAT;
700 typedef struct tagADDRESSPROPS
702 DWORD dwProps;
703 HADDRESS hAddress;
704 ENCODINGTYPE ietFriendly;
705 HCHARSET hCharset;
706 DWORD dwAdrType;
707 LPSTR pszFriendly;
708 LPWSTR pwszReserved;
709 LPSTR pszEmail;
710 CERTSTATE certstate;
711 THUMBBLOB tbSigning;
712 THUMBBLOB tbEncryption;
713 DWORD dwCookie;
714 DWORD dwReserved1;
715 DWORD dwReserved2;
716 } ADDRESSPROPS, *LPADDRESSPROPS;
718 typedef struct tagADDRESSLIST
720 ULONG cAdrs;
721 LPADDRESSPROPS prgAdr;
722 } ADDRESSLIST, *LPADDRESSLIST;
724 /* FIXME: fill this in */
728 uuid(ee519f11-851a-11d0-8252-00c04fd85ab4),
729 object
731 interface IMimeWebDocument : IUnknown
733 /* FIXME: fill this in */
737 uuid(c558834c-7f86-11d0-8252-00c04fd85ab4),
738 object
740 interface IMimeBody : IMimePropertySet
742 typedef [unique] IMimeBody *LPMIMEBODY;
744 typedef enum tagIMSGBODYTYPE
746 IBT_SECURE,
747 IBT_ATTACHMENT,
748 IBT_EMPTY,
749 IBT_CSETTAGGED,
750 IBT_AUTOATTACH,
751 } IMSGBODYTYPE;
753 typedef struct tagBODYOFFSETS
755 DWORD cbBoundaryStart;
756 DWORD cbHeaderStart;
757 DWORD cbBodyStart;
758 DWORD cbBodyEnd;
759 } BODYOFFSETS, *LPBODYOFFSETS;
761 typedef struct tagTRANSMITINFO
763 ENCODINGTYPE ietCurrent;
764 ENCODINGTYPE ietXmitMime;
765 ENCODINGTYPE ietXmit822;
766 ULONG cbLongestLine;
767 ULONG cExtended;
768 ULONG ulPercentExt;
769 ULONG cbSize;
770 ULONG cLines;
771 } TRANSMITINFO, *LPTRANSMITINFO;
773 HRESULT IsType(
774 [in] IMSGBODYTYPE bodytype);
776 HRESULT SetDisplayName(
777 [in] LPCSTR pszDisplay);
779 HRESULT GetDisplayName(
780 [out] LPSTR *ppszDisplay);
782 HRESULT GetOffsets(
783 [out] LPBODYOFFSETS pOffsets);
785 HRESULT GetCurrentEncoding(
786 [out] ENCODINGTYPE *pietEncoding);
788 HRESULT SetCurrentEncoding(
789 [in] ENCODINGTYPE ietEncoding);
791 HRESULT GetEstimatedSize(
792 [in] ENCODINGTYPE ietEncoding,
793 [out] ULONG *pcbSize);
795 HRESULT GetDataHere(
796 [in] ENCODINGTYPE ietEncoding,
797 [in] IStream *pStream);
799 HRESULT GetData(
800 [in] ENCODINGTYPE ietEncoding,
801 [out] IStream **ppStream);
803 HRESULT SetData(
804 [in] ENCODINGTYPE ietEncoding,
805 [in,unique] LPCSTR pszPriType,
806 [in,unique] LPCSTR pszSubType,
807 [in] REFIID riid,
808 [in,iid_is(riid)] LPVOID pvObject);
810 HRESULT EmptyData(void);
812 HRESULT CopyTo(
813 [in] IMimeBody *pBody);
815 HRESULT GetTransmitInfo(
816 [in,out] LPTRANSMITINFO pTransmitInfo);
818 HRESULT SaveToFile(
819 [in] ENCODINGTYPE ietEncoding,
820 [in] LPCSTR pszFilePath);
822 HRESULT GetHandle(
823 [out] LPHBODY phBody);
828 uuid(fd853cd4-7f86-11d0-8252-00c04fd85ab4),
829 object
831 interface IMimeMessageTree : IPersistStreamInit
833 typedef [unique] IMimeMessageTree *LPMIMEMESSAGETREE;
835 const HBODY HBODY_ROOT = (HBODY)-1;
837 typedef enum tagBODYLOCATION
839 IBL_ROOT,
840 IBL_PARENT,
841 IBL_FIRST,
842 IBL_LAST,
843 IBL_NEXT,
844 IBL_PREVIOUS,
845 } BODYLOCATION;
847 typedef struct tagFINDBODY
849 LPSTR pszPriType;
850 LPSTR pszSubType;
851 DWORD dwReserved;
852 } FINDBODY, *LPFINDBODY;
854 HRESULT GetMessageSource(
855 [out] IStream **ppStream,
856 [in] DWORD dwFlags);
858 HRESULT GetMessageSize(
859 [out] ULONG *pcbSize,
860 [in] DWORD dwFlags);
862 HRESULT LoadOffsetTable(
863 [in] IStream *pStream);
865 HRESULT SaveOffsetTable(
866 [in] IStream *pStream,
867 [in] DWORD dwFlags);
869 HRESULT GetFlags(
870 [out] DWORD *pdwFlags);
872 HRESULT Commit(
873 [in] DWORD dwFlags);
875 HRESULT HandsOffStorage();
877 HRESULT BindToObject(
878 [in] const HBODY hBody,
879 [in] REFIID riid,
880 [out, iid_is(riid)] void **ppvObject);
882 HRESULT SaveBody(
883 [in] HBODY hBody,
884 [in] DWORD dwFlags,
885 [in] IStream *pStream);
887 HRESULT InsertBody(
888 [in] BODYLOCATION location,
889 [in] HBODY hPivot,
890 [out] LPHBODY phBody);
892 HRESULT GetBody(
893 [in] BODYLOCATION location,
894 [in] HBODY hPivot,
895 [out] LPHBODY phBody);
897 HRESULT DeleteBody(
898 [in] HBODY hBody,
899 [in] DWORD dwFlags);
901 HRESULT MoveBody(
902 [in] HBODY hBody,
903 [in] BODYLOCATION location);
905 HRESULT CountBodies(
906 [in] HBODY hParent,
907 [in] boolean fRecurse,
908 [out] ULONG *pcBodies);
910 HRESULT FindFirst(
911 [in, out] LPFINDBODY pFindBody,
912 [out] LPHBODY phBody);
914 HRESULT FindNext(
915 [in, out] LPFINDBODY pFindBody,
916 [out] LPHBODY phBody);
918 HRESULT ResolveURL(
919 [in] HBODY hRelated,
920 [in] LPCSTR pszBase,
921 [in] LPCSTR pszURL,
922 [in] DWORD dwFlags,
923 [out] LPHBODY phBody);
925 HRESULT ToMultipart(
926 [in] HBODY hBody,
927 [in] LPCSTR pszSubType,
928 [out] LPHBODY phMultipart);
930 HRESULT GetBodyOffsets(
931 [in] HBODY hBody,
932 [in, out] LPBODYOFFSETS pOffsets);
934 HRESULT GetCharset(
935 [out] LPHCHARSET phCharset);
937 HRESULT SetCharset(
938 [in] HCHARSET hCharset,
939 [in] CSETAPPLYTYPE applytype);
941 HRESULT IsBodyType(
942 [in] HBODY hBody,
943 [in] IMSGBODYTYPE bodytype);
945 HRESULT IsContentType(
946 [in] HBODY hBody,
947 [in] LPCSTR pszPriType,
948 [in] LPCSTR pszSubType);
950 HRESULT QueryBodyProp(
951 [in] HBODY hBody,
952 [in] LPCSTR pszName,
953 [in] LPCSTR pszCriteria,
954 [in] boolean fSubString,
955 [in] boolean fCaseSensitive);
957 HRESULT GetBodyProp(
958 [in] HBODY hBody,
959 [in] LPCSTR pszName,
960 [in] DWORD dwFlags,
961 [in, out] LPPROPVARIANT pValue);
963 HRESULT SetBodyProp(
964 [in] HBODY hBody,
965 [in] LPCSTR pszName,
966 [in] DWORD dwFlags,
967 [in] LPCPROPVARIANT pValue);
969 HRESULT DeleteBodyProp(
970 [in] HBODY hBody,
971 [in] LPCSTR pszName);
973 HRESULT SetOption(
974 [in] const TYPEDID oid,
975 [in] LPCPROPVARIANT pValue);
977 HRESULT GetOption(
978 [in] const TYPEDID oid,
979 [in, out] LPPROPVARIANT pValue);
983 uuid(fd853cd5-7f86-11d0-8252-00c04fd85ab4),
984 object
986 interface IMimeMessage : IMimeMessageTree
988 typedef [unique] IMimeMessage *LPMIMEMESSAGE;
990 typedef DWORD TEXTTYPE;
992 typedef enum tagIMSGFLAGS
994 IMF_ATTACHMENTS = 0x00000001,
995 IMF_MULTIPART = 0x00000002,
996 IMF_SUBMULTIPART = 0x00000004,
997 IMF_MIME = 0x00000008,
998 IMF_HTML = 0x00000010,
999 IMF_PLAIN = 0x00000020,
1000 IMF_PARTIAL = 0x00000040,
1001 IMF_SIGNED = 0x00000080,
1002 IMF_ENCRYPTED = 0x00000100,
1003 IMF_TNEF = 0x00000200,
1004 IMF_MHTML = 0x00000400,
1005 IMF_SECURE = 0x00000800,
1006 IMF_TEXT = 0x00001000,
1007 IMF_CSETTAGGED = 0x00002000,
1008 IMF_NEWS = 0x00004000,
1009 IMF_VOICEMAIL = 0x00008000,
1010 IMF_HASVCARD = 0x00010000,
1011 IMF_RFC1154 = 0x00020000,
1012 } IMSGFLAGS;
1014 typedef enum tagIMSGPRIORITY
1016 IMSG_PRI_LOW = 5,
1017 IMSG_PRI_NORMAL = 3,
1018 IMSG_PRI_HIGH = 1,
1019 } IMSGPRIORITY;
1021 cpp_quote("#define WPF_HTML 0x00000001")
1022 cpp_quote("#define WPF_AUTOINLINE 0x00000002")
1023 cpp_quote("#define WPF_SLIDESHOW 0x00000004")
1024 cpp_quote("#define WPF_ATTACHLINKS 0x00000008")
1025 cpp_quote("#define WPF_IMAGESONLY 0x00000010")
1026 cpp_quote("#define WPF_NOMETACHARSET 0x00000020")
1028 typedef struct tagWEPAGEOPTIONS
1030 DWORD cbSize;
1031 DWORD dwFlags;
1032 DWORD dwDelay;
1033 WCHAR wchQuote;
1034 } WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS;
1036 cpp_quote("#define TXT_PLAIN 1")
1037 cpp_quote("#define TXT_HTML 2")
1039 HRESULT CreateWebPage(
1040 [in] IStream *pRootStm,
1041 [in] LPWEBPAGEOPTIONS pOptions,
1042 [in] IMimeMessageCallback *pCallback,
1043 [out] IMoniker **ppMoniker);
1045 HRESULT GetProp(
1046 [in] LPCSTR pszName,
1047 [in] DWORD dwFlags,
1048 [in,out] LPPROPVARIANT pValue);
1050 HRESULT SetProp(
1051 [in] LPCSTR pszName,
1052 [in] DWORD dwFlags,
1053 [in] LPCPROPVARIANT pValue);
1055 HRESULT DeleteProp(
1056 [in] LPCSTR pszName);
1058 HRESULT QueryProp(
1059 [in] LPCSTR pszName,
1060 [in] LPCSTR pszCriteria,
1061 [in] boolean fSubString,
1062 [in] boolean fCaseSensitive);
1064 HRESULT GetTextBody(
1065 [in] DWORD dwTxtType,
1066 [in] ENCODINGTYPE ietEncoding,
1067 [out] IStream **pStream,
1068 [out] LPHBODY phBody);
1070 HRESULT SetTextBody(
1071 [in] DWORD dwTxtType,
1072 [in] ENCODINGTYPE ietEncoding,
1073 [in] HBODY hAlternative,
1074 [in] IStream *pStream,
1075 [out] LPHBODY phBody);
1077 HRESULT AttachObject(
1078 [in] REFIID riid,
1079 [in, iid_is(riid)] void *pvObject,
1080 [out] LPHBODY phBody);
1082 HRESULT AttachFile(
1083 [in] LPCSTR pszFilePath,
1084 [in] IStream *pstmFile,
1085 [out] LPHBODY phBody);
1087 HRESULT AttachURL(
1088 [in] LPCSTR pszBase,
1089 [in] LPCSTR pszURL,
1090 [in] DWORD dwFlags,
1091 [in] IStream *pstmURL,
1092 [out] LPSTR *ppszCIDURL,
1093 [out] LPHBODY phBody);
1095 HRESULT GetAttachments(
1096 [out] ULONG *pcAttach,
1097 [out] LPHBODY *pprghAttach);
1099 HRESULT GetAddressTable(
1100 [out] IMimeAddressTable **ppTable);
1102 HRESULT GetSender(
1103 [in, out] LPADDRESSPROPS pAddress);
1105 HRESULT GetAddressTypes(
1106 [in] DWORD dwAdrTypes,
1107 [in] DWORD dwProps,
1108 [in, out] LPADDRESSLIST pList);
1110 HRESULT GetAddressFormat(
1111 [in] DWORD dwAdrTypes,
1112 [in] ADDRESSFORMAT format,
1113 [out] LPSTR *ppszFormat);
1115 HRESULT EnumAddressTypes(
1116 [in] DWORD dwAdrTypes,
1117 [in] DWORD dwProps,
1118 [out] IMimeEnumAddressTypes **ppEnum);
1120 HRESULT SplitMessage(
1121 [in] ULONG cbMaxPart,
1122 [out] IMimeMessageParts **ppParts);
1124 HRESULT GetRootMoniker(
1125 [out] IMoniker **ppMoniker);
1129 uuid(761aa741-7bda-11d1-8aa9-00c04fb951f3),
1130 object
1132 interface IMimeMessageCallback : IUnknown
1134 HRESULT OnWebPageSplitter(
1135 [in] DWORD cInlined,
1136 [in] IStream *ppStream);
1140 uuid(de4ad8da-555f-11d1-8dd0-00c04fb951f9),
1141 object
1143 interface IPersistMime : IPersist
1145 /* FIXME: fill this in */
1149 uuid(c558834f-7f86-11d0-8252-00c04fd85ab4),
1150 object
1152 interface IMimeMessageParts : IUnknown
1154 /* FIXME: fill this in */
1158 uuid(c558834d-7f86-11d0-8252-00c04fd85ab4),
1159 object
1161 interface IMimeEnumHeaderRows : IUnknown
1163 typedef struct tagENUMHEADERROW
1165 HHEADERROW hRow;
1166 LPSTR pszHeader;
1167 LPSTR pszData;
1168 ULONG cchData;
1169 DWORD_PTR dwReserved;
1170 } ENUMHEADERROW, *LPENUMHEADERROW;
1172 /* FIXME: fill this in */
1176 uuid(fd853cee-7f86-11d0-8252-00c04fd85ab4),
1177 object
1179 interface IMimeEnumProperties : IUnknown
1181 typedef [unique] IMimeEnumProperties *LPMIMEENUMPROPERTIES;
1183 typedef struct tagENUMPROPERTY
1185 LPSTR pszName;
1186 HHEADERROW hRow;
1187 DWORD dwPropId;
1188 } ENUMPROPERTY, *LPENUMPROPERTY;
1190 HRESULT Next(
1191 [in] ULONG cFetch,
1192 [in, out] LPENUMPROPERTY prgProp,
1193 [out] ULONG *pcFetched);
1195 HRESULT Skip(
1196 [in] ULONG cItems);
1198 HRESULT Reset(void);
1200 HRESULT Clone(
1201 [out] IMimeEnumProperties **ppEnum);
1203 HRESULT Count(
1204 [out] ULONG *pcItems);
1209 uuid(c5588354-7f86-11d0-8252-00c04fd85ab4),
1210 object
1212 interface IMimeEnumAddressTypes : IUnknown
1214 /* FIXME: fill this in */
1218 uuid(c5588350-7f86-11d0-8252-00c04fd85ab4),
1219 object
1221 interface IMimeEnumMessageParts : IUnknown
1223 /* FIXME: fill this in */
1227 uuid(64577981-86d7-11d1-bdfc-00c04fa31009),
1228 object
1230 interface IHashTable : IUnknown
1232 /* FIXME: fill this in */
1236 uuid(c5588351-7f86-11d0-8252-00c04fd85ab4),
1237 object
1239 interface IMimeAllocator : IMalloc
1241 typedef [unique] IMimeAllocator *LPMIMEALLOCATOR;
1243 HRESULT FreeParamInfoArray(
1244 [in] ULONG cParams,
1245 [in] LPMIMEPARAMINFO prgParam,
1246 [in] boolean fFreeArray);
1248 HRESULT FreeAddressList(
1249 [in,out] LPADDRESSLIST pList);
1251 HRESULT FreeAddressProps(
1252 [in,out] LPADDRESSPROPS pAddress);
1254 HRESULT ReleaseObjects(
1255 [in] ULONG cObjects,
1256 [in] IUnknown **prgpUnknown,
1257 [in] boolean fFreeArray);
1259 HRESULT FreeEnumHeaderRowArray(
1260 [in] ULONG cRows,
1261 [in] LPENUMHEADERROW prgRow,
1262 [in] boolean fFreeArray);
1264 HRESULT FreeEnumPropertyArray(
1265 [in] ULONG cProps,
1266 [in] LPENUMPROPERTY prgProp,
1267 [in] boolean fFreeArray);
1269 HRESULT FreeThumbprint(
1270 [in] THUMBBLOB *pthumbprint);
1272 HRESULT PropVariantClear(
1273 [in] LPPROPVARIANT pProp);
1278 uuid(feceaffd-c441-11d1-960e-00c04fbd7c09),
1279 object
1281 interface IMimeObjResolver : IUnknown
1283 /* FIXME: fill this in */
1287 uuid(b0d17fc2-7bc4-11d1-bdfa-00c04fa31009),
1288 object
1290 interface IFontCache : IUnknown
1292 /* FIXME: fill this in */
1296 uuid(b0d17fc5-7bc4-11d1-bdfa-00c04fa31009),
1297 object
1299 interface IFontCacheNotify : IUnknown
1301 /* FIXME: fill this in */
1305 uuid(70183210-7b36-11d2-8c12-00c04fa31009),
1306 object
1308 interface IMimeEditTag : IUnknown
1310 /* FIXME: fill this in */
1314 uuid(d09ee528-7b38-11d2-8c12-00c04fa31009),
1315 object
1317 interface IMimeEditTagCollection : IUnknown
1319 /* FIXME: fill this in */
1323 uuid(ba715ae0-a740-11d2-8b22-0080c76b34c6),
1324 local
1326 interface IMimeSecurityCallback : IUnknown
1328 /* FIXME: fill this in */
1330 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_UNKNOWN 0")
1331 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYTRANS 1")
1332 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYAGREE 2")
1333 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_MAIL_LIST 3")
1335 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_CERTIFICATE 0")
1336 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_KEYTRANS 1")
1337 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_PROVIDER 2")
1338 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_EPHEMERAL_KEYAGREE 3")
1339 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_STATIC_KEYAGREE 4")
1341 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_CERTIFICATE 0")
1342 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_ISSUERSERIAL 1")
1343 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_KEY_ID 2")
1348 cpp_quote("#ifdef __cplusplus")
1349 cpp_quote(" extern \"C\" {")
1350 cpp_quote("#endif")
1352 cpp_quote("")
1353 cpp_quote("HRESULT WINAPI MimeOleSetCompatMode(DWORD);")
1354 cpp_quote("HRESULT WINAPI MimeOleContentTypeFromUrl(LPCSTR,LPCSTR,LPSTR*);")
1355 cpp_quote("HRESULT WINAPI MimeOleParseMhtmlUrl(LPSTR,LPSTR*,LPSTR*);")
1356 cpp_quote("HRESULT WINAPI MimeOleObjectFromUrl(LPCSTR,BOOL,REFIID,LPVOID*,IUnknown**);")
1357 cpp_quote("HRESULT WINAPI MimeOleObjectFromMoniker(BINDF,IMoniker*,IBindCtx*,REFIID,LPVOID*,IMoniker**);")
1358 cpp_quote("HRESULT WINAPI MimeOleCombineURL(LPCSTR,ULONG,LPCSTR,ULONG,BOOL,LPSTR*);")
1359 cpp_quote("HRESULT WINAPI MimeOleGetSubjectFileName(IMimePropertySet*,ULONG*,ULONG*,LPSTR,ULONG);")
1360 cpp_quote("HRESULT WINAPI MimeOleCreateWebDocument(LPCSTR,LPCSTR,IMimeWebDocument**);")
1361 cpp_quote("HRESULT WINAPI MimeOleGetRelatedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1362 cpp_quote("HRESULT WINAPI MimeOleGetMixedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1363 cpp_quote("HRESULT WINAPI MimeOleGetAlternativeSection(IMimeMessageTree*,LPHBODY,boolean*);")
1364 cpp_quote("HRESULT WINAPI MimeOleGenerateCID(LPSTR,ULONG,boolean);")
1365 cpp_quote("HRESULT WINAPI MimeOleGenerateMID(LPSTR,ULONG,boolean);")
1366 cpp_quote("HRESULT WINAPI MimeOleCreateByteStream(IStream**);")
1367 cpp_quote("HRESULT WINAPI MimeOlGetPropertySchema(IMimePropertySchema**);")
1368 cpp_quote("HRESULT WINAPI MimeOleQueryString(LPCSTR,LPCSTR,boolean,boolean);")
1369 cpp_quote("HRESULT WINAPI MimeOleGetPropA(IMimePropertySet*,LPCSTR,DWORD,LPSTR*);")
1370 cpp_quote("HRESULT WINAPI MimeOleSetPropA(IMimePropertySet*,LPCSTR,DWORD,LPCSTR);")
1371 cpp_quote("HRESULT WINAPI MimeOleGetPropW(IMimePropertySet*,LPCSTR,DWORD,LPWSTR*);")
1372 cpp_quote("HRESULT WINAPI MimeOleSetPropW(IMimePropertySet*,LPCSTR,DWORD,LPCWSTR);")
1373 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPSTR*);")
1374 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCSTR);")
1375 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPWSTR*);")
1376 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCWSTR);")
1377 cpp_quote("HRESULT WINAPI MimeOleCreateHeaderTable(IMimeHeaderTable**);")
1378 cpp_quote("HRESULT WINAPI MimeOleVariantFree(LPPROPVARIANT);")
1379 cpp_quote("HRESULT WINAPI MimeOleVariantCopy(LPPROPVARIANT,LPPROPVARIANT);")
1380 cpp_quote("HRESULT WINAPI MimeOleGetExtClassId(LPCSTR,LPCLSID);")
1381 cpp_quote("HRESULT WINAPI MimeOleEncodeHeader(HCHARSET,LPPROPVARIANT,LPSTR*,LPRFC1522INFO);")
1382 cpp_quote("HRESULT WINAPI MimeOleDecodeHeader(HCHARSET,LPCSTR,LPPROPVARIANT,LPRFC1522INFO);")
1383 cpp_quote("HRESULT WINAPI MimeOleRfc1522Decode(LPCSTR,LPSTR,ULONG,LPSTR*);")
1384 cpp_quote("HRESULT WINAPI MimeOleRfc1522Encode(LPCSTR,HCHARSET,LPSTR*);")
1385 cpp_quote("HRESULT WINAPI MimeOleGetInternat(IMimeInternational**);")
1386 cpp_quote("HRESULT WINAPI MimeOleFindCharset(LPCSTR,LPHCHARSET);")
1387 cpp_quote("HRESULT WINAPI MimeOleGetCharsetInfo(HCHARSET,LPINETCSETINFO);")
1388 cpp_quote("HRESULT WINAPI MimeOleGetCodePageInfo(HCHARSET,LPCODEPAGEINFO);")
1389 cpp_quote("HRESULT WINAPI MimeOleGetDefaultCharset(LPHCHARSET);")
1390 cpp_quote("HRESULT WINAPI MimeOleSetDefaultCharset(HCHARSET);")
1391 cpp_quote("HRESULT WINAPI MimeOleGetCodePageCharset(CODEPAGEID,CHARSETTYPE,LPHCHARSET);")
1392 cpp_quote("HRESULT WINAPI MimeOleCreateVirtualStream(IStream**);")
1393 cpp_quote("HRESULT WINAPI MimeOleOpenFileStream(LPCSTR,DWORD,DWORD,IStream**);")
1394 cpp_quote("HRESULT WINAPI MimeOleIsTnefStream(IStream*);")
1395 cpp_quote("HRESULT WINAPI MimeOleGenerateFileName(LPCSTR,LPCSTR,LPCSTR,LPSTR*);")
1396 cpp_quote("HRESULT WINAPI MimeOleGetFileExtension(LPCSTR,LPSTR,ULONG);")
1397 cpp_quote("HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity**);")
1398 cpp_quote("HRESULT WINAPI MimeOleInetDateToFileTime(LPCSTR,LPFILETIME);")
1399 cpp_quote("HRESULT WINAPI MimeOleFileTimeToInetDate(LPFILETIME,LPSTR,ULONG);")
1400 cpp_quote("HRESULT WINAPI MimeOleCreateMessageParts(IMimeMessageParts**);")
1401 cpp_quote("HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator**);")
1402 cpp_quote("HRESULT WINAPI MimeOleParseRfc822Address(DWORD,ENCODINGTYPE,LPCSTR,LPADDRESSLIST);")
1403 cpp_quote("HRESULT WINAPI MimeOleCreateMessage(IUnknown*,IMimeMessage**);")
1404 cpp_quote("HRESULT WINAPI MimeOleMergePartialHeaders(IStream*,IStream*);")
1405 cpp_quote("HRESULT WINAPI MimeOleEscapeString(CODEPAGEID,LPCSTR,LPSTR*);")
1406 cpp_quote("HRESULT WINAPI MimeOleGetExtContentType(LPCSTR,LPSTR*);")
1407 cpp_quote("HRESULT WINAPI MimeOleGetContentTypeExt(LPCSTR,LPSTR*);")
1408 cpp_quote("HRESULT WINAPI MimeOleGetFileInfo(LPSTR,LPSTR*,LPSTR*,LPSTR*,LPSTR*,LPSTR*);")
1409 cpp_quote("HRESULT WINAPI MimeOleCreateBody(IMimeBody**);")
1410 cpp_quote("HRESULT WINAPI MimeOleCreatePropertySet(IUnknown*,IMimePropertySet**);")
1411 cpp_quote("HRESULT WINAPI MimeOleCreateMessageTree(IUnknown*,IMimeMessageTree**);")
1412 cpp_quote("HRESULT WINAPI MimeOleGetCertsFromThumbprints(THUMBBLOB*,X509CERTRESULT*,const HCERTSTORE*,DWORD);")
1413 cpp_quote("HRESULT WINAPI MimeOleSplitMessage(IMimeMessage*,ULONG,IMimeMessageParts**);")
1414 cpp_quote("HRESULT WINAPI MimeOleClearDirtyTree(IMimeMessageTree*);")
1415 cpp_quote("HRESULT WINAPI MimeOleConvertEnrichedToHTML(CODEPAGEID,IStream*,IStream*);")
1416 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsToDlg(LPBYTE,DWORD,DWORD,PCX509CERT*,HWND,DWORD,DWORD,DWORD);")
1417 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFromDlg(HWND,DWORD,DWORD,DWORD,LPBYTE,DWORD*);")
1418 cpp_quote("HRESULT WINAPI MimeOleSMimeCapInit(LPBYTE,DWORD,LPVOID*);")
1419 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddSMimeCap(LPBYTE,DWORD,LPVOID);")
1420 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddCert(LPBYTE,DWORD,BOOL,LPVOID);")
1421 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetEncAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1422 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetHashAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1423 cpp_quote("HRESULT WINAPI MimeOleSMimeCapRelease(LPVOID);")
1424 cpp_quote("HRESULT WINAPI MimeOleAlgNameFromSMimeap(LPBYTE,DWORD,LPCSTR*);")
1425 cpp_quote("HRESULT WINAPI MimeOleAlgStrengthFromSMimeCap(LPBYTE,DWORD,BOOL,DWORD*);")
1426 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFull(LPVOID,BOOL,BOOL,LPBYTE,DWORD*);")
1427 cpp_quote("HRESULT WINAPI MimeOleCreateHashTable(DWORD,BOOL,IHashTable**);")
1428 cpp_quote("HRESULT WINAPI MimeOleStripHeaders(IMimeMessage*,HBODY,LPCSTR,LPCSTR,IStream**);")
1430 cpp_quote("HRESULT WINAPI MimeEditViewSource(HWND,IMimeMessage*);")
1431 cpp_quote("HRESULT WINAPI MimeEditIsSafeToRun(HWND,LPCSTR);")
1432 cpp_quote("HRESULT WINAPI MimeEditVerifyTrust(HWND,LPCSTR,LPCSTR);")
1433 cpp_quote("HRESULT WINAPI MimeEditCreateMimeDocument(IUnknown*,IMimeMessage*,DWORD,IMimeMessage**);")
1434 cpp_quote("HRESULT WINAPI MimeEditGetBackgroundImageUrl(IUnknown*,BSTR*);")
1435 cpp_quote("HRESULT WINAPI MimeEditDocumentFromStream(IStream*,REFIID,void**);")
1437 cpp_quote("HRESULT WINAPI MimeOleGetPropertySchema(IMimePropertySchema**);")
1439 cpp_quote("#ifdef __cplusplus")
1440 cpp_quote("}")
1441 cpp_quote("#endif")