2 * Copyright 2007 Robert Shearman for CodeWeavers
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.
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.
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
23 #define DECLARE_HANDLE
(name
) typedef void *name
25 interface IMimeMessageCallback
;
26 interface IMimeEnumAddressTypes
;
27 interface IMimeMessageParts
;
28 interface IMimeMessageTree
;
30 interface IMimeEnumProperties
;
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);")
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")
49 cpp_quote
("#define MIME_E_INVALID_CHARSET_TYPE 0x800cce31")
51 cpp_quote
("#define MIME_E_INVALID_TEXT_TYPE 0x800cce38")
53 cpp_quote
("#define MIME_E_SECURITY_NOOP 0x800cceb1")
54 cpp_quote
("#define MIME_S_SECURITY_NOOP 0x000cceb1")
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,")
86 cpp_quote
(" PID_HDR_SENDER = 61,")
88 cpp_quote
(" PID_HDR_INREPLYTO = 77,")
89 cpp_quote
("} MIMEPROPID;")
91 cpp_quote
("#define TYPEDID_MASK ((ULONG)0xffff)")
92 cpp_quote
("#define TYPEDID_TYPE(t) ((VARTYPE)((t) & TYPEDID_MASK))")
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)")
102 uuid(e4b28371
-83b0
-11d0
-8259-00c04fd85ab4
),
107 importlib
("stdole2.tlb");
109 DECLARE_HANDLE
(HCHARSET
);
110 DECLARE_HANDLE
(HBODY
);
111 DECLARE_HANDLE
(HHEADERROW
);
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
;
120 typedef enum tagRELOADTYPE
124 RELOAD_HEADER_APPEND
,
125 RELOAD_HEADER_REPLACE
,
128 typedef enum tagMIMESAVETYPE
134 typedef enum tagCSETAPPLYTYPE
141 typedef enum tagENCODINGTYPE
159 const SHORT IET_DECODED
= IET_BINARY
;
161 const SHORT CCHMAX_HEADER_LINE
= 1000;
164 uuid(c5588349
-7f86
-11d0
-8252-00c04fd85ab4
),
167 interface IMimeInternational
: IUnknown
169 typedef [unique] IMimeInternational
*LPMIMEINTERNATIONAL
;
170 typedef DWORD CODEPAGEID
;
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;
179 const SHORT CCHMAX_CSET_NAME
= 128;
180 const SHORT CCHMAX_LANG_NAME
= 128;
181 const SHORT CCHMAX_FACE_NAME
= 128;
183 typedef struct tagINETCSETINFO
185 CHAR szName
[CCHMAX_CSET_NAME
];
187 CODEPAGEID cpiWindows
;
188 CODEPAGEID cpiInternet
;
190 } INETCSETINFO
, *LPINETCSETINFO
;
192 typedef enum tagINETLANGMASK
197 ILM_HEADERCSET
= 0x08,
199 ILM_FIXEDFONT
= 0x20,
200 ILM_VARIABLEFONT
= 0x40,
203 typedef struct tagCODEPAGEINFO
206 CODEPAGEID cpiCodePage
;
207 BOOL fIsValidCodePage
;
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
;
220 } CODEPAGEINFO
, *LPCODEPAGEINFO
;
222 typedef struct tagRFC1522INFO
224 BOOL fRfc1522Allowed
;
227 HCHARSET hRfc1522Cset
;
228 } RFC1522INFO
, *LPRFC1522INFO
;
230 typedef enum tagCHARSETTYPE
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
);
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
,
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
,
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
,
281 [in] int *pnSizeOfSource
,
282 [out] LPSTR pDestination
,
283 [in] int *pnDstSize
);
284 HRESULT Rfc1522Decode
(
285 [in] LPCSTR pszValue
,
286 [in] LPCSTR pszCharset
,
288 [out] LPSTR
*ppszDecoded
);
289 HRESULT Rfc1522Encode
(
290 [in] LPCSTR pszValue
,
291 [in] HCHARSET hCharset
,
292 [out] LPSTR
*ppszEncoded
);
296 uuid(c5588353
-7f86
-11d0
-8252-00c04fd85ab4
),
299 interface IMimeSecurity
: IUnknown
301 typedef [unique] IMimeSecurity
*LPMIMESECURITY
;
303 cpp_quote
("#ifdef __WINE_WINCRYPT_H")
304 cpp_quote
("typedef PCCERT_CONTEXT PCX509CERT;")
306 typedef const void *PCX509CERT
;
307 typedef void *HCERTSTORE
;
310 typedef BLOB THUMBBLOB
;
311 typedef void *HCAPICERTSTORE
;
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")
326 typedef enum tagCERTSTATE
329 CERTIFICATE_NOT_PRESENT
,
331 CERTIFICATE_CHAIN_TOO_LONG
,
332 CERTIFICATE_MISSING_ISSUER
,
333 CERTIFICATE_CRL_LISTED
,
334 CERTIFICATE_NOT_TRUSTED
,
341 typedef enum tagCERTNAMETYPE
348 typedef enum tagCERTDATAID
354 typedef struct tagX509CERTRESULT
359 } X509CERTRESULT
, *PX509CERTRESULT
;
360 typedef const X509CERTRESULT
*PCX509CERTRESULT
;
362 HRESULT InitNew
(void);
364 HRESULT CheckInit
(void);
366 HRESULT EncodeMessage
(
367 [in] IMimeMessageTree */
*const*/ pTree
,
371 [in] IMimeMessageTree */
*const*/ pTree
,
372 [in] HBODY hEncodeRoot
,
375 HRESULT DecodeMessage
(
376 [in] IMimeMessageTree */
*const*/ pTree
,
380 [in] IMimeMessageTree */
*const*/ pTree
,
381 [in] HBODY hDecodeRoot
,
384 HRESULT EnumCertificates
(
385 [in] HCAPICERTSTORE hc
,
387 [in] PCX509CERT pPrev
,
388 [out] PCX509CERT
*ppCert
);
390 HRESULT GetCertificateName
(
391 [in] const PCX509CERT pX509Cert
,
392 [in] const CERTNAMETYPE cn
,
393 [out] LPSTR
*ppszName
);
395 HRESULT GetMessageType
(
396 [in] const HWND hwndParent
,
397 [in] IMimeBody */
*const*/ pBody
,
398 [out] DWORD */
*const*/ pdwSecType
);
401 [in] const PCX509CERT pX509Cert
,
402 [in] const CERTDATAID dataid
,
403 [out, ref] LPPROPVARIANT pValue
);
407 uuid(fd853cd1
-7f86
-11d0
-8252-00c04fd85ab4
),
410 interface IMimeHeaderTable
: IPersistStream
412 /* FIXME: fill this in */
416 uuid(fd853cec
-7f86
-11d0
-8252-00c04fd85ab4
),
419 interface IMimePropertySchema
: IUnknown
421 typedef enum tagMIMEPROPFLAGS
426 MPF_HASPARAMS
= 0x08,
431 /* FIXME: fill this in */
435 uuid(fd853cd3
-7f86
-11d0
-8252-00c04fd85ab4
),
438 interface IMimePropertySet
: IPersistStreamInit
440 typedef [unique] IMimePropertySet
*LPMIMEPROPERTYSET
;
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")
449 typedef struct tagMIMEPARAMINFO
453 } MIMEPARAMINFO
, *LPMIMEPARAMINFO
;
455 typedef enum tagPROPINFOMASK
458 PIM_ENCODINGTYPE
= 0x02,
459 PIM_ROWNUMBER
= 0x04,
463 PIM_VTDEFAULT
= 0x40,
467 typedef struct tagMIMEPROPINFO
471 ENCODINGTYPE ietEncoding
;
478 } MIMEPROPINFO
, *LPMIMEPROPINFO
;
479 typedef const MIMEPROPINFO
*LPCMIMEPROPINFO
;
483 [in,out] LPMIMEPROPINFO pInfo
);
487 [in] LPCMIMEPROPINFO pInfo
);
489 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
490 cpp_quote
("#undef GetProp")
491 cpp_quote
("#undef SetProp")
492 cpp_quote
("#undef EnumProps")
497 [in,out] LPPROPVARIANT pValue
);
502 [in] LPCPROPVARIANT pValue
);
507 [in] LPPROPVARIANT pValue
);
510 [in] LPCSTR pszName
);
514 [in,unique] LPCSTR
*prgszName
,
515 [in] IMimePropertySet
*pPropertySet
);
519 [in] LPCSTR
*prgszName
,
520 [in] IMimePropertySet
*pPropertySet
);
522 HRESULT DeleteExcept
(
524 [in] LPCSTR
*prgszName
);
528 [in] LPCSTR pszCriteria
,
529 [in] boolean fSubString
,
530 [in] boolean fCaseSensitive
);
533 [out] LPHCHARSET phCharset
);
536 [in] HCHARSET hCharset
,
537 [in] CSETAPPLYTYPE applytype
);
539 HRESULT GetParameters
(
541 [out] ULONG
*pcParams
,
542 [out] LPMIMEPARAMINFO
*pprgParam
);
544 HRESULT IsContentType
(
545 [in] LPCSTR pszPriType
,
546 [in,unique] LPCSTR pszSubType
);
548 HRESULT BindToObject
(
550 [out,iid_is(riid
)] void **ppvObject
);
553 [out] IMimePropertySet
**ppPropertySet
);
556 [in] const TYPEDID oid
,
557 [in] LPCPROPVARIANT pValue
);
560 [in] const TYPEDID oid
,
561 [in,out] LPPROPVARIANT pValue
);
563 cpp_quote
("#define EPF_NONAME 0x00000001")
567 [out] IMimeEnumProperties
**ppEnum
);
572 uuid(c558834a
-7f86
-11d0
-8252-00c04fd85ab4
),
575 interface IMimeAddressTable
: IUnknown
577 typedef [unique] IMimeAddressTable
*LPMIMEADDRESSTABLE
;
579 DECLARE_HANDLE
(HADDRESS
);
580 typedef HADDRESS
*LPHADDRESS
;
581 typedef DWORD IADDRESSTYPE
;
583 typedef enum tagADDRESSFORMAT
585 AFT_DISPLAY_FRIENDLY
,
593 typedef struct tagADDRESSPROPS
597 ENCODINGTYPE ietFriendly
;
605 THUMBBLOB tbEncryption
;
609 } ADRESSPROPS
, *LPADDRESSPROPS
;
611 typedef struct tagADDRESSLIST
614 LPADDRESSPROPS prgAdr
;
615 } ADDRESSLIST
, *LPADDRESSLIST
;
617 /* FIXME: fill this in */
621 uuid(ee519f11
-851a
-11d0
-8252-00c04fd85ab4
),
624 interface IMimeWebDocument
: IUnknown
626 /* FIXME: fill this in */
630 uuid(c558834c
-7f86
-11d0
-8252-00c04fd85ab4
),
633 interface IMimeBody
: IMimePropertySet
635 typedef [unique] IMimeBody
*LPMIMEBODY
;
637 typedef enum tagIMSGBODYTYPE
646 typedef struct tagBODYOFFSETS
648 DWORD cbBoundaryStart
;
652 } BODYOFFSETS
, *LPBODYOFFSETS
;
654 typedef struct tagTRANSMITINFO
656 ENCODINGTYPE ietCurrent
;
657 ENCODINGTYPE ietXmitMime
;
658 ENCODINGTYPE ietXmit822
;
664 } TRANSMITINFO
, *LPTRANSMITINFO
;
667 [in] IMSGBODYTYPE bodytype
);
669 HRESULT SetDisplayName
(
670 [in] LPCSTR pszDisplay
);
672 HRESULT GetDisplayName
(
673 [out] LPSTR
*ppszDisplay
);
676 [out] LPBODYOFFSETS pOffsets
);
678 HRESULT GetCurrentEncoding
(
679 [out] ENCODINGTYPE
*pietEncoding
);
681 HRESULT SetCurrentEncoding
(
682 [in] ENCODINGTYPE ietEncoding
);
684 HRESULT GetEstimatedSize
(
685 [in] ENCODINGTYPE ietEncoding
,
686 [out] ULONG
*pcbSize
);
689 [in] ENCODINGTYPE ietEncoding
,
690 [in] IStream
*pStream
);
693 [in] ENCODINGTYPE ietEncoding
,
694 [out] IStream
**ppStream
);
697 [in] ENCODINGTYPE ietEncoding
,
698 [in,unique] LPCSTR pszPriType
,
699 [in,unique] LPCSTR pszSubType
,
701 [in,iid_is(riid
)] LPVOID pvObject
);
703 HRESULT EmptyData
(void);
706 [in] IMimeBody
*pBody
);
708 HRESULT GetTransmitInfo
(
709 [in,out] LPTRANSMITINFO pTransmitInfo
);
712 [in] ENCODINGTYPE ietEncoding
,
713 [in] LPCSTR pszFilePath
);
716 [out] LPHBODY phBody
);
721 uuid(fd853cd4
-7f86
-11d0
-8252-00c04fd85ab4
),
724 interface IMimeMessageTree
: IPersistStreamInit
726 typedef [unique] IMimeMessageTree
*LPMIMEMESSAGETREE
;
728 const HBODY HBODY_ROOT
= (HBODY
)-1;
730 typedef enum tagBODYLOCATION
740 typedef struct tagFINDBODY
745 } FINDBODY
, *LPFINDBODY
;
747 HRESULT GetMessageSource
(
748 [out] IStream
**ppStream
,
751 HRESULT GetMessageSize
(
752 [out] ULONG
*pcbSize
,
755 HRESULT LoadOffsetTable
(
756 [in] IStream
*pStream
);
758 HRESULT SaveOffsetTable
(
759 [in] IStream
*pStream
,
763 [out] DWORD
*pdwFlags
);
768 HRESULT HandsOffStorage
();
770 HRESULT BindToObject
(
771 [in] const HBODY hBody
,
773 [out, iid_is(riid
)] void **ppvObject
);
778 [in] IStream
*pStream
);
781 [in] BODYLOCATION location
,
783 [out] LPHBODY phBody
);
786 [in] BODYLOCATION location
,
788 [out] LPHBODY phBody
);
796 [in] BODYLOCATION location
);
800 [in] boolean fRecurse
,
801 [out] ULONG
*pcBodies
);
804 [in, out] LPFINDBODY pFindBody
,
805 [out] LPHBODY phBody
);
808 [in, out] LPFINDBODY pFindBody
,
809 [out] LPHBODY phBody
);
816 [out] LPHBODY phBody
);
820 [in] LPCSTR pszSubType
,
821 [out] LPHBODY phMultipart
);
823 HRESULT GetBodyOffsets
(
825 [in, out] LPBODYOFFSETS pOffsets
);
828 [out] LPHCHARSET phCharset
);
831 [in] HCHARSET hCharset
,
832 [in] CSETAPPLYTYPE applytype
);
836 [in] IMSGBODYTYPE bodytype
);
838 HRESULT IsContentType
(
840 [in] LPCSTR pszPriType
,
841 [in] LPCSTR pszSubType
);
843 HRESULT QueryBodyProp
(
846 [in] LPCSTR pszCriteria
,
847 [in] boolean fSubString
,
848 [in] boolean fCaseSensitive
);
854 [in, out] LPPROPVARIANT pValue
);
860 [in] LPCPROPVARIANT pValue
);
862 HRESULT DeleteBodyProp
(
864 [in] LPCSTR pszName
);
867 [in] const TYPEDID oid
,
868 [in] LPCPROPVARIANT pValue
);
871 [in] const TYPEDID oid
,
872 [in, out] LPPROPVARIANT pValue
);
876 uuid(fd853cd5
-7f86
-11d0
-8252-00c04fd85ab4
),
879 interface IMimeMessage
: IMimeMessageTree
881 typedef [unique] IMimeMessage
*LPMIMEMESSAGE
;
883 typedef DWORD TEXTTYPE
;
885 typedef enum tagIMSGFLAGS
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,
907 typedef enum tagIMSGPRIORITY
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")
921 typedef struct tagWEPAGEOPTIONS
927 } WEBPAGEOPTIONS
, *LPWEBPAGEOPTIONS
;
929 cpp_quote
("#define TXT_PLAIN 1")
930 cpp_quote
("#define TXT_HTML 2")
932 HRESULT CreateWebPage
(
933 [in] IStream
*pRootStm
,
934 [in] LPWEBPAGEOPTIONS pOptions
,
935 [in] IMimeMessageCallback
*pCallback
,
936 [out] IMoniker
**ppMoniker
);
941 [in,out] LPPROPVARIANT pValue
);
946 [in] LPCPROPVARIANT pValue
);
949 [in] LPCSTR pszName
);
953 [in] LPCSTR pszCriteria
,
954 [in] boolean fSubString
,
955 [in] boolean fCaseSensitive
);
958 [in] DWORD dwTxtType
,
959 [in] ENCODINGTYPE ietEncoding
,
960 [out] IStream
**pStream
,
961 [out] LPHBODY phBody
);
964 [in] DWORD dwTxtType
,
965 [in] ENCODINGTYPE ietEncoding
,
966 [in] HBODY hAlternative
,
967 [in] IStream
*pStream
,
968 [out] LPHBODY phBody
);
970 HRESULT AttachObject
(
972 [in, iid_is(riid
)] void *pvObject
,
973 [out] LPHBODY phBody
);
976 [in] LPCSTR pszFilePath
,
977 [in] IStream
*pstmFile
,
978 [out] LPHBODY phBody
);
984 [in] IStream
*pstmURL
,
985 [out] LPSTR
*ppszCIDURL
,
986 [out] LPHBODY phBody
);
988 HRESULT GetAttachments
(
989 [out] ULONG
*pcAttach
,
990 [out] LPHBODY
*pprghAttach
);
992 HRESULT GetAddressTable
(
993 [out] IMimeAddressTable
**ppTable
);
996 [in, out] LPADDRESSPROPS pAddress
);
998 HRESULT GetAddressTypes
(
999 [in] DWORD dwAdrTypes
,
1001 [in, out] LPADDRESSLIST pList
);
1003 HRESULT GetAddressFormat
(
1004 [in] DWORD dwAdrTypes
,
1005 [in] ADDRESSFORMAT format
,
1006 [out] LPSTR
*ppszFormat
);
1008 HRESULT EnumAddressTypes
(
1009 [in] DWORD dwAdrTypes
,
1011 [out] IMimeEnumAddressTypes
**ppEnum
);
1013 HRESULT SplitMessage
(
1014 [in] ULONG cbMaxPart
,
1015 [out] IMimeMessageParts
**ppParts
);
1017 HRESULT GetRootMoniker
(
1018 [out] IMoniker
**ppMoniker
);
1022 uuid(761aa741
-7bda
-11d1
-8aa9
-00c04fb951f3
),
1025 interface IMimeMessageCallback
: IUnknown
1027 HRESULT OnWebPageSplitter
(
1028 [in] DWORD cInlined
,
1029 [in] IStream
*ppStream
);
1033 uuid(de4ad8da
-555f
-11d1
-8dd0
-00c04fb951f9
),
1036 interface IPersistMime
: IPersist
1038 /* FIXME: fill this in */
1042 uuid(c558834f
-7f86
-11d0
-8252-00c04fd85ab4
),
1045 interface IMimeMessageParts
: IUnknown
1047 /* FIXME: fill this in */
1051 uuid(c558834d
-7f86
-11d0
-8252-00c04fd85ab4
),
1054 interface IMimeEnumHeaderRows
: IUnknown
1056 typedef struct tagENUMHEADERROW
1062 DWORD_PTR dwReserved
;
1063 } ENUMHEADERROW
, *LPENUMHEADERROW
;
1065 /* FIXME: fill this in */
1069 uuid(fd853cee
-7f86
-11d0
-8252-00c04fd85ab4
),
1072 interface IMimeEnumProperties
: IUnknown
1074 typedef struct tagENUMPROPERTY
1079 } ENUMPROPERTY
, *LPENUMPROPERTY
;
1081 /* FIXME: fill this in */
1085 uuid(c5588354
-7f86
-11d0
-8252-00c04fd85ab4
),
1088 interface IMimeEnumAddressTypes
: IUnknown
1090 /* FIXME: fill this in */
1094 uuid(c5588350
-7f86
-11d0
-8252-00c04fd85ab4
),
1097 interface IMimeEnumMessageParts
: IUnknown
1099 /* FIXME: fill this in */
1103 uuid(64577981-86d7
-11d1
-bdfc
-00c04fa31009
),
1106 interface IHashTable
: IUnknown
1108 /* FIXME: fill this in */
1112 uuid(c5588351
-7f86
-11d0
-8252-00c04fd85ab4
),
1115 interface IMimeAllocator
: IMalloc
1117 typedef [unique] IMimeAllocator
*LPMIMEALLOCATOR
;
1119 HRESULT FreeParamInfoArray
(
1121 [in] LPMIMEPARAMINFO prgParam
,
1122 [in] boolean fFreeArray
);
1124 HRESULT FreeAddressList
(
1125 [in,out] LPADDRESSLIST pList
);
1127 HRESULT FreeAddressProps
(
1128 [in,out] LPADDRESSPROPS pAddress
);
1130 HRESULT ReleaseObjects
(
1131 [in] ULONG cObjects
,
1132 [in] IUnknown
**prgpUnknown
,
1133 [in] boolean fFreeArray
);
1135 HRESULT FreeEnumHeaderRowArray
(
1137 [in] LPENUMHEADERROW prgRow
,
1138 [in] boolean fFreeArray
);
1140 HRESULT FreeEnumPropertyArray
(
1142 [in] LPENUMPROPERTY prgProp
,
1143 [in] boolean fFreeArray
);
1145 HRESULT FreeThumbprint
(
1146 [in] THUMBBLOB
*pthumbprint
);
1148 HRESULT PropVariantClear
(
1149 [in] LPPROPVARIANT pProp
);
1154 uuid(feceaffd
-c441
-11d1
-960e-00c04fbd7c09
),
1157 interface IMimeObjResolver
: IUnknown
1159 /* FIXME: fill this in */
1163 uuid(b0d17fc2
-7bc4
-11d1
-bdfa
-00c04fa31009
),
1166 interface IFontCache
: IUnknown
1168 /* FIXME: fill this in */
1172 uuid(b0d17fc5
-7bc4
-11d1
-bdfa
-00c04fa31009
),
1175 interface IFontCacheNotify
: IUnknown
1177 /* FIXME: fill this in */
1181 uuid(70183210-7b36
-11d2
-8c12
-00c04fa31009
),
1184 interface IMimeEditTag
: IUnknown
1186 /* FIXME: fill this in */
1190 uuid(d09ee528
-7b38
-11d2
-8c12
-00c04fa31009
),
1193 interface IMimeEditTagCollection
: IUnknown
1195 /* FIXME: fill this in */
1199 uuid(ba715ae0
-a740
-11d2
-8b22
-0080c76b34c6
),
1202 interface IMimeSecurityCallback
: IUnknown
1204 /* FIXME: fill this in */
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")
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")
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")
1224 cpp_quote
("#ifdef __cplusplus")
1225 cpp_quote
(" extern \"C\" {")
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**);")
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**);")
1313 cpp_quote
("#ifdef __cplusplus")