include: Add imnact.idl and imnxport.idl.
This commit is contained in:
parent
a54a990b3b
commit
08050758de
|
@ -577,6 +577,8 @@ include/hlink.h
|
|||
include/htiframe.h
|
||||
include/iads.h
|
||||
include/icftypes.h
|
||||
include/imnact.h
|
||||
include/imnxport.h
|
||||
include/indexsrv.h
|
||||
include/mediaobj.h
|
||||
include/mimeinfo.h
|
||||
|
|
|
@ -24,6 +24,8 @@ IDL_H_SRCS = \
|
|||
htiframe.idl \
|
||||
iads.idl \
|
||||
icftypes.idl \
|
||||
imnact.idl \
|
||||
imnxport.idl \
|
||||
indexsrv.idl \
|
||||
mediaobj.idl \
|
||||
mimeinfo.idl \
|
||||
|
|
|
@ -0,0 +1,299 @@
|
|||
/*
|
||||
* 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);")
|
|
@ -0,0 +1,699 @@
|
|||
/*
|
||||
* 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 "imnact.idl";
|
||||
|
||||
interface IInternetTransport;
|
||||
interface ISMTPTransport;
|
||||
interface IPOP3Transport;
|
||||
|
||||
/* CLSIDs */
|
||||
|
||||
cpp_quote("DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport, 0xfd853ce6, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_IPOP3Transport, 0xfd853ce7, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_INNTPTransport, 0xfd853ce8, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_IRASTransport, 0xfd853ce9, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_IRangeList, 0xfd853cea, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_IIMAPTransport, 0xfd853ceb, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_IHTTPMailTransport, 0x5a580c11, 0xe5eb, 0x11d1, 0xa8, 0x6e, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_IPropFindRequest, 0xbb847b8a, 0x054a, 0x11d2, 0xa8, 0x94, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
|
||||
cpp_quote("DEFINE_GUID(CLSID_IPropPatchRequest, 0xea678830, 0x235d, 0x11d2, 0xa8, 0xb6, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);")
|
||||
|
||||
/* Error Codes */
|
||||
|
||||
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")
|
||||
|
||||
/* General Error Codes */
|
||||
cpp_quote("#define IXP_E_LOAD_SICILY_FAILED HR_E(0xCC00)")
|
||||
cpp_quote("#define IXP_E_INVALID_CERT_CN HR_E(0xCC01)")
|
||||
cpp_quote("#define IXP_E_INVALID_CERT_DATE HR_E(0xCC02)")
|
||||
cpp_quote("#define IXP_E_ALREADY_CONNECTED HR_E(0xCC03)")
|
||||
cpp_quote("#define IXP_E_CONN HR_E(0xCC04)")
|
||||
cpp_quote("#define IXP_E_NOT_CONNECTED HR_E(0xCC05)")
|
||||
cpp_quote("#define IXP_E_CONN_SEND HR_E(0xCC06)")
|
||||
cpp_quote("#define IXP_E_WOULD_BLOCK HR_E(0xCC07)")
|
||||
cpp_quote("#define IXP_E_INVALID_STATE HR_E(0xCC08)")
|
||||
cpp_quote("#define IXP_E_CONN_RECV HR_E(0xCC09)")
|
||||
cpp_quote("#define IXP_E_INCOMPLETE HR_E(0xCC0A)")
|
||||
cpp_quote("#define IXP_E_BUSY HR_E(0xCC0B)")
|
||||
cpp_quote("#define IXP_E_NOT_INIT HR_E(0xCC0C)")
|
||||
cpp_quote("#define IXP_E_CANT_FIND_HOST HR_E(0xCC0D)")
|
||||
cpp_quote("#define IXP_E_FAILED_TO_CONNECT HR_E(0xCC0E)")
|
||||
cpp_quote("#define IXP_E_CONNECTION_DROPPED HR_E(0xCC0F)")
|
||||
cpp_quote("#define IXP_E_INVALID_ADDRESS HR_E(0xCC10)")
|
||||
cpp_quote("#define IXP_E_INVALID_ADDRESS_LIST HR_E(0xCC11)")
|
||||
cpp_quote("#define IXP_E_SOCKET_READ_ERROR HR_E(0xCC12)")
|
||||
cpp_quote("#define IXP_E_SOCKET_WRITE_ERROR HR_E(0xCC13)")
|
||||
cpp_quote("#define IXP_E_SCOKET_INIT_ERROR HR_E(0xCC14)")
|
||||
cpp_quote("#define IXP_E_SOCKET_CONNECT_ERROR HR_E(0xCC15)")
|
||||
cpp_quote("#define IXP_E_INVALID_ACCOUNT HR_E(0xCC16)")
|
||||
cpp_quote("#define IXP_E_USER_CANCEL HR_E(0xCC17)")
|
||||
cpp_quote("#define IXP_E_SICILY_LOGON_FAILED HR_E(0xCC18)")
|
||||
cpp_quote("#define IXP_E_TIMEOUT HR_E(0xCC19)")
|
||||
cpp_quote("#define IXP_E_SECURE_CONNECT_FAILED HR_E(0xCC1A)")
|
||||
|
||||
/* SMTP Failure Statuses */
|
||||
cpp_quote("#define IXP_E_SMTP_RESPONSE_ERROR HR_E(0xCC60)")
|
||||
cpp_quote("#define IXP_E_SMTP_UNKNOWN_RESPONSE_CODE HR_E(0xCC61)")
|
||||
cpp_quote("#define IXP_E_SMTP_500_SYNTAX_ERROR HR_E(0xCC62)")
|
||||
cpp_quote("#define IXP_E_SMTP_501_PARAM_SYNTAX HR_E(0xCC63)")
|
||||
cpp_quote("#define IXP_E_SMTP_502_COMMAND_NOTIMPL HR_E(0xCC64)")
|
||||
cpp_quote("#define IXP_E_SMTP_503_COMMAND_SEQ HR_E(0xCC65)")
|
||||
cpp_quote("#define IXP_E_SMTP_504_COMMAND_PARAM_NOTIMPL HR_E(0xCC66)")
|
||||
cpp_quote("#define IXP_E_SMTP_421_NOT_AVAILABLE HR_E(0xCC67)")
|
||||
cpp_quote("#define IXP_E_SMTP_450_MAILBOX_BUSY HR_E(0xCC68)")
|
||||
cpp_quote("#define IXP_E_SMTP_550_MAILBOX_NOT_FOUND HR_E(0xCC69)")
|
||||
cpp_quote("#define IXP_E_SMTP_451_ERROR_PROCESSING HR_E(0xCC6A)")
|
||||
cpp_quote("#define IXP_E_SMTP_551_USER_NOT_LOCAL HR_E(0xCC6B)")
|
||||
cpp_quote("#define IXP_E_SMTP_452_NO_SYSTEM_STORAGE HR_E(0xCC6C)")
|
||||
cpp_quote("#define IXP_E_SMTP_552_STORAGE_OVERFLOW HR_E(0xCC6D)")
|
||||
cpp_quote("#define IXP_E_SMTP_553_MAILBOX_NAME_SYNTAX HR_E(0xCC6E)")
|
||||
cpp_quote("#define IXP_E_SMTP_554_TRANSACT_FAILED HR_E(0xCC6F)")
|
||||
|
||||
/* SMTP Success Statuses */
|
||||
cpp_quote("#define IXP_E_SMTP_211_SYSTEM_STATUS HR_S(0xCC70)")
|
||||
cpp_quote("#define IXP_E_SMTP_214_HELP_MESSAGE HR_S(0xCC71)")
|
||||
cpp_quote("#define IXP_E_SMTP_220_READY HR_S(0xCC72)")
|
||||
cpp_quote("#define IXP_E_SMTP_221_CLOSING HR_S(0xCC73)")
|
||||
cpp_quote("#define IXP_E_SMTP_250_MAIL_ACTION_OKAY HR_S(0xCC74)")
|
||||
cpp_quote("#define IXP_E_SMTP_251_FORWARDING_MAIL HR_S(0xCC75)")
|
||||
cpp_quote("#define IXP_E_SMTP_354_START_MAIL_INPUT HR_S(0xCC76)")
|
||||
cpp_quote("#define IXP_E_SMTP_CONTINUE HR_S(0xCC77)")
|
||||
cpp_quote("#define IXP_E_SMTP_334_AUTH_READY_RESPONSE HR_S(0xCC78)")
|
||||
cpp_quote("#define IXP_E_SMTP_245_AUTH_SUCCESS HR_S(0xCC79)")
|
||||
|
||||
/* More SMTP Failure Statuses */
|
||||
cpp_quote("#define IXP_E_SMTP_REJECTED_SENDER HR_E(0xCC78)")
|
||||
cpp_quote("#define IXP_E_SMTP_REJECTED_RECIPIENTS HR_E(0xCC79)")
|
||||
cpp_quote("#define IXP_E_SMTP_NO_SENDER HR_E(0xCC7A)")
|
||||
cpp_quote("#define IXP_E_SMTP_NO_RECIPIENTS HR_E(0xCC7B)")
|
||||
cpp_quote("#define IXP_E_SMTP_530_STARTTLS_REQUIRED HR_E(0xCC7C)")
|
||||
cpp_quote("#define IXP_E_SMTP_NO_STARTTLS_SUPPORT HR_E(0xCC7D)")
|
||||
cpp_quote("#define IXP_E_SMTP_NO_DSN_SUPPORT HR_E(0xCC7E)")
|
||||
cpp_quote("#define IXP_E_SMTP_454_STARTTLS_FAILED HR_E(0xCC7F)")
|
||||
|
||||
const SHORT CCHMAX_DOMAIN = 256;
|
||||
const SHORT CCHMAX_PHONE_NUMBER = 128;
|
||||
|
||||
const DWORD DEFAULT_IMAP_PORT = 143;
|
||||
const DWORD DEFAULT_POP3_PORT = 110;
|
||||
const DWORD DEFAULT_SMTP_PORT = 25;
|
||||
const DWORD DEFAULT_NNTP_PORT = 119;
|
||||
|
||||
typedef enum tagINETADDRTYPE
|
||||
{
|
||||
ADDR_TO,
|
||||
ADDR_FROM,
|
||||
ADDR_DSN_NEVER = 16,
|
||||
ADDR_DSN_SUCCESS = 32,
|
||||
ADDR_DSN_FAILURE = 64,
|
||||
ADDR_DSN_DELAY = 128
|
||||
} INETADDRTYPE;
|
||||
|
||||
const DWORD ADDR_TOFROM_MASK = 0x1;
|
||||
const DWORD ADDR_DSN_MASK = 0xf0;
|
||||
|
||||
typedef enum tagDSNRET
|
||||
{
|
||||
DSNRET_DEFAULT,
|
||||
DSNRET_HDRS,
|
||||
DSNRET_FULL,
|
||||
} DSNRET;
|
||||
|
||||
typedef struct tagINETADDR
|
||||
{
|
||||
INETADDRTYPE addrtype;
|
||||
CHAR szEmail[CCHMAX_EMAIL_ADDRESS];
|
||||
} INETADDR, *LPINETADDR;
|
||||
|
||||
typedef struct tagINETADDRLIST
|
||||
{
|
||||
ULONG cAddress;
|
||||
LPINETADDR prgAddress;
|
||||
} INETADDRLIST, *LPINETADDRLIST;
|
||||
|
||||
typedef enum tagRASCONNTYPE
|
||||
{
|
||||
RAS_CONNECT_LAN,
|
||||
RAS_CONNECT_MANUAL,
|
||||
RAS_CONNECT_RAS
|
||||
} RASCONNTYPE;
|
||||
|
||||
typedef enum tagHTTPMAILPROPTYPE
|
||||
{
|
||||
HTTPMAIL_PROP_INVALID,
|
||||
HTTPMAIL_PROP_ADBAR,
|
||||
HTTPMAIL_PROP_CONTACTS,
|
||||
HTTPMAIL_PROP_INBOX,
|
||||
HTTPMAIL_PROP_OUTBOX,
|
||||
HTTPMAIL_PROP_SENDMSG,
|
||||
HTTPMAIL_PROP_SENTITEMS,
|
||||
HTTPMAIL_PROP_DELETEDITEMS,
|
||||
HTTPMAIL_PROP_DRAFTS,
|
||||
HTTPMAIL_PROP_MSGFOLDERROOT,
|
||||
HTTPMAIL_PROP_SIG,
|
||||
HTTPMAIL_PROP_LAST
|
||||
} HTTPMAILPROPTYPE;
|
||||
|
||||
typedef enum tagHTTPMAILSPECIALFOLDER
|
||||
{
|
||||
HTTPMAIL_SF_NONE,
|
||||
HTTPMAIL_SF_UNRECOGNIZED,
|
||||
HTTPMAIL_SF_INBOX,
|
||||
HTTPMAIL_SF_DELETEDITEMS,
|
||||
HTTPMAIL_SF_DRAFTS,
|
||||
HTTPMAIL_SF_OUTBOX,
|
||||
HTTPMAIL_SF_SENTITEMS,
|
||||
HTTPMAIL_SF_CONTACTS,
|
||||
HTTPMAIL_SF_CALENDAR,
|
||||
HTTPMAIL_SF_MSNPROMO,
|
||||
HTTPMAIL_SF_LAST
|
||||
} HTTPMAILSPECIALFOLDER;
|
||||
|
||||
typedef enum tagHTTPMAILCONTACTTYPE
|
||||
{
|
||||
HTTPMAIL_CT_CONTACT,
|
||||
HTTPMAIL_CT_GROUP,
|
||||
HTTPMAIL_CT_LAST
|
||||
} HTTPMAILCONTACTTYPE;
|
||||
|
||||
const DWORD DAVNAMESPACE_UNKNOWN = 0xFFFFFFFF;
|
||||
const DWORD DAVNAMESPACE_DAV = 0;
|
||||
const DWORD DAVNAMESPACE_HOTMAIL = 1;
|
||||
const DWORD DAVNAMESPACE_HTTPMAIL = 2;
|
||||
const DWORD DAVNAMESPACE_MAIL = 3;
|
||||
const DWORD DAVNAMESPACE_CONTACTS = 4;
|
||||
|
||||
cpp_quote("#define ISF_SMTP_USEIPFORHELO 0x01")
|
||||
cpp_quote("#define ISF_ALWAYSPROMPTFORPASSWORD 0x02")
|
||||
/* for SMTP - send EHLO and use STARTTLS if available: */
|
||||
cpp_quote("#define ISF_SSLONSAMEPORT 0x04")
|
||||
cpp_quote("#define ISF_QUERYDSNSUPPORT 0x08")
|
||||
/* for SMTP - send EHLO and use AUTH if available: */
|
||||
cpp_quote("#define ISF_QUERYAUTHSUPPORT 0x10")
|
||||
|
||||
typedef struct INETSERVER
|
||||
{
|
||||
CHAR szAccount[CCHMAX_ACCOUNT_NAME];
|
||||
CHAR szUserName[CCHMAX_USERNAME];
|
||||
CHAR szPassword[CCHMAX_PASSWORD];
|
||||
CHAR szServerName[CCHMAX_SERVER_NAME];
|
||||
CHAR szConnectoid[CCHMAX_CONNECTOID];
|
||||
RASCONNTYPE rasconntype;
|
||||
DWORD dwPort;
|
||||
BOOL fSSL;
|
||||
BOOL fTrySicily;
|
||||
DWORD dwTimeout;
|
||||
DWORD dwFlags;
|
||||
} INETSERVER, *LPINETSERVER;
|
||||
|
||||
typedef enum tagIXPTYPE
|
||||
{
|
||||
IXP_NNTP,
|
||||
IXP_SMTP,
|
||||
IXP_POP3,
|
||||
IXP_IMAP,
|
||||
IXP_RAS,
|
||||
IXP_HTTPMail
|
||||
} IXPTYPE;
|
||||
|
||||
typedef enum tagIXPSTATUS
|
||||
{
|
||||
IXP_FINDINGHOST,
|
||||
IXP_CONNECTING,
|
||||
IXP_SECURING,
|
||||
IXP_CONNECTED,
|
||||
IXP_AUTHORIZING,
|
||||
IXP_AUTHRETRY,
|
||||
IXP_AUTHORIZED,
|
||||
IXP_DISCONNECTING,
|
||||
IXP_DISCONNECTED,
|
||||
IXP_LAST
|
||||
} IXPSTATUS;
|
||||
|
||||
const DWORD DEPTH_INFINITY = 0xFFFFFFFE;
|
||||
|
||||
typedef DWORD MEMBERINFOFLAGS;
|
||||
|
||||
const MEMBERINFOFLAGS HTTP_MEMBERINFO_COMMONPROPS = 0x0;
|
||||
const MEMBERINFOFLAGS HTTP_MEMBERINFO_FOLDERPROPS = 0x1;
|
||||
const MEMBERINFOFLAGS HTTP_MEMBERINFO_MESSAGEPROPS = 0x2;
|
||||
const MEMBERINFOFLAGS HTTP_MEMBERINFO_ALLPROPS = HTTP_MEMBERINFO_FOLDERPROPS | HTTP_MEMBERINFO_MESSAGEPROPS;
|
||||
|
||||
typedef DWORD IMAP_MSGFLAGS;
|
||||
|
||||
const IMAP_MSGFLAGS IMAP_MSG_NOFLAGS = 0x00;
|
||||
const IMAP_MSGFLAGS IMAP_MSG_ANSWERED = 0x01;
|
||||
const IMAP_MSGFLAGS IMAP_MSG_FLAGGED = 0x02;
|
||||
const IMAP_MSGFLAGS IMAP_MSG_DELETED = 0x04;
|
||||
const IMAP_MSGFLAGS IMAP_MSG_SEEN = 0x08;
|
||||
const IMAP_MSGFLAGS IMAP_MSG_DRAFT = 0x10;
|
||||
const IMAP_MSGFLAGS IMAP_MSG_ALLFLAGS = 0x1f;
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(CA30F3FF-C9AC-11D1-9A3A-00C04FA309D4),
|
||||
local
|
||||
]
|
||||
interface ITransportCallbackService : IUnknown
|
||||
{
|
||||
HRESULT GetParentWindow(
|
||||
[in] DWORD dwReserved,
|
||||
[out] HWND *phwndParent);
|
||||
|
||||
HRESULT GetAccount(
|
||||
[out] LPDWORD pdwServerType,
|
||||
[out] IImnAccount **ppAccount);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(0DF2C7E1-3435-11D0-81D0-00C04FD85AB4),
|
||||
local
|
||||
]
|
||||
interface ITransportCallback : IUnknown
|
||||
{
|
||||
typedef struct tagIXPRESULT
|
||||
{
|
||||
HRESULT hrResult;
|
||||
LPSTR pszResponse;
|
||||
UINT uiServerError;
|
||||
HRESULT hrServerError;
|
||||
DWORD dwSocketError;
|
||||
LPSTR pszProblem;
|
||||
} IXPRESULT, *LPIXPRESULT;
|
||||
|
||||
typedef enum tagCMDTYPE
|
||||
{
|
||||
CMD_SEND,
|
||||
CMD_RESP
|
||||
} CMDTYPE;
|
||||
|
||||
HRESULT OnTimeout(
|
||||
[in,out] DWORD *pdwTimeout,
|
||||
[in] IInternetTransport *pTransport);
|
||||
|
||||
HRESULT OnLogonPrompt(
|
||||
[in,out] LPINETSERVER pInetServer,
|
||||
[in] IInternetTransport *pTransport);
|
||||
|
||||
INT OnPrompt(
|
||||
[in] HRESULT hrError,
|
||||
[in] LPCSTR pszText,
|
||||
[in] LPCSTR pszCaption,
|
||||
[in] UINT uType,
|
||||
[in] IInternetTransport *pTransport);
|
||||
|
||||
HRESULT OnStatus(
|
||||
[in] IXPSTATUS ixpstatus,
|
||||
[in] IInternetTransport *pTransport);
|
||||
|
||||
HRESULT OnError(
|
||||
[in] IXPSTATUS ixpstatus,
|
||||
[in] LPIXPRESULT pResult,
|
||||
[in] IInternetTransport *pTransport);
|
||||
|
||||
HRESULT OnCommand(
|
||||
[in] CMDTYPE cmdtype,
|
||||
[in] LPSTR pszLine,
|
||||
[in] HRESULT hrResponse,
|
||||
[in] IInternetTransport *pTransport);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(1F636C01-364E-11D0-81D3-00C04FD85AB4),
|
||||
local
|
||||
]
|
||||
interface IInternetTransport : IUnknown
|
||||
{
|
||||
const boolean iitAUTHENTICATE = TRUE;
|
||||
const boolean iitDONT_AUTHENTICATe = FALSE;
|
||||
const boolean iitENABLE_ONCOMMAND = TRUE;
|
||||
const boolean iitDISABLE_ONCOMMAND = FALSE;
|
||||
|
||||
typedef enum tagIXPISSTATE
|
||||
{
|
||||
IXP_IS_CONNECTED,
|
||||
IXP_IS_BUSY,
|
||||
IXP_IS_READY,
|
||||
IXP_IS_AUTHENTICATED
|
||||
} IXPISSTATE;
|
||||
|
||||
HRESULT GetServerInfo(
|
||||
[in,out] LPINETSERVER pInetServer);
|
||||
|
||||
IXPTYPE GetIXPType();
|
||||
|
||||
HRESULT IsState(
|
||||
[in] IXPISSTATE isstate);
|
||||
|
||||
HRESULT InetServerFromAccount(
|
||||
[in] IImnAccount *pAccount,
|
||||
[in,out] LPINETSERVER pInetServer);
|
||||
|
||||
HRESULT Connect(
|
||||
[in] LPINETSERVER pInetServer,
|
||||
[in] boolean fAuthenticate,
|
||||
[in] boolean fCommandLogging);
|
||||
|
||||
HRESULT HandsOffCallback();
|
||||
|
||||
HRESULT Disconnect();
|
||||
|
||||
HRESULT DropConnection();
|
||||
|
||||
HRESULT GetStatus(
|
||||
[out] IXPSTATUS *pCurrentStatus);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(1F636C02-364E-11D0-81D3-00C04FD85AB4),
|
||||
local
|
||||
]
|
||||
interface ISMTPCallback : ITransportCallback
|
||||
{
|
||||
typedef enum tagSMTPCOMMAND
|
||||
{
|
||||
SMTP_NONE,
|
||||
SMTP_BANNER,
|
||||
SMTP_CONNECTED,
|
||||
SMTP_SEND_MESSAGE,
|
||||
SMTP_AUTH,
|
||||
SMTP_EHLO,
|
||||
SMTP_HELO,
|
||||
SMTP_MAIL,
|
||||
SMTP_RCPT,
|
||||
SMTP_RSET,
|
||||
SMTP_QUIT,
|
||||
SMTP_DATA,
|
||||
SMTP_DOT,
|
||||
SMTP_SEND_STREAM,
|
||||
SMTP_CUSTOM
|
||||
} SMTPCOMMAND;
|
||||
|
||||
typedef struct tagSMTPSTREAM
|
||||
{
|
||||
DWORD cbIncrement;
|
||||
DWORD cbCurrent;
|
||||
DWORD cbTotal;
|
||||
} SMTPSTREAM, *LPSMTPSTREAM;
|
||||
|
||||
typedef struct tagSMTPRESPONSE
|
||||
{
|
||||
SMTPCOMMAND command;
|
||||
BOOL fDone;
|
||||
IXPRESULT rIxpResult;
|
||||
ISMTPTransport *pTransport;
|
||||
|
||||
[switch_type(SMTPCOMMAND), switch_is(command)]
|
||||
union
|
||||
{
|
||||
[case(SMTP_SEND_STREAM)] SMTPSTREAM rStreamInfo;
|
||||
[default];
|
||||
};
|
||||
} SMTPRESPONSE, *LPSMTPRESPONSE;
|
||||
|
||||
HRESULT OnResponse(
|
||||
[in] LPSMTPRESPONSE pResponse);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(0DF2C7E2-3435-11D0-81D0-00C04FD85AB4),
|
||||
local
|
||||
]
|
||||
interface ISMTPTransport : IInternetTransport
|
||||
{
|
||||
typedef struct tagSMTPMESSAGE
|
||||
{
|
||||
ULONG cbSize;
|
||||
LPSTREAM pstmMsg;
|
||||
INETADDRLIST rAddressList;
|
||||
} SMTPMESSAGE, *LPSMTPMESSAGE;
|
||||
|
||||
HRESULT InitNew(
|
||||
[in] LPSTR pszLogFilePath,
|
||||
[in] ISMTPCallback *pCallback);
|
||||
|
||||
cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
|
||||
cpp_quote("#undef SendMessage")
|
||||
cpp_quote("#endif")
|
||||
|
||||
HRESULT SendMessage(
|
||||
[in] LPSMTPMESSAGE pMessage);
|
||||
|
||||
HRESULT CommandMAIL(
|
||||
[in] LPSTR pszEmailFrom);
|
||||
|
||||
HRESULT CommandRCPT(
|
||||
[in] LPSTR pszEmailTo);
|
||||
|
||||
HRESULT CommandEHLO();
|
||||
|
||||
HRESULT CommandHELO();
|
||||
|
||||
HRESULT CommandAUTH(
|
||||
[in] LPSTR pszAuthType);
|
||||
|
||||
HRESULT CommandQUIT();
|
||||
|
||||
HRESULT CommandRSET();
|
||||
|
||||
HRESULT CommandDATA();
|
||||
|
||||
HRESULT CommandDOT();
|
||||
|
||||
HRESULT SendDataStream(
|
||||
[in] IStream *pStream,
|
||||
[in] ULONG cbSize);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(0DF2C7EC-3435-11D0-81D0-00C04FD85AB4),
|
||||
local
|
||||
]
|
||||
interface ISMTPTransport2 : ISMTPTransport
|
||||
{
|
||||
typedef struct tagSMTPMESSAGE2
|
||||
{
|
||||
SMTPMESSAGE smtpMsg;
|
||||
LPSTR pszDSNENVID;
|
||||
DSNRET dsnRet;
|
||||
DWORD dwReserved;
|
||||
DWORD dwReserved2;
|
||||
} SMTPMESSAGE2, *LPSMTPMESSAGE2;
|
||||
|
||||
HRESULT SetWindow();
|
||||
|
||||
HRESULT ResetWindow();
|
||||
|
||||
HRESULT SendMessage2(
|
||||
[in] LPSMTPMESSAGE2 pMessage);
|
||||
|
||||
HRESULT CommandRCPT2(
|
||||
[in] LPSTR pszEmailTo,
|
||||
[in] INETADDRTYPE atDSN);
|
||||
}
|
||||
|
||||
/* FIXME: IDAVNamespaceArbiter, IPropPatchRequest, IPropFindRequest, IPropFindMultiResponse, IPropFindResponse, IHTTPMailCallback, IHTTPMailTransport */
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(0DF2C7E3-3435-11D0-81D0-00C04FD85AB4),
|
||||
local
|
||||
]
|
||||
interface IPOP3Callback : ITransportCallback
|
||||
{
|
||||
typedef enum tagPOP3COMMAND
|
||||
{
|
||||
POP3_NONE,
|
||||
POP3_BANNER,
|
||||
POP3_CONNECTED,
|
||||
POP3_USER,
|
||||
POP3_PASS,
|
||||
POP3_AUTH,
|
||||
POP3_UIDL,
|
||||
POP3_STAT,
|
||||
POP3_LIST,
|
||||
POP3_DELE,
|
||||
POP3_RETR,
|
||||
POP3_TOP,
|
||||
POP3_NOOP,
|
||||
POP3_QUIT,
|
||||
POP3_RSET,
|
||||
POP3_CUSTOM
|
||||
} POP3COMMAND;
|
||||
|
||||
typedef struct tagPOP3RETR
|
||||
{
|
||||
BOOL fHeader;
|
||||
BOOL fBody;
|
||||
DWORD dwPopId;
|
||||
DWORD cbSoFar;
|
||||
LPSTR pszLines;
|
||||
ULONG cbLines;
|
||||
} POP3RETR, *LPPOP3RETR;
|
||||
|
||||
typedef struct tagPOP3TOP
|
||||
{
|
||||
BOOL fHeader;
|
||||
BOOL fBody;
|
||||
DWORD dwPopId;
|
||||
DWORD cPreviewLines;
|
||||
DWORD cbSoFar;
|
||||
LPSTR pszLines;
|
||||
ULONG cbLines;
|
||||
} POP3TOP, *LPPOP3TOP;
|
||||
|
||||
typedef struct tagPOP3LIST
|
||||
{
|
||||
DWORD dwPopId;
|
||||
DWORD cbSize;
|
||||
} POP3LIST, *LPPOP3LIST;
|
||||
|
||||
typedef struct tagPOP3UIDL
|
||||
{
|
||||
DWORD dwPopId;
|
||||
LPSTR pszUidl;
|
||||
} POP3UIDL, *LPPOP3UIDL;
|
||||
|
||||
typedef struct tagPOP3STAT
|
||||
{
|
||||
DWORD cMessages;
|
||||
DWORD cbMessages;
|
||||
} POP3STAT, *LPPOP3STAT;
|
||||
|
||||
typedef struct tagPOP3RESPONSE
|
||||
{
|
||||
POP3COMMAND command;
|
||||
BOOL fDone;
|
||||
IXPRESULT rIxpResult;
|
||||
IPOP3Transport *pTransport;
|
||||
BOOL fValidInfo;
|
||||
[switch_type(POP3COMMAND), switch_is(command)]
|
||||
union
|
||||
{
|
||||
[case(POP3_UIDL)] POP3UIDL rUidlInfo;
|
||||
[case(POP3_STAT)] POP3STAT rStatInfo;
|
||||
[case(POP3_LIST)] POP3LIST rListInfo;
|
||||
[case(POP3_DELE)] DWORD dwPopId;
|
||||
[case(POP3_RETR)] POP3RETR rRetrInfo;
|
||||
[case(POP3_TOP)] POP3TOP rTopInfo;
|
||||
[default];
|
||||
};
|
||||
} POP3RESPONSE, *LPPOP3RESPONSE;
|
||||
|
||||
HRESULT OnResponse(
|
||||
[in] LPPOP3RESPONSE pResponse);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(0DF2C7E4-3435-11D0-81D0-00C04FD85AB4),
|
||||
local
|
||||
]
|
||||
interface IPOP3Transport : IInternetTransport
|
||||
{
|
||||
typedef enum tagPOP3CMDTYPE
|
||||
{
|
||||
POP3CMD_GET_POPID,
|
||||
POP3CMD_GET_MARKED,
|
||||
POP3CMD_GET_ALL
|
||||
} POP3CMDTYPE;
|
||||
|
||||
typedef enum tagPOP3MARKTYPE
|
||||
{
|
||||
POP3_MARK_FOR_TOP = 0x01,
|
||||
POP3_MARK_FOR_RETR = 0x02,
|
||||
POP3_MARK_FOR_DELE = 0x04,
|
||||
POP3_MARK_FOR_UIDL = 0x08,
|
||||
POP3_MARK_FOR_LIST = 0x10
|
||||
} POP3MARKTYPE;
|
||||
|
||||
HRESULT InitNew(
|
||||
[in] LPSTR pszLogFilePath,
|
||||
[in] IPOP3Callback *pCallback);
|
||||
|
||||
HRESULT MarkItem(
|
||||
[in] POP3MARKTYPE marktype,
|
||||
[in] DWORD dwPopId,
|
||||
[in] boolean fMarked);
|
||||
|
||||
HRESULT CommandAUTH(
|
||||
[in] LPSTR pszAuthType);
|
||||
|
||||
HRESULT CommandUSER(
|
||||
[in] LPSTR pszUserName);
|
||||
|
||||
HRESULT CommandPASS(
|
||||
[in] LPSTR pszPassword);
|
||||
|
||||
HRESULT CommandLIST(
|
||||
[in] POP3CMDTYPE cmdtype,
|
||||
[in] DWORD dwPopId);
|
||||
|
||||
HRESULT CommandTOP(
|
||||
[in] POP3CMDTYPE cmdtype,
|
||||
[in] DWORD dwPopId,
|
||||
[in] DWORD cPreviewLines);
|
||||
|
||||
HRESULT CommandQUIT();
|
||||
|
||||
HRESULT CommandSTAT();
|
||||
|
||||
HRESULT CommandNOOP();
|
||||
|
||||
HRESULT CommandRSET();
|
||||
|
||||
HRESULT CommandUIDL(
|
||||
[in] POP3CMDTYPE cmdtype,
|
||||
[in] DWORD dwPopId);
|
||||
|
||||
HRESULT CommandDELE(
|
||||
[in] POP3CMDTYPE cmdtype,
|
||||
[in] DWORD dwPopId);
|
||||
|
||||
HRESULT CommandRETR(
|
||||
[in] POP3CMDTYPE cmdtype,
|
||||
[in] DWORD dwPopId);
|
||||
}
|
||||
|
||||
/* FIXME: INNTPCallback, INNTPTransport */
|
||||
|
||||
/* FIXME: IRangeList */
|
||||
|
||||
/* FIXME: IIMAPCallback, IIMAPTransport */
|
||||
|
||||
#if 0
|
||||
cpp_quote("HRESULT WINAPI CreateRASTransport(IRASTransport **ppTransport);")
|
||||
cpp_quote("HRESULT WINAPI CreateNNTPTransport(INNTPTransport **ppTransport);")
|
||||
cpp_quote("HRESULT WINAPI CreateIMAPTransport(IIMAPTransport **ppTransport);")
|
||||
cpp_quote("HRESULT WINAPI CreateIMAPTransport2(IIMAPTransport2 **ppTransport);")
|
||||
cpp_quote("HRESULT WINAPI CreateRangeList(IRangeList **ppRangeList);")
|
||||
#endif
|
||||
cpp_quote("HRESULT WINAPI CreateSMTPTransport(ISMTPTransport **ppTransport);")
|
||||
cpp_quote("HRESULT WINAPI CreatePOP3Transport(IPOP3Transport **ppTransport);")
|
Loading…
Reference in New Issue