Don't define u_int64 in wine/dcetypes.idl
[reactos.git] / include / psdk / mimeole.idl
1 /*
2 * Copyright 2007 Robert Shearman for CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19 import "ocidl.idl";
20 import "objidl.idl";
21 import "propidl.idl";
22
23 #define DECLARE_HANDLE(name) typedef void *name
24
25 interface IMimeMessageCallback;
26 interface IMimeEnumAddressTypes;
27 interface IMimeMessageParts;
28 interface IMimeMessageTree;
29 interface IMimeBody;
30 interface IMimeEnumProperties;
31
32 cpp_quote("DEFINE_GUID(CLSID_IMimeBody, 0xfd853cdb, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
33 cpp_quote("DEFINE_GUID(CLSID_IMimeAllocator, 0xfd853cdd, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
34 cpp_quote("DEFINE_GUID(CLSID_IMimeMessage, 0xfd853ce3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
35 cpp_quote("DEFINE_GUID(CLSID_IMimeSecurity, 0xfd853cde, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
36 cpp_quote("DEFINE_GUID(CLSID_IVirtualStream, 0xfd853cdf, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
37
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")
50
51 cpp_quote("#define MIME_E_INVALID_CHARSET_TYPE 0x800cce31")
52
53 cpp_quote("#define MIME_E_INVALID_TEXT_TYPE 0x800cce38")
54
55 cpp_quote("#define MIME_E_SECURITY_NOOP 0x800cceb1")
56 cpp_quote("#define MIME_S_SECURITY_NOOP 0x000cceb1")
57
58 cpp_quote("typedef enum tagMIMEPROPID {")
59 cpp_quote(" PID_HDR_NEWSGROUP = 2,")
60 cpp_quote(" PID_HDR_NEWSGROUPS = 3,")
61 cpp_quote(" PID_HDR_REFS = 4,")
62 cpp_quote(" PID_HDR_SUBJECT = 5,")
63 cpp_quote(" PID_HDR_FROM = 6,")
64 cpp_quote(" PID_HDR_MESSAGEID = 7,")
65 cpp_quote(" PID_HDR_RETURNPATH = 8,")
66 cpp_quote(" PID_HDR_RR = 9,")
67 cpp_quote(" PID_HDR_RETRCPTO = 10,")
68 cpp_quote(" PID_HDR_APPARTO = 11,")
69 cpp_quote(" PID_HDR_DATE = 12,")
70 cpp_quote(" PID_HDR_RECEIVED = 13,")
71 cpp_quote(" PID_HDR_REPLYTO = 14,")
72 cpp_quote(" PID_HDR_XMAILER = 15,")
73 cpp_quote(" PID_HDR_BCC = 16,")
74 cpp_quote(" PID_HDR_MIMEVER = 17,")
75 cpp_quote(" PID_HDR_CNTTYPE = 18,")
76 cpp_quote(" PID_HDR_CNTXFER = 19,")
77 cpp_quote(" PID_HDR_CNTID = 20,")
78 cpp_quote(" PID_HDR_CNTDESC = 21,")
79 cpp_quote(" PID_HDR_CNTDISP = 22,")
80 cpp_quote(" PID_HDR_CNTBASE = 23,")
81 cpp_quote(" PID_HDR_CNTLOC = 24,")
82 cpp_quote(" PID_HDR_TO = 25,")
83 cpp_quote(" PID_HDR_PATH = 26,")
84 cpp_quote(" PID_HDR_FOLLOWUPTO = 27,")
85 cpp_quote(" PID_HDR_EXPIRES = 28,")
86 cpp_quote(" PID_HDR_CC = 29,")
87
88 cpp_quote(" PID_HDR_SENDER = 61,")
89
90 cpp_quote(" PID_HDR_INREPLYTO = 77,")
91 cpp_quote("} MIMEPROPID;")
92
93 cpp_quote("#define TYPEDID_MASK ((ULONG)0xffff)")
94 cpp_quote("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))")
95
96 cpp_quote("#define OID_HIDE_TNEF_ATTACHMENTS (0x000e0000 | VT_BOOL)")
97 cpp_quote("#define OID_SECURITY_TYPE (0x00180000 | VT_UI4)")
98 cpp_quote("#define OID_SECURITY_HWND_OWNER (0x00320000 | VT_UI4)")
99 cpp_quote("#define OID_HEADER_RELOAD_TYPE (0x00370000 | VT_UI4)")
100 cpp_quote("#define OID_SHOW_MACBINARY (0x00390000 | VT_BOOL)")
101
102
103 [
104 uuid(e4b28371-83b0-11d0-8259-00c04fd85ab4),
105 version(1.0)
106 ]
107 library MIMEOLE
108 {
109 importlib("stdole2.tlb");
110
111 DECLARE_HANDLE(HCHARSET);
112 DECLARE_HANDLE(HBODY);
113 DECLARE_HANDLE(HHEADERROW);
114
115 typedef HCHARSET *LPHCHARSET;
116 typedef HBODY *LPHBODY;
117 typedef HHEADERROW *LPHHEADERROW;
118 typedef DWORD TYPEDID;
119 typedef const PROPVARIANT *LPCPROPVARIANT;
120 typedef const BLOB *LPCBLOB;
121
122 typedef enum tagRELOADTYPE
123 {
124 RELOAD_HEADER_NONE,
125 RELOAD_HEADER_RESET,
126 RELOAD_HEADER_APPEND,
127 RELOAD_HEADER_REPLACE,
128 } RELOADTYPE;
129
130 typedef enum tagMIMESAVETYPE
131 {
132 SAVE_RFC822,
133 SAVE_RFC1521,
134 } MIMESAVETYPE;
135
136 typedef enum tagCSETAPPLYTYPE
137 {
138 CSET_APPLY_UNTAGGED,
139 CSET_APPLY_ALL,
140 CSET_APPLY_TAG_ALL,
141 } CSETAPPLYTYPE;
142
143 typedef enum tagENCODINGTYPE
144 {
145 IET_BINARY,
146 IET_BASE64,
147 IET_UUENCODE,
148 IET_QP,
149 IET_7BIT,
150 IET_8BIT,
151 IET_INETCSET,
152 IET_UNICODE,
153 IET_RFC1522,
154 IET_ENCODED,
155 IET_CURRENT,
156 IET_UNKNOWN,
157 IET_BINHEX40,
158 IET_LAST
159 } ENCODINGTYPE;
160
161 const SHORT IET_DECODED = IET_BINARY;
162
163 const SHORT CCHMAX_HEADER_LINE = 1000;
164
165 [
166 uuid(c5588349-7f86-11d0-8252-00c04fd85ab4),
167 object
168 ]
169 interface IMimeInternational : IUnknown
170 {
171 typedef [unique] IMimeInternational *LPMIMEINTERNATIONAL;
172 typedef DWORD CODEPAGEID;
173
174 const CODEPAGEID CP_USASCII = 1252;
175 const CODEPAGEID CP_UNICODE = 1200;
176 const CODEPAGEID CP_JAUTODETECT = 50932;
177 const CODEPAGEID CP_KAUTODETECT = 50949;
178 const CODEPAGEID CP_ISO2022JPESC = 50221;
179 const CODEPAGEID CP_ISO2022JPSIO = 50222;
180
181 const SHORT CCHMAX_CSET_NAME = 128;
182 const SHORT CCHMAX_LANG_NAME = 128;
183 const SHORT CCHMAX_FACE_NAME = 128;
184
185 typedef struct tagINETCSETINFO
186 {
187 CHAR szName[CCHMAX_CSET_NAME];
188 HCHARSET hCharset;
189 CODEPAGEID cpiWindows;
190 CODEPAGEID cpiInternet;
191 DWORD dwReserved1;
192 } INETCSETINFO, *LPINETCSETINFO;
193
194 typedef enum tagINETLANGMASK
195 {
196 ILM_FAMILY = 0x01,
197 ILM_NAME = 0x02,
198 ILM_BODYCSET = 0x04,
199 ILM_HEADERCSET = 0x08,
200 ILM_WEBCSET = 0x10,
201 ILM_FIXEDFONT = 0x20,
202 ILM_VARIABLEFONT = 0x40,
203 } INETLANGMASK;
204
205 typedef struct tagCODEPAGEINFO
206 {
207 DWORD dwMask;
208 CODEPAGEID cpiCodePage;
209 BOOL fIsValidCodePage;
210 ULONG ulMaxCharSize;
211 BOOL fInternetCP;
212 CODEPAGEID cpiFamily;
213 CHAR szName[CCHMAX_LANG_NAME];
214 CHAR szBodyCset[CCHMAX_CSET_NAME];
215 CHAR szHeaderCset[CCHMAX_CSET_NAME];
216 CHAR szWebCset[CCHMAX_CSET_NAME];
217 CHAR szFixedFont[CCHMAX_FACE_NAME];
218 CHAR szVariableFont[CCHMAX_FACE_NAME];
219 ENCODINGTYPE ietNewsDefault;
220 ENCODINGTYPE ietMailDefault;
221 DWORD dwReserved1;
222 } CODEPAGEINFO, *LPCODEPAGEINFO;
223
224 typedef struct tagRFC1522INFO
225 {
226 BOOL fRfc1522Allowed;
227 BOOL fRfc1522Used;
228 BOOL fAllow8bit;
229 HCHARSET hRfc1522Cset;
230 } RFC1522INFO, *LPRFC1522INFO;
231
232 typedef enum tagCHARSETTYPE
233 {
234 CHARSET_BODY,
235 CHARSET_HEADER,
236 CHARSET_WEB,
237 } CHARSETTYPE;
238
239
240 HRESULT SetDefaultCharset(
241 [in] HCHARSET hCharset);
242 HRESULT GetDefaultCharset(
243 [out] LPHCHARSET phCharset);
244 HRESULT GetCodePageCharset(
245 [in] CODEPAGEID cpiCodePage,
246 [in] CHARSETTYPE ctCsetType,
247 [out] LPHCHARSET phCharset);
248 HRESULT FindCharset(
249 [in] LPCSTR pszCharset,
250 [out] LPHCHARSET phCharset);
251 HRESULT GetCharsetInfo(
252 [in] HCHARSET hCharset,
253 [in, out] LPINETCSETINFO pCsetInfo);
254 HRESULT GetCodePageInfo(
255 [in] CODEPAGEID cpiCodePage,
256 [in, out] LPCODEPAGEINFO pCodePageInfo);
257 HRESULT CanConvertCodePages(
258 [in] CODEPAGEID cpiSource,
259 [in] CODEPAGEID cpiDest);
260 HRESULT DecodeHeader(
261 [in] HCHARSET hCharset,
262 [in] LPCSTR pszData,
263 [in, out] LPPROPVARIANT pDecoded,
264 [in, out] LPRFC1522INFO pRfc1522Info);
265 HRESULT EncodeHeader(
266 [in] HCHARSET hCharset,
267 [in] LPPROPVARIANT pData,
268 [out] LPSTR *ppszEncoded,
269 [in, out] LPRFC1522INFO pRfc1522Info);
270 HRESULT ConvertBuffer(
271 [in] CODEPAGEID cpiSource,
272 [in] CODEPAGEID cpiDest,
273 [in] LPBLOB pIn,
274 [in, out] LPBLOB pOut,
275 [out] ULONG *pcbRead);
276 HRESULT ConvertString(
277 [in] CODEPAGEID cpiSource,
278 [in] CODEPAGEID cpiDest,
279 [in] LPPROPVARIANT pIn,
280 [in, out] LPPROPVARIANT pOut);
281 HRESULT MLANG_ConvertInetReset(void);
282 HRESULT MLANG_ConvertInetString(
283 [in] CODEPAGEID cpiSource,
284 [in] CODEPAGEID cpiDest,
285 [in] LPCSTR pSource,
286 [in] int *pnSizeOfSource,
287 [in,out,unique] LPSTR pDestination,
288 [in] int *pnDstSize);
289 HRESULT Rfc1522Decode(
290 [in] LPCSTR pszValue,
291 [in,ref] LPSTR pszCharset,
292 [in] ULONG cchmax,
293 [out] LPSTR *ppszDecoded);
294 HRESULT Rfc1522Encode(
295 [in] LPCSTR pszValue,
296 [in] HCHARSET hCharset,
297 [out] LPSTR *ppszEncoded);
298 }
299
300 [
301 uuid(c5588353-7f86-11d0-8252-00c04fd85ab4),
302 object
303 ]
304 interface IMimeSecurity : IUnknown
305 {
306 typedef [unique] IMimeSecurity *LPMIMESECURITY;
307
308 cpp_quote("#ifdef __WINE_WINCRYPT_H")
309 cpp_quote("typedef PCCERT_CONTEXT PCX509CERT;")
310 cpp_quote("#else")
311 typedef const void *PCX509CERT;
312 typedef void *HCERTSTORE;
313 cpp_quote("#endif")
314
315 typedef BLOB THUMBBLOB;
316 typedef void *HCAPICERTSTORE;
317
318 cpp_quote("#define MST_NONE 0x00000000")
319 cpp_quote("#define MST_THIS_SIGN 0x00000001")
320 cpp_quote("#define MST_THIS_ENCRYPT 0x00000002")
321 cpp_quote("#define MST_BLOB_FLAG 0x00000004")
322 cpp_quote("#define MST_THIS_BLOBSIGN (MST_BLOB_FLAG | MST_THIS_SIGN)")
323 cpp_quote("#define MST_CHILD_SIGN 0x00000100")
324 cpp_quote("#define MST_CHILD_ENCRYPT 0x00000200")
325 cpp_quote("#define MST_SUBMSG_SIGN 0x00001000")
326 cpp_quote("#define MST_SUBMSG_ENCRYPT 0x00002000")
327 cpp_quote("#define MST_RECEIPT_REQUEST 0x00010000")
328 cpp_quote("#define MST_CLASS_SMIME_V1 0x00000000")
329 cpp_quote("#define MST_CLASS_PGP 0x01000000")
330
331 typedef enum tagCERTSTATE
332 {
333 CERTIFICATE_OK,
334 CERTIFICATE_NOT_PRESENT,
335 CERTIFICATE_EXPIRED,
336 CERTIFICATE_CHAIN_TOO_LONG,
337 CERTIFICATE_MISSING_ISSUER,
338 CERTIFICATE_CRL_LISTED,
339 CERTIFICATE_NOT_TRUSTED,
340 CERTIFICATE_INVALID,
341 CERTIFICATE_ERROR,
342 CERTIFICATE_NOPRINT,
343 CERTIFICATE_UNKNOWN
344 } CERTSTATE;
345
346 typedef enum tagCERTNAMETYPE
347 {
348 SIMPLE,
349 OID,
350 X500,
351 } CERTNAMETYPE;
352
353 typedef enum tagCERTDATAID
354 {
355 CDID_EMAIL,
356 CDID_MAX
357 } CERTDATAID;
358
359 typedef struct tagX509CERTRESULT
360 {
361 DWORD cEntries;
362 CERTSTATE *rgcs;
363 PCX509CERT *rgpCert;
364 } X509CERTRESULT, *PX509CERTRESULT;
365 typedef const X509CERTRESULT *PCX509CERTRESULT;
366
367 HRESULT InitNew(void);
368
369 HRESULT CheckInit(void);
370
371 HRESULT EncodeMessage(
372 [in] IMimeMessageTree */*const*/ pTree,
373 [in] DWORD dwFlags);
374
375 HRESULT EncodeBody(
376 [in] IMimeMessageTree */*const*/ pTree,
377 [in] HBODY hEncodeRoot,
378 [in] DWORD dwFlags);
379
380 HRESULT DecodeMessage(
381 [in] IMimeMessageTree */*const*/ pTree,
382 [in] DWORD dwFlags);
383
384 HRESULT DecodeBody(
385 [in] IMimeMessageTree */*const*/ pTree,
386 [in] HBODY hDecodeRoot,
387 [in] DWORD dwFlags);
388
389 HRESULT EnumCertificates(
390 [in] HCAPICERTSTORE hc,
391 [in] DWORD dwUsage,
392 [in] PCX509CERT pPrev,
393 [out] PCX509CERT *ppCert);
394
395 HRESULT GetCertificateName(
396 [in] const PCX509CERT pX509Cert,
397 [in] const CERTNAMETYPE cn,
398 [out] LPSTR *ppszName);
399
400 HRESULT GetMessageType(
401 [in] const HWND hwndParent,
402 [in] IMimeBody */*const*/ pBody,
403 [out] DWORD */*const*/ pdwSecType);
404
405 HRESULT GetCertData(
406 [in] const PCX509CERT pX509Cert,
407 [in] const CERTDATAID dataid,
408 [out, ref] LPPROPVARIANT pValue);
409 }
410
411 [
412 uuid(fd853cd1-7f86-11d0-8252-00c04fd85ab4),
413 object
414 ]
415 interface IMimeHeaderTable : IPersistStream
416 {
417 /* FIXME: fill this in */
418 }
419
420 [
421 uuid(fd853cec-7f86-11d0-8252-00c04fd85ab4),
422 object
423 ]
424 interface IMimePropertySchema : IUnknown
425 {
426 typedef enum tagMIMEPROPFLAGS
427 {
428 MPF_INETCSET = 0x01,
429 MPF_RFC1522 = 0x02,
430 MPF_ADDRESS = 0x04,
431 MPF_HASPARAMS = 0x08,
432 MPF_MIME = 0x10,
433 MPF_READONLY = 0x20
434 } MIMEPROPFLAGS;
435
436 /* FIXME: fill this in */
437 }
438
439 [
440 uuid(fd853cd3-7f86-11d0-8252-00c04fd85ab4),
441 object
442 ]
443 interface IMimePropertySet : IPersistStreamInit
444 {
445 typedef [unique] IMimePropertySet *LPMIMEPROPERTYSET;
446
447 cpp_quote("#define PDF_ENCODED 0x00000001")
448 cpp_quote("#define PDF_NAMEINDATA 0x00000002")
449 cpp_quote("#define PDF_HEADERFORMAT (0x00000004 | PDF_ENCODED)")
450 cpp_quote("#define PDF_NOCOMMENTS 0x00000008")
451 cpp_quote("#define PDF_SAVENOENCODE 0x00000010")
452 cpp_quote("#define PDF_VECTOR 0x00000020")
453
454 typedef struct tagMIMEPARAMINFO
455 {
456 LPSTR pszName;
457 LPSTR pszData;
458 } MIMEPARAMINFO, *LPMIMEPARAMINFO;
459
460 typedef enum tagPROPINFOMASK
461 {
462 PIM_CHARSET = 0x01,
463 PIM_ENCODINGTYPE = 0x02,
464 PIM_ROWNUMBER = 0x04,
465 PIM_FLAGS = 0x08,
466 PIM_PROPID = 0x10,
467 PIM_VALUES = 0x20,
468 PIM_VTDEFAULT = 0x40,
469 PIM_VTCURRENT = 0x80
470 } PROPINFOMASK;
471
472 typedef struct tagMIMEPROPINFO
473 {
474 DWORD dwMask;
475 HCHARSET hCharset;
476 ENCODINGTYPE ietEncoding;
477 DWORD dwRowNumber;
478 DWORD dwFlags;
479 DWORD dwPropId;
480 DWORD cValues;
481 VARTYPE vtDefault;
482 VARTYPE vtCurrent;
483 } MIMEPROPINFO, *LPMIMEPROPINFO;
484 typedef const MIMEPROPINFO *LPCMIMEPROPINFO;
485
486 HRESULT GetPropInfo(
487 [in] LPCSTR pszName,
488 [in,out] LPMIMEPROPINFO pInfo);
489
490 HRESULT SetPropInfo(
491 [in] LPCSTR pszName,
492 [in] LPCMIMEPROPINFO pInfo);
493
494 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
495 cpp_quote("#undef GetProp")
496 cpp_quote("#undef SetProp")
497 cpp_quote("#undef EnumProps")
498 cpp_quote("#endif")
499 HRESULT GetProp(
500 [in] LPCSTR pszName,
501 [in] DWORD dwFlags,
502 [in,out] LPPROPVARIANT pValue);
503
504 HRESULT SetProp(
505 [in] LPCSTR pszName,
506 [in] DWORD dwFlags,
507 [in] LPCPROPVARIANT pValue);
508
509 HRESULT AppendProp(
510 [in] LPCSTR pszName,
511 [in] DWORD dwFlags,
512 [in] LPPROPVARIANT pValue);
513
514 HRESULT DeleteProp(
515 [in] LPCSTR pszName);
516
517 HRESULT CopyProps(
518 [in] ULONG cNames,
519 [in,unique] LPCSTR *prgszName,
520 [in] IMimePropertySet *pPropertySet);
521
522 HRESULT MoveProps(
523 [in] ULONG cNames,
524 [in] LPCSTR *prgszName,
525 [in] IMimePropertySet *pPropertySet);
526
527 HRESULT DeleteExcept(
528 [in] ULONG cNames,
529 [in] LPCSTR *prgszName);
530
531 HRESULT QueryProp(
532 [in] LPCSTR pszName,
533 [in] LPCSTR pszCriteria,
534 [in] boolean fSubString,
535 [in] boolean fCaseSensitive);
536
537 HRESULT GetCharset(
538 [out] LPHCHARSET phCharset);
539
540 HRESULT SetCharset(
541 [in] HCHARSET hCharset,
542 [in] CSETAPPLYTYPE applytype);
543
544 HRESULT GetParameters(
545 [in] LPCSTR pszName,
546 [out] ULONG *pcParams,
547 [out] LPMIMEPARAMINFO *pprgParam);
548
549 HRESULT IsContentType(
550 [in] LPCSTR pszPriType,
551 [in,unique] LPCSTR pszSubType);
552
553 HRESULT BindToObject(
554 [in] REFIID riid,
555 [out,iid_is(riid)] void **ppvObject);
556
557 HRESULT Clone(
558 [out] IMimePropertySet **ppPropertySet);
559
560 HRESULT SetOption(
561 [in] const TYPEDID oid,
562 [in] LPCPROPVARIANT pValue);
563
564 HRESULT GetOption(
565 [in] const TYPEDID oid,
566 [in,out] LPPROPVARIANT pValue);
567
568 cpp_quote("#define EPF_NONAME 0x00000001")
569
570 HRESULT EnumProps(
571 [in] DWORD dwFlags,
572 [out] IMimeEnumProperties **ppEnum);
573
574 }
575
576 [
577 uuid(c558834a-7f86-11d0-8252-00c04fd85ab4),
578 object
579 ]
580 interface IMimeAddressTable : IUnknown
581 {
582 typedef [unique] IMimeAddressTable *LPMIMEADDRESSTABLE;
583
584 DECLARE_HANDLE(HADDRESS);
585 typedef HADDRESS *LPHADDRESS;
586 typedef DWORD IADDRESSTYPE;
587
588 typedef enum tagADDRESSFORMAT
589 {
590 AFT_DISPLAY_FRIENDLY,
591 AFT_DISPLAY_EMAIL,
592 AFT_DISPLAY_BOTH,
593 AFT_RFC822_DECODED,
594 AFT_RFC822_ENCODED,
595 AFT_RFC822_TRANSMIT,
596 } ADDRESSFORMAT;
597
598 typedef struct tagADDRESSPROPS
599 {
600 DWORD dwProps;
601 HADDRESS hAddress;
602 ENCODINGTYPE ietFriendly;
603 HCHARSET hCharset;
604 DWORD dwAdrType;
605 LPSTR pszFriendly;
606 LPWSTR pwszReserved;
607 LPSTR pszEmail;
608 CERTSTATE certstate;
609 THUMBBLOB tbSigning;
610 THUMBBLOB tbEncryption;
611 DWORD dwCookie;
612 DWORD dwReserved1;
613 DWORD dwReserved2;
614 } ADRESSPROPS, *LPADDRESSPROPS;
615
616 typedef struct tagADDRESSLIST
617 {
618 ULONG cAdrs;
619 LPADDRESSPROPS prgAdr;
620 } ADDRESSLIST, *LPADDRESSLIST;
621
622 /* FIXME: fill this in */
623 }
624
625 [
626 uuid(ee519f11-851a-11d0-8252-00c04fd85ab4),
627 object
628 ]
629 interface IMimeWebDocument : IUnknown
630 {
631 /* FIXME: fill this in */
632 }
633
634 [
635 uuid(c558834c-7f86-11d0-8252-00c04fd85ab4),
636 object
637 ]
638 interface IMimeBody : IMimePropertySet
639 {
640 typedef [unique] IMimeBody *LPMIMEBODY;
641
642 typedef enum tagIMSGBODYTYPE
643 {
644 IBT_SECURE,
645 IBT_ATTACHMENT,
646 IBT_EMPTY,
647 IBT_CSETTAGGED,
648 IBT_AUTOATTACH,
649 } IMSGBODYTYPE;
650
651 typedef struct tagBODYOFFSETS
652 {
653 DWORD cbBoundaryStart;
654 DWORD cbHeaderStart;
655 DWORD cbBodyStart;
656 DWORD cbBodyEnd;
657 } BODYOFFSETS, *LPBODYOFFSETS;
658
659 typedef struct tagTRANSMITINFO
660 {
661 ENCODINGTYPE ietCurrent;
662 ENCODINGTYPE ietXmitMime;
663 ENCODINGTYPE ietXmit822;
664 ULONG cbLongestLine;
665 ULONG cExtended;
666 ULONG ulPercentExt;
667 ULONG cbSize;
668 ULONG cLines;
669 } TRANSMITINFO, *LPTRANSMITINFO;
670
671 HRESULT IsType(
672 [in] IMSGBODYTYPE bodytype);
673
674 HRESULT SetDisplayName(
675 [in] LPCSTR pszDisplay);
676
677 HRESULT GetDisplayName(
678 [out] LPSTR *ppszDisplay);
679
680 HRESULT GetOffsets(
681 [out] LPBODYOFFSETS pOffsets);
682
683 HRESULT GetCurrentEncoding(
684 [out] ENCODINGTYPE *pietEncoding);
685
686 HRESULT SetCurrentEncoding(
687 [in] ENCODINGTYPE ietEncoding);
688
689 HRESULT GetEstimatedSize(
690 [in] ENCODINGTYPE ietEncoding,
691 [out] ULONG *pcbSize);
692
693 HRESULT GetDataHere(
694 [in] ENCODINGTYPE ietEncoding,
695 [in] IStream *pStream);
696
697 HRESULT GetData(
698 [in] ENCODINGTYPE ietEncoding,
699 [out] IStream **ppStream);
700
701 HRESULT SetData(
702 [in] ENCODINGTYPE ietEncoding,
703 [in,unique] LPCSTR pszPriType,
704 [in,unique] LPCSTR pszSubType,
705 [in] REFIID riid,
706 [in,iid_is(riid)] LPVOID pvObject);
707
708 HRESULT EmptyData(void);
709
710 HRESULT CopyTo(
711 [in] IMimeBody *pBody);
712
713 HRESULT GetTransmitInfo(
714 [in,out] LPTRANSMITINFO pTransmitInfo);
715
716 HRESULT SaveToFile(
717 [in] ENCODINGTYPE ietEncoding,
718 [in] LPCSTR pszFilePath);
719
720 HRESULT GetHandle(
721 [out] LPHBODY phBody);
722
723 }
724
725 [
726 uuid(fd853cd4-7f86-11d0-8252-00c04fd85ab4),
727 object
728 ]
729 interface IMimeMessageTree : IPersistStreamInit
730 {
731 typedef [unique] IMimeMessageTree *LPMIMEMESSAGETREE;
732
733 const HBODY HBODY_ROOT = (HBODY)-1;
734
735 typedef enum tagBODYLOCATION
736 {
737 IBL_ROOT,
738 IBL_PARENT,
739 IBL_FIRST,
740 IBL_LAST,
741 IBL_NEXT,
742 IBL_PREVIOUS,
743 } BODYLOCATION;
744
745 typedef struct tagFINDBODY
746 {
747 LPSTR pszPriType;
748 LPSTR pszSubType;
749 DWORD dwReserved;
750 } FINDBODY, *LPFINDBODY;
751
752 HRESULT GetMessageSource(
753 [out] IStream **ppStream,
754 [in] DWORD dwFlags);
755
756 HRESULT GetMessageSize(
757 [out] ULONG *pcbSize,
758 [in] DWORD dwFlags);
759
760 HRESULT LoadOffsetTable(
761 [in] IStream *pStream);
762
763 HRESULT SaveOffsetTable(
764 [in] IStream *pStream,
765 [in] DWORD dwFlags);
766
767 HRESULT GetFlags(
768 [out] DWORD *pdwFlags);
769
770 HRESULT Commit(
771 [in] DWORD dwFlags);
772
773 HRESULT HandsOffStorage();
774
775 HRESULT BindToObject(
776 [in] const HBODY hBody,
777 [in] REFIID riid,
778 [out, iid_is(riid)] void **ppvObject);
779
780 HRESULT SaveBody(
781 [in] HBODY hBody,
782 [in] DWORD dwFlags,
783 [in] IStream *pStream);
784
785 HRESULT InsertBody(
786 [in] BODYLOCATION location,
787 [in] HBODY hPivot,
788 [out] LPHBODY phBody);
789
790 HRESULT GetBody(
791 [in] BODYLOCATION location,
792 [in] HBODY hPivot,
793 [out] LPHBODY phBody);
794
795 HRESULT DeleteBody(
796 [in] HBODY hBody,
797 [in] DWORD dwFlags);
798
799 HRESULT MoveBody(
800 [in] HBODY hBody,
801 [in] BODYLOCATION location);
802
803 HRESULT CountBodies(
804 [in] HBODY hParent,
805 [in] boolean fRecurse,
806 [out] ULONG *pcBodies);
807
808 HRESULT FindFirst(
809 [in, out] LPFINDBODY pFindBody,
810 [out] LPHBODY phBody);
811
812 HRESULT FindNext(
813 [in, out] LPFINDBODY pFindBody,
814 [out] LPHBODY phBody);
815
816 HRESULT ResolveURL(
817 [in] HBODY hRelated,
818 [in] LPCSTR pszBase,
819 [in] LPCSTR pszURL,
820 [in] DWORD dwFlags,
821 [out] LPHBODY phBody);
822
823 HRESULT ToMultipart(
824 [in] HBODY hBody,
825 [in] LPCSTR pszSubType,
826 [out] LPHBODY phMultipart);
827
828 HRESULT GetBodyOffsets(
829 [in] HBODY hBody,
830 [in, out] LPBODYOFFSETS pOffsets);
831
832 HRESULT GetCharset(
833 [out] LPHCHARSET phCharset);
834
835 HRESULT SetCharset(
836 [in] HCHARSET hCharset,
837 [in] CSETAPPLYTYPE applytype);
838
839 HRESULT IsBodyType(
840 [in] HBODY hBody,
841 [in] IMSGBODYTYPE bodytype);
842
843 HRESULT IsContentType(
844 [in] HBODY hBody,
845 [in] LPCSTR pszPriType,
846 [in] LPCSTR pszSubType);
847
848 HRESULT QueryBodyProp(
849 [in] HBODY hBody,
850 [in] LPCSTR pszName,
851 [in] LPCSTR pszCriteria,
852 [in] boolean fSubString,
853 [in] boolean fCaseSensitive);
854
855 HRESULT GetBodyProp(
856 [in] HBODY hBody,
857 [in] LPCSTR pszName,
858 [in] DWORD dwFlags,
859 [in, out] LPPROPVARIANT pValue);
860
861 HRESULT SetBodyProp(
862 [in] HBODY hBody,
863 [in] LPCSTR pszName,
864 [in] DWORD dwFlags,
865 [in] LPCPROPVARIANT pValue);
866
867 HRESULT DeleteBodyProp(
868 [in] HBODY hBody,
869 [in] LPCSTR pszName);
870
871 HRESULT SetOption(
872 [in] const TYPEDID oid,
873 [in] LPCPROPVARIANT pValue);
874
875 HRESULT GetOption(
876 [in] const TYPEDID oid,
877 [in, out] LPPROPVARIANT pValue);
878 }
879
880 [
881 uuid(fd853cd5-7f86-11d0-8252-00c04fd85ab4),
882 object
883 ]
884 interface IMimeMessage : IMimeMessageTree
885 {
886 typedef [unique] IMimeMessage *LPMIMEMESSAGE;
887
888 typedef DWORD TEXTTYPE;
889
890 typedef enum tagIMSGFLAGS
891 {
892 IMF_ATTACHMENTS = 0x00000001,
893 IMF_MULTIPART = 0x00000002,
894 IMF_SUBMULTIPART = 0x00000004,
895 IMF_MIME = 0x00000008,
896 IMF_HTML = 0x00000010,
897 IMF_PLAIN = 0x00000020,
898 IMF_PARTIAL = 0x00000040,
899 IMF_SIGNED = 0x00000080,
900 IMF_ENCRYPTED = 0x00000100,
901 IMF_TNEF = 0x00000200,
902 IMF_MHTML = 0x00000400,
903 IMF_SECURE = 0x00000800,
904 IMF_TEXT = 0x00001000,
905 IMF_CSETTAGGED = 0x00002000,
906 IMF_NEWS = 0x00004000,
907 IMF_VOICEMAIL = 0x00008000,
908 IMF_HASVCARD = 0x00010000,
909 IMF_RFC1154 = 0x00020000,
910 } IMSGFLAGS;
911
912 typedef enum tagIMSGPRIORITY
913 {
914 IMSG_PRI_LOW = 5,
915 IMSG_PRI_NORMAL = 3,
916 IMSG_PRI_HIGH = 1,
917 } IMSGPRIORITY;
918
919 cpp_quote("#define WPF_HTML 0x00000001")
920 cpp_quote("#define WPF_AUTOINLINE 0x00000002")
921 cpp_quote("#define WPF_SLIDESHOW 0x00000004")
922 cpp_quote("#define WPF_ATTACHLINKS 0x00000008")
923 cpp_quote("#define WPF_IMAGESONLY 0x00000010")
924 cpp_quote("#define WPF_NOMETACHARSET 0x00000020")
925
926 typedef struct tagWEPAGEOPTIONS
927 {
928 DWORD cbSize;
929 DWORD dwFlags;
930 DWORD dwDelay;
931 WCHAR wchQuote;
932 } WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS;
933
934 cpp_quote("#define TXT_PLAIN 1")
935 cpp_quote("#define TXT_HTML 2")
936
937 HRESULT CreateWebPage(
938 [in] IStream *pRootStm,
939 [in] LPWEBPAGEOPTIONS pOptions,
940 [in] IMimeMessageCallback *pCallback,
941 [out] IMoniker **ppMoniker);
942
943 HRESULT GetProp(
944 [in] LPCSTR pszName,
945 [in] DWORD dwFlags,
946 [in,out] LPPROPVARIANT pValue);
947
948 HRESULT SetProp(
949 [in] LPCSTR pszName,
950 [in] DWORD dwFlags,
951 [in] LPCPROPVARIANT pValue);
952
953 HRESULT DeleteProp(
954 [in] LPCSTR pszName);
955
956 HRESULT QueryProp(
957 [in] LPCSTR pszName,
958 [in] LPCSTR pszCriteria,
959 [in] boolean fSubString,
960 [in] boolean fCaseSensitive);
961
962 HRESULT GetTextBody(
963 [in] DWORD dwTxtType,
964 [in] ENCODINGTYPE ietEncoding,
965 [out] IStream **pStream,
966 [out] LPHBODY phBody);
967
968 HRESULT SetTextBody(
969 [in] DWORD dwTxtType,
970 [in] ENCODINGTYPE ietEncoding,
971 [in] HBODY hAlternative,
972 [in] IStream *pStream,
973 [out] LPHBODY phBody);
974
975 HRESULT AttachObject(
976 [in] REFIID riid,
977 [in, iid_is(riid)] void *pvObject,
978 [out] LPHBODY phBody);
979
980 HRESULT AttachFile(
981 [in] LPCSTR pszFilePath,
982 [in] IStream *pstmFile,
983 [out] LPHBODY phBody);
984
985 HRESULT AttachURL(
986 [in] LPCSTR pszBase,
987 [in] LPCSTR pszURL,
988 [in] DWORD dwFlags,
989 [in] IStream *pstmURL,
990 [out] LPSTR *ppszCIDURL,
991 [out] LPHBODY phBody);
992
993 HRESULT GetAttachments(
994 [out] ULONG *pcAttach,
995 [out] LPHBODY *pprghAttach);
996
997 HRESULT GetAddressTable(
998 [out] IMimeAddressTable **ppTable);
999
1000 HRESULT GetSender(
1001 [in, out] LPADDRESSPROPS pAddress);
1002
1003 HRESULT GetAddressTypes(
1004 [in] DWORD dwAdrTypes,
1005 [in] DWORD dwProps,
1006 [in, out] LPADDRESSLIST pList);
1007
1008 HRESULT GetAddressFormat(
1009 [in] DWORD dwAdrTypes,
1010 [in] ADDRESSFORMAT format,
1011 [out] LPSTR *ppszFormat);
1012
1013 HRESULT EnumAddressTypes(
1014 [in] DWORD dwAdrTypes,
1015 [in] DWORD dwProps,
1016 [out] IMimeEnumAddressTypes **ppEnum);
1017
1018 HRESULT SplitMessage(
1019 [in] ULONG cbMaxPart,
1020 [out] IMimeMessageParts **ppParts);
1021
1022 HRESULT GetRootMoniker(
1023 [out] IMoniker **ppMoniker);
1024 }
1025
1026 [
1027 uuid(761aa741-7bda-11d1-8aa9-00c04fb951f3),
1028 object
1029 ]
1030 interface IMimeMessageCallback : IUnknown
1031 {
1032 HRESULT OnWebPageSplitter(
1033 [in] DWORD cInlined,
1034 [in] IStream *ppStream);
1035 }
1036
1037 [
1038 uuid(de4ad8da-555f-11d1-8dd0-00c04fb951f9),
1039 object
1040 ]
1041 interface IPersistMime : IPersist
1042 {
1043 /* FIXME: fill this in */
1044 }
1045
1046 [
1047 uuid(c558834f-7f86-11d0-8252-00c04fd85ab4),
1048 object
1049 ]
1050 interface IMimeMessageParts : IUnknown
1051 {
1052 /* FIXME: fill this in */
1053 }
1054
1055 [
1056 uuid(c558834d-7f86-11d0-8252-00c04fd85ab4),
1057 object
1058 ]
1059 interface IMimeEnumHeaderRows : IUnknown
1060 {
1061 typedef struct tagENUMHEADERROW
1062 {
1063 HHEADERROW hRow;
1064 LPSTR pszHeader;
1065 LPSTR pszData;
1066 ULONG cchData;
1067 DWORD_PTR dwReserved;
1068 } ENUMHEADERROW, *LPENUMHEADERROW;
1069
1070 /* FIXME: fill this in */
1071 }
1072
1073 [
1074 uuid(fd853cee-7f86-11d0-8252-00c04fd85ab4),
1075 object
1076 ]
1077 interface IMimeEnumProperties : IUnknown
1078 {
1079 typedef [unique] IMimeEnumProperties *LPMIMEENUMPROPERTIES;
1080
1081 typedef struct tagENUMPROPERTY
1082 {
1083 LPSTR pszName;
1084 HHEADERROW hRow;
1085 DWORD dwPropId;
1086 } ENUMPROPERTY, *LPENUMPROPERTY;
1087
1088 HRESULT Next(
1089 [in] ULONG cFetch,
1090 [in, out] LPENUMPROPERTY prgProp,
1091 [out] ULONG *pcFetched);
1092
1093 HRESULT Skip(
1094 [in] ULONG cItems);
1095
1096 HRESULT Reset(void);
1097
1098 HRESULT Clone(
1099 [out] IMimeEnumProperties **ppEnum);
1100
1101 HRESULT Count(
1102 [out] ULONG *pcItems);
1103
1104 }
1105
1106 [
1107 uuid(c5588354-7f86-11d0-8252-00c04fd85ab4),
1108 object
1109 ]
1110 interface IMimeEnumAddressTypes : IUnknown
1111 {
1112 /* FIXME: fill this in */
1113 }
1114
1115 [
1116 uuid(c5588350-7f86-11d0-8252-00c04fd85ab4),
1117 object
1118 ]
1119 interface IMimeEnumMessageParts : IUnknown
1120 {
1121 /* FIXME: fill this in */
1122 }
1123
1124 [
1125 uuid(64577981-86d7-11d1-bdfc-00c04fa31009),
1126 object
1127 ]
1128 interface IHashTable : IUnknown
1129 {
1130 /* FIXME: fill this in */
1131 }
1132
1133 [
1134 uuid(c5588351-7f86-11d0-8252-00c04fd85ab4),
1135 object
1136 ]
1137 interface IMimeAllocator : IMalloc
1138 {
1139 typedef [unique] IMimeAllocator *LPMIMEALLOCATOR;
1140
1141 HRESULT FreeParamInfoArray(
1142 [in] ULONG cParams,
1143 [in] LPMIMEPARAMINFO prgParam,
1144 [in] boolean fFreeArray);
1145
1146 HRESULT FreeAddressList(
1147 [in,out] LPADDRESSLIST pList);
1148
1149 HRESULT FreeAddressProps(
1150 [in,out] LPADDRESSPROPS pAddress);
1151
1152 HRESULT ReleaseObjects(
1153 [in] ULONG cObjects,
1154 [in] IUnknown **prgpUnknown,
1155 [in] boolean fFreeArray);
1156
1157 HRESULT FreeEnumHeaderRowArray(
1158 [in] ULONG cRows,
1159 [in] LPENUMHEADERROW prgRow,
1160 [in] boolean fFreeArray);
1161
1162 HRESULT FreeEnumPropertyArray(
1163 [in] ULONG cProps,
1164 [in] LPENUMPROPERTY prgProp,
1165 [in] boolean fFreeArray);
1166
1167 HRESULT FreeThumbprint(
1168 [in] THUMBBLOB *pthumbprint);
1169
1170 HRESULT PropVariantClear(
1171 [in] LPPROPVARIANT pProp);
1172
1173 }
1174
1175 [
1176 uuid(feceaffd-c441-11d1-960e-00c04fbd7c09),
1177 object
1178 ]
1179 interface IMimeObjResolver : IUnknown
1180 {
1181 /* FIXME: fill this in */
1182 }
1183
1184 [
1185 uuid(b0d17fc2-7bc4-11d1-bdfa-00c04fa31009),
1186 object
1187 ]
1188 interface IFontCache : IUnknown
1189 {
1190 /* FIXME: fill this in */
1191 }
1192
1193 [
1194 uuid(b0d17fc5-7bc4-11d1-bdfa-00c04fa31009),
1195 object
1196 ]
1197 interface IFontCacheNotify : IUnknown
1198 {
1199 /* FIXME: fill this in */
1200 }
1201
1202 [
1203 uuid(70183210-7b36-11d2-8c12-00c04fa31009),
1204 object
1205 ]
1206 interface IMimeEditTag : IUnknown
1207 {
1208 /* FIXME: fill this in */
1209 }
1210
1211 [
1212 uuid(d09ee528-7b38-11d2-8c12-00c04fa31009),
1213 object
1214 ]
1215 interface IMimeEditTagCollection : IUnknown
1216 {
1217 /* FIXME: fill this in */
1218 }
1219
1220 [
1221 uuid(ba715ae0-a740-11d2-8b22-0080c76b34c6),
1222 local
1223 ]
1224 interface IMimeSecurityCallback : IUnknown
1225 {
1226 /* FIXME: fill this in */
1227
1228 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_UNKNOWN 0")
1229 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYTRANS 1")
1230 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_KEYAGREE 2")
1231 cpp_quote("#define CMS_RECIPIENT_INFO_TYPE_MAIL_LIST 3")
1232
1233 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_CERTIFICATE 0")
1234 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_KEYTRANS 1")
1235 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_PROVIDER 2")
1236 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_EPHEMERAL_KEYAGREE 3")
1237 cpp_quote("#define CMS_RECIPIENT_INFO_PUBKEY_STATIC_KEYAGREE 4")
1238
1239 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_CERTIFICATE 0")
1240 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_ISSUERSERIAL 1")
1241 cpp_quote("#define CMS_RECIPIENT_INFO_KEYID_KEY_ID 2")
1242
1243 }
1244 }
1245
1246 cpp_quote("#ifdef __cplusplus")
1247 cpp_quote(" extern \"C\" {")
1248 cpp_quote("#endif")
1249
1250 cpp_quote("")
1251 cpp_quote("HRESULT WINAPI MimeOleSetCompatMode(DWORD);")
1252 cpp_quote("HRESULT WINAPI MimeOleContentTypeFromUrl(LPCSTR,LPCSTR,LPSTR*);")
1253 cpp_quote("HRESULT WINAPI MimeOleParseMhtmlUrl(LPSTR,LPSTR*,LPSTR*);")
1254 cpp_quote("HRESULT WINAPI MimeOleObjectFromUrl(LPCSTR,BOOL,REFIID,LPVOID*,IUnknown**);")
1255 cpp_quote("HRESULT WINAPI MimeOleObjectFromMoniker(BINDF,IMoniker*,IBindCtx*,REFIID,LPVOID*,IMoniker**);")
1256 cpp_quote("HRESULT WINAPI MimeOleCombineURL(LPCSTR,ULONG,LPCSTR,ULONG,BOOL,LPSTR*);")
1257 cpp_quote("HRESULT WINAPI MimeOleGetSubjectFileName(IMimePropertySet*,ULONG*,ULONG*,LPSTR,ULONG);")
1258 cpp_quote("HRESULT WINAPI MimeOleCreateWebDocument(LPCSTR,LPCSTR,IMimeWebDocument**);")
1259 cpp_quote("HRESULT WINAPI MimeOleGetRelatedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1260 cpp_quote("HRESULT WINAPI MimeOleGetMixedSection(IMimeMessageTree*,boolean,LPHBODY,boolean*);")
1261 cpp_quote("HRESULT WINAPI MimeOleGetAlternativeSection(IMimeMessageTree*,LPHBODY,boolean*);")
1262 cpp_quote("HRESULT WINAPI MimeOleGenerateCID(LPSTR,ULONG,boolean);")
1263 cpp_quote("HRESULT WINAPI MimeOleGenerateMID(LPSTR,ULONG,boolean);")
1264 cpp_quote("HRESULT WINAPI MimeOleCreateByteStream(IStream**);")
1265 cpp_quote("HRESULT WINAPI MimeOlGetPropertySchema(IMimePropertySchema**);")
1266 cpp_quote("HRESULT WINAPI MimeOleQueryString(LPCSTR,LPCSTR,boolean,boolean);")
1267 cpp_quote("HRESULT WINAPI MimeOleGetPropA(IMimePropertySet*,LPCSTR,DWORD,LPSTR*);")
1268 cpp_quote("HRESULT WINAPI MimeOleSetPropA(IMimePropertySet*,LPCSTR,DWORD,LPCSTR);")
1269 cpp_quote("HRESULT WINAPI MimeOleGetPropW(IMimePropertySet*,LPCSTR,DWORD,LPWSTR*);")
1270 cpp_quote("HRESULT WINAPI MimeOleSetPropW(IMimePropertySet*,LPCSTR,DWORD,LPCWSTR);")
1271 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPSTR*);")
1272 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropA(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCSTR);")
1273 cpp_quote("HRESULT WINAPI MimeOleGetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPWSTR*);")
1274 cpp_quote("HRESULT WINAPI MimeOleSetBodyPropW(IMimeMessageTree*,HBODY,LPCSTR,DWORD,LPCWSTR);")
1275 cpp_quote("HRESULT WINAPI MimeOleCreateHeaderTable(IMimeHeaderTable**);")
1276 cpp_quote("HRESULT WINAPI MimeOleVariantFree(LPPROPVARIANT);")
1277 cpp_quote("HRESULT WINAPI MimeOleVariantCopy(LPPROPVARIANT,LPPROPVARIANT);")
1278 cpp_quote("HRESULT WINAPI MimeOleGetExtClassId(LPCSTR,LPCLSID);")
1279 cpp_quote("HRESULT WINAPI MimeOleEncodeHeader(HCHARSET,LPPROPVARIANT,LPSTR*,LPRFC1522INFO);")
1280 cpp_quote("HRESULT WINAPI MimeOleDecodeHeader(HCHARSET,LPCSTR,LPPROPVARIANT,LPRFC1522INFO);")
1281 cpp_quote("HRESULT WINAPI MimeOleRfc1522Decode(LPCSTR,LPSTR,ULONG,LPSTR*);")
1282 cpp_quote("HRESULT WINAPI MimeOleRfc1522Encode(LPCSTR,HCHARSET,LPSTR*);")
1283 cpp_quote("HRESULT WINAPI MimeOleGetInternat(IMimeInternational**);")
1284 cpp_quote("HRESULT WINAPI MimeOleFindCharset(LPCSTR,LPHCHARSET);")
1285 cpp_quote("HRESULT WINAPI MimeOleGetCharsetInfo(HCHARSET,LPINETCSETINFO);")
1286 cpp_quote("HRESULT WINAPI MimeOleGetCodePageInfo(HCHARSET,LPCODEPAGEINFO);")
1287 cpp_quote("HRESULT WINAPI MimeOleGetDefaultCharset(LPHCHARSET);")
1288 cpp_quote("HRESULT WINAPI MimeOleSetDefaultCharset(HCHARSET);")
1289 cpp_quote("HRESULT WINAPI MimeOleGetCodePageCharset(CODEPAGEID,CHARSETTYPE,LPHCHARSET);")
1290 cpp_quote("HRESULT WINAPI MimeOleCreateVirtualStream(IStream**);")
1291 cpp_quote("HRESULT WINAPI MimeOleOpenFileStream(LPCSTR,DWORD,DWORD,IStream**);")
1292 cpp_quote("HRESULT WINAPI MimeOleIsTnefStream(IStream*);")
1293 cpp_quote("HRESULT WINAPI MimeOleGenerateFileName(LPCSTR,LPCSTR,LPCSTR,LPSTR*);")
1294 cpp_quote("HRESULT WINAPI MimeOleGetFileExtension(LPCSTR,LPSTR,ULONG);")
1295 cpp_quote("HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity**);")
1296 cpp_quote("HRESULT WINAPI MimeOleInetDateToFileTime(LPCSTR,LPFILETIME);")
1297 cpp_quote("HRESULT WINAPI MimeOleFileTimeToInetDate(LPFILETIME,LPSTR,ULONG);")
1298 cpp_quote("HRESULT WINAPI MimeOleCreateMessageParts(IMimeMessageParts**);")
1299 cpp_quote("HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator**);")
1300 cpp_quote("HRESULT WINAPI MimeOleParseRfc822Address(DWORD,ENCODINGTYPE,LPCSTR,LPADDRESSLIST);")
1301 cpp_quote("HRESULT WINAPI MimeOleCreateMessage(IUnknown*,IMimeMessage**);")
1302 cpp_quote("HRESULT WINAPI MimeOleMergePartialHeaders(IStream*,IStream*);")
1303 cpp_quote("HRESULT WINAPI MimeOleEscapeString(CODEPAGEID,LPCSTR,LPSTR*);")
1304 cpp_quote("HRESULT WINAPI MimeOleGetExtContentType(LPCSTR,LPSTR*);")
1305 cpp_quote("HRESULT WINAPI MimeOleGetContentTypeExt(LPCSTR,LPSTR*);")
1306 cpp_quote("HRESULT WINAPI MimeOleGetFileInfo(LPSTR,LPSTR*,LPSTR*,LPSTR*,LPSTR*,LPSTR*);")
1307 cpp_quote("HRESULT WINAPI MimeOleCreateBody(IMimeBody**);")
1308 cpp_quote("HRESULT WINAPI MimeOleCreatePropertySet(IUnknown*,IMimePropertySet**);")
1309 cpp_quote("HRESULT WINAPI MimeOleCreateMessageTree(IUnknown*,IMimeMessageTree**);")
1310 cpp_quote("HRESULT WINAPI MimeOleGetCertsFromThumbprints(THUMBBLOB*,X509CERTRESULT*,const HCERTSTORE*,DWORD);")
1311 cpp_quote("HRESULT WINAPI MimeOleSplitMessage(IMimeMessage*,ULONG,IMimeMessageParts**);")
1312 cpp_quote("HRESULT WINAPI MimeOleClearDirtyTree(IMimeMessageTree*);")
1313 cpp_quote("HRESULT WINAPI MimeOleConvertEnrichedToHTML(CODEPAGEID,IStream*,IStream*);")
1314 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsToDlg(LPBYTE,DWORD,DWORD,PCX509CERT*,HWND,DWORD,DWORD,DWORD);")
1315 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFromDlg(HWND,DWORD,DWORD,DWORD,LPBYTE,DWORD*);")
1316 cpp_quote("HRESULT WINAPI MimeOleSMimeCapInit(LPBYTE,DWORD,LPVOID*);")
1317 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddSMimeCap(LPBYTE,DWORD,LPVOID);")
1318 cpp_quote("HRESULT WINAPI MimeOleSMimeCapAddCert(LPBYTE,DWORD,BOOL,LPVOID);")
1319 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetEncAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1320 cpp_quote("HRESULT WINAPI MimeOleSMimeCapGetHashAlg(LPVOID,LPBYTE,DWORD*,DWORD*);")
1321 cpp_quote("HRESULT WINAPI MimeOleSMimeCapRelease(LPVOID);")
1322 cpp_quote("HRESULT WINAPI MimeOleAlgNameFromSMimeap(LPBYTE,DWORD,LPCSTR*);")
1323 cpp_quote("HRESULT WINAPI MimeOleAlgStrengthFromSMimeCap(LPBYTE,DWORD,BOOL,DWORD*);")
1324 cpp_quote("HRESULT WINAPI MimeOleSMimeCapsFull(LPVOID,BOOL,BOOL,LPBYTE,DWORD*);")
1325 cpp_quote("HRESULT WINAPI MimeOleCreateHashTable(DWORD,BOOL,IHashTable**);")
1326 cpp_quote("HRESULT WINAPI MimeOleStripHeaders(IMimeMessage*,HBODY,LPCSTR,LPCSTR,IStream**);")
1327
1328 cpp_quote("HRESULT WINAPI MimeEditViewSource(HWND,IMimeMessage*);")
1329 cpp_quote("HRESULT WINAPI MimeEditIsSafeToRun(HWND,LPCSTR);")
1330 cpp_quote("HRESULT WINAPI MimeEditVerifyTrust(HWND,LPCSTR,LPCSTR);")
1331 cpp_quote("HRESULT WINAPI MimeEditCreateMimeDocument(IUnknown*,IMimeMessage*,DWORD,IMimeMessage**);")
1332 cpp_quote("HRESULT WINAPI MimeEditGetBackgroundImageUrl(IUnknown*,BSTR*);")
1333 cpp_quote("HRESULT WINAPI MimeEditDocumentFromStream(IStream*,REFIID,void**);")
1334
1335 cpp_quote("#ifdef __cplusplus")
1336 cpp_quote("}")
1337 cpp_quote("#endif")