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