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