wine/include/imnact.idl
2007-11-05 12:04:58 +01:00

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