windows-nt/Source/XPSP1/NT/public/sdk/inc/imnact.idl
2020-09-26 16:20:57 +08:00

749 lines
35 KiB
Plaintext

// --------------------------------------------------------------------------------
// Imnact.idl
// Copyright (c)1993-1998 Microsoft Corporation, All Rights Reserved
// Steven J. Bailey
// --------------------------------------------------------------------------------
import "objidl.idl";
interface IImnAccount;
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// Imnact.h")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.")
cpp_quote("//")
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
cpp_quote("// PARTICULAR PURPOSE.")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("")
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
cpp_quote("")
cpp_quote("//---------------------------------------------------------------------------=")
cpp_quote("// Internet Mail and News Account Manager Interfaces.")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// GUIDS")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#if !defined( WIN16 ) || defined( __cplusplus )")
cpp_quote("// {8D4B04E1-1331-11d0-81B8-00C04FD85AB4}")
cpp_quote("DEFINE_GUID(CLSID_ImnAccountManager, 0x8d4b04e1, 0x1331, 0x11d0, 0x81, 0xb8, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("")
cpp_quote("// {FD465484-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("DEFINE_GUID(IID_IPropertyContainer, 0xfd465484, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);")
cpp_quote("")
cpp_quote("// {FD465481-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("DEFINE_GUID(IID_IImnAccountManager, 0xfd465481, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);")
cpp_quote("")
cpp_quote("// {C43DFC6F-62BB-11d2-A727-00C04F79E7C8}")
cpp_quote("DEFINE_GUID(IID_IImnAccountManager2, 0xc43dfc6f, 0x62bb, 0x11d2, 0xa7, 0x27, 0x0, 0xc0, 0x4f, 0x79, 0xe7, 0xc8);")
cpp_quote("")
cpp_quote("// {FD465482-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("DEFINE_GUID(IID_IImnAccount, 0xfd465482, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);")
cpp_quote("")
cpp_quote("// {FD465483-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("DEFINE_GUID(IID_IImnEnumAccounts, 0xfd465483, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);")
cpp_quote("")
cpp_quote("// {8D0AED11-1638-11d0-81B9-00C04FD85AB4}")
cpp_quote("DEFINE_GUID(IID_IImnAdviseMigrateServer, 0x8d0aed11, 0x1638, 0x11d0, 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("")
cpp_quote("// {0A06BD31-166F-11d0-81B9-00C04FD85AB4}")
cpp_quote("DEFINE_GUID(IID_IImnAdviseAccount, 0xa06bd31, 0x166f, 0x11d0, 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("")
cpp_quote("#endif //!WIN16 || __cplusplus")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// Exported C Functions")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#if !defined(_IMNACCT_)")
cpp_quote("#define IMNACCTAPI DECLSPEC_IMPORT HRESULT WINAPI")
cpp_quote("#define IMNACCTAPI_(_type_) DECLSPEC_IMPORT _type_ WINAPI")
cpp_quote("#else")
cpp_quote("#define IMNACCTAPI HRESULT WINAPI")
cpp_quote("#define IMNACCTAPI_(_type_) _type_ WINAPI")
cpp_quote("#endif")
cpp_quote("#ifdef __cplusplus")
cpp_quote("extern \"C\" {")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("IMNACCTAPI HrCreateAccountManager(IImnAccountManager **ppAccountManager);")
cpp_quote("IMNACCTAPI ValidEmailAddress(LPSTR lpAddress);")
cpp_quote("")
cpp_quote("#ifdef __cplusplus")
cpp_quote("}")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// Errors")
cpp_quote("// --------------------------------------------------------------------------------")
//;begin_internal
//
// NOTE: All inetcomm error codes must reside between CC00 and CFFF (a 1k block).
// This has been approved by Johann Posch (johannp)
// We further subdevide this range as follows:
// CC00-CCFF IMNXPORT results
// CD00-CDFF IMNACCT results
// CE00-CEFF MIMEOLE results
// CF00-CFFF undefined, do not use
// (t-erikne 03/24/97)
//
//;end_internal
cpp_quote("#ifndef FACILITY_INTERNET")
cpp_quote("#define FACILITY_INTERNET 12")
cpp_quote("#endif")
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")
cpp_quote("#ifndef HR_CODE")
cpp_quote("#define HR_CODE(hr) (INT)(hr & 0xffff)")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// General Errors")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define E_RegCreateKeyFailed HR_E(0xCD00)")
cpp_quote("#define E_RegQueryInfoKeyFailed HR_E(0xCD01)")
cpp_quote("#define E_UserCancel HR_E(0xCD02)")
cpp_quote("#define E_RegOpenKeyFailed HR_E(0xCD03)")
cpp_quote("#define E_RegSetValueFailed HR_E(0xCD04)")
cpp_quote("#define E_RegDeleteKeyFailed HR_E(0xCD05)")
cpp_quote("#define E_DuplicateAccountName HR_E(0xCD06)")
cpp_quote("#define S_NonStandardValue HR_S(0xCD07)")
cpp_quote("#define E_InvalidValue HR_E(0xCD08)")
cpp_quote("#define S_AlreadyInitialized HR_S(0xCD09)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// IPropertyContainer Errors")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define E_NoPropData HR_E(0xCDA0)")
cpp_quote("#define E_BufferTooSmall HR_E(0xCDA1)")
cpp_quote("#define E_BadPropType HR_E(0xCDA2)")
cpp_quote("#define E_BufferSizeMismatch HR_E(0xCDA3)")
cpp_quote("#define E_InvalidBooleanValue HR_E(0xCDA4)")
cpp_quote("#define E_InvalidMinMaxValue HR_E(0xCDA5)")
cpp_quote("#define E_PropNotFound HR_E(0xCDA6)")
cpp_quote("#define E_InvalidPropTag HR_E(0xCDA7)")
cpp_quote("#define E_InvalidPropertySet HR_E(0xCDA8)")
cpp_quote("#define E_EnumFinished HR_E(0xCDA9)") //N should be S_FALSE?
cpp_quote("#define S_NoSaveNeeded HR_S(0xCDAA)")
cpp_quote("#define S_PasswordDeleted HR_S(0xCDAB)")
cpp_quote("#define S_PasswordNotFound HR_S(0xCDAC)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// ImnAccountManager errors")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define E_NoAccounts HR_E(0xCDD0)")
cpp_quote("#define E_BadFriendlyName HR_E(0xCDD1)")
cpp_quote("#define E_NoIdentities HR_E(0xCDD2)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// RAS Connection Types")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define CF_AUTO_CONNECT FLAG02 // Automatically connect")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// Property Macros")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define PROPTAG_MASK ((ULONG)0x0000FFFF)")
cpp_quote("#define PROPTAG_TYPE(ulPropTag) (PROPTYPE)(((ULONG)(ulPropTag)) & PROPTAG_MASK)")
cpp_quote("#define PROPTAG_ID(ulPropTag) (((ULONG)(ulPropTag))>>16)")
cpp_quote("#define PROPTAG(ulPropType,ulPropID) ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))")
cpp_quote("#define MAX_PROPID ((ULONG) 0xFFFF)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// IImnAccount Properties")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define AP_FIRST 0X1234")
cpp_quote("// per account properties")
cpp_quote("#define AP_ACCOUNT_NAME PROPTAG(TYPE_STRING, AP_FIRST+1)")
cpp_quote("#define AP_ACCOUNT_FIRST AP_ACCOUNT_NAME")
cpp_quote("#define AP_TEMP_ACCOUNT PROPTAG(TYPE_DWORD, AP_FIRST+3)")
cpp_quote("#define AP_LAST_UPDATED PROPTAG(TYPE_FILETIME, AP_FIRST+4)")
cpp_quote("#define AP_RAS_CONNECTION_TYPE PROPTAG(TYPE_DWORD, AP_FIRST+5)")
cpp_quote("#define AP_RAS_CONNECTOID PROPTAG(TYPE_STRING, AP_FIRST+6)")
cpp_quote("#define AP_RAS_CONNECTION_FLAGS PROPTAG(TYPE_DWORD, AP_FIRST+7)")
cpp_quote("#define AP_ACCOUNT_ID PROPTAG(TYPE_STRING, AP_FIRST+9)")
cpp_quote("#define AP_RAS_BACKUP_CONNECTOID PROPTAG(TYPE_STRING, AP_FIRST+10)")
cpp_quote("#define AP_SERVICE PROPTAG(TYPE_STRING, AP_FIRST+11)")
cpp_quote("#define AP_AVAIL_OFFLINE PROPTAG(TYPE_DWORD, AP_FIRST+12)")
cpp_quote("#define AP_UNIQUE_ID PROPTAG(TYPE_BINARY, AP_FIRST+13)")
cpp_quote("#define AP_SERVER_READ_ONLY PROPTAG(TYPE_BOOL, AP_FIRST+14)")
cpp_quote("#define AP_ACCOUNT_LAST AP_SERVER_READ_ONLY")
cpp_quote("")
cpp_quote("// IMAP properties")
cpp_quote("#define AP_IMAP_SERVER PROPTAG(TYPE_STRING, AP_FIRST+100)")
cpp_quote("#define AP_IMAP_FIRST AP_IMAP_SERVER")
cpp_quote("#define AP_IMAP_USERNAME PROPTAG(TYPE_STRING, AP_FIRST+101)")
cpp_quote("#define AP_IMAP_PASSWORD PROPTAG(TYPE_PASS, AP_FIRST+102)")
cpp_quote("#define AP_IMAP_USE_SICILY PROPTAG(TYPE_BOOL, AP_FIRST+104)")
cpp_quote("#define AP_IMAP_PORT PROPTAG(TYPE_DWORD, AP_FIRST+105)")
cpp_quote("#define AP_IMAP_SSL PROPTAG(TYPE_BOOL, AP_FIRST+106)")
cpp_quote("#define AP_IMAP_TIMEOUT PROPTAG(TYPE_DWORD, AP_FIRST+107)")
cpp_quote("#define AP_IMAP_ROOT_FOLDER PROPTAG(TYPE_STRING, AP_FIRST+108)")
cpp_quote("#define AP_IMAP_DATA_DIR PROPTAG(TYPE_STRING, AP_FIRST+109)")
cpp_quote("#define AP_IMAP_USE_LSUB PROPTAG(TYPE_BOOL, AP_FIRST+111)")
cpp_quote("#define AP_IMAP_POLL PROPTAG(TYPE_BOOL, AP_FIRST+112)")
cpp_quote("#define AP_IMAP_FULL_LIST PROPTAG(TYPE_BOOL, AP_FIRST+113)")
cpp_quote("#define AP_IMAP_NOOP_INTERVAL PROPTAG(TYPE_DWORD, AP_FIRST+114)")
cpp_quote("#define AP_IMAP_SVRSPECIALFLDRS PROPTAG(TYPE_BOOL, AP_FIRST+116)")
cpp_quote("#define AP_IMAP_SENTITEMSFLDR PROPTAG(TYPE_STRING, AP_FIRST+117)")
cpp_quote("#define AP_IMAP_DRAFTSFLDR PROPTAG(TYPE_STRING, AP_FIRST+119)")
cpp_quote("#define AP_IMAP_PROMPT_PASSWORD PROPTAG(TYPE_BOOL, AP_FIRST+124)")
cpp_quote("#define AP_IMAP_DIRTY PROPTAG(TYPE_DWORD, AP_FIRST+125)")
cpp_quote("#define AP_IMAP_POLL_ALL_FOLDERS PROPTAG(TYPE_BOOL, AP_FIRST+126)")
cpp_quote("#define AP_IMAP_LAST AP_IMAP_POLL_ALL_FOLDERS")
cpp_quote("")
cpp_quote("// LDAP properties")
cpp_quote("#define AP_LDAP_SERVER PROPTAG(TYPE_STRING, AP_FIRST+200)")
cpp_quote("#define AP_LDAP_FIRST AP_LDAP_SERVER")
cpp_quote("#define AP_LDAP_USERNAME PROPTAG(TYPE_STRING, AP_FIRST+201)")
cpp_quote("#define AP_LDAP_PASSWORD PROPTAG(TYPE_PASS, AP_FIRST+202)")
cpp_quote("#define AP_LDAP_AUTHENTICATION PROPTAG(TYPE_DWORD, AP_FIRST+203)")
cpp_quote("#define AP_LDAP_TIMEOUT PROPTAG(TYPE_DWORD, AP_FIRST+204)")
cpp_quote("#define AP_LDAP_SEARCH_RETURN PROPTAG(TYPE_DWORD, AP_FIRST+205)")
cpp_quote("#define AP_LDAP_SEARCH_BASE PROPTAG(TYPE_STRING, AP_FIRST+206)")
cpp_quote("#define AP_LDAP_SERVER_ID PROPTAG(TYPE_DWORD, AP_FIRST+207)")
cpp_quote("#define AP_LDAP_RESOLVE_FLAG PROPTAG(TYPE_DWORD, AP_FIRST+208)")
cpp_quote("#define AP_LDAP_URL PROPTAG(TYPE_STRING, AP_FIRST+209)")
cpp_quote("#define AP_LDAP_PORT PROPTAG(TYPE_DWORD, AP_FIRST+210)")
cpp_quote("#define AP_LDAP_SSL PROPTAG(TYPE_BOOL, AP_FIRST+211)")
cpp_quote("#define AP_LDAP_LOGO PROPTAG(TYPE_STRING, AP_FIRST+212)")
cpp_quote("#define AP_LDAP_USE_BIND_DN PROPTAG(TYPE_DWORD, AP_FIRST+213)")
cpp_quote("#define AP_LDAP_SIMPLE_SEARCH PROPTAG(TYPE_DWORD, AP_FIRST+214)")
cpp_quote("#define AP_LDAP_ADVANCED_SEARCH_ATTR PROPTAG(TYPE_STRING, AP_FIRST+215)")
cpp_quote("#define AP_LDAP_PAGED_RESULTS PROPTAG(TYPE_DWORD, AP_FIRST+216)")
cpp_quote("#define AP_LDAP_NTDS PROPTAG(TYPE_DWORD, AP_FIRST+217)")
cpp_quote("#define AP_LDAP_LAST AP_LDAP_NTDS")
cpp_quote("")
cpp_quote("// HTTPMail properties")
cpp_quote("#define AP_HTTPMAIL_SERVER PROPTAG(TYPE_STRING, AP_FIRST+250)")
cpp_quote("#define AP_HTTPMAIL_FIRST AP_HTTPMAIL_SERVER")
cpp_quote("#define AP_HTTPMAIL_USERNAME PROPTAG(TYPE_STRING, AP_FIRST+251)")
cpp_quote("#define AP_HTTPMAIL_PASSWORD PROPTAG(TYPE_PASS, AP_FIRST+252)")
cpp_quote("#define AP_HTTPMAIL_PROMPT_PASSWORD PROPTAG(TYPE_BOOL, AP_FIRST+253)")
cpp_quote("#define AP_HTTPMAIL_USE_SICILY PROPTAG(TYPE_DWORD, AP_FIRST+254)")
cpp_quote("#define AP_HTTPMAIL_FRIENDLY_NAME PROPTAG(TYPE_STRING, AP_FIRST+255)")
cpp_quote("#define AP_HTTPMAIL_DOMAIN_MSN PROPTAG(TYPE_BOOL, AP_FIRST+256)")
cpp_quote("#define AP_HTTPMAIL_POLL PROPTAG(TYPE_BOOL, AP_FIRST+257)")
cpp_quote("#define AP_HTTPMAIL_LAST AP_HTTPMAIL_POLL")
cpp_quote("")
cpp_quote("// NNTP properties")
cpp_quote("#define AP_NNTP_SERVER PROPTAG(TYPE_STRING, AP_FIRST+300)")
cpp_quote("#define AP_NNTP_FIRST AP_NNTP_SERVER")
cpp_quote("#define AP_NNTP_USERNAME PROPTAG(TYPE_STRING, AP_FIRST+301)")
cpp_quote("#define AP_NNTP_PASSWORD PROPTAG(TYPE_PASS, AP_FIRST+302)")
cpp_quote("#define AP_NNTP_USE_SICILY PROPTAG(TYPE_BOOL, AP_FIRST+304)")
cpp_quote("#define AP_NNTP_PORT PROPTAG(TYPE_DWORD, AP_FIRST+305)")
cpp_quote("#define AP_NNTP_SSL PROPTAG(TYPE_BOOL, AP_FIRST+306)")
cpp_quote("#define AP_NNTP_TIMEOUT PROPTAG(TYPE_DWORD, AP_FIRST+307)")
cpp_quote("#define AP_NNTP_DISPLAY_NAME PROPTAG(TYPE_STRING, AP_FIRST+308)")
cpp_quote("#define AP_NNTP_ORG_NAME PROPTAG(TYPE_STRING, AP_FIRST+309)")
cpp_quote("#define AP_NNTP_EMAIL_ADDRESS PROPTAG(TYPE_STRING, AP_FIRST+310)")
cpp_quote("#define AP_NNTP_REPLY_EMAIL_ADDRESS PROPTAG(TYPE_STRING, AP_FIRST+311)")
cpp_quote("#define AP_NNTP_SPLIT_MESSAGES PROPTAG(TYPE_BOOL, AP_FIRST+312)")
cpp_quote("#define AP_NNTP_SPLIT_SIZE PROPTAG(TYPE_DWORD, AP_FIRST+313)")
cpp_quote("#define AP_NNTP_USE_DESCRIPTIONS PROPTAG(TYPE_BOOL, AP_FIRST+314)")
cpp_quote("#define AP_NNTP_DATA_DIR PROPTAG(TYPE_STRING, AP_FIRST+315)")
cpp_quote("#define AP_NNTP_POLL PROPTAG(TYPE_BOOL, AP_FIRST+316)")
cpp_quote("#define AP_NNTP_POST_FORMAT PROPTAG(TYPE_DWORD, AP_FIRST+317)")
cpp_quote("#define AP_NNTP_SIGNATURE PROPTAG(TYPE_STRING, AP_FIRST+318)")
cpp_quote("#define AP_NNTP_PROMPT_PASSWORD PROPTAG(TYPE_BOOL, AP_FIRST+319)")
cpp_quote("#define AP_NNTP_LAST AP_NNTP_PROMPT_PASSWORD")
cpp_quote("")
cpp_quote("// POP3 properties")
cpp_quote("#define AP_POP3_SERVER PROPTAG(TYPE_STRING, AP_FIRST+400)")
cpp_quote("#define AP_POP3_FIRST AP_POP3_SERVER")
cpp_quote("#define AP_POP3_USERNAME PROPTAG(TYPE_STRING, AP_FIRST+401)")
cpp_quote("#define AP_POP3_PASSWORD PROPTAG(TYPE_PASS, AP_FIRST+402)")
cpp_quote("#define AP_POP3_USE_SICILY PROPTAG(TYPE_BOOL, AP_FIRST+404)")
cpp_quote("#define AP_POP3_PORT PROPTAG(TYPE_DWORD, AP_FIRST+405)")
cpp_quote("#define AP_POP3_SSL PROPTAG(TYPE_BOOL, AP_FIRST+406)")
cpp_quote("#define AP_POP3_TIMEOUT PROPTAG(TYPE_DWORD, AP_FIRST+407)")
cpp_quote("#define AP_POP3_LEAVE_ON_SERVER PROPTAG(TYPE_BOOL, AP_FIRST+408)")
cpp_quote("#define AP_POP3_REMOVE_DELETED PROPTAG(TYPE_BOOL, AP_FIRST+409)")
cpp_quote("#define AP_POP3_REMOVE_EXPIRED PROPTAG(TYPE_BOOL, AP_FIRST+410)")
cpp_quote("#define AP_POP3_EXPIRE_DAYS PROPTAG(TYPE_DWORD, AP_FIRST+411)")
cpp_quote("#define AP_POP3_SKIP PROPTAG(TYPE_BOOL, AP_FIRST+412)")
cpp_quote("#define AP_POP3_OUTLOOK_CACHE_NAME PROPTAG(TYPE_STRING, AP_FIRST+413)")
cpp_quote("#define AP_POP3_PROMPT_PASSWORD PROPTAG(TYPE_BOOL, AP_FIRST+414)")
cpp_quote("#define AP_POP3_LAST AP_POP3_PROMPT_PASSWORD")
cpp_quote("")
cpp_quote("// SMTP properties")
cpp_quote("#define AP_SMTP_SERVER PROPTAG(TYPE_STRING, AP_FIRST+500)")
cpp_quote("#define AP_SMTP_FIRST AP_SMTP_SERVER")
cpp_quote("#define AP_SMTP_USERNAME PROPTAG(TYPE_STRING, AP_FIRST+501)")
cpp_quote("#define AP_SMTP_PASSWORD PROPTAG(TYPE_PASS, AP_FIRST+502)")
cpp_quote("#define AP_SMTP_USE_SICILY PROPTAG(TYPE_DWORD, AP_FIRST+504) // SMTPAUTHTYEP")
cpp_quote("#define AP_SMTP_PORT PROPTAG(TYPE_DWORD, AP_FIRST+505)")
cpp_quote("#define AP_SMTP_SSL PROPTAG(TYPE_BOOL, AP_FIRST+506)")
cpp_quote("#define AP_SMTP_TIMEOUT PROPTAG(TYPE_DWORD, AP_FIRST+507)")
cpp_quote("#define AP_SMTP_DISPLAY_NAME PROPTAG(TYPE_STRING, AP_FIRST+508)")
cpp_quote("#define AP_SMTP_ORG_NAME PROPTAG(TYPE_STRING, AP_FIRST+509)")
cpp_quote("#define AP_SMTP_EMAIL_ADDRESS PROPTAG(TYPE_STRING, AP_FIRST+510)")
cpp_quote("#define AP_SMTP_REPLY_EMAIL_ADDRESS PROPTAG(TYPE_STRING, AP_FIRST+511)")
cpp_quote("#define AP_SMTP_SPLIT_MESSAGES PROPTAG(TYPE_BOOL, AP_FIRST+512)")
cpp_quote("#define AP_SMTP_SPLIT_SIZE PROPTAG(TYPE_DWORD, AP_FIRST+513)")
cpp_quote("#define AP_SMTP_CERTIFICATE PROPTAG(TYPE_BINARY, AP_FIRST+514)")
cpp_quote("#define AP_SMTP_SIGNATURE PROPTAG(TYPE_STRING, AP_FIRST+515)")
cpp_quote("#define AP_SMTP_PROMPT_PASSWORD PROPTAG(TYPE_BOOL, AP_FIRST+516)")
cpp_quote("#define AP_SMTP_LAST AP_SMTP_PROMPT_PASSWORD")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// Account Flags")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define ACCT_FLAG_NEWS ((DWORD)1)")
cpp_quote("#define ACCT_FLAG_MAIL ((DWORD)2)")
cpp_quote("#define ACCT_FLAG_DIR_SERV ((DWORD)4)")
cpp_quote("#define ACCT_FLAG_ALL (ACCT_FLAG_NEWS | ACCT_FLAG_MAIL | ACCT_FLAG_DIR_SERV)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// Server Types")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define SRV_NNTP ((DWORD)1)")
cpp_quote("#define SRV_IMAP ((DWORD)2)")
cpp_quote("#define SRV_POP3 ((DWORD)4)")
cpp_quote("#define SRV_SMTP ((DWORD)8)")
cpp_quote("#define SRV_LDAP ((DWORD)16)")
cpp_quote("#define SRV_HTTPMAIL ((DWORD)32)")
cpp_quote("#define SRV_MAIL ((DWORD)(SRV_IMAP | SRV_POP3 | SRV_SMTP | SRV_HTTPMAIL))")
cpp_quote("#define SRV_ALL ((DWORD)(SRV_NNTP | SRV_IMAP | SRV_POP3 | SRV_SMTP | SRV_LDAP | SRV_HTTPMAIL))")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// LDAP Authentication Types")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define LDAP_AUTH_ANONYMOUS ((DWORD)0)")
cpp_quote("#define LDAP_AUTH_PASSWORD ((DWORD)1)")
cpp_quote("#define LDAP_AUTH_MEMBER_SYSTEM ((DWORD)2)")
cpp_quote("#define LDAP_AUTH_MAX ((DWORD)2)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// LDAP Paged Result Support Types")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define LDAP_PRESULT_UNKNOWN ((DWORD)0)")
cpp_quote("#define LDAP_PRESULT_SUPPORTED ((DWORD)1)")
cpp_quote("#define LDAP_PRESULT_NOTSUPPORTED ((DWORD)2)")
cpp_quote("#define LDAP_PRESULT_MAX ((DWORD)2)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// LDAP NTDS Types")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define LDAP_NTDS_UNKNOWN ((DWORD)0)")
cpp_quote("#define LDAP_NTDS_IS ((DWORD)1)")
cpp_quote("#define LDAP_NTDS_ISNOT ((DWORD)2)")
cpp_quote("#define LDAP_NTDS_MAX ((DWORD)2)")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// AP_NNTP_POST_FORMAT types")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("#define POST_USE_DEFAULT ((DWORD)0)")
cpp_quote("#define POST_USE_PLAIN_TEXT ((DWORD)1)")
cpp_quote("#define POST_USE_HTML ((DWORD)2)")
cpp_quote("")
cpp_quote("// -----------------------------------------------------------------------------")
cpp_quote("// Account Manager Notification Types")
cpp_quote("// -----------------------------------------------------------------------------")
cpp_quote("#define AN_ACCOUNT_DELETED WM_USER + 1")
cpp_quote("#define AN_ACCOUNT_ADDED WM_USER + 2")
cpp_quote("#define AN_ACCOUNT_CHANGED WM_USER + 3")
cpp_quote("#define AN_DEFAULT_CHANGED WM_USER + 4")
cpp_quote("#define AN_SERVERTYPES_CHANGED WM_USER + 5")
cpp_quote("#define AN_ACCOUNT_PREDELETE WM_USER + 6")
cpp_quote("")
cpp_quote("// IImnAccountManager::AccountListDialog flags")
cpp_quote("// IImnAccount::ShowProperties flags")
cpp_quote("#define ACCTDLG_NO_IMAP 0x0001")
cpp_quote("#define ACCTDLG_NO_REMOVEDELETE 0x0002")
cpp_quote("#define ACCTDLG_NO_BREAKMESSAGES 0x0004")
cpp_quote("#define ACCTDLG_NO_REMOVEAFTER 0x0008")
cpp_quote("#define ACCTDLG_NO_SENDRECEIVE 0x0010")
cpp_quote("#define ACCTDLG_NO_NEWSPOLL 0x0020")
cpp_quote("#define ACCTDLG_NO_SECURITY 0x0040")
cpp_quote("#define ACCTDLG_BACKUP_CONNECT 0x0080")
cpp_quote("#define ACCTDLG_NO_IMAPPOLL 0x0100")
cpp_quote("#define ACCTDLG_NO_NEW_POP 0x0200")
cpp_quote("#define ACCTDLG_SHOWIMAPSPECIAL 0x0400")
cpp_quote("#define ACCTDLG_INTERNETCONNECTION 0x0800")
cpp_quote("#define ACCTDLG_HTTPMAIL 0x1000")
cpp_quote("#define ACCTDLG_REVOCATION 0x2000")
cpp_quote("#define ACCTDLG_OE 0x4000")
cpp_quote("#define ACCTDLG_ALL 0x7fff")
cpp_quote("")
cpp_quote("// AP_RAS_CONNECTION_TYPE values")
cpp_quote("#define CONNECTION_TYPE_LAN 0")
cpp_quote("#define CONNECTION_TYPE_MANUAL 1")
cpp_quote("#define CONNECTION_TYPE_RAS 2")
cpp_quote("#define CONNECTION_TYPE_INETSETTINGS 3")
cpp_quote("")
cpp_quote("// IImnAccount::DoWizard flags")
cpp_quote("#define ACCT_WIZ_MIGRATE 0x0001")
cpp_quote("#define ACCT_WIZ_MAILIMPORT 0x0002")
cpp_quote("#define ACCT_WIZ_OUTLOOK 0x0004")
cpp_quote("#define ACCT_WIZ_NEWSIMPORT 0x0008")
cpp_quote("#define ACCT_WIZ_NO_NEW_POP 0x0010")
cpp_quote("#define ACCT_WIZ_INTERNETCONNECTION 0x0020")
cpp_quote("#define ACCT_WIZ_HTTPMAIL 0x0040")
cpp_quote("#define ACCT_WIZ_OE 0x0080")
cpp_quote("")
cpp_quote("// IImnAccount::InitEx flags")
cpp_quote("#define ACCT_INIT_ATHENA 0x0001")
cpp_quote("#define ACCT_INIT_OUTLOOK 0x0002")
cpp_quote("")
cpp_quote(" // AP_IMAP_DIRTY flags")
cpp_quote("#define IMAP_FLDRLIST_DIRTY 0x0001")
cpp_quote("#define IMAP_OE4MIGRATE_DIRTY 0x0002")
cpp_quote("#define IMAP_SENTITEMS_DIRTY 0x0004")
cpp_quote("#define IMAP_DRAFTS_DIRTY 0x0008")
// --------------------------------------------------------------------------------
// SMTP Authentication Types
// --------------------------------------------------------------------------------
typedef enum tagSMTPAUTHTYPE {
SMTP_AUTH_NONE,
SMTP_AUTH_SICILY,
SMTP_AUTH_USE_POP3ORIMAP_SETTINGS,
SMTP_AUTH_USE_SMTP_SETTINGS,
} SMTPAUTHTYPE;
// --------------------------------------------------------------------------------
// String Lengths
// --------------------------------------------------------------------------------
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;
// --------------------------------------------------------------------------------
// IImnAdviseAccount
// --------------------------------------------------------------------------------
[
object,
uuid(0A06BD31-166F-11d0-81B9-00C04FD85AB4),
pointer_default(unique)
]
interface IImnAdviseAccount : IUnknown
{
import "unknwn.idl";
typedef enum {
ACCT_NEWS = 0,
ACCT_MAIL,
ACCT_DIR_SERV,
ACCT_LAST
} ACCTTYPE;
typedef struct tagAccountContext
{
ACCTTYPE AcctType;
LPSTR pszAccountID;
LPSTR pszOldName; // set if name changes or account deleted
DWORD dwServerType;
} ACTX;
HRESULT AdviseAccount(
[in] DWORD dwAdviseType,
[in] ACTX *pAcctCtx);
}
// --------------------------------------------------------------------------------
// IImnAdviseMigrateServer
// --------------------------------------------------------------------------------
[
object,
uuid(8D0AED11-1638-11d0-81B9-00C04FD85AB4),
pointer_default(unique)
]
interface IImnAdviseMigrateServer : IUnknown
{
import "unknwn.idl";
HRESULT MigrateServer(
[in] DWORD dwSrvType,
[in] IImnAccount *pAccount);
}
// --------------------------------------------------------------------------------
// IImnEnumAccounts
// --------------------------------------------------------------------------------
[
object,
uuid(FD465483-1384-11d0-ABBD-0020AFDFD10A),
pointer_default(unique)
]
interface IImnEnumAccounts : IUnknown
{
import "unknwn.idl";
HRESULT GetCount(
[out] ULONG *pcItems);
HRESULT SortByAccountName(void);
HRESULT GetNext(
[out] IImnAccount **ppAccount);
HRESULT Reset(void);
}
// --------------------------------------------------------------------------------
// IImnAccountManager
// --------------------------------------------------------------------------------
[
object,
uuid(FD465481-1384-11d0-ABBD-0020AFDFD10A),
pointer_default(unique)
]
interface IImnAccountManager : IUnknown
{
import "unknwn.idl";
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 GetDefaultAccount(
[in] ACCTTYPE AcctType,
[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(void);
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);
}
// --------------------------------------------------------------------------------
// IImnAccountManager2
// --------------------------------------------------------------------------------
[
object,
uuid(C43DFC6F-62BB-11d2-A727-00C04F79E7C8),
pointer_default(unique)
]
interface IImnAccountManager2 : IImnAccountManager
{
import "unknwn.idl";
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);
}
// --------------------------------------------------------------------------------
// IPropertyContainer
// --------------------------------------------------------------------------------
[
object,
uuid(FD465484-1384-11d0-ABBD-0020AFDFD10A),
pointer_default(unique)
]
interface IPropertyContainer : IUnknown
{
import "unknwn.idl";
typedef enum {
TYPE_ERROR = 1000, // Unknown data type - or data type is in error
TYPE_DWORD, // Unsigned 32 bit value
TYPE_LONG, // Signed 32 bit value
TYPE_WORD, // Unsigned 16 bit value
TYPE_SHORT, // Signed 16 bit value
TYPE_BYTE, // Unsigned 8 bit value
TYPE_CHAR, // Signed 8 bit value
TYPE_FILETIME, // FILETIME stucture
TYPE_STRING, // Fixed-length null-term string
TYPE_BINARY, // Fixed-length binary data
TYPE_FLAGS, // Flags fields
TYPE_STREAM, // Stream data type
TYPE_WSTRING, // UNICODE fixed-length null-term string
TYPE_BOOL, // BOOL checked to be equal to 1 or 0
TYPE_PASS, // Neeto burrito password mosquito
TYPE_LAST
} PROPTYPE;
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);
}
// --------------------------------------------------------------------------------
// IImnAccount
// --------------------------------------------------------------------------------
[
object,
uuid(FD465482-1384-11d0-ABBD-0020AFDFD10A),
pointer_default(unique)
]
interface IImnAccount : IPropertyContainer
{
import "unknwn.idl";
HRESULT Exist(void);
HRESULT SetAsDefault(void);
HRESULT Delete(void);
HRESULT SaveChanges(void);
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);
}
//
// This definition is for C files in 16bit WAB, because of two reasons:
//
// 1. IID definitions generated by MIDL is not compatible with 16bit DEFINE_GUID
// 2. DEFINE_GUID should be placed LATER than the declaration generated by MIDL
//
cpp_quote("#if defined( WIN16 ) && !defined( __cplusplus )")
cpp_quote("// {8D4B04E1-1331-11d0-81B8-00C04FD85AB4}")
cpp_quote("EXTERN_C const IID CLSID_ImnAccountManager =")
cpp_quote(" { 0x8d4b04e1, 0x1331, 0x11d0, { 0x81, 0xb8, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4 } };")
cpp_quote("")
cpp_quote("// {FD465484-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("EXTERN_C const IID IID_IPropertyContainer =")
cpp_quote(" { 0xfd465484, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };")
cpp_quote("")
cpp_quote("// {FD465481-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("EXTERN_C const IID IID_IImnAccountManager =")
cpp_quote(" { 0xfd465481, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };")
cpp_quote("")
cpp_quote("// {C43DFC6F-62BB-11d2-A727-00C04F79E7C8}")
cpp_quote("EXTERN_C const IID IID_IImnAccountManager2 =")
cpp_quote(" { 0xc43dfc6f, 0x62bb, 0x11d2, { 0xa7, 0x27, 0x0, 0xc0, 0x4f, 0x79, 0xe7, 0xc8 } };")
cpp_quote("")
cpp_quote("// {FD465482-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("EXTERN_C const IID IID_IImnAccount =")
cpp_quote(" { 0xfd465482, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };")
cpp_quote("")
cpp_quote("// {FD465483-1384-11d0-ABBD-0020AFDFD10A}")
cpp_quote("EXTERN_C const IID IID_IImnEnumAccounts =")
cpp_quote(" { 0xfd465483, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };")
cpp_quote("")
cpp_quote("// {8D0AED11-1638-11d0-81B9-00C04FD85AB4}")
cpp_quote("EXTERN_C const IID IID_IImnAdviseMigrateServer =")
cpp_quote(" { 0x8d0aed11, 0x1638, 0x11d0, { 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4 } };")
cpp_quote("")
cpp_quote("// {0A06BD31-166F-11d0-81B9-00C04FD85AB4}")
cpp_quote("EXTERN_C const IID IID_IImnAdviseAccount =")
cpp_quote(" { 0xa06bd31, 0x166f, 0x11d0, { 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4 } };")
cpp_quote("")
cpp_quote("#endif //WIN16 && !__cplusplus")