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