300 lines
6.9 KiB
Plaintext
300 lines
6.9 KiB
Plaintext
/*
|
|
* 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);")
|