| /* |
| * Copyright 2006 Robert Shearman for CodeWeavers |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| import "objidl.idl"; |
| |
| interface IImnAccount; |
| |
| cpp_quote("#ifndef HR_E") |
| cpp_quote("#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)") |
| cpp_quote("#endif") |
| cpp_quote("#ifndef HR_S") |
| cpp_quote("#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)") |
| cpp_quote("#endif") |
| |
| typedef enum tagSMTPAUTHTYPE |
| { |
| SMTP_AUTH_NONE, |
| SMTP_AUTH_SICILY, |
| SMTP_AUTH_USE_POP3ORIMAP_SETTINGS, |
| SMTP_AUTH_USE_SMTP_SETTINGS, |
| } SMTPAUTHTYPE; |
| |
| const SHORT CCHMAX_ORG_NAME = 256; |
| const SHORT CCHMAX_DISPLAY_NAME = 256; |
| const SHORT CCHMAX_ACCOUNT_NAME = 256; |
| const SHORT CCHMAX_SERVER_NAME = 256; |
| const SHORT CCHMAX_PASSWORD = 256; |
| const SHORT CCHMAX_USERNAME = 256; |
| const SHORT CCHMAX_EMAIL_ADDRESS = 256; |
| const SHORT CCHMAX_CONNECTOID = 256; |
| const SHORT CCHMAX_SEARCH_BASE = 256; |
| const SHORT CCHMAX_ROOT_FOLDER = 256; |
| const SHORT CCHMAX_SIGNATURE = 16; |
| const SHORT CCHMAX_SERVICE = 256; |
| |
| [ |
| object, |
| uuid(0A06BD31-166F-11D0-81B9-00C04FD85AB4), |
| pointer_default(unique) |
| ] |
| interface IImnAdviseAccount : IUnknown |
| { |
| typedef enum |
| { |
| ACCT_NEWS, |
| ACCT_MAIL, |
| ACCT_DIR_SERV, |
| ACCT_LAST |
| } ACCTTYPE; |
| |
| typedef struct tagAccountContext |
| { |
| ACCTTYPE AcctType; |
| LPSTR pszAccountID; |
| LPSTR pszOldName; |
| DWORD dwServerType; |
| } ACTX; |
| |
| HRESULT AdviseAccount( |
| [in] DWORD dwAdviseType, |
| [in] ACTX *pAcctCtx); |
| } |
| |
| [ |
| object, |
| uuid(8D0AED11-1638-11D0-81B9-00C04FD85AB4), |
| pointer_default(unique) |
| ] |
| interface IImnAdviseMigrateServer : IUnknown |
| { |
| HRESULT MigrateServer( |
| [in] DWORD dwSrvType, |
| [in] IImnAccount *pAccount); |
| } |
| |
| [ |
| object, |
| uuid(FD465483-1384-11D0-ABBD-0020AFDFD10A), |
| pointer_default(unique) |
| ] |
| interface IImnEnumAccounts : IUnknown |
| { |
| HRESULT GetCount( |
| [out] ULONG *pcItems); |
| |
| HRESULT SortByAccountName(); |
| |
| HRESULT GetNext( |
| [out] IImnAccount **ppAccount); |
| |
| HRESULT Reset(); |
| } |
| |
| [ |
| object, |
| uuid(FD465481-1384-11D0-ABBD-0020AFDFD10A), |
| pointer_default(unique) |
| ] |
| interface IImnAccountManager : IUnknown |
| { |
| typedef struct tagACCTLISTINFO |
| { |
| DWORD cbSize; |
| ACCTTYPE AcctTypeInit; |
| DWORD dwAcctFlags; |
| DWORD dwFlags; |
| } ACCTLISTINFO; |
| |
| HRESULT Init( |
| [in] IImnAdviseMigrateServer *pAdviseMigrateServer); |
| |
| HRESULT CreateAccountObject( |
| [in] ACCTTYPE AcctType, |
| [out] IImnAccount **ppAccount); |
| |
| HRESULT Enumerate( |
| [in] DWORD dwSrvTypes, |
| [out] IImnEnumAccounts **ppEnumAccounts); |
| |
| HRESULT GetAccountCount( |
| [in] ACCTTYPE AcctType, |
| [out] ULONG *pcServers); |
| |
| HRESULT FindAccount( |
| [in] DWORD dwPropTag, |
| [in] LPCSTR pszSearchData, |
| [out] IImnAccount **ppAccount); |
| |
| HRESULT GetDefaultAccountName( |
| [in] ACCTTYPE AcctType, |
| [in,ref] LPSTR pszAccount, |
| [in] ULONG cchMax); |
| |
| HRESULT ProcessNotification( |
| [in] UINT uMsg, |
| [in] WPARAM wParam, |
| [in] LPARAM lParam); |
| |
| HRESULT ValidateDefaultSendAccount(); |
| |
| HRESULT AccountListDialog( |
| [in] HWND hwnd, |
| [in] ACCTLISTINFO *pinfo); |
| |
| HRESULT Advise( |
| [in] IImnAdviseAccount *pAdviseAccount, |
| [out] DWORD *pdwConnection); |
| |
| HRESULT Unadvise( |
| [in] DWORD dwConnection); |
| |
| HRESULT GetUniqueAccountName( |
| [in] LPSTR szName, |
| [in] UINT cch); |
| |
| HRESULT InitEx( |
| [in] IImnAdviseMigrateServer *pAdviseMigrateServer, |
| [in] DWORD dwFlags); |
| } |
| |
| [ |
| object, |
| uuid(C43DFC6F-62BB-11D2-A727-00C04F79E7C8), |
| pointer_default(unique) |
| ] |
| interface IImnAccountManager2 : IImnAccountManager |
| { |
| HRESULT InitUser( |
| [in] IImnAdviseMigrateServer *pAdviseMigrateServer, |
| [in] REFGUID rguidID, |
| [in] DWORD dwFlags); |
| |
| HRESULT GetIncompleteAccount( |
| [in] ACCTTYPE AcctType, |
| [in,ref] LPSTR pszAccountId, |
| [in] ULONG cchMax); |
| |
| HRESULT SetIncompleteAccount( |
| [in] ACCTTYPE AcctType, |
| [in] LPCSTR pszAccountId); |
| } |
| |
| [ |
| object, |
| uuid(FD465484-1384-11D0-ABBD-0020AFDFD10A), |
| pointer_default(unique) |
| ] |
| interface IPropertyContainer : IUnknown |
| { |
| typedef enum |
| { |
| TYPE_ERROR = 1000, |
| TYPE_DWORD, |
| TYPE_LONG, |
| TYPE_WORD, |
| TYPE_SHORT, |
| TYPE_BYTE, |
| TYPE_CHAR, |
| TYPE_FILETIME, |
| TYPE_STRING, |
| TYPE_BINARY, |
| TYPE_FLAGS, |
| TYPE_STREAM, |
| TYPE_WSTRING, |
| TYPE_BOOL, |
| TYPE_PASS, |
| TYPE_LAST |
| } PROPTYPE; |
| |
| cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") |
| cpp_quote("#undef GetProp") |
| cpp_quote("#undef SetProp") |
| cpp_quote("#endif") |
| |
| HRESULT GetProp( |
| [in] DWORD dwPropTag, |
| [in,size_is(*pcb),ref] BYTE *pb, |
| [in] ULONG *pcb); |
| |
| HRESULT GetPropDw( |
| [in] DWORD dwPropTag, |
| [out] DWORD *pdw); |
| |
| HRESULT GetPropSz( |
| [in] DWORD dwPropTag, |
| [in,ref] LPSTR psz, |
| [in] ULONG cchMax); |
| |
| HRESULT SetProp( |
| [in] DWORD dwPropTag, |
| [in,size_is(cb)] BYTE *pb, |
| [in] ULONG cb); |
| |
| HRESULT SetPropDw( |
| [in] DWORD dwPropTag, |
| [in] DWORD dw); |
| |
| HRESULT SetPropSz( |
| [in] DWORD dwPropTag, |
| [in] LPSTR psz); |
| } |
| |
| [ |
| object, |
| uuid(FD465482-1384-11D0-ABBD-0020AFDFD10A), |
| pointer_default(unique) |
| ] |
| interface IImnAccount : IPropertyContainer |
| { |
| HRESULT Exist(); |
| |
| HRESULT SetAsDefault(); |
| |
| HRESULT Delete(); |
| |
| HRESULT SaveChanges(); |
| |
| HRESULT GetAccountType( |
| [out] ACCTTYPE *pAcctType); |
| |
| HRESULT GetServerTypes( |
| [out] DWORD *pdwSrvTypes); |
| |
| HRESULT ShowProperties( |
| [in] HWND hwnd, |
| [in] DWORD dwFlags); |
| |
| HRESULT ValidateProperty( |
| [in] DWORD dwPropTag, |
| [in,size_is(cb)] BYTE *pb, |
| [in] ULONG cb); |
| |
| HRESULT DoWizard( |
| [in] HWND hwnd, |
| [in] DWORD dwFlags); |
| |
| HRESULT DoImportWizard( |
| [in] HWND hwnd, |
| [in] CLSID clsid, |
| [in] DWORD dwFlags); |
| } |
| |
| cpp_quote("HRESULT WINAPI HrCreateAccountManager(IImnAccountManager **ppAccountManager);") |
| cpp_quote("HRESULT WINAPI ValidEmailAddress(LPSTR lpAddress);") |