import "oaidl.idl";
import "ocidl.idl";

import "msado15.idl";

midl_pragma warning (disable: 2461 )
	

interface IMessage;
interface IMessages;
interface IBodyPart;
interface IConfiguration;
interface IBodyParts;
interface IDataSource;

typedef enum CdoConfigSource
{
          cdoDefaults  = -1,
          cdoIIS  = 1,
          cdoOutlookExpress  = 2,
 } CdoConfigSource;

typedef enum CdoDSNOptions
{
          cdoDSNDefault  = 0,
          cdoDSNNever  = 1,
          cdoDSNFailure  = 2,
          cdoDSNSuccess  = 4,
          cdoDSNDelay  = 8,
          cdoDSNSuccessFailOrDelay  = 14,
 } CdoDSNOptions;

typedef enum CdoEventStatus
{
          cdoRunNextSink  = 0,
          cdoSkipRemainingSinks  = 1,
 } CdoEventStatus;

typedef enum CdoEventType
{
          cdoSMTPOnArrival  = 1,
          cdoNNTPOnPostEarly  = 2,
          cdoNNTPOnPost  = 3,
          cdoNNTPOnPostFinal  = 4,
 } CdoEventType;

typedef enum CdoMessageStat
{
          cdoStatSuccess  = 0,
          cdoStatAbortDelivery  = 2,
          cdoStatBadMail  = 3,
 } CdoMessageStat;

typedef enum CdoMHTMLFlags
{
          cdoSuppressNone  = 0,
          cdoSuppressImages  = 1,
          cdoSuppressBGSounds  = 2,
          cdoSuppressFrames  = 4,
          cdoSuppressObjects  = 8,
          cdoSuppressStyleSheets  = 16,
          cdoSuppressAll  = 31,
 } CdoMHTMLFlags;

typedef enum CdoNNTPProcessingField
{
          cdoPostMessage  = 1,
          cdoProcessControl  = 2,
          cdoProcessModerator  = 4,
 } CdoNNTPProcessingField;

typedef enum CdoPostUsing
{
          cdoPostUsingPickup  = 1,
          cdoPostUsingPort  = 2,
 } CdoPostUsing;

typedef enum CdoProtocolsAuthentication
{
          cdoAnonymous  = 0,
          cdoBasic  = 1,
          cdoNTLM  = 2,
 } CdoProtocolsAuthentication;

typedef enum CdoReferenceType
{
          cdoRefTypeId  = 0,
          cdoRefTypeLocation  = 1,
 } CdoReferenceType;

typedef enum CdoSendUsing
{
          cdoSendUsingPickup  = 1,
          cdoSendUsingPort  = 2,
 } CdoSendUsing;

typedef enum CdoTimeZoneId
{
          [helpstring("(UTC) Universal Coordinated Time")] cdoUTC  = 0,
          [helpstring("(GMT) Greenwich Mean Time; Dublin, Edinburgh, London")] cdoGMT  = 1,
          [helpstring("(GMT+01:00) Lisbon, Warsaw")] cdoLisbon  = 2,
          [helpstring("(GMT+01:00) Paris, Madrid")] cdoParis  = 3,
          [helpstring("(GMT+01:00) Berlin, Stockholm, Rome, Bern, Brussels, Vienna")] cdoBerlin  = 4,
          [helpstring("(GMT+02:00) Eastern Europe")] cdoEasternEurope  = 5,
          [helpstring("(GMT+01:00) Prague")] cdoPrague  = 6,
          [helpstring("(GMT+02:00) Athens, Helsinki, Istanbul")] cdoAthens  = 7,
          [helpstring("(GMT-03:00) Brasilia")] cdoBrasilia  = 8,
          [helpstring("(GMT-04:00) Atlantic Time (Canada)")] cdoAtlanticCanada  = 9,
          [helpstring("(GMT-05:00) Eastern Time (US & Canada)")] cdoEastern  = 10,
          [helpstring("(GMT-06:00) Central Time (US & Canada)")] cdoCentral  = 11,
          [helpstring("(GMT-07:00) Mountain Time (US & Canada)")] cdoMountain  = 12,
          [helpstring("(GMT-08:00) Pacific Time (US & Canada); Tijuana")] cdoPacific  = 13,
          [helpstring("(GMT-09:00) Alaska")] cdoAlaska  = 14,
          [helpstring("(GMT-10:00) Hawaii")] cdoHawaii  = 15,
          [helpstring("(GMT-11:00) Midway Island, Samoa")] cdoMidwayIsland  = 16,
          [helpstring("(GMT+12:00) Wellington, Auckland")] cdoWellington  = 17,
          [helpstring("(GMT+10:00) Brisbane, Melbourne, Sydney")] cdoBrisbane  = 18,
          [helpstring("(GMT+09:30) Adelaide")] cdoAdelaide  = 19,
          [helpstring("(GMT+09:00) Tokyo, Osaka, Sapporo, Seoul, Yakutsk")] cdoTokyo  = 20,
          [helpstring("(GMT+08:00) Hong Kong, Perth, Singapore, Taipei")] cdoHongKong  = 21,
          [helpstring("(GMT+07:00) Bangkok, Jakarta, Hanoi")] cdoBangkok  = 22,
          [helpstring("(GMT+05:30) Bombay, Calcutta, Madras, New Delhi, Colombo")] cdoBombay  = 23,
          [helpstring("(GMT+04:00) Abu Dhabi, Muscat, Tbilisi, Kazan, Volgograd")] cdoAbuDhabi  = 24,
          [helpstring("(GMT+03:30) Tehran")] cdoTehran  = 25,
          [helpstring("(GMT+03:00) Baghdad, Kuwait, Nairobi, Riyadh")] cdoBaghdad  = 26,
          [helpstring("(GMT+02:00) Israel")] cdoIsrael  = 27,
          [helpstring("(GMT-03:30) Newfoundland")] cdoNewfoundland  = 28,
          [helpstring("(GMT-01:00) Azores, Cape Verde Is.")] cdoAzores  = 29,
          [helpstring("(GMT-02:00) Mid-Atlantic")] cdoMidAtlantic  = 30,
          [helpstring("(GMT) Monrovia, Casablanca")] cdoMonrovia  = 31,
          [helpstring("(GMT-03:00) Buenos Aires, Georgetown")] cdoBuenosAires  = 32,
          [helpstring("(GMT-04:00) Caracas, La Paz")] cdoCaracas  = 33,
          [helpstring("(GMT-05:00) Indiana (East)")] cdoIndiana  = 34,
          [helpstring("(GMT-05:00) Bogota, Lima")] cdoBogota  = 35,
          [helpstring("(GMT-06:00) Saskatchewan")] cdoSaskatchewan  = 36,
          [helpstring("(GMT-06:00) Mexico City, Tegucigalpa")] cdoMexicoCity  = 37,
          [helpstring("(GMT-07:00) Arizona")] cdoArizona  = 38,
          [helpstring("(GMT-12:00) Eniwetok, Kwajalein")] cdoEniwetok  = 39,
          [helpstring("(GMT+12:00) Fiji, Kamchatka, Marshall Is.")] cdoFiji  = 40,
          [helpstring("(GMT+11:00) Magadan, Solomon Is., New Caledonia")] cdoMagadan  = 41,
          [helpstring("(GMT+10:00) Hobart")] cdoHobart  = 42,
          [helpstring("(GMT+10:00) Guam, Port Moresby, Vladivostok")] cdoGuam  = 43,
          [helpstring("(GMT+09:30) Darwin")] cdoDarwin  = 44,
          [helpstring("(GMT+08:00) Beijing, Chongqing, Urumqi")] cdoBeijing  = 45,
          [helpstring("(GMT+06:00) Almaty, Dhaka")] cdoAlmaty  = 46,
          [helpstring("(GMT+05:00) Islamabad, Karachi, Sverdlovsk, Tashkent")] cdoIslamabad  = 47,
          [helpstring("(GMT+04:30) Kabul")] cdoKabul  = 48,
          [helpstring("(GMT+02:00) Cairo")] cdoCairo  = 49,
          [helpstring("(GMT+02:00) Harare, Pretoria")] cdoHarare  = 50,
          [helpstring("(GMT+03:00) Moscow, St. Petersburg")] cdoMoscow  = 51,
          cdoInvalidTimeZone  = 52,
 } CdoTimeZoneId;

[ object, uuid(CD000029-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("IDataSource interface"), pointer_default(unique) ] interface IDataSource : IDispatch
{
	[ id( 207 ), propget, helpstring( "property SourceClass" ), readonly ] HRESULT SourceClass ([out,retval] BSTR* varSourceClass);
	[ id( 208 ), propget, helpstring( "property Source" ), readonly ] HRESULT Source ([out,retval] IUnknown** varSource);
	[ id( 209 ), propget, helpstring( "property IsDirty" ), ] HRESULT IsDirty ([out,retval] VARIANT_BOOL* pIsDirty); [ id( 209 ), propput, helpstring( "property IsDirty" ), ] HRESULT IsDirty ([in] VARIANT_BOOL varIsDirty);
	[ id( 210 ), propget, helpstring( "property SourceURL" ), readonly ] HRESULT SourceURL ([out,retval] BSTR* varSourceURL);
	[ id( 211 ), propget, helpstring( "property ActiveConnection" ), readonly ] HRESULT ActiveConnection ([out,retval] _Connection** varActiveConnection);

	[ id( 251 ), helpstring ( "method SaveToObject" ) ] HRESULT SaveToObject(
				[in]		IUnknown* Source,
				[in]		BSTR InterfaceName);

	[ id( 252 ), helpstring ( "method OpenObject" ) ] HRESULT OpenObject(
				[in]		IUnknown* Source,
				[in]		BSTR InterfaceName);

	[ id( 253 ), helpstring ( "method SaveTo" ) ] HRESULT SaveTo(
				[in]			        BSTR SourceURL,
				[in, defaultvalue(0)]	IDispatch* ActiveConnection,
				[in, optional]	        ConnectModeEnum Mode,
				[in, optional]	        RecordCreateOptionsEnum CreateOptions,
				[in, optional]	        RecordOpenOptionsEnum Options,
				[in, optional]	        BSTR UserName,
				[in, optional]	        BSTR Password);

	[ id( 254 ), helpstring ( "method Open" ) ] HRESULT Open(
				[in]			        BSTR SourceURL,
				[in, defaultvalue(0)]	IDispatch* ActiveConnection,
				[in, optional]	        ConnectModeEnum Mode,
				[in, optional]	        RecordCreateOptionsEnum CreateOptions,
				[in, optional]	        RecordOpenOptionsEnum Options,
				[in, optional]	        BSTR UserName,
				[in, optional]	        BSTR Password);

	[ id( 255 ), helpstring ( "method Save" ) ] HRESULT Save();

	[ id( 256 ), helpstring ( "method SaveToContainer" ) ] HRESULT SaveToContainer(
				[in]			        BSTR ContainerURL,
				[in, defaultvalue(0)]	IDispatch* ActiveConnection,
				[in, optional]	        ConnectModeEnum Mode,
				[in, optional]	        RecordCreateOptionsEnum CreateOptions,
				[in, optional]	        RecordOpenOptionsEnum Options,
				[in, optional]	        BSTR UserName,
				[in, optional]	        BSTR Password);
};

[ object, uuid(CD000020-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("IMessage Interface"), pointer_default(unique) ] interface IMessage : IDispatch
{
	[ id( 101 ), propget, helpstring( "property BCC" ), ] HRESULT BCC ([out,retval] BSTR* pBCC); [ id( 101 ), propput, helpstring( "property BCC" ), ] HRESULT BCC ([in] BSTR varBCC);
	[ id( 103 ), propget, helpstring( "property CC" ), ] HRESULT CC ([out,retval] BSTR* pCC); [ id( 103 ), propput, helpstring( "property CC" ), ] HRESULT CC ([in] BSTR varCC);
	[ id( 105 ), propget, helpstring( "property FollowUpTo" ), ] HRESULT FollowUpTo ([out,retval] BSTR* pFollowUpTo); [ id( 105 ), propput, helpstring( "property FollowUpTo" ), ] HRESULT FollowUpTo ([in] BSTR varFollowUpTo);
	[ id( 106 ), propget, helpstring( "property From" ), ] HRESULT From ([out,retval] BSTR* pFrom); [ id( 106 ), propput, helpstring( "property From" ), ] HRESULT From ([in] BSTR varFrom);
	[ id( 107 ), propget, helpstring( "property Keywords" ), ] HRESULT Keywords ([out,retval] BSTR* pKeywords); [ id( 107 ), propput, helpstring( "property Keywords" ), ] HRESULT Keywords ([in] BSTR varKeywords);
	[ id( 110 ), propget, helpstring( "property MimeFormatted" ), ] HRESULT MimeFormatted ([out,retval] VARIANT_BOOL* pMimeFormatted); [ id( 110 ), propput, helpstring( "property MimeFormatted" ), ] HRESULT MimeFormatted ([in] VARIANT_BOOL varMimeFormatted);
	[ id( 111 ), propget, helpstring( "property Newsgroups" ), ] HRESULT Newsgroups ([out,retval] BSTR* pNewsgroups); [ id( 111 ), propput, helpstring( "property Newsgroups" ), ] HRESULT Newsgroups ([in] BSTR varNewsgroups);
	[ id( 112 ), propget, helpstring( "property Organization" ), ] HRESULT Organization ([out,retval] BSTR* pOrganization); [ id( 112 ), propput, helpstring( "property Organization" ), ] HRESULT Organization ([in] BSTR varOrganization);
	[ id( 114 ), propget, helpstring( "property ReceivedTime" ), readonly ] HRESULT ReceivedTime ([out,retval] DATE* varReceivedTime);
	[ id( 115 ), propget, helpstring( "property ReplyTo" ), ] HRESULT ReplyTo ([out,retval] BSTR* pReplyTo); [ id( 115 ), propput, helpstring( "property ReplyTo" ), ] HRESULT ReplyTo ([in] BSTR varReplyTo);
	[ id( 116 ), propget, helpstring( "property DSNOptions" ), ] HRESULT DSNOptions ([out,retval] CdoDSNOptions* pDSNOptions); [ id( 116 ), propput, helpstring( "property DSNOptions" ), ] HRESULT DSNOptions ([in] CdoDSNOptions varDSNOptions);
	[ id( 119 ), propget, helpstring( "property SentOn" ), readonly ] HRESULT SentOn ([out,retval] DATE* varSentOn);
	[ id( 120 ), propget, helpstring( "property Subject" ), ] HRESULT Subject ([out,retval] BSTR* pSubject); [ id( 120 ), propput, helpstring( "property Subject" ), ] HRESULT Subject ([in] BSTR varSubject);
	[ id( 121 ), propget, helpstring( "property To" ), ] HRESULT To ([out,retval] BSTR* pTo); [ id( 121 ), propput, helpstring( "property To" ), ] HRESULT To ([in] BSTR varTo);
	[ id( 123 ), propget, helpstring( "property TextBody" ), ] HRESULT TextBody ([out,retval] BSTR* pTextBody); [ id( 123 ), propput, helpstring( "property TextBody" ), ] HRESULT TextBody ([in] BSTR varTextBody);
	[ id( 124 ), propget, helpstring( "property HTMLBody" ), ] HRESULT HTMLBody ([out,retval] BSTR* pHTMLBody); [ id( 124 ), propput, helpstring( "property HTMLBody" ), ] HRESULT HTMLBody ([in] BSTR varHTMLBody);
	[ id( 125 ), propget, helpstring( "property Attachments" ), readonly ] HRESULT Attachments ([out,retval] IBodyParts ** varAttachments);
	[ id( 126 ), propget, helpstring( "property Sender" ), ] HRESULT Sender ([out,retval] BSTR* pSender); [ id( 126 ), propput, helpstring( "property Sender" ), ] HRESULT Sender ([in] BSTR varSender);
	[ id( 127 ), propget, helpstring( "property Configuration" ), ] HRESULT Configuration ([out,retval] IConfiguration ** pConfiguration); [ id( 127 ), propput, helpstring( "property Configuration" ), ] HRESULT Configuration ([in] IConfiguration * varConfiguration); [ id( 127 ), propputref, helpstring( "property Configuration" ), ] HRESULT Configuration ([in] IConfiguration * varConfiguration);
	[ id( 128 ), propget, helpstring( "property MessageFormat" ), ] HRESULT AutoGenerateTextBody ([out,retval] VARIANT_BOOL* pAutoGenerateTextBody); [ id( 128 ), propput, helpstring( "property MessageFormat" ), ] HRESULT AutoGenerateTextBody ([in] VARIANT_BOOL varAutoGenerateTextBody);
	[ id( 129 ), propget, helpstring( "property Envelope Fields" ), readonly ] HRESULT EnvelopeFields ([out,retval] Fields ** varEnvelopeFields);
	[ id( 130 ), propget, helpstring( "property TextBodyPart" ), readonly ] HRESULT TextBodyPart ([out,retval] IBodyPart ** varTextBodyPart);
	[ id( 131 ), propget, helpstring( "property HTMLBodyPart" ), readonly ] HRESULT HTMLBodyPart ([out,retval] IBodyPart ** varHTMLBodyPart);
	[ id( 132 ), propget, helpstring( "property BodyPart" ), readonly ] HRESULT BodyPart ([out,retval] IBodyPart ** varBodyPart);
	[ id( 133 ), propget, helpstring( "property DataSource" ), readonly ] HRESULT DataSource ([out,retval] IDataSource ** varDataSource);
	[ id( 134 ), propget, helpstring( "property Fields" ), readonly ] HRESULT Fields ([out,retval] Fields ** varFields);
	[ id( 135 ), propget, helpstring( "property MDNRequested" ), ] HRESULT MDNRequested ([out,retval] VARIANT_BOOL* pMDNRequested); [ id( 135 ), propput, helpstring( "property MDNRequested" ), ] HRESULT MDNRequested ([in] VARIANT_BOOL varMDNRequested);

	[ id( 150 ), helpstring ( "method AddRelatedBodyPart" ) ] HRESULT AddRelatedBodyPart(
				[in] 			BSTR URL, 
				[in] 			BSTR Reference,
				[in] 			CdoReferenceType ReferenceType,
				[in, optional]	BSTR UserName,
				[in, optional]	BSTR Password,
				[out,retval]	IBodyPart **ppBody);
				
	[ id( 151 ), helpstring ( "method AddAttachment" ) ] HRESULT AddAttachment(
				[in] 			BSTR URL,
				[in, optional]	BSTR UserName,
				[in, optional]	BSTR Password,
				[out,retval]	IBodyPart **ppBody);
			
	[ id( 152 ), helpstring ( "method CreateMHTMLBody" ) ] HRESULT CreateMHTMLBody(
				[in] 					BSTR URL, 
				[in, defaultvalue(cdoSuppressNone)]	CdoMHTMLFlags Flags,
				[in, optional]	BSTR UserName,
				[in, optional]	BSTR Password);
				
	[ id( 153 ), helpstring ( "method Forward" ) ] HRESULT Forward(
				[out,retval] 	IMessage **ppMsg);

	[ id( 154 ), helpstring ( "method Post" ) ] HRESULT Post();
	
	[ id( 155 ), helpstring ( "method PostReply" ) ] HRESULT PostReply(
				[out,retval] 	IMessage **ppMsg);
				
	[ id( 156 ), helpstring ( "method Reply" ) ] HRESULT Reply(
				[out,retval] 	IMessage **ppMsg);
				
	[ id( 157 ), helpstring ( "method ReplyAll" ) ] HRESULT ReplyAll(
				[out,retval] IMessage **ppMsg);
				
	[ id( 158 ), helpstring ( "method Send" ) ] HRESULT Send();

	[ id( 159 ), helpstring ( "method GetStream" ) ] HRESULT GetStream(
				[out,retval] _Stream **ppStream);

	[ id( 160 ), helpstring ( "method GetInterface" ) ] HRESULT GetInterface(
				[in] BSTR Interface,
				[out, retval] IDispatch** ppUnknown);
};

[ object, uuid(CD000021-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("IBodyPart Interface"), pointer_default(unique) ] interface IBodyPart : IDispatch
{
	[ id( 200 ), propget, helpstring( "property BodyParts" ), readonly ] HRESULT BodyParts ([out,retval] IBodyParts ** varBodyParts);
	[ id( 201 ), propget, helpstring( "property ContentTransferEncoding" ), ] HRESULT ContentTransferEncoding ([out,retval] BSTR* pContentTransferEncoding); [ id( 201 ), propput, helpstring( "property ContentTransferEncoding" ), ] HRESULT ContentTransferEncoding ([in] BSTR varContentTransferEncoding);
	[ id( 202 ), propget, helpstring( "property ContentMediaType" ), ] HRESULT ContentMediaType ([out,retval] BSTR* pContentMediaType); [ id( 202 ), propput, helpstring( "property ContentMediaType" ), ] HRESULT ContentMediaType ([in] BSTR varContentMediaType);
	[ id( 203 ), propget, helpstring( "property Fields" ), readonly ] HRESULT Fields ([out,retval] Fields ** varFields);
	[ id( 204 ), propget, helpstring( "property Charset" ), ] HRESULT Charset ([out,retval] BSTR* pCharset); [ id( 204 ), propput, helpstring( "property Charset" ), ] HRESULT Charset ([in] BSTR varCharset);
	[ id( 205 ), propget, helpstring( "property FileName" ), readonly ] HRESULT FileName ([out,retval] BSTR* varFileName);
	[ id( 207 ), propget, helpstring( "property DataSource" ), readonly ] HRESULT DataSource ([out,retval] IDataSource ** varDataSource);
	[ id( 208 ), propget, helpstring( "property ContentClass" ), ] HRESULT ContentClass ([out,retval] BSTR* pContentClass); [ id( 208 ), propput, helpstring( "property ContentClass" ), ] HRESULT ContentClass ([in] BSTR varContentClass);
	[ id( 209 ), propget, helpstring( "property ContentClassName" ), ] HRESULT ContentClassName ([out,retval] BSTR* pContentClassName); [ id( 209 ), propput, helpstring( "property ContentClassName" ), ] HRESULT ContentClassName ([in] BSTR varContentClassName);
	[ id( 210 ), propget, helpstring( "property Parent" ), readonly ] HRESULT Parent ([out,retval] IBodyPart** varParent);

	[ id( 250 ), helpstring ( "method AddBodyPart" ) ] HRESULT AddBodyPart(
				[in, defaultvalue(-1)]	long Index,
				[out, retval]			IBodyPart **ppPart);

	[ id( 251 ), helpstring ( "method SaveToFile" ) ] HRESULT SaveToFile(
				[in]		BSTR FileName);

	[ id( 252 ), helpstring ( "method GetEncodedContentStream" ) ] HRESULT GetEncodedContentStream(
				[out, retval]_Stream **ppStream); 

	[ id( 253 ), helpstring ( "method GetDecodedContentStream" ) ] HRESULT GetDecodedContentStream(
				[out, retval]_Stream **ppStream); 

	[ id( 254 ), helpstring ( "method GetStream" ) ] HRESULT GetStream(
				[out,retval] _Stream **ppStream);

	[ id( 255 ), helpstring ( "method GetFieldParameter" ) ] HRESULT GetFieldParameter(
				[in] BSTR FieldName,
				[in] BSTR Parameter,
				[out, retval] BSTR* pbstrValue);	

	[ id( 160 ), helpstring ( "method GetInterface" ) ] HRESULT GetInterface(
				[in] BSTR Interface,
				[out, retval] IDispatch** ppUnknown);
};

[ object, uuid(CD000022-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("IConfiguration Interface"), pointer_default(unique) ] interface IConfiguration : IDispatch
{
	[ id( 0 ), propget, helpstring( "property Fields" ), readonly ] HRESULT Fields ([out,retval] Fields ** varFields);

	[ id( 50 ), helpstring ( "method Load" ) ] HRESULT Load(
				[in]	CdoConfigSource LoadFrom,
				[in, optional] BSTR URL);

	[ id( 160 ), helpstring ( "method GetInterface" ) ] HRESULT GetInterface(
				[in] BSTR Interface,
				[out, retval] IDispatch** ppUnknown);
};

[ object, uuid(CD000025-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("IMessages collection"), pointer_default(unique) ] interface IMessages : IDispatch
{
	[ 
		id( 0 ), 
        propget, 
		helpstring( "Property Item"), 
		readonly 
	] HRESULT Item (long Index, 
				[out, retval] 	IMessage **ppMessage);	

	[ id( 1 ), propget, helpstring( "property Count" ), readonly ] HRESULT Count ([out,retval] long* varCount);	

	[ id( 2 ), helpstring ( "method Delete" ) ] HRESULT Delete(
				[in] 			long Index);
	
	[ id( 3 ), helpstring ( "method DeleteAll" ) ] HRESULT DeleteAll();
				
	[propget, restricted, id(DISPID_NEWENUM)]						
	HRESULT _NewEnum(
				[out, retval] 	IUnknown** retval);
	[ 
		id( 5 ), 
        propget, 
		helpstring( "Property Filename"), 
		readonly 
	] HRESULT Filename (VARIANT var, 
				[out, retval] 	BSTR *Filename);	
};

[ object, uuid(CD000024-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("IDropDirectory Interface"), pointer_default(unique) ] interface IDropDirectory : IDispatch
{
	[ 
		id( 200 ), 
		helpstring( "method GetMessages" ), 
		readonly 
	] 
	HRESULT GetMessages ([in, optional] BSTR DirName, 
					  [out,retval] IMessages** Msgs);
};

[ object, uuid(CD000023-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("IBodyParts collection"), pointer_default(unique) ] interface IBodyParts : IDispatch
{
	[ id( 1 ), propget, helpstring( "property Count" ), readonly ] HRESULT Count ([out,retval] long* varCount);	

	[ 
		id( 0 ), 
        propget, 
		helpstring( "Property Item"), 
		readonly 
	]
	HRESULT Item (
				[in] 			long Index, 
				[out, retval] 	IBodyPart **ppBody);	

	[propget, restricted, id(DISPID_NEWENUM)]						
	HRESULT _NewEnum(
				[out, retval] 	IUnknown** retval);

	[ id( 2 ), helpstring ( "method Delete" ) ] HRESULT Delete(
				[in]			VARIANT varBP);

	[ id( 3 ), helpstring ( "method DeleteAll" ) ] HRESULT DeleteAll();

	[ id( 4 ), helpstring ( "method Add" ) ] HRESULT Add(
				[in, defaultvalue(-1)]	long Index,
				[out, retval]			IBodyPart **ppPart);
};

[ object, uuid(CD000030-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("ISMTPScriptConnector interface"), pointer_default(unique), hidden ] interface ISMTPScriptConnector : IDispatch
{
};
[ object, uuid(CD000034-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("INNTPFinalScriptConnector interface"), pointer_default(unique), hidden ] interface INNTPEarlyScriptConnector : IDispatch
{
};
[ object, uuid(CD000031-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("INNTPPostScriptConnector interface"), pointer_default(unique), hidden ] interface INNTPPostScriptConnector : IDispatch
{
};
[ object, uuid(CD000032-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("INNTPFinalScriptConnector interface"), pointer_default(unique), hidden ] interface INNTPFinalScriptConnector : IDispatch
{
};

[ object, uuid(CD000026-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("ISMTPOnArrival Interface"), pointer_default(unique) ] interface ISMTPOnArrival : IDispatch
{
	[ id( 256 ), helpstring ( "method OnArrival" ) ] HRESULT OnArrival(
			[in] IMessage *Msg, [in,out]CdoEventStatus *EventStatus);

};

[ object, uuid(CD000033-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("INNTPOnPostEarly Interface"), pointer_default(unique) ] interface INNTPOnPostEarly : IDispatch
{
	[ id( 256 ), helpstring ( "method OnPostEarly" ) ] HRESULT OnPostEarly(
			[in] IMessage *Msg, [in,out]CdoEventStatus *EventStatus);

}

[ object, uuid(CD000027-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("INNTPOnPost Interface"), pointer_default(unique) ] interface INNTPOnPost : IDispatch
{
	[ id( 256 ), helpstring ( "method OnPost" ) ] HRESULT OnPost(
			[in] IMessage *Msg, [in,out]CdoEventStatus *EventStatus);

};

[ object, uuid(CD000028-8B95-11D1-82DB-00C04FB1625D), dual, nonextensible, helpstring("INNTPOnPostFinal Interface"), pointer_default(unique) ] interface INNTPOnPostFinal : IDispatch
{
	[ id( 256 ), helpstring ( "method OnPostFinal" ) ] HRESULT OnPostFinal(
			[in] IMessage *Msg, [in,out]CdoEventStatus *EventStatus);

};

midl_pragma warning (default: 2461)

[
	uuid(CD000000-8B95-11D1-82DB-00C04FB1625D),
	version(1.0),

	helpstring("Microsoft CDO for Windows 2000 Library")
]
library CDO
{

	importlib("stdole2.tlb");

enum CdoConfigSource;
enum CdoDSNOptions;
enum CdoEventStatus;
enum CdoMessageStat;
enum CdoMHTMLFlags;
enum CdoNNTPProcessingField;
enum CdoPostUsing;
enum CdoProtocolsAuthentication;
enum CdoReferenceType;
enum CdoSendUsing;
enum CdoTimeZoneId;
          [  dllname("cdosys.dll")   ]
          module CdoCalendar
          {
               const BSTR cdoTimeZoneIDURN  =L"urn:schemas:calendar:timezoneid";
          };

          [  dllname("cdosys.dll")   ]
          module CdoCharset
          {
               const BSTR cdoBIG5  =L"big5";
               const BSTR cdoEUC_JP  =L"euc-jp";
               const BSTR cdoEUC_KR  =L"euc-kr";
               const BSTR cdoGB2312  =L"gb2312";
               const BSTR cdoISO_2022_JP  =L"iso-2022-jp";
               const BSTR cdoISO_2022_KR  =L"iso-2022-kr";
               const BSTR cdoISO_8859_1  =L"iso-8859-1";
               const BSTR cdoISO_8859_2  =L"iso-8859-2";
               const BSTR cdoISO_8859_3  =L"iso-8859-3";
               const BSTR cdoISO_8859_4  =L"iso-8859-4";
               const BSTR cdoISO_8859_5  =L"iso-8859-5";
               const BSTR cdoISO_8859_6  =L"iso-8859-6";
               const BSTR cdoISO_8859_7  =L"iso-8859-7";
               const BSTR cdoISO_8859_8  =L"iso-8859-8";
               const BSTR cdoISO_8859_9  =L"iso-8859-9";
               const BSTR cdoKOI8_R  =L"koi8-r";
               const BSTR cdoShift_JIS  =L"shift-jis";
               const BSTR cdoUS_ASCII  =L"us-ascii";
               const BSTR cdoUTF_7  =L"utf-7";
               const BSTR cdoUTF_8  =L"utf-8";
          };

          [  dllname("cdosys.dll")   ]
          module CdoConfiguration
          {
               const BSTR cdoAutoPromoteBodyParts  =L"http://schemas.microsoft.com/cdo/configuration/autopromotebodyparts";
               const BSTR cdoFlushBuffersOnWrite  =L"http://schemas.microsoft.com/cdo/configuration/flushbuffersonwrite";
               const BSTR cdoHTTPCookies  =L"http://schemas.microsoft.com/cdo/configuration/httpcookies";
               const BSTR cdoLanguageCode  =L"http://schemas.microsoft.com/cdo/configuration/languagecode";
               const BSTR cdoNNTPAccountName  =L"http://schemas.microsoft.com/cdo/configuration/nntpaccountname";
               const BSTR cdoNNTPAuthenticate  =L"http://schemas.microsoft.com/cdo/configuration/nntpauthenticate";
               const BSTR cdoNNTPConnectionTimeout  =L"http://schemas.microsoft.com/cdo/configuration/nntpconnectiontimeout";
               const BSTR cdoNNTPServer  =L"http://schemas.microsoft.com/cdo/configuration/nntpserver";
               const BSTR cdoNNTPServerPickupDirectory  =L"http://schemas.microsoft.com/cdo/configuration/nntpserverpickupdirectory";
               const BSTR cdoNNTPServerPort  =L"http://schemas.microsoft.com/cdo/configuration/nntpserverport";
               const BSTR cdoNNTPUseSSL  =L"http://schemas.microsoft.com/cdo/configuration/nntpusessl";
               const BSTR cdoPostEmailAddress  =L"http://schemas.microsoft.com/cdo/configuration/postemailaddress";
               const BSTR cdoPostPassword  =L"http://schemas.microsoft.com/cdo/configuration/postpassword";
               const BSTR cdoPostUserName  =L"http://schemas.microsoft.com/cdo/configuration/postusername";
               const BSTR cdoPostUserReplyEmailAddress  =L"http://schemas.microsoft.com/cdo/configuration/postuserreplyemailaddress";
               const BSTR cdoPostUsingMethod  =L"http://schemas.microsoft.com/cdo/configuration/postusing";
               const BSTR cdoSaveSentItems  =L"http://schemas.microsoft.com/cdo/configuration/savesentitems";
               const BSTR cdoSendEmailAddress  =L"http://schemas.microsoft.com/cdo/configuration/sendemailaddress";
               const BSTR cdoSendPassword  =L"http://schemas.microsoft.com/cdo/configuration/sendpassword";
               const BSTR cdoSendUserName  =L"http://schemas.microsoft.com/cdo/configuration/sendusername";
               const BSTR cdoSendUserReplyEmailAddress  =L"http://schemas.microsoft.com/cdo/configuration/senduserreplyemailaddress";
               const BSTR cdoSendUsingMethod  =L"http://schemas.microsoft.com/cdo/configuration/sendusing";
               const BSTR cdoSMTPAccountName  =L"http://schemas.microsoft.com/cdo/configuration/smtpaccountname";
               const BSTR cdoSMTPAuthenticate  =L"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate";
               const BSTR cdoSMTPConnectionTimeout  =L"http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout";
               const BSTR cdoSMTPServer  =L"http://schemas.microsoft.com/cdo/configuration/smtpserver";
               const BSTR cdoSMTPServerPickupDirectory  =L"http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory";
               const BSTR cdoSMTPServerPort  =L"http://schemas.microsoft.com/cdo/configuration/smtpserverport";
               const BSTR cdoSMTPUseSSL  =L"http://schemas.microsoft.com/cdo/configuration/smtpusessl";
               const BSTR cdoURLGetLatestVersion  =L"http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion";
               const BSTR cdoURLProxyBypass  =L"http://schemas.microsoft.com/cdo/configuration/urlproxybypass";
               const BSTR cdoURLProxyServer  =L"http://schemas.microsoft.com/cdo/configuration/urlproxyserver";
               const BSTR cdoUseMessageResponseText  =L"http://schemas.microsoft.com/cdo/configuration/usemessageresponsetext";
          };

          [  dllname("cdosys.dll")   ]
          module CdoContentTypeValues
          {
               const BSTR cdoGif  =L"image/gif";
               const BSTR cdoJpeg  =L"image/jpeg";
               const BSTR cdoMessageExternalBody  =L"message/external-body";
               const BSTR cdoMessagePartial  =L"message/partial";
               const BSTR cdoMessageRFC822  =L"message/rfc822";
               const BSTR cdoMultipartAlternative  =L"multipart/alternative";
               const BSTR cdoMultipartDigest  =L"multipart/digest";
               const BSTR cdoMultipartMixed  =L"multipart/mixed";
               const BSTR cdoMultipartRelated  =L"multipart/related";
               const BSTR cdoTextHTML  =L"text/html";
               const BSTR cdoTextPlain  =L"text/plain";
          };

          [  dllname("cdosys.dll")   ]
          module CdoEncodingType
          {
               const BSTR cdo7bit  =L"7bit";
               const BSTR cdo8bit  =L"8bit";
               const BSTR cdoBase64  =L"base64";
               const BSTR cdoBinary  =L"binary";
               const BSTR cdoMacBinHex40  =L"mac-binhex40";
               const BSTR cdoQuotedPrintable  =L"quoted-printable";
               const BSTR cdoUuencode  =L"uuencode";
          };

          [  dllname("cdosys.dll")   ]
          module CdoHTTPMail
          {
               const BSTR cdoAttachmentFilename  =L"urn:schemas:httpmail:attachmentfilename";
               const BSTR cdoContentDispositionType  =L"urn:schemas:httpmail:content-disposition-type";
               const BSTR cdoContentMediaType  =L"urn:schemas:httpmail:content-media-type";
               const BSTR cdoDateReceived  =L"urn:schemas:httpmail:datereceived";
               const BSTR cdoHasAttachment  =L"urn:schemas:httpmail:hasattachment";
               const BSTR cdoHTMLDescription  =L"urn:schemas:httpmail:htmldescription";
               const BSTR cdoNormalizedSubject  =L"urn:schemas:httpmail:normalizedsubject";
               const BSTR cdoTextDescription  =L"urn:schemas:httpmail:textdescription";
          };

          [  dllname("cdosys.dll")   ]
          module CdoImportanceValues
          {
               const BSTR cdoHigh  =L"High";
               const BSTR cdoLow  =L"Low";
               const BSTR cdoNormal  =L"Normal";
          };

          [  dllname("cdosys.dll")   ]
          module CdoInterfaces
          {
               const BSTR cdoAdoStream  =L"_Stream";
               const BSTR cdoIBodyPart  =L"IBodyPart";
               const BSTR cdoIConfiguration  =L"IConfiguration";
               const BSTR cdoIDataSource  =L"IDataSource";
               const BSTR cdoIMessage  =L"IMessage";
               const BSTR cdoIStream  =L"IStream";
          };

          [  dllname("cdosys.dll")   ]
          module CdoMailHeader
          {
               const BSTR cdoApproved  =L"urn:schemas:mailheader:approved";
               const BSTR cdoBcc  =L"urn:schemas:mailheader:bcc";
               const BSTR cdoCc  =L"urn:schemas:mailheader:cc";
               const BSTR cdoComment  =L"urn:schemas:mailheader:comment";
               const BSTR cdoContentBase  =L"urn:schemas:mailheader:content-base";
               const BSTR cdoContentClass  =L"urn:schemas:mailheader:content-class";
               const BSTR cdoContentClassName  =L"urn:schemas:mailheader:content-class-name";
               const BSTR cdoContentDescription  =L"urn:schemas:mailheader:content-description";
               const BSTR cdoContentDisposition  =L"urn:schemas:mailheader:content-disposition";
               const BSTR cdoContentId  =L"urn:schemas:mailheader:content-id";
               const BSTR cdoContentLanguage  =L"urn:schemas:mailheader:content-language";
               const BSTR cdoContentLocation  =L"urn:schemas:mailheader:content-location";
               const BSTR cdoContentTransferEncoding  =L"urn:schemas:mailheader:content-transfer-encoding";
               const BSTR cdoContentType  =L"urn:schemas:mailheader:content-type";
               const BSTR cdoControl  =L"urn:schemas:mailheader:control";
               const BSTR cdoDate  =L"urn:schemas:mailheader:date";
               const BSTR cdoDisposition  =L"urn:schemas:mailheader:disposition";
               const BSTR cdoDispositionNotificationOptions  =L"urn:schemas:mailheader:disposition-notification-options";
               const BSTR cdoDispositionNotificationTo  =L"urn:schemas:mailheader:disposition-notification-to";
               const BSTR cdoDistribution  =L"urn:schemas:mailheader:distribution";
               const BSTR cdoExpires  =L"urn:schemas:mailheader:expires";
               const BSTR cdoFollowupTo  =L"urn:schemas:mailheader:followup-to";
               const BSTR cdoFrom  =L"urn:schemas:mailheader:from";
               const BSTR cdoImportance  =L"urn:schemas:mailheader:importance";
               const BSTR cdoInReplyTo  =L"urn:schemas:mailheader:in-reply-to";
               const BSTR cdoKeywords  =L"urn:schemas:mailheader:keywords";
               const BSTR cdoLines  =L"urn:schemas:mailheader:lines";
               const BSTR cdoMessageId  =L"urn:schemas:mailheader:message-id";
               const BSTR cdoMIMEVersion  =L"urn:schemas:mailheader:mime-version";
               const BSTR cdoNewsgroups  =L"urn:schemas:mailheader:newsgroups";
               const BSTR cdoNNTPPostingHost  =L"urn:schemas:mailheader:nntp-posting-host";
               const BSTR cdoNNTPPostingUser  =L"urn:schemas:mailheader:nntp-posting-user";
               const BSTR cdoOrganization  =L"urn:schemas:mailheader:organization";
               const BSTR cdoOriginalRecipient  =L"urn:schemas:mailheader:original-recipient";
               const BSTR cdoPath  =L"urn:schemas:mailheader:path";
               const BSTR cdoPostingVersion  =L"urn:schemas:mailheader:posting-version";
               const BSTR cdoPriority  =L"urn:schemas:mailheader:priority";
               const BSTR cdoReceived  =L"urn:schemas:mailheader:received";
               const BSTR cdoReferences  =L"urn:schemas:mailheader:references";
               const BSTR cdoRelayVersion  =L"urn:schemas:mailheader:relay-version";
               const BSTR cdoReplyTo  =L"urn:schemas:mailheader:reply-to";
               const BSTR cdoReturnPath  =L"urn:schemas:mailheader:return-path";
               const BSTR cdoReturnReceiptTo  =L"urn:schemas:mailheader:return-receipt-to";
               const BSTR cdoSender  =L"urn:schemas:mailheader:sender";
               const BSTR cdoSensitivity  =L"urn:schemas:mailheader:sensitivity";
               const BSTR cdoSubject  =L"urn:schemas:mailheader:subject";
               const BSTR cdoSummary  =L"urn:schemas:mailheader:summary";
               const BSTR cdoTo  =L"urn:schemas:mailheader:to";
               const BSTR cdoXMailer  =L"urn:schemas:mailheader:x-mailer";
               const BSTR cdoXref  =L"urn:schemas:mailheader:xref";
               const BSTR cdoXUnsent  =L"urn:schemas:mailheader:x-unsent";
          };

          [  dllname("cdosys.dll")   ]
          module CdoNamespace
          {
               const BSTR cdoNSConfiguration  =L"http://schemas.microsoft.com/cdo/configuration/";
               const BSTR cdoNSContacts  =L"urn:schemas:contacts:";
               const BSTR cdoNSHTTPMail  =L"urn:schemas:httpmail:";
               const BSTR cdoNSMailHeader  =L"urn:schemas:mailheader:";
               const BSTR cdoNSNNTPEnvelope  =L"http://schemas.microsoft.com/cdo/nntpenvelope/";
               const BSTR cdoNSSMTPEnvelope  =L"http://schemas.microsoft.com/cdo/smtpenvelope/";
          };

          [  dllname("cdosys.dll")   ]
          module CdoNNTPEnvelope
          {
               const BSTR cdoNewsgroupList  =L"http://schemas.microsoft.com/cdo/nntpenvelope/newsgrouplist";
               const BSTR cdoNNTPProcessing  =L"http://schemas.microsoft.com/cdo/nntpenvelope/nntpprocessing";
          };

          [  dllname("cdosys.dll")   ]
          module CdoPriorityValues
          {
               const BSTR cdoPriorityNonUrgent  =L"non-urgent";
               const BSTR cdoPriorityNormal  =L"normal";
               const BSTR cdoPriorityUrgent  =L"urgent";
          };

          [  dllname("cdosys.dll")   ]
          module CdoSensitivityValues
          {
               const BSTR cdoCompanyConfidential  =L"Company-Confidential";
               const BSTR cdoPersonal  =L"Personal";
               const BSTR cdoPrivate  =L"Private";
          };

          [  dllname("cdosys.dll")   ]
          module CdoSMTPEnvelope
          {
               const BSTR cdoArrivalTime  =L"http://schemas.microsoft.com/cdo/smtpenvelope/arrivaltime";
               const BSTR cdoClientIPAddress  =L"http://schemas.microsoft.com/cdo/smtpenvelope/clientipaddress";
               const BSTR cdoMessageStatus  =L"http://schemas.microsoft.com/cdo/smtpenvelope/messagestatus";
               const BSTR cdoPickupFileName  =L"http://schemas.microsoft.com/cdo/smtpenvelope/pickupfilename";
               const BSTR cdoRecipientList  =L"http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist";
               const BSTR cdoSenderEmailAddress  =L"http://schemas.microsoft.com/cdo/smtpenvelope/senderemailaddress";
          };

	
 	 [	dllname("cdosys.dll")	]
	module CdoErrors 
{ 	
		 const LONG CDO_E_UNCAUGHT_EXCEPTION = 0x80040201L;
		 const LONG CDO_E_NOT_OPENED = 0x80040202L;
		 const LONG CDO_E_UNSUPPORTED_DATASOURCE = 0x80040203L;
		 const LONG CDO_E_INVALID_PROPERTYNAME = 0x80040204L;
		 const LONG CDO_E_PROP_UNSUPPORTED = 0x80040205L;
		 const LONG CDO_E_INACTIVE = 0x80040206L;
		 const LONG CDO_E_NO_SUPPORT_FOR_OBJECTS = 0x80040207L;
		 const LONG CDO_E_NOT_AVAILABLE = 0x80040208L;
		 const LONG CDO_E_NO_DEFAULT_DROP_DIR = 0x80040209L;
		 const LONG CDO_E_SMTP_SERVER_REQUIRED = 0x8004020AL;
		 const LONG CDO_E_NNTP_SERVER_REQUIRED = 0x8004020BL;
		 const LONG CDO_E_RECIPIENT_MISSING = 0x8004020CL;
		 const LONG CDO_E_FROM_MISSING = 0x8004020DL;
		 const LONG CDO_E_SENDER_REJECTED = 0x8004020EL;
		 const LONG CDO_E_RECIPIENTS_REJECTED = 0x8004020FL;
		 const LONG CDO_E_NNTP_POST_FAILED = 0x80040210L;
		 const LONG CDO_E_SMTP_SEND_FAILED = 0x80040211L;
		 const LONG CDO_E_CONNECTION_DROPPED = 0x80040212L;
		 const LONG CDO_E_FAILED_TO_CONNECT = 0x80040213L;
		 const LONG CDO_E_INVALID_POST = 0x80040214L;
		 const LONG CDO_E_AUTHENTICATION_FAILURE = 0x80040215L;
		 const LONG CDO_E_INVALID_CONTENT_TYPE = 0x80040216L;
		 const LONG CDO_E_LOGON_FAILURE = 0x80040217L;
		 const LONG CDO_E_HTTP_NOT_FOUND = 0x80040218L;
		 const LONG CDO_E_HTTP_FORBIDDEN = 0x80040219L;
		 const LONG CDO_E_HTTP_FAILED = 0x8004021AL;
		 const LONG CDO_E_MULTIPART_NO_DATA = 0x8004021BL;
		 const LONG CDO_E_INVALID_ENCODING_FOR_MULTIPART = 0x8004021CL;
		 const LONG CDO_E_PROP_NOT_FOUND = 0x8004021EL;
		 const LONG CDO_E_INVALID_SEND_OPTION = 0x80040220L;
		 const LONG CDO_E_INVALID_POST_OPTION = 0x80040221L;
		 const LONG CDO_E_NO_PICKUP_DIR = 0x80040222L;
		 const LONG CDO_E_NOT_ALL_DELETED = 0x80040223L;
		 const LONG CDO_E_PROP_READONLY = 0x80040227L;
		 const LONG CDO_E_PROP_CANNOT_DELETE = 0x80040228L;
		 const LONG CDO_E_BAD_DATA = 0x80040229L;
		 const LONG CDO_E_PROP_NONHEADER = 0x8004022AL;
		 const LONG CDO_E_INVALID_CHARSET = 0x8004022BL;
		 const LONG CDO_E_ADOSTREAM_NOT_BOUND = 0x8004022CL;
		 const LONG CDO_E_CONTENTPROPXML_NOT_FOUND = 0x8004022DL;
		 const LONG CDO_E_CONTENTPROPXML_WRONG_CHARSET = 0x8004022EL;
		 const LONG CDO_E_CONTENTPROPXML_PARSE_FAILED = 0x8004022FL;
		 const LONG CDO_E_CONTENTPROPXML_CONVERT_FAILED = 0x80040230L;
		 const LONG CDO_E_NO_DIRECTORIES_SPECIFIED = 0x80040231L;
		 const LONG CDO_E_DIRECTORIES_UNREACHABLE = 0x80040232L;
		 const LONG CDO_E_BAD_SENDER = 0x80040233L;
		 const LONG CDO_E_SELF_BINDING = 0x80040234L;
		 const LONG CDO_E_ARGUMENT1 = 0x80044000L;
		 const LONG CDO_E_ARGUMENT2 = 0x80044001L;
		 const LONG CDO_E_ARGUMENT3 = 0x80044002L;
		 const LONG CDO_E_ARGUMENT4 = 0x80044003L;
		 const LONG CDO_E_ARGUMENT5 = 0x80044004L;
		 const LONG CDO_E_NOT_FOUND = 0x800CCE05L;
		 const LONG CDO_E_INVALID_ENCODING_TYPE = 0x800CCE1DL;

 	};
interface IBodyParts;
interface IMessages;

[ uuid(CD000001-8B95-11D1-82DB-00C04FB1625D), helpstring("Message Class") ] coclass Message
{
	[default] interface IMessage;
	interface IDataSource;
	interface IBodyPart;
};

[ uuid(CD000002-8B95-11D1-82DB-00C04FB1625D), helpstring("Config Class") ] coclass Configuration
{
	[default] interface IConfiguration;
};

[ uuid(CD000004-8B95-11D1-82DB-00C04FB1625D), helpstring("DropDirectory Class") ] coclass DropDirectory
{
	[default] interface IDropDirectory;
};

[ uuid(CD000008-8B95-11D1-82DB-00C04FB1625D), helpstring("SMTPConnector Class"), hidden ] coclass SMTPConnector
{
	[default] interface ISMTPScriptConnector;
	[default,source] interface ISMTPOnArrival;
};
[ uuid(CD000011-8B95-11D1-82DB-00C04FB1625D), helpstring("NNTPEarlyConnector Class"), hidden ] coclass NNTPEarlyConnector
{
	[default] interface INNTPEarlyScriptConnector;
	[default,source] interface INNTPOnPostEarly;
};
[ uuid(CD000009-8B95-11D1-82DB-00C04FB1625D), helpstring("NNTPPostConnector Class"), hidden ] coclass NNTPPostConnector
{
	[default] interface INNTPPostScriptConnector;
	[default,source] interface INNTPOnPost;
};
[ uuid(CD000010-8B95-11D1-82DB-00C04FB1625D), helpstring("NNTPFinalConnector Class"), hidden ] coclass NNTPFinalConnector
{
	[default] interface INNTPFinalScriptConnector;
	[default,source] interface INNTPOnPostFinal;
};

};