/* * Copyright (C) 2019 Alistair Leslie-Hughes * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "unknwn.idl"; import "objidl.idl"; import "oaidl.idl"; import "msado15_backcompat.idl"; #if !defined(progid) && !defined(__WIDL__) #define threading(model) #define progid(str) #define vi_progid(str) #endif [ uuid(cd000000-8b95-11d1-82db-00c04fb1625d), version(1.0) ] library CDO { importlib("stdole2.tlb"); interface IBodyPart; typedef enum { cdoDSNDefault = 0, cdoDSNNever = 1, cdoDSNFailure = 2, cdoDSNSuccess = 4, cdoDSNDelay = 8, cdoDSNSuccessFailOrDelay = 14 } CdoDSNOptions; typedef enum { cdoRefTypeId = 0, cdoRefTypeLocation = 1 } CdoReferenceType; typedef enum { cdoSuppressNone = 0, cdoSuppressImages = 1, cdoSuppressBGSounds = 2, cdoSuppressFrames = 4, cdoSuppressObjects = 8, cdoSuppressStyleSheets = 16, cdoSuppressAll = 31 } CdoMHTMLFlags; typedef enum { cdoDefaults = 0xffffffff, cdoIIS = 1, cdoOutlookExpress = 2 } CdoConfigSource; [ odl, uuid(cd000029-8b95-11d1-82db-00c04fb1625d), dual, nonextensible, oleautomation ] interface IDataSource : IDispatch { [id(0x000000cf), propget] HRESULT SourceClass([out, retval] BSTR *source); [id(0x000000d0)] HRESULT Source([out, retval] IUnknown **source); [id(0x000000d1), propget] HRESULT IsDirty([out, retval] VARIANT_BOOL *dirty); [id(0x000000d1), propput] HRESULT IsDirty([in] VARIANT_BOOL dirty); [id(0x000000d2), propget] HRESULT SourceURL([out, retval] BSTR *url); [id(0x000000d3), propget] HRESULT ActiveConnection([out, retval] _Connection **connection); [id(0x000000fb)] HRESULT SaveToObject([in] IUnknown *source, [in] BSTR iname); [id(0x000000fc)] HRESULT OpenObject([in] IUnknown *source, [in] BSTR iname); [id(0x000000fd)] HRESULT SaveTo([in] BSTR url, [in, optional, defaultvalue(NULL)] IDispatch *connection, [in, optional] ConnectModeEnum mode, [in, optional] RecordCreateOptionsEnum create, [in, optional] RecordOpenOptionsEnum options, [in, optional] BSTR username, [in, optional] BSTR password); [id(0x000000fe)] HRESULT Open([in] BSTR url, [in, optional, defaultvalue(NULL)] IDispatch *connection, [in, optional] ConnectModeEnum mode, [in, optional, defaultvalue(-1)] RecordCreateOptionsEnum create, [in, optional] RecordOpenOptionsEnum options, [in, optional] BSTR username, [in, optional] BSTR password); [id(0x000000ff)] HRESULT Save(); [id(0x00000100)] HRESULT SaveToContainer([in] BSTR url, [in, optional, defaultvalue(NULL)] IDispatch *connection, [in, optional] ConnectModeEnum mode, [in, optional] RecordCreateOptionsEnum create, [in, optional] RecordOpenOptionsEnum options, [in, optional] BSTR username, [in, optional] BSTR password); }; [ odl, uuid(cd000023-8b95-11d1-82db-00c04fb1625d), dual, nonextensible, oleautomation ] interface IBodyParts : IDispatch { [id(0x00000001), propget] HRESULT Count([out, retval] long *count); [id(00000000), propget] HRESULT Item([in] long index, [out, retval] IBodyPart **body); [id(DISPID_NEWENUM), propget, restricted] HRESULT _NewEnum([out, retval] IUnknown **retval); [id(0x00000002)] HRESULT Delete([in] VARIANT bodypart); [id(0x00000003)] HRESULT DeleteAll(); [id(0x00000004)] HRESULT Add([in, optional, defaultvalue(-1)] long index, [out, retval] IBodyPart **bodypart); }; [ odl, uuid(cd000021-8b95-11d1-82db-00c04fb1625d), dual, nonextensible, oleautomation ] interface IBodyPart : IDispatch { [id(0x000000c8), propget] HRESULT BodyParts([out, retval] IBodyParts **bodypart); [id(0x000000c9), propget] HRESULT ContentTransferEncoding([out, retval] BSTR *encoding); [id(0x000000c9), propput] HRESULT ContentTransferEncoding([in] BSTR encoding); [id(0x000000ca), propget] HRESULT ContentMediaType([out, retval] BSTR *mediatype); [id(0x000000ca), propput] HRESULT ContentMediaType([in] BSTR mediatype); [id(0x000000cb), propget] HRESULT Fields([out, retval] Fields *fields); [id(0x000000cc), propget] HRESULT Charset([out, retval] BSTR *charset); [id(0x000000cc), propput] HRESULT Charset([in] BSTR charset); [id(0x000000cd), propget] HRESULT FileName([out, retval] BSTR *filename); [id(0x000000cf), propget] HRESULT DataSource([out, retval] IDataSource *datasource); [id(0x000000d0), propget] HRESULT ContentClass([out, retval] BSTR *content); [id(0x000000d0), propput] HRESULT ContentClass([in] BSTR content); [id(0x000000d1), propget] HRESULT ContentClassName([out, retval] BSTR *name); [id(0x000000d1), propput] HRESULT ContentClassName([in] BSTR name); [id(0x000000d2), propget] HRESULT Parent([out, retval] IBodyPart **parent); [id(0x000000fa)] HRESULT AddBodyPart([in, optional, defaultvalue(-1)] long index, [out, retval] IBodyPart **bodypart); [id(0x000000fb)] HRESULT SaveToFile([in] BSTR filename); [id(0x000000fc)] HRESULT GetEncodedContentStream([out, retval] _Stream **stream); [id(0x000000fd)] HRESULT GetDecodedContentStream([out, retval] _Stream **stream); [id(0x000000fe)] HRESULT GetStream([out, retval] _Stream **stream); [id(0x000000ff)] HRESULT GetFieldParameter([in] BSTR fieldname, [in] BSTR parameter, [out, retval] BSTR *streamalue); [id(0x000000a0)] HRESULT GetInterface([in] BSTR iface, [out, retval] IDispatch **unk); }; [ odl, uuid(cd000022-8b95-11d1-82db-00c04fb1625d), dual, nonextensible, oleautomation ] interface IConfiguration : IDispatch { [id(00000000), propget] HRESULT Fields([out, retval] Fields **fields); [id(0x00000032)] HRESULT Load([in] CdoConfigSource source, [in, optional] BSTR url); [id(0x000000a0)] HRESULT GetInterface([in] BSTR iname, [out, retval] IDispatch **unk); }; [ odl, uuid(cd000020-8b95-11d1-82db-00c04fb1625d), dual, nonextensible, oleautomation ] interface IMessage : IDispatch { [id(0x00000065), propget] HRESULT BCC([out, retval] BSTR *bcc); [id(0x00000065), propput] HRESULT BCC([in] BSTR bcc); [id(0x00000067), propget] HRESULT CC([out, retval] BSTR *cc); [id(0x00000067), propput] HRESULT CC([in] BSTR cc); [id(0x00000069), propget] HRESULT FollowUpTo([out, retval] BSTR *follow); [id(0x00000069), propput] HRESULT FollowUpTo([in] BSTR follow); [id(0x0000006a), propget] HRESULT From([out, retval] BSTR *from); [id(0x0000006a), propput] HRESULT From([in] BSTR from); [id(0x0000006b), propget] HRESULT Keywords([out, retval] BSTR* keywords); [id(0x0000006b), propput] HRESULT Keywords([in] BSTR keywords); [id(0x0000006e), propget] HRESULT MimeFormatted([out, retval] VARIANT_BOOL *formatted); [id(0x0000006e), propput] HRESULT MimeFormatted([in] VARIANT_BOOL formatted); [id(0x0000006f), propget] HRESULT Newsgroups([out, retval] BSTR *newsgroups); [id(0x0000006f), propput] HRESULT Newsgroups([in] BSTR newsgroups); [id(0x00000070), propget] HRESULT Organization([out, retval] BSTR *organization); [id(0x00000070), propput] HRESULT Organization([in] BSTR organization); [id(0x00000072), propget] HRESULT ReceivedTime([out, retval] DATE *received); [id(0x00000073), propget] HRESULT ReplyTo([out, retval] BSTR *reply); [id(0x00000073), propput] HRESULT ReplyTo([in] BSTR reply); [id(0x00000074), propget] HRESULT DSNOptions([out, retval] CdoDSNOptions *options); [id(0x00000074), propput] HRESULT DSNOptions([in] CdoDSNOptions options); [id(0x00000077), propget] HRESULT SentOn([out, retval] DATE *sent); [id(0x00000078), propget] HRESULT Subject([out, retval] BSTR *subject); [id(0x00000078), propput] HRESULT Subject([in] BSTR subject); [id(0x00000079), propget] HRESULT To([out, retval] BSTR *to); [id(0x00000079), propput] HRESULT To([in] BSTR to); [id(0x0000007b), propget] HRESULT TextBody([out, retval] BSTR *body); [id(0x0000007b), propput] HRESULT TextBody([in] BSTR body); [id(0x0000007c)] HRESULT HTMLBody([out, retval] BSTR* body); [id(0x0000007c), propput] HRESULT HTMLBody([in] BSTR body); [id(0x0000007d), propget] HRESULT Attachments([out, retval] IBodyParts **attachments); [id(0x0000007e), propget] HRESULT Sender([out, retval] BSTR *sender); [id(0x0000007e), propput] HRESULT Sender([in] BSTR sender); [id(0x0000007f), propget] HRESULT Configuration([out, retval] IConfiguration **config); [id(0x0000007f), propput] HRESULT Configuration([in] IConfiguration *config); [id(0x0000007f), propputref] HRESULT Configuration([in] IConfiguration *config); [id(0x00000080), propget] HRESULT AutoGenerateTextBody([out, retval] VARIANT_BOOL *body); [id(0x00000080), propput] HRESULT AutoGenerateTextBody([in] VARIANT_BOOL body); [id(0x00000081), propget] HRESULT EnvelopeFields([out, retval] Fields **fields); [id(0x00000082), propget] HRESULT TextBodyPart([out, retval] IBodyPart **body); [id(0x00000083), propget] HRESULT HTMLBodyPart([out, retval] IBodyPart **body); [id(0x00000084), propget] HRESULT BodyPart([out, retval] IBodyPart ** part); [id(0x00000085), propget] HRESULT DataSource([out, retval] IDataSource **datasource); [id(0x00000086), propget] HRESULT Fields([out, retval] Fields **fields); [id(0x00000087), propget] HRESULT MDNRequested([out, retval] VARIANT_BOOL* requested); [id(0x00000087), propput] HRESULT MDNRequested([in] VARIANT_BOOL requested); [id(0x00000096)] HRESULT AddRelatedBodyPart([in] BSTR url, [in] BSTR Reference, [in] CdoReferenceType ReferenceType, [in, optional] BSTR username, [in, optional] BSTR password, [out, retval] IBodyPart **body); [id(0x00000097)] HRESULT AddAttachment([in] BSTR url, [in, optional] BSTR username, [in, optional] BSTR password, [out, retval] IBodyPart **body); [id(0x00000098)] HRESULT CreateMHTMLBody([in] BSTR url, [in, optional, defaultvalue(0)] CdoMHTMLFlags flags, [in, optional] BSTR username, [in, optional] BSTR password); [id(0x00000099)] HRESULT Forward([out, retval] IMessage **msg); [id(0x0000009a)] HRESULT Post(); [id(0x0000009b)] HRESULT PostReply([out, retval] IMessage **msg); [id(0x0000009c)] HRESULT Reply([out, retval] IMessage **msg); [id(0x0000009d)] HRESULT ReplyAll([out, retval] IMessage **msg); [id(0x0000009e)] HRESULT Send(); [id(0x0000009f)] HRESULT GetStream([out, retval] _Stream **stream); [id(0x000000a0)] HRESULT GetInterface([in] BSTR name, [out, retval] IDispatch **unknown); }; [ uuid(cd000001-8b95-11d1-82db-00c04fb1625d) ] coclass Message { [default] interface IMessage; interface IDataSource; interface IBodyPart; }; }