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