summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/mapi/mapihook/build/msgMapi.idl
blob: e2738ae8e16f6d87fe345589e9a43848974e797f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/* 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 struct
{
    unsigned long   ulReserved;
    unsigned long   flFlags;           /* Flags */
    unsigned long   nPosition_NotUsed; /* character in text to be replaced by attachment */
    LPSTR           lpszPathName;      /* Full path name including file name */
    LPSTR           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;

typedef struct
{
    unsigned long     ulReserved;
    unsigned long     flFlags;               /* Flags */
    unsigned long     nPosition_NotUsed;     /* character in text to be replaced by attachment */
    LPWSTR            lpszPathName;          /* Full path name including file name */
    LPWSTR            lpszFileName;          /* Real (original) file name */
    unsigned char*    lpFileType_NotUsed;
} nsMapiFileDescW, *lpnsMapiFileDescW;

typedef struct
{
    unsigned long      ulReserved;
    unsigned long      ulRecipClass;  /* MAPI_TO, MAPI_CC, MAPI_BCC, MAPI_ORIG    */
    LPWSTR             lpszName;      /* Recipient name to display */
    LPWSTR             lpszAddress;   /* Recipient email address */
    unsigned long      ulEIDSize_NotUsed;
    unsigned char*     lpEntryID_NotUsed;
} nsMapiRecipDescW, *lpnsMapiRecipDescW;

typedef struct
{
    unsigned long           ulReserved;
    LPWSTR                  lpszSubject;                 /* Message Subject */
    LPWSTR                  lpszNoteText;                /* Message Text */
    LPWSTR                  lpszMessageType;
    LPWSTR                  lpszDateReceived;            /* in YYYY/MM/DD HH:MM format */
    LPWSTR                  lpszConversationID_NotUsed;  /* conversation thread ID */
    unsigned long           flFlags;                     /* unread,return receipt */
    lpnsMapiRecipDescW      lpOriginator;                /* Originator descriptor  */
    unsigned long           nRecipCount;                 /* Number of recipients   */
    [size_is (nRecipCount)] lpnsMapiRecipDescW lpRecips; /* Recipient descriptors  */
    unsigned long           nFileCount;                  /* # of file attachments  */
    [size_is (nFileCount)]  lpnsMapiFileDescW lpFiles;   /* Attachment descriptors */
} nsMapiMessageW, *lpnsMapiMessageW;

[
    object,
    uuid(6EDCD38E-8861-11d5-A3DD-00B0D0F3BAA7),
    helpstring("nsIMapi Interface"),
    pointer_default(unique)
]

interface nsIMapi : IUnknown
{
    HRESULT Login([in] unsigned long aUIArg, [in, unique, max_is(256)] LPSTR aLogin,
                  [in, unique, max_is(256)] LPSTR 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] unsigned long aFlags, [in] unsigned long aReserved) ;

    HRESULT SendDocuments([in] unsigned long aSession,
                          [in, unique] LPSTR aDelimChar, [in, unique] LPSTR aFilePaths,
                          [in, unique] LPSTR aFileNames, [in] ULONG aFlags);

    HRESULT FindNext([in] unsigned long aSession, [in] ULONG ulUIParam, [in, unique] const LPSTR lpszMessageType,
                     [in, unique] const LPSTR lpszSeedMessageID, [in] ULONG flFlags, [in] ULONG ulReserved,
                     [in] [out] char lpszMessageID[64] ) ;

    HRESULT ReadMail([in] unsigned long lhSession, [in] ULONG ulUIParam, [in, unique] LPSTR lpszMessageID,
                     [in] ULONG flFlags, [in] ULONG ulReserved, [out] lpnsMapiMessage *lppMessage);

    HRESULT DeleteMail([in] unsigned long lhSession, [in] ULONG ulUIParam, [in, unique] LPSTR 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] LPSTR lpszMessageID);

    HRESULT SendMailW([in] unsigned long aSession, [in, unique] lpnsMapiMessageW aMessage,
                      [in] unsigned long aFlags, [in] unsigned long aReserved);

    HRESULT Logoff(unsigned long aSession);
    HRESULT CleanUp();
};