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