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);")