/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // This idl will be compiled by MIDL. MS-COM is used // as bridge between MAPI clients and the Mozilla. import "unknwn.idl"; typedef wchar_t LOGIN_PW_TYPE[256]; typedef struct { unsigned long ulReserved; unsigned long flFlags; /* Flags */ unsigned long nPosition_NotUsed; /* character in text to be replaced by attachment */ LPTSTR lpszPathName; /* Full path name including file name */ LPTSTR lpszFileName; /* Real (original) file name */ unsigned char * lpFileType_NotUsed ; } nsMapiFileDesc, * lpnsMapiFileDesc; typedef struct { unsigned long ulReserved; unsigned long ulRecipClass; /* MAPI_TO, MAPI_CC, MAPI_BCC, MAPI_ORIG */ LPSTR lpszName; /* Recipient name to display */ LPSTR lpszAddress; /* Recipient email address */ unsigned long ulEIDSize_NotUsed; unsigned char * lpEntryID_NotUsed ; } nsMapiRecipDesc, * lpnsMapiRecipDesc; typedef struct { unsigned long ulReserved; LPSTR lpszSubject; /* Message Subject */ LPSTR lpszNoteText; /* Message Text */ LPSTR lpszMessageType; LPSTR lpszDateReceived; /* in YYYY/MM/DD HH:MM format */ LPSTR lpszConversationID_NotUsed; /* conversation thread ID */ unsigned long flFlags; /* unread,return receipt */ lpnsMapiRecipDesc lpOriginator; /* Originator descriptor */ unsigned long nRecipCount; /* Number of recipients */ [size_is (nRecipCount)] lpnsMapiRecipDesc lpRecips;/* Recipient descriptors */ unsigned long nFileCount; /* # of file attachments */ [size_is (nFileCount)] lpnsMapiFileDesc lpFiles; /* Attachment descriptors */ } nsMapiMessage, * lpnsMapiMessage; [ object, uuid(6EDCD38E-8861-11d5-A3DD-00B0D0F3BAA7), helpstring("nsIMapi Inteface"), pointer_default(unique) ] interface nsIMapi : IUnknown { HRESULT Login([in] unsigned long aUIArg, [in, unique] LOGIN_PW_TYPE aLogin, [in, unique] LOGIN_PW_TYPE aPassWord, [in] unsigned long aFlags, [out] unsigned long *aSessionId); HRESULT Initialize(); HRESULT IsValid(); HRESULT IsValidSession([in] unsigned long aSession); HRESULT SendMail([in] unsigned long aSession, [in, unique] lpnsMapiMessage aMessage, [in] short aRecipCount, [in, size_is(aRecipCount)] lpnsMapiRecipDesc aRecips, [in] short aFileCount, [in, size_is(aFileCount)] lpnsMapiFileDesc aFiles, [in] unsigned long aFlags, [in] unsigned long aReserved) ; HRESULT SendDocuments( [in] unsigned long aSession, [in, unique] LPTSTR aDelimChar, [in, unique] LPTSTR aFilePaths, [in, unique] LPTSTR aFileNames, [in] ULONG aFlags ) ; HRESULT FindNext( [in] unsigned long aSession, [in] ULONG ulUIParam, [in, unique] LPTSTR lpszMessageType, [in, unique] LPTSTR lpszSeedMessageID, [in] ULONG flFlags, [in] ULONG ulReserved, [in] [out] char lpszMessageID[64] ) ; HRESULT ReadMail( [in] unsigned long lhSession, [in] ULONG ulUIParam, [in, unique] LPTSTR lpszMessageID, [in] ULONG flFlags, [in] ULONG ulReserved, [out] lpnsMapiMessage *lppMessage); HRESULT DeleteMail( [in] unsigned long lhSession, [in] ULONG ulUIParam, [in, unique] LPTSTR lpszMessageID, [in] ULONG flFlags, [in] ULONG ulReserved); HRESULT SaveMail( [in] unsigned long lhSession, [in] ULONG ulUIParam, [in, unique] lpnsMapiMessage lppMessage, [in] ULONG flFlags, [in] ULONG ulReserved, [in, unique] LPTSTR lpszMessageID); HRESULT Logoff (unsigned long aSession); HRESULT CleanUp(); };