Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

300 lines (250 sloc) 7.114 kb
/*
* 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);")
Jump to Line
Something went wrong with that request. Please try again.