2 * Copyright 2006 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
21 interface IImnAccount
;
23 cpp_quote
("#ifndef HR_E")
24 cpp_quote
("#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)")
26 cpp_quote
("#ifndef HR_S")
27 cpp_quote
("#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)")
30 typedef enum tagSMTPAUTHTYPE
34 SMTP_AUTH_USE_POP3ORIMAP_SETTINGS
,
35 SMTP_AUTH_USE_SMTP_SETTINGS
,
38 const SHORT CCHMAX_ORG_NAME
= 256;
39 const SHORT CCHMAX_DISPLAY_NAME
= 256;
40 const SHORT CCHMAX_ACCOUNT_NAME
= 256;
41 const SHORT CCHMAX_SERVER_NAME
= 256;
42 const SHORT CCHMAX_PASSWORD
= 256;
43 const SHORT CCHMAX_USERNAME
= 256;
44 const SHORT CCHMAX_EMAIL_ADDRESS
= 256;
45 const SHORT CCHMAX_CONNECTOID
= 256;
46 const SHORT CCHMAX_SEARCH_BASE
= 256;
47 const SHORT CCHMAX_ROOT_FOLDER
= 256;
48 const SHORT CCHMAX_SIGNATURE
= 16;
49 const SHORT CCHMAX_SERVICE
= 256;
53 uuid(0A06BD31
-166F
-11D0
-81B9
-00C04FD85AB4
),
54 pointer_default(unique)
56 interface IImnAdviseAccount
: IUnknown
66 typedef struct tagAccountContext
74 HRESULT AdviseAccount
(
75 [in] DWORD dwAdviseType
,
81 uuid(8D0AED11
-1638-11D0
-81B9
-00C04FD85AB4
),
82 pointer_default(unique)
84 interface IImnAdviseMigrateServer
: IUnknown
86 HRESULT MigrateServer
(
88 [in] IImnAccount
*pAccount
);
93 uuid(FD465483
-1384-11D0
-ABBD
-0020AFDFD10A
),
94 pointer_default(unique)
96 interface IImnEnumAccounts
: IUnknown
99 [out] ULONG
*pcItems
);
101 HRESULT SortByAccountName
();
104 [out] IImnAccount
**ppAccount
);
111 uuid(FD465481
-1384-11D0
-ABBD
-0020AFDFD10A
),
112 pointer_default(unique)
114 interface IImnAccountManager
: IUnknown
116 typedef struct tagACCTLISTINFO
119 ACCTTYPE AcctTypeInit
;
125 [in] IImnAdviseMigrateServer
*pAdviseMigrateServer
);
127 HRESULT CreateAccountObject
(
128 [in] ACCTTYPE AcctType
,
129 [out] IImnAccount
**ppAccount
);
132 [in] DWORD dwSrvTypes
,
133 [out] IImnEnumAccounts
**ppEnumAccounts
);
135 HRESULT GetAccountCount
(
136 [in] ACCTTYPE AcctType
,
137 [out] ULONG
*pcServers
);
140 [in] DWORD dwPropTag
,
141 [in] LPCSTR pszSearchData
,
142 [out] IImnAccount
**ppAccount
);
144 HRESULT GetDefaultAccountName
(
145 [in] ACCTTYPE AcctType
,
146 [in,ref] LPSTR pszAccount
,
149 HRESULT ProcessNotification
(
154 HRESULT ValidateDefaultSendAccount
();
156 HRESULT AccountListDialog
(
158 [in] ACCTLISTINFO
*pinfo
);
161 [in] IImnAdviseAccount
*pAdviseAccount
,
162 [out] DWORD
*pdwConnection
);
165 [in] DWORD dwConnection
);
167 HRESULT GetUniqueAccountName
(
172 [in] IImnAdviseMigrateServer
*pAdviseMigrateServer
,
178 uuid(C43DFC6F
-62BB
-11D2
-A727
-00C04F79E7C8
),
179 pointer_default(unique)
181 interface IImnAccountManager2
: IImnAccountManager
184 [in] IImnAdviseMigrateServer
*pAdviseMigrateServer
,
185 [in] REFGUID rguidID
,
188 HRESULT GetIncompleteAccount
(
189 [in] ACCTTYPE AcctType
,
190 [in,ref] LPSTR pszAccountId
,
193 HRESULT SetIncompleteAccount
(
194 [in] ACCTTYPE AcctType
,
195 [in] LPCSTR pszAccountId
);
200 uuid(FD465484
-1384-11D0
-ABBD
-0020AFDFD10A
),
201 pointer_default(unique)
203 interface IPropertyContainer
: IUnknown
225 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
226 cpp_quote
("#undef GetProp")
227 cpp_quote
("#undef SetProp")
231 [in] DWORD dwPropTag
,
232 [in,size_is(*pcb
),ref] BYTE *pb
,
236 [in] DWORD dwPropTag
,
240 [in] DWORD dwPropTag
,
245 [in] DWORD dwPropTag
,
246 [in,size_is(cb
)] BYTE *pb
,
250 [in] DWORD dwPropTag
,
254 [in] DWORD dwPropTag
,
260 uuid(FD465482
-1384-11D0
-ABBD
-0020AFDFD10A
),
261 pointer_default(unique)
263 interface IImnAccount
: IPropertyContainer
267 HRESULT SetAsDefault
();
271 HRESULT SaveChanges
();
273 HRESULT GetAccountType
(
274 [out] ACCTTYPE
*pAcctType
);
276 HRESULT GetServerTypes
(
277 [out] DWORD
*pdwSrvTypes
);
279 HRESULT ShowProperties
(
283 HRESULT ValidateProperty
(
284 [in] DWORD dwPropTag
,
285 [in,size_is(cb
)] BYTE *pb
,
292 HRESULT DoImportWizard
(
298 cpp_quote
("HRESULT WINAPI HrCreateAccountManager(IImnAccountManager **ppAccountManager);")
299 cpp_quote
("HRESULT WINAPI ValidEmailAddress(LPSTR lpAddress);")