text: 
  
  /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  
  
   /* File created by MIDL compiler version 7.00.0500 */
  /* at Tue Jul 27 04:11:19 2010
   */
  /* Compiler settings for imnact.idl:
      Oicf, W1, Zp8, env=Win32 (32b run)
      protocol : dce , ms_ext, c_ext, robust
      error checks: allocation ref bounds_check enum stub_data 
      VC __declspec() decoration level: 
           __declspec(uuid()), __declspec(selectany), __declspec(novtable)
           DECLSPEC_UUID(), MIDL_INTERFACE()
  */
  //@@MIDL_FILE_HEADING(  )
  
  #pragma warning( disable: 4049 )  /* more than 64k source lines */
  
  
  /* verify that the <rpcndr.h> version is high enough to compile this file*/
  #ifndef __REQUIRED_RPCNDR_H_VERSION__
  #define __REQUIRED_RPCNDR_H_VERSION__ 475
  #endif
  
  #include "rpc.h"
  #include "rpcndr.h"
  
  #ifndef __RPCNDR_H_VERSION__
  #error this stub requires an updated version of <rpcndr.h>
  #endif // __RPCNDR_H_VERSION__
  
  #ifndef COM_NO_WINDOWS_H
  #include "windows.h"
  #include "ole2.h"
  #endif /*COM_NO_WINDOWS_H*/
  
  #ifndef __imnact_h__
  #define __imnact_h__
  
  #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  #pragma once
  #endif
  
  /* Forward Declarations */ 
  
  #ifndef __IImnAdviseAccount_FWD_DEFINED__
  #define __IImnAdviseAccount_FWD_DEFINED__
  typedef interface IImnAdviseAccount IImnAdviseAccount;
  #endif 	/* __IImnAdviseAccount_FWD_DEFINED__ */
  
  
  #ifndef __IImnAdviseMigrateServer_FWD_DEFINED__
  #define __IImnAdviseMigrateServer_FWD_DEFINED__
  typedef interface IImnAdviseMigrateServer IImnAdviseMigrateServer;
  #endif 	/* __IImnAdviseMigrateServer_FWD_DEFINED__ */
  
  
  #ifndef __IImnEnumAccounts_FWD_DEFINED__
  #define __IImnEnumAccounts_FWD_DEFINED__
  typedef interface IImnEnumAccounts IImnEnumAccounts;
  #endif 	/* __IImnEnumAccounts_FWD_DEFINED__ */
  
  
  #ifndef __IImnAccountManager_FWD_DEFINED__
  #define __IImnAccountManager_FWD_DEFINED__
  typedef interface IImnAccountManager IImnAccountManager;
  #endif 	/* __IImnAccountManager_FWD_DEFINED__ */
  
  
  #ifndef __IImnAccountManager2_FWD_DEFINED__
  #define __IImnAccountManager2_FWD_DEFINED__
  typedef interface IImnAccountManager2 IImnAccountManager2;
  #endif 	/* __IImnAccountManager2_FWD_DEFINED__ */
  
  
  #ifndef __IPropertyContainer_FWD_DEFINED__
  #define __IPropertyContainer_FWD_DEFINED__
  typedef interface IPropertyContainer IPropertyContainer;
  #endif 	/* __IPropertyContainer_FWD_DEFINED__ */
  
  
  #ifndef __IImnAccount_FWD_DEFINED__
  #define __IImnAccount_FWD_DEFINED__
  typedef interface IImnAccount IImnAccount;
  #endif 	/* __IImnAccount_FWD_DEFINED__ */
  
  
  /* header files for imported files */
  #include "objidl.h"
  
  #ifdef __cplusplus
  extern "C"{
  #endif 
  
  
  /* interface __MIDL_itf_imnact_0000_0000 */
  /* [local] */ 
  
  
  //=--------------------------------------------------------------------------=
  // Imnact.h
  //=--------------------------------------------------------------------------=
  // (C) Copyright 1995-1998 Microsoft Corporation.  All Rights Reserved.
  //
  // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  // PARTICULAR PURPOSE.
  //=--------------------------------------------------------------------------=
  
  #pragma comment(lib,"uuid.lib")
  
  //---------------------------------------------------------------------------=
  // Internet Mail and News Account Manager Interfaces.
  
  // --------------------------------------------------------------------------------
  // GUIDS
  // --------------------------------------------------------------------------------
  #if !defined( WIN16 ) || defined( __cplusplus )
  // {8D4B04E1-1331-11d0-81B8-00C04FD85AB4}
  DEFINE_GUID(CLSID_ImnAccountManager, 0x8d4b04e1, 0x1331, 0x11d0, 0x81, 0xb8, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  
  // {FD465484-1384-11d0-ABBD-0020AFDFD10A}
  DEFINE_GUID(IID_IPropertyContainer, 0xfd465484, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);
  
  // {FD465481-1384-11d0-ABBD-0020AFDFD10A}
  DEFINE_GUID(IID_IImnAccountManager, 0xfd465481, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);
  
  // {C43DFC6F-62BB-11d2-A727-00C04F79E7C8}
  DEFINE_GUID(IID_IImnAccountManager2, 0xc43dfc6f, 0x62bb, 0x11d2, 0xa7, 0x27, 0x0, 0xc0, 0x4f, 0x79, 0xe7, 0xc8);
  
  // {FD465482-1384-11d0-ABBD-0020AFDFD10A}
  DEFINE_GUID(IID_IImnAccount, 0xfd465482, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);
  
  // {FD465483-1384-11d0-ABBD-0020AFDFD10A}
  DEFINE_GUID(IID_IImnEnumAccounts, 0xfd465483, 0x1384, 0x11d0, 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa);
  
  // {8D0AED11-1638-11d0-81B9-00C04FD85AB4}
  DEFINE_GUID(IID_IImnAdviseMigrateServer, 0x8d0aed11, 0x1638, 0x11d0, 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  
  // {0A06BD31-166F-11d0-81B9-00C04FD85AB4}
  DEFINE_GUID(IID_IImnAdviseAccount, 0xa06bd31, 0x166f, 0x11d0, 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);
  
  #endif //!WIN16 || __cplusplus
  
  // --------------------------------------------------------------------------------
  // Exported C Functions
  // --------------------------------------------------------------------------------
  #if !defined(_IMNACCT_)
  #define IMNACCTAPI DECLSPEC_IMPORT HRESULT WINAPI
  #define IMNACCTAPI_(_type_) DECLSPEC_IMPORT _type_ WINAPI
  #else
  #define IMNACCTAPI HRESULT WINAPI
  #define IMNACCTAPI_(_type_) _type_ WINAPI
  #endif
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  IMNACCTAPI HrCreateAccountManager(IImnAccountManager **ppAccountManager);
  IMNACCTAPI ValidEmailAddress(LPCSTR lpAddress);
  
  #ifdef __cplusplus
  }
  #endif
  
  // --------------------------------------------------------------------------------
  // Errors
  // --------------------------------------------------------------------------------
  #ifndef FACILITY_INTERNET
  #define FACILITY_INTERNET 12
  #endif
  #ifndef HR_E
  #define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)
  #endif
  #ifndef HR_S
  #define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)
  #endif
  #ifndef HR_CODE
  #define HR_CODE(hr) (INT)(hr & 0xffff)
  #endif
  
  // --------------------------------------------------------------------------------
  // General Errors
  // --------------------------------------------------------------------------------
  #define E_RegCreateKeyFailed         HR_E(0xCD00)
  #define E_RegQueryInfoKeyFailed      HR_E(0xCD01)
  #define E_UserCancel                 HR_E(0xCD02)
  #define E_RegOpenKeyFailed           HR_E(0xCD03)
  #define E_RegSetValueFailed          HR_E(0xCD04)
  #define E_RegDeleteKeyFailed         HR_E(0xCD05)
  #define E_DuplicateAccountName       HR_E(0xCD06)
  #define S_NonStandardValue           HR_S(0xCD07)
  #define E_InvalidValue               HR_E(0xCD08)
  #define S_AlreadyInitialized         HR_S(0xCD09)
  
  // --------------------------------------------------------------------------------
  // IPropertyContainer Errors
  // --------------------------------------------------------------------------------
  #define E_NoPropData                 HR_E(0xCDA0)
  #define E_BufferTooSmall             HR_E(0xCDA1)
  #define E_BadPropType                HR_E(0xCDA2)
  #define E_BufferSizeMismatch         HR_E(0xCDA3)
  #define E_InvalidBooleanValue        HR_E(0xCDA4)
  #define E_InvalidMinMaxValue         HR_E(0xCDA5)
  #define E_PropNotFound               HR_E(0xCDA6)
  #define E_InvalidPropTag             HR_E(0xCDA7)
  #define E_InvalidPropertySet         HR_E(0xCDA8)
  #define E_EnumFinished               HR_E(0xCDA9)
  #define S_NoSaveNeeded               HR_S(0xCDAA)
  #define S_PasswordDeleted            HR_S(0xCDAB)
  #define S_PasswordNotFound           HR_S(0xCDAC)
  
  // --------------------------------------------------------------------------------
  // ImnAccountManager errors
  // --------------------------------------------------------------------------------
  #define E_NoAccounts                 HR_E(0xCDD0)
  #define E_BadFriendlyName            HR_E(0xCDD1)
  #define E_NoIdentities               HR_E(0xCDD2)
  
  // --------------------------------------------------------------------------------
  // RAS Connection Types
  // --------------------------------------------------------------------------------
  #define CF_AUTO_CONNECT          FLAG02 // Automatically connect
  
  // --------------------------------------------------------------------------------
  // Property Macros
  // --------------------------------------------------------------------------------
  #define PROPTAG_MASK                 ((ULONG)0x0000FFFF)
  #define PROPTAG_TYPE(ulPropTag)      (PROPTYPE)(((ULONG)(ulPropTag)) & PROPTAG_MASK)
  #define PROPTAG_ID(ulPropTag)        (((ULONG)(ulPropTag))>>16)
  #define PROPTAG(ulPropType,ulPropID) ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
  #define MAX_PROPID                   ((ULONG) 0xFFFF)
  
  // --------------------------------------------------------------------------------
  // IImnAccount Properties
  // --------------------------------------------------------------------------------
  #define AP_FIRST                    0X1234
  // per account properties
  #define AP_ACCOUNT_NAME             PROPTAG(TYPE_STRING,    AP_FIRST+1)
  #define AP_ACCOUNT_FIRST            AP_ACCOUNT_NAME
  #define AP_TEMP_ACCOUNT             PROPTAG(TYPE_DWORD,     AP_FIRST+3)
  #define AP_LAST_UPDATED             PROPTAG(TYPE_FILETIME,  AP_FIRST+4)
  #define AP_RAS_CONNECTION_TYPE      PROPTAG(TYPE_DWORD,     AP_FIRST+5)
  #define AP_RAS_CONNECTOID           PROPTAG(TYPE_STRING,    AP_FIRST+6)
  #define AP_RAS_CONNECTION_FLAGS     PROPTAG(TYPE_DWORD,     AP_FIRST+7)
  #define AP_ACCOUNT_ID               PROPTAG(TYPE_STRING,    AP_FIRST+9)
  #define AP_RAS_BACKUP_CONNECTOID    PROPTAG(TYPE_STRING,    AP_FIRST+10)
  #define AP_SERVICE                  PROPTAG(TYPE_STRING,    AP_FIRST+11)
  #define AP_AVAIL_OFFLINE            PROPTAG(TYPE_DWORD,     AP_FIRST+12)
  #define AP_UNIQUE_ID                PROPTAG(TYPE_BINARY,    AP_FIRST+13)
  #define AP_SERVER_READ_ONLY         PROPTAG(TYPE_BOOL,      AP_FIRST+14)
  #define AP_ACCOUNT_LAST             AP_SERVER_READ_ONLY
  
  // IMAP properties
  #define AP_IMAP_SERVER              PROPTAG(TYPE_STRING,    AP_FIRST+100)
  #define AP_IMAP_FIRST               AP_IMAP_SERVER
  #define AP_IMAP_USERNAME            PROPTAG(TYPE_STRING,    AP_FIRST+101)
  #define AP_IMAP_PASSWORD            PROPTAG(TYPE_PASS,      AP_FIRST+102)
  #define AP_IMAP_USE_SICILY          PROPTAG(TYPE_BOOL,      AP_FIRST+104)
  #define AP_IMAP_PORT                PROPTAG(TYPE_DWORD,     AP_FIRST+105)
  #define AP_IMAP_SSL                 PROPTAG(TYPE_BOOL,      AP_FIRST+106)
  #define AP_IMAP_TIMEOUT             PROPTAG(TYPE_DWORD,     AP_FIRST+107)
  #define AP_IMAP_ROOT_FOLDER         PROPTAG(TYPE_STRING,    AP_FIRST+108)
  #define AP_IMAP_DATA_DIR            PROPTAG(TYPE_STRING,    AP_FIRST+109)
  #define AP_IMAP_USE_LSUB            PROPTAG(TYPE_BOOL,      AP_FIRST+111)
  #define AP_IMAP_POLL                PROPTAG(TYPE_BOOL,      AP_FIRST+112)
  #define AP_IMAP_FULL_LIST           PROPTAG(TYPE_BOOL,      AP_FIRST+113)
  #define AP_IMAP_NOOP_INTERVAL       PROPTAG(TYPE_DWORD,     AP_FIRST+114)
  #define AP_IMAP_SVRSPECIALFLDRS     PROPTAG(TYPE_BOOL,      AP_FIRST+116)
  #define AP_IMAP_SENTITEMSFLDR       PROPTAG(TYPE_STRING,    AP_FIRST+117)
  #define AP_IMAP_DRAFTSFLDR          PROPTAG(TYPE_STRING,    AP_FIRST+119)
  #define AP_IMAP_PROMPT_PASSWORD     PROPTAG(TYPE_BOOL,      AP_FIRST+124)
  #define AP_IMAP_DIRTY               PROPTAG(TYPE_DWORD,     AP_FIRST+125)
  #define AP_IMAP_POLL_ALL_FOLDERS    PROPTAG(TYPE_BOOL,      AP_FIRST+126)
  #define AP_IMAP_DELETEDITEMSFLDR    PROPTAG(TYPE_STRING,    AP_FIRST+127)
  #define AP_IMAP_JUNKFLDR            PROPTAG(TYPE_STRING,    AP_FIRST+128)
  #define AP_IMAP_LAST                AP_IMAP_JUNKFLDR
  
  // LDAP properties
  #define AP_LDAP_SERVER              PROPTAG(TYPE_STRING,    AP_FIRST+200)
  #define AP_LDAP_FIRST               AP_LDAP_SERVER
  #define AP_LDAP_USERNAME            PROPTAG(TYPE_STRING,    AP_FIRST+201)
  #define AP_LDAP_PASSWORD            PROPTAG(TYPE_PASS,      AP_FIRST+202)
  #define AP_LDAP_AUTHENTICATION      PROPTAG(TYPE_DWORD,     AP_FIRST+203)
  #define AP_LDAP_TIMEOUT             PROPTAG(TYPE_DWORD,     AP_FIRST+204)
  #define AP_LDAP_SEARCH_RETURN       PROPTAG(TYPE_DWORD,     AP_FIRST+205)
  #define AP_LDAP_SEARCH_BASE         PROPTAG(TYPE_STRING,    AP_FIRST+206)
  #define AP_LDAP_SERVER_ID           PROPTAG(TYPE_DWORD,     AP_FIRST+207)
  #define AP_LDAP_RESOLVE_FLAG        PROPTAG(TYPE_DWORD,     AP_FIRST+208)
  #define AP_LDAP_URL                 PROPTAG(TYPE_STRING,    AP_FIRST+209)
  #define AP_LDAP_PORT                PROPTAG(TYPE_DWORD,     AP_FIRST+210)
  #define AP_LDAP_SSL                 PROPTAG(TYPE_BOOL,      AP_FIRST+211)
  #define AP_LDAP_LOGO                PROPTAG(TYPE_STRING,    AP_FIRST+212)
  #define AP_LDAP_USE_BIND_DN         PROPTAG(TYPE_DWORD,     AP_FIRST+213)
  #define AP_LDAP_SIMPLE_SEARCH       PROPTAG(TYPE_DWORD,     AP_FIRST+214)
  #define AP_LDAP_ADVANCED_SEARCH_ATTR PROPTAG(TYPE_STRING,   AP_FIRST+215)
  #define AP_LDAP_PAGED_RESULTS       PROPTAG(TYPE_DWORD,     AP_FIRST+216)
  #define AP_LDAP_NTDS                PROPTAG(TYPE_DWORD,     AP_FIRST+217)
  #define AP_LDAP_LAST                AP_LDAP_NTDS
  
  // HTTPMail properties
  #define AP_HTTPMAIL_SERVER           PROPTAG(TYPE_STRING,    AP_FIRST+250)
  #define AP_HTTPMAIL_FIRST            AP_HTTPMAIL_SERVER
  #define AP_HTTPMAIL_USERNAME         PROPTAG(TYPE_STRING,    AP_FIRST+251)
  #define AP_HTTPMAIL_PASSWORD         PROPTAG(TYPE_PASS,      AP_FIRST+252)
  #define AP_HTTPMAIL_PROMPT_PASSWORD  PROPTAG(TYPE_BOOL,      AP_FIRST+253)
  #define AP_HTTPMAIL_USE_SICILY       PROPTAG(TYPE_DWORD,     AP_FIRST+254)
  #define AP_HTTPMAIL_FRIENDLY_NAME    PROPTAG(TYPE_STRING,    AP_FIRST+255)
  #define AP_HTTPMAIL_DOMAIN_MSN       PROPTAG(TYPE_BOOL,      AP_FIRST+256)
  #define AP_HTTPMAIL_POLL             PROPTAG(TYPE_BOOL,      AP_FIRST+257)
  #define AP_HTTPMAIL_ADURL              PROPTAG(TYPE_STRING,          AP_FIRST+258)
  #define AP_HTTPMAIL_SHOW_ADBAR         PROPTAG(TYPE_BOOL,            AP_FIRST+259)
  #define AP_HTTPMAIL_MINPOLLINGINTERVAL PROPTAG(TYPE_ULARGEINTEGER,   AP_FIRST+260)
  #define AP_HTTPMAIL_GOTPOLLINGINTERVAL PROPTAG(TYPE_BOOL,            AP_FIRST+261)
  #define AP_HTTPMAIL_LASTPOLLEDTIME     PROPTAG(TYPE_ULARGEINTEGER,   AP_FIRST+262)
  #define AP_HTTPMAIL_ROOTTIMESTAMP      PROPTAG(TYPE_STRING,          AP_FIRST+263)
  #define AP_HTTPMAIL_ROOTINBOXTIMESTAMP PROPTAG(TYPE_STRING,          AP_FIRST+264)
  #define AP_HTTPMAIL_INBOXTIMESTAMP     PROPTAG(TYPE_STRING,          AP_FIRST+265)
  #define AP_HTTPMAIL_MAXPOLLINGINTERVAL PROPTAG(TYPE_ULARGEINTEGER,   AP_FIRST+266)
  #define AP_HTTPMAIL_ADBAR              PROPTAG(TYPE_STRING,          AP_FIRST+267)
  #define AP_HTTPMAIL_CONTACTS           PROPTAG(TYPE_STRING,          AP_FIRST+268)
  #define AP_HTTPMAIL_INBOX              PROPTAG(TYPE_STRING,          AP_FIRST+269)
  #define AP_HTTPMAIL_OUTBOX             PROPTAG(TYPE_STRING,          AP_FIRST+270)
  #define AP_HTTPMAIL_SENDMSG            PROPTAG(TYPE_STRING,          AP_FIRST+271)
  #define AP_HTTPMAIL_SENTITEMS          PROPTAG(TYPE_STRING,          AP_FIRST+272)
  #define AP_HTTPMAIL_DELETEDITEMS       PROPTAG(TYPE_STRING,          AP_FIRST+273)
  #define AP_HTTPMAIL_DRAFTS             PROPTAG(TYPE_STRING,          AP_FIRST+274)
  #define AP_HTTPMAIL_MSGFOLDERROOT      PROPTAG(TYPE_STRING,          AP_FIRST+275)
  #define AP_HTTPMAIL_SIG                PROPTAG(TYPE_STRING,          AP_FIRST+276)
  #define AP_HTTPMAIL_HASROOTPROPS       PROPTAG(TYPE_BOOL,            AP_FIRST+277)
  #define AP_HTTPMAIL_LAST               AP_HTTPMAIL_HASROOTPROPS
  
  // NNTP properties
  #define AP_NNTP_SERVER              PROPTAG(TYPE_STRING,    AP_FIRST+300)
  #define AP_NNTP_FIRST               AP_NNTP_SERVER
  #define AP_NNTP_USERNAME            PROPTAG(TYPE_STRING,    AP_FIRST+301)
  #define AP_NNTP_PASSWORD            PROPTAG(TYPE_PASS,      AP_FIRST+302)
  #define AP_NNTP_USE_SICILY          PROPTAG(TYPE_BOOL,      AP_FIRST+304)
  #define AP_NNTP_PORT                PROPTAG(TYPE_DWORD,     AP_FIRST+305)
  #define AP_NNTP_SSL                 PROPTAG(TYPE_BOOL,      AP_FIRST+306)
  #define AP_NNTP_TIMEOUT             PROPTAG(TYPE_DWORD,     AP_FIRST+307)
  #define AP_NNTP_DISPLAY_NAME        PROPTAG(TYPE_STRING,    AP_FIRST+308)
  #define AP_NNTP_ORG_NAME            PROPTAG(TYPE_STRING,    AP_FIRST+309)
  #define AP_NNTP_EMAIL_ADDRESS       PROPTAG(TYPE_STRING,    AP_FIRST+310)
  #define AP_NNTP_REPLY_EMAIL_ADDRESS PROPTAG(TYPE_STRING,    AP_FIRST+311)
  #define AP_NNTP_SPLIT_MESSAGES      PROPTAG(TYPE_BOOL,      AP_FIRST+312)
  #define AP_NNTP_SPLIT_SIZE          PROPTAG(TYPE_DWORD,     AP_FIRST+313)
  #define AP_NNTP_USE_DESCRIPTIONS    PROPTAG(TYPE_BOOL,      AP_FIRST+314)
  #define AP_NNTP_DATA_DIR            PROPTAG(TYPE_STRING,    AP_FIRST+315)
  #define AP_NNTP_POLL                PROPTAG(TYPE_BOOL,      AP_FIRST+316)
  #define AP_NNTP_POST_FORMAT         PROPTAG(TYPE_DWORD,     AP_FIRST+317)
  #define AP_NNTP_SIGNATURE           PROPTAG(TYPE_STRING,    AP_FIRST+318)
  #define AP_NNTP_PROMPT_PASSWORD     PROPTAG(TYPE_BOOL,      AP_FIRST+319)
  #define AP_NNTP_COMMUNITIES         PROPTAG(TYPE_DWORD,     AP_FIRST+320)
  #define AP_NNTP_PASSPORT_MEMBERNAME PROPTAG(TYPE_STRING,    AP_FIRST+321)
  #define AP_NNTP_COMMUNITYSERVERDATA PROPTAG(TYPE_BINARY,    AP_FIRST+322)
  #define AP_NNTP_PASSPORTSESSIONDATA PROPTAG(TYPE_BINARY,    AP_FIRST+323)
  #define AP_NNTP_USER_INFORMATION    PROPTAG(TYPE_DWORD,     AP_FIRST+324)
  #define AP_NNTP_LAST                AP_NNTP_USER_INFORMATION
  
  // POP3 properties
  #define AP_POP3_SERVER              PROPTAG(TYPE_STRING,    AP_FIRST+400)
  #define AP_POP3_FIRST               AP_POP3_SERVER
  #define AP_POP3_USERNAME            PROPTAG(TYPE_STRING,    AP_FIRST+401)
  #define AP_POP3_PASSWORD            PROPTAG(TYPE_PASS,      AP_FIRST+402)
  #define AP_POP3_USE_SICILY          PROPTAG(TYPE_BOOL,      AP_FIRST+404)
  #define AP_POP3_PORT                PROPTAG(TYPE_DWORD,     AP_FIRST+405)
  #define AP_POP3_SSL                 PROPTAG(TYPE_BOOL,      AP_FIRST+406)
  #define AP_POP3_TIMEOUT             PROPTAG(TYPE_DWORD,     AP_FIRST+407)
  #define AP_POP3_LEAVE_ON_SERVER     PROPTAG(TYPE_BOOL,      AP_FIRST+408)
  #define AP_POP3_REMOVE_DELETED      PROPTAG(TYPE_BOOL,      AP_FIRST+409)
  #define AP_POP3_REMOVE_EXPIRED      PROPTAG(TYPE_BOOL,      AP_FIRST+410)
  #define AP_POP3_EXPIRE_DAYS         PROPTAG(TYPE_DWORD,     AP_FIRST+411)
  #define AP_POP3_SKIP                PROPTAG(TYPE_BOOL,      AP_FIRST+412)
  #define AP_POP3_OUTLOOK_CACHE_NAME  PROPTAG(TYPE_STRING,    AP_FIRST+413)
  #define AP_POP3_PROMPT_PASSWORD     PROPTAG(TYPE_BOOL,      AP_FIRST+414)
  #define AP_POP3_LAST                AP_POP3_PROMPT_PASSWORD
  
  // SMTP properties
  #define AP_SMTP_SERVER              PROPTAG(TYPE_STRING,    AP_FIRST+500)
  #define AP_SMTP_FIRST               AP_SMTP_SERVER
  #define AP_SMTP_USERNAME            PROPTAG(TYPE_STRING,    AP_FIRST+501)
  #define AP_SMTP_PASSWORD            PROPTAG(TYPE_PASS,      AP_FIRST+502)
  #define AP_SMTP_USE_SICILY          PROPTAG(TYPE_DWORD,     AP_FIRST+504) // SMTPAUTHTYEP
  #define AP_SMTP_PORT                PROPTAG(TYPE_DWORD,     AP_FIRST+505)
  #define AP_SMTP_SSL                 PROPTAG(TYPE_BOOL,      AP_FIRST+506)
  #define AP_SMTP_TIMEOUT             PROPTAG(TYPE_DWORD,     AP_FIRST+507)
  #define AP_SMTP_DISPLAY_NAME        PROPTAG(TYPE_STRING,    AP_FIRST+508)
  #define AP_SMTP_ORG_NAME            PROPTAG(TYPE_STRING,    AP_FIRST+509)
  #define AP_SMTP_EMAIL_ADDRESS       PROPTAG(TYPE_STRING,    AP_FIRST+510)
  #define AP_SMTP_REPLY_EMAIL_ADDRESS PROPTAG(TYPE_STRING,    AP_FIRST+511)
  #define AP_SMTP_SPLIT_MESSAGES      PROPTAG(TYPE_BOOL,      AP_FIRST+512)
  #define AP_SMTP_SPLIT_SIZE          PROPTAG(TYPE_DWORD,     AP_FIRST+513)
  #define AP_SMTP_CERTIFICATE         PROPTAG(TYPE_BINARY,    AP_FIRST+514)
  #define AP_SMTP_SIGNATURE           PROPTAG(TYPE_STRING,    AP_FIRST+515)
  #define AP_SMTP_PROMPT_PASSWORD     PROPTAG(TYPE_BOOL,      AP_FIRST+516)
  #define AP_SMTP_ENCRYPT_CERT           PROPTAG(TYPE_BINARY,      AP_FIRST+517)
  #define AP_SMTP_ENCRYPT_ALGTH       PROPTAG(TYPE_BINARY,      AP_FIRST+518)
  #define AP_SMTP_LAST                AP_SMTP_ENCRYPT_ALGTH
  
  // --------------------------------------------------------------------------------
  // Account Flags
  // --------------------------------------------------------------------------------
  #define ACCT_FLAG_NEWS           ((DWORD)1)
  #define ACCT_FLAG_MAIL           ((DWORD)2)
  #define ACCT_FLAG_DIR_SERV       ((DWORD)4)
  #define ACCT_FLAG_ALL            (ACCT_FLAG_NEWS | ACCT_FLAG_MAIL | ACCT_FLAG_DIR_SERV)
  
  // --------------------------------------------------------------------------------
  // Server Types
  // --------------------------------------------------------------------------------
  #define SRV_NNTP                 ((DWORD)1)
  #define SRV_IMAP                 ((DWORD)2)
  #define SRV_POP3                 ((DWORD)4)
  #define SRV_SMTP                 ((DWORD)8)
  #define SRV_LDAP                 ((DWORD)16)
  #define SRV_HTTPMAIL             ((DWORD)32)
  #define SRV_MAIL                 ((DWORD)(SRV_IMAP | SRV_POP3 | SRV_SMTP | SRV_HTTPMAIL))
  #define SRV_ALL                  ((DWORD)(SRV_NNTP | SRV_IMAP | SRV_POP3 | SRV_SMTP | SRV_LDAP | SRV_HTTPMAIL))
  
  // --------------------------------------------------------------------------------
  // LDAP Authentication Types
  // --------------------------------------------------------------------------------
  #define LDAP_AUTH_ANONYMOUS      ((DWORD)0)
  #define LDAP_AUTH_PASSWORD       ((DWORD)1)
  #define LDAP_AUTH_MEMBER_SYSTEM  ((DWORD)2)
  #define LDAP_AUTH_MAX            ((DWORD)2)
  
  // --------------------------------------------------------------------------------
  // LDAP Paged Result Support Types
  // --------------------------------------------------------------------------------
  #define LDAP_PRESULT_UNKNOWN         ((DWORD)0)
  #define LDAP_PRESULT_SUPPORTED       ((DWORD)1)
  #define LDAP_PRESULT_NOTSUPPORTED    ((DWORD)2)
  #define LDAP_PRESULT_MAX             ((DWORD)2)
  
  // --------------------------------------------------------------------------------
  // LDAP NTDS Types
  // --------------------------------------------------------------------------------
  #define LDAP_NTDS_UNKNOWN      ((DWORD)0)
  #define LDAP_NTDS_IS           ((DWORD)1)
  #define LDAP_NTDS_ISNOT        ((DWORD)2)
  #define LDAP_NTDS_MAX          ((DWORD)2)
  
  // --------------------------------------------------------------------------------
  // AP_NNTP_POST_FORMAT types
  // --------------------------------------------------------------------------------
  #define POST_USE_DEFAULT         ((DWORD)0)
  #define POST_USE_PLAIN_TEXT      ((DWORD)1)
  #define POST_USE_HTML            ((DWORD)2)
  
  // --------------------------------------------------------------------------------
  // AP_NNTP_USER_INFORMATION types
  // --------------------------------------------------------------------------------
  #define NNTP_USER_AUTOCONFIG     ((DWORD)0)
  #define NNTP_USER_NOTIFIED       ((DWORD)1)
  #define NNTP_USER_DONTSHOW       ((DWORD)2)
  #define NNTP_USER_APPROVED       ((DWORD)3)
  
  // -----------------------------------------------------------------------------
  // Account Manager Notification Types
  // -----------------------------------------------------------------------------
  #define AN_ACCOUNT_DELETED           WM_USER + 1
  #define AN_ACCOUNT_ADDED             WM_USER + 2
  #define AN_ACCOUNT_CHANGED           WM_USER + 3
  #define AN_DEFAULT_CHANGED           WM_USER + 4
  #define AN_SERVERTYPES_CHANGED       WM_USER + 5
  #define AN_ACCOUNT_PREDELETE         WM_USER + 6
  
  // IImnAccountManager::AccountListDialog flags
  // IImnAccount::ShowProperties flags
  #define ACCTDLG_NO_IMAP          0x0001
  #define ACCTDLG_NO_REMOVEDELETE  0x0002
  #define ACCTDLG_NO_BREAKMESSAGES 0x0004
  #define ACCTDLG_NO_REMOVEAFTER   0x0008
  #define ACCTDLG_NO_SENDRECEIVE   0x0010
  #define ACCTDLG_NO_NEWSPOLL      0x0020
  #define ACCTDLG_NO_SECURITY      0x0040
  #define ACCTDLG_BACKUP_CONNECT   0x0080
  #define ACCTDLG_NO_IMAPPOLL      0x0100
  #define ACCTDLG_NO_NEW_POP       0x0200
  #define ACCTDLG_SHOWIMAPSPECIAL  0x0400
  #define ACCTDLG_INTERNETCONNECTION   0x0800
  #define ACCTDLG_HTTPMAIL             0x1000
  #define ACCTDLG_REVOCATION           0x2000
  #define ACCTDLG_OE                   0x4000
  #define ACCTDLG_PASSPORT             0x8000
  #define ACCTDLG_ALL                  0xffff
  
  // AP_RAS_CONNECTION_TYPE            values
  #define CONNECTION_TYPE_LAN               0
  #define CONNECTION_TYPE_MANUAL            1
  #define CONNECTION_TYPE_RAS               2
  #define CONNECTION_TYPE_INETSETTINGS      3
  
  // IImnAccount::DoWizard flags
  #define ACCT_WIZ_MIGRATE             0x0001
  #define ACCT_WIZ_MAILIMPORT          0x0002
  #define ACCT_WIZ_OUTLOOK             0x0004
  #define ACCT_WIZ_NEWSIMPORT          0x0008
  #define ACCT_WIZ_NO_NEW_POP          0x0010
  #define ACCT_WIZ_INTERNETCONNECTION  0x0020
  #define ACCT_WIZ_HTTPMAIL            0x0040
  #define ACCT_WIZ_OE                  0x0080
  #define ACCT_WIZ_COMMUNITIES         0x0100
  
  // IImnAccount::InitEx flags
  #define ACCT_INIT_ATHENA         0x0001
  #define ACCT_INIT_OUTLOOK        0x0002
  
   // AP_IMAP_DIRTY flags
  #define IMAP_FLDRLIST_DIRTY      0x0001
  #define IMAP_OE4MIGRATE_DIRTY    0x0002
  #define IMAP_SENTITEMS_DIRTY     0x0004
  #define IMAP_DRAFTS_DIRTY        0x0008
  #define IMAP_DELETEDITEMS_DIRTY  0x0010
  #define IMAP_JUNK_DIRTY          0x0020
  typedef 
  enum tagSMTPAUTHTYPE
      {	SMTP_AUTH_NONE	= 0,
  	SMTP_AUTH_SICILY	= ( SMTP_AUTH_NONE + 1 ) ,
  	SMTP_AUTH_USE_POP3ORIMAP_SETTINGS	= ( SMTP_AUTH_SICILY + 1 ) ,
  	SMTP_AUTH_USE_SMTP_SETTINGS	= ( SMTP_AUTH_USE_POP3ORIMAP_SETTINGS + 1 ) 
      } 	SMTPAUTHTYPE;
  
  #define	CCHMAX_ORG_NAME	( 256 )
  
  #define	CCHMAX_DISPLAY_NAME	( 256 )
  
  #define	CCHMAX_ACCOUNT_NAME	( 256 )
  
  #define	CCHMAX_SERVER_NAME	( 256 )
  
  #define	CCHMAX_PASSWORD	( 256 )
  
  #define	CCHMAX_USERNAME	( 256 )
  
  #define	CCHMAX_EMAIL_ADDRESS	( 256 )
  
  #define	CCHMAX_CONNECTOID	( 256 )
  
  #define	CCHMAX_SEARCH_BASE	( 256 )
  
  #define	CCHMAX_ROOT_FOLDER	( 256 )
  
  #define	CCHMAX_SIGNATURE	( 16 )
  
  #define	CCHMAX_SERVICE	( 256 )
  
  
  
  extern RPC_IF_HANDLE __MIDL_itf_imnact_0000_0000_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_imnact_0000_0000_v0_0_s_ifspec;
  
  #ifndef __IImnAdviseAccount_INTERFACE_DEFINED__
  #define __IImnAdviseAccount_INTERFACE_DEFINED__
  
  /* interface IImnAdviseAccount */
  /* [unique][uuid][object] */ 
  
  typedef /* [public][public][public][public][public][public][public][public][public][public][public][public] */ 
  enum __MIDL_IImnAdviseAccount_0001
      {	ACCT_NEWS	= 0,
  	ACCT_MAIL	= ( ACCT_NEWS + 1 ) ,
  	ACCT_DIR_SERV	= ( ACCT_MAIL + 1 ) ,
  	ACCT_LAST	= ( ACCT_DIR_SERV + 1 ) 
      } 	ACCTTYPE;
  
  typedef struct tagAccountContext
      {
      ACCTTYPE AcctType;
      LPSTR pszAccountID;
      LPSTR pszOldName;
      DWORD dwServerType;
      } 	ACTX;
  
  
  EXTERN_C const IID IID_IImnAdviseAccount;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("0A06BD31-166F-11d0-81B9-00C04FD85AB4")
      IImnAdviseAccount : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE AdviseAccount( 
              /* [in] */ DWORD dwAdviseType,
              /* [in] */ ACTX *pAcctCtx) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IImnAdviseAccountVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              IImnAdviseAccount * This,
              /* [in] */ REFIID riid,
              /* [iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              IImnAdviseAccount * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              IImnAdviseAccount * This);
          
          HRESULT ( STDMETHODCALLTYPE *AdviseAccount )( 
              IImnAdviseAccount * This,
              /* [in] */ DWORD dwAdviseType,
              /* [in] */ ACTX *pAcctCtx);
          
          END_INTERFACE
      } IImnAdviseAccountVtbl;
  
      interface IImnAdviseAccount
      {
          CONST_VTBL struct IImnAdviseAccountVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IImnAdviseAccount_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IImnAdviseAccount_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IImnAdviseAccount_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IImnAdviseAccount_AdviseAccount(This,dwAdviseType,pAcctCtx)	\
      ( (This)->lpVtbl -> AdviseAccount(This,dwAdviseType,pAcctCtx) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IImnAdviseAccount_INTERFACE_DEFINED__ */
  
  
  #ifndef __IImnAdviseMigrateServer_INTERFACE_DEFINED__
  #define __IImnAdviseMigrateServer_INTERFACE_DEFINED__
  
  /* interface IImnAdviseMigrateServer */
  /* [unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IImnAdviseMigrateServer;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("8D0AED11-1638-11d0-81B9-00C04FD85AB4")
      IImnAdviseMigrateServer : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE MigrateServer( 
              /* [in] */ DWORD dwSrvType,
              /* [in] */ IImnAccount *pAccount) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IImnAdviseMigrateServerVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              IImnAdviseMigrateServer * This,
              /* [in] */ REFIID riid,
              /* [iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              IImnAdviseMigrateServer * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              IImnAdviseMigrateServer * This);
          
          HRESULT ( STDMETHODCALLTYPE *MigrateServer )( 
              IImnAdviseMigrateServer * This,
              /* [in] */ DWORD dwSrvType,
              /* [in] */ IImnAccount *pAccount);
          
          END_INTERFACE
      } IImnAdviseMigrateServerVtbl;
  
      interface IImnAdviseMigrateServer
      {
          CONST_VTBL struct IImnAdviseMigrateServerVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IImnAdviseMigrateServer_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IImnAdviseMigrateServer_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IImnAdviseMigrateServer_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IImnAdviseMigrateServer_MigrateServer(This,dwSrvType,pAccount)	\
      ( (This)->lpVtbl -> MigrateServer(This,dwSrvType,pAccount) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IImnAdviseMigrateServer_INTERFACE_DEFINED__ */
  
  
  #ifndef __IImnEnumAccounts_INTERFACE_DEFINED__
  #define __IImnEnumAccounts_INTERFACE_DEFINED__
  
  /* interface IImnEnumAccounts */
  /* [unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IImnEnumAccounts;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("FD465483-1384-11d0-ABBD-0020AFDFD10A")
      IImnEnumAccounts : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetCount( 
              /* [out] */ ULONG *pcItems) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SortByAccountName( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetNext( 
              /* [out] */ IImnAccount **ppAccount) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IImnEnumAccountsVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              IImnEnumAccounts * This,
              /* [in] */ REFIID riid,
              /* [iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              IImnEnumAccounts * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              IImnEnumAccounts * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetCount )( 
              IImnEnumAccounts * This,
              /* [out] */ ULONG *pcItems);
          
          HRESULT ( STDMETHODCALLTYPE *SortByAccountName )( 
              IImnEnumAccounts * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetNext )( 
              IImnEnumAccounts * This,
              /* [out] */ IImnAccount **ppAccount);
          
          HRESULT ( STDMETHODCALLTYPE *Reset )( 
              IImnEnumAccounts * This);
          
          END_INTERFACE
      } IImnEnumAccountsVtbl;
  
      interface IImnEnumAccounts
      {
          CONST_VTBL struct IImnEnumAccountsVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IImnEnumAccounts_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IImnEnumAccounts_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IImnEnumAccounts_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IImnEnumAccounts_GetCount(This,pcItems)	\
      ( (This)->lpVtbl -> GetCount(This,pcItems) ) 
  
  #define IImnEnumAccounts_SortByAccountName(This)	\
      ( (This)->lpVtbl -> SortByAccountName(This) ) 
  
  #define IImnEnumAccounts_GetNext(This,ppAccount)	\
      ( (This)->lpVtbl -> GetNext(This,ppAccount) ) 
  
  #define IImnEnumAccounts_Reset(This)	\
      ( (This)->lpVtbl -> Reset(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IImnEnumAccounts_INTERFACE_DEFINED__ */
  
  
  #ifndef __IImnAccountManager_INTERFACE_DEFINED__
  #define __IImnAccountManager_INTERFACE_DEFINED__
  
  /* interface IImnAccountManager */
  /* [unique][uuid][object] */ 
  
  typedef struct tagACCTLISTINFO
      {
      DWORD cbSize;
      ACCTTYPE AcctTypeInit;
      DWORD dwAcctFlags;
      DWORD dwFlags;
      } 	ACCTLISTINFO;
  
  
  
  
  EXTERN_C const IID IID_IImnAccountManager;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("FD465481-1384-11d0-ABBD-0020AFDFD10A")
      IImnAccountManager : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Init( 
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE CreateAccountObject( 
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ IImnAccount **ppAccount) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Enumerate( 
              /* [in] */ DWORD dwSrvTypes,
              /* [out] */ IImnEnumAccounts **ppEnumAccounts) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetAccountCount( 
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ ULONG *pcServers) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE FindAccount( 
              /* [in] */ DWORD dwPropTag,
              /* [in] */ LPCSTR pszSearchData,
              /* [out] */ IImnAccount **ppAccount) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetDefaultAccount( 
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ IImnAccount **ppAccount) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetDefaultAccountName( 
              /* [in] */ ACCTTYPE AcctType,
              /* [size_is][out] */ 
              __out_ecount(cchMax)  LPSTR pszAccount,
              /* [in] */ ULONG cchMax) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ProcessNotification( 
              /* [in] */ UINT uMsg,
              /* [in] */ WPARAM wParam,
              /* [in] */ LPARAM lParam) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ValidateDefaultSendAccount( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE AccountListDialog( 
              /* [in] */ HWND hwnd,
              /* [in] */ ACCTLISTINFO *pinfo) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Advise( 
              /* [in] */ IImnAdviseAccount *pAdviseAccount,
              /* [out] */ DWORD *pdwConnection) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Unadvise( 
              /* [in] */ DWORD dwConnection) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetUniqueAccountName( 
              /* [in] */ LPSTR szName,
              /* [in] */ UINT cch) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE InitEx( 
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer,
              /* [in] */ DWORD dwFlags) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IImnAccountManagerVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              IImnAccountManager * This,
              /* [in] */ REFIID riid,
              /* [iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              IImnAccountManager * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              IImnAccountManager * This);
          
          HRESULT ( STDMETHODCALLTYPE *Init )( 
              IImnAccountManager * This,
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer);
          
          HRESULT ( STDMETHODCALLTYPE *CreateAccountObject )( 
              IImnAccountManager * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ IImnAccount **ppAccount);
          
          HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
              IImnAccountManager * This,
              /* [in] */ DWORD dwSrvTypes,
              /* [out] */ IImnEnumAccounts **ppEnumAccounts);
          
          HRESULT ( STDMETHODCALLTYPE *GetAccountCount )( 
              IImnAccountManager * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ ULONG *pcServers);
          
          HRESULT ( STDMETHODCALLTYPE *FindAccount )( 
              IImnAccountManager * This,
              /* [in] */ DWORD dwPropTag,
              /* [in] */ LPCSTR pszSearchData,
              /* [out] */ IImnAccount **ppAccount);
          
          HRESULT ( STDMETHODCALLTYPE *GetDefaultAccount )( 
              IImnAccountManager * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ IImnAccount **ppAccount);
          
          HRESULT ( STDMETHODCALLTYPE *GetDefaultAccountName )( 
              IImnAccountManager * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [size_is][out] */ 
              __out_ecount(cchMax)  LPSTR pszAccount,
              /* [in] */ ULONG cchMax);
          
          HRESULT ( STDMETHODCALLTYPE *ProcessNotification )( 
              IImnAccountManager * This,
              /* [in] */ UINT uMsg,
              /* [in] */ WPARAM wParam,
              /* [in] */ LPARAM lParam);
          
          HRESULT ( STDMETHODCALLTYPE *ValidateDefaultSendAccount )( 
              IImnAccountManager * This);
          
          HRESULT ( STDMETHODCALLTYPE *AccountListDialog )( 
              IImnAccountManager * This,
              /* [in] */ HWND hwnd,
              /* [in] */ ACCTLISTINFO *pinfo);
          
          HRESULT ( STDMETHODCALLTYPE *Advise )( 
              IImnAccountManager * This,
              /* [in] */ IImnAdviseAccount *pAdviseAccount,
              /* [out] */ DWORD *pdwConnection);
          
          HRESULT ( STDMETHODCALLTYPE *Unadvise )( 
              IImnAccountManager * This,
              /* [in] */ DWORD dwConnection);
          
          HRESULT ( STDMETHODCALLTYPE *GetUniqueAccountName )( 
              IImnAccountManager * This,
              /* [in] */ LPSTR szName,
              /* [in] */ UINT cch);
          
          HRESULT ( STDMETHODCALLTYPE *InitEx )( 
              IImnAccountManager * This,
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer,
              /* [in] */ DWORD dwFlags);
          
          END_INTERFACE
      } IImnAccountManagerVtbl;
  
      interface IImnAccountManager
      {
          CONST_VTBL struct IImnAccountManagerVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IImnAccountManager_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IImnAccountManager_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IImnAccountManager_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IImnAccountManager_Init(This,pAdviseMigrateServer)	\
      ( (This)->lpVtbl -> Init(This,pAdviseMigrateServer) ) 
  
  #define IImnAccountManager_CreateAccountObject(This,AcctType,ppAccount)	\
      ( (This)->lpVtbl -> CreateAccountObject(This,AcctType,ppAccount) ) 
  
  #define IImnAccountManager_Enumerate(This,dwSrvTypes,ppEnumAccounts)	\
      ( (This)->lpVtbl -> Enumerate(This,dwSrvTypes,ppEnumAccounts) ) 
  
  #define IImnAccountManager_GetAccountCount(This,AcctType,pcServers)	\
      ( (This)->lpVtbl -> GetAccountCount(This,AcctType,pcServers) ) 
  
  #define IImnAccountManager_FindAccount(This,dwPropTag,pszSearchData,ppAccount)	\
      ( (This)->lpVtbl -> FindAccount(This,dwPropTag,pszSearchData,ppAccount) ) 
  
  #define IImnAccountManager_GetDefaultAccount(This,AcctType,ppAccount)	\
      ( (This)->lpVtbl -> GetDefaultAccount(This,AcctType,ppAccount) ) 
  
  #define IImnAccountManager_GetDefaultAccountName(This,AcctType,pszAccount,cchMax)	\
      ( (This)->lpVtbl -> GetDefaultAccountName(This,AcctType,pszAccount,cchMax) ) 
  
  #define IImnAccountManager_ProcessNotification(This,uMsg,wParam,lParam)	\
      ( (This)->lpVtbl -> ProcessNotification(This,uMsg,wParam,lParam) ) 
  
  #define IImnAccountManager_ValidateDefaultSendAccount(This)	\
      ( (This)->lpVtbl -> ValidateDefaultSendAccount(This) ) 
  
  #define IImnAccountManager_AccountListDialog(This,hwnd,pinfo)	\
      ( (This)->lpVtbl -> AccountListDialog(This,hwnd,pinfo) ) 
  
  #define IImnAccountManager_Advise(This,pAdviseAccount,pdwConnection)	\
      ( (This)->lpVtbl -> Advise(This,pAdviseAccount,pdwConnection) ) 
  
  #define IImnAccountManager_Unadvise(This,dwConnection)	\
      ( (This)->lpVtbl -> Unadvise(This,dwConnection) ) 
  
  #define IImnAccountManager_GetUniqueAccountName(This,szName,cch)	\
      ( (This)->lpVtbl -> GetUniqueAccountName(This,szName,cch) ) 
  
  #define IImnAccountManager_InitEx(This,pAdviseMigrateServer,dwFlags)	\
      ( (This)->lpVtbl -> InitEx(This,pAdviseMigrateServer,dwFlags) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IImnAccountManager_INTERFACE_DEFINED__ */
  
  
  #ifndef __IImnAccountManager2_INTERFACE_DEFINED__
  #define __IImnAccountManager2_INTERFACE_DEFINED__
  
  /* interface IImnAccountManager2 */
  /* [unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IImnAccountManager2;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("C43DFC6F-62BB-11d2-A727-00C04F79E7C8")
      IImnAccountManager2 : public IImnAccountManager
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE InitUser( 
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer,
              /* [in] */ REFGUID rguidID,
              /* [in] */ DWORD dwFlags) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetIncompleteAccount( 
              /* [in] */ ACCTTYPE AcctType,
              /* [ref][in] */ LPSTR pszAccountId,
              /* [in] */ ULONG cchMax) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetIncompleteAccount( 
              /* [in] */ ACCTTYPE AcctType,
              /* [unique][in] */ LPCSTR pszAccountId) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IImnAccountManager2Vtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              IImnAccountManager2 * This,
              /* [in] */ REFIID riid,
              /* [iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              IImnAccountManager2 * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              IImnAccountManager2 * This);
          
          HRESULT ( STDMETHODCALLTYPE *Init )( 
              IImnAccountManager2 * This,
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer);
          
          HRESULT ( STDMETHODCALLTYPE *CreateAccountObject )( 
              IImnAccountManager2 * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ IImnAccount **ppAccount);
          
          HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
              IImnAccountManager2 * This,
              /* [in] */ DWORD dwSrvTypes,
              /* [out] */ IImnEnumAccounts **ppEnumAccounts);
          
          HRESULT ( STDMETHODCALLTYPE *GetAccountCount )( 
              IImnAccountManager2 * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ ULONG *pcServers);
          
          HRESULT ( STDMETHODCALLTYPE *FindAccount )( 
              IImnAccountManager2 * This,
              /* [in] */ DWORD dwPropTag,
              /* [in] */ LPCSTR pszSearchData,
              /* [out] */ IImnAccount **ppAccount);
          
          HRESULT ( STDMETHODCALLTYPE *GetDefaultAccount )( 
              IImnAccountManager2 * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [out] */ IImnAccount **ppAccount);
          
          HRESULT ( STDMETHODCALLTYPE *GetDefaultAccountName )( 
              IImnAccountManager2 * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [size_is][out] */ 
              __out_ecount(cchMax)  LPSTR pszAccount,
              /* [in] */ ULONG cchMax);
          
          HRESULT ( STDMETHODCALLTYPE *ProcessNotification )( 
              IImnAccountManager2 * This,
              /* [in] */ UINT uMsg,
              /* [in] */ WPARAM wParam,
              /* [in] */ LPARAM lParam);
          
          HRESULT ( STDMETHODCALLTYPE *ValidateDefaultSendAccount )( 
              IImnAccountManager2 * This);
          
          HRESULT ( STDMETHODCALLTYPE *AccountListDialog )( 
              IImnAccountManager2 * This,
              /* [in] */ HWND hwnd,
              /* [in] */ ACCTLISTINFO *pinfo);
          
          HRESULT ( STDMETHODCALLTYPE *Advise )( 
              IImnAccountManager2 * This,
              /* [in] */ IImnAdviseAccount *pAdviseAccount,
              /* [out] */ DWORD *pdwConnection);
          
          HRESULT ( STDMETHODCALLTYPE *Unadvise )( 
              IImnAccountManager2 * This,
              /* [in] */ DWORD dwConnection);
          
          HRESULT ( STDMETHODCALLTYPE *GetUniqueAccountName )( 
              IImnAccountManager2 * This,
              /* [in] */ LPSTR szName,
              /* [in] */ UINT cch);
          
          HRESULT ( STDMETHODCALLTYPE *InitEx )( 
              IImnAccountManager2 * This,
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer,
              /* [in] */ DWORD dwFlags);
          
          HRESULT ( STDMETHODCALLTYPE *InitUser )( 
              IImnAccountManager2 * This,
              /* [in] */ IImnAdviseMigrateServer *pAdviseMigrateServer,
              /* [in] */ REFGUID rguidID,
              /* [in] */ DWORD dwFlags);
          
          HRESULT ( STDMETHODCALLTYPE *GetIncompleteAccount )( 
              IImnAccountManager2 * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [ref][in] */ LPSTR pszAccountId,
              /* [in] */ ULONG cchMax);
          
          HRESULT ( STDMETHODCALLTYPE *SetIncompleteAccount )( 
              IImnAccountManager2 * This,
              /* [in] */ ACCTTYPE AcctType,
              /* [unique][in] */ LPCSTR pszAccountId);
          
          END_INTERFACE
      } IImnAccountManager2Vtbl;
  
      interface IImnAccountManager2
      {
          CONST_VTBL struct IImnAccountManager2Vtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IImnAccountManager2_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IImnAccountManager2_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IImnAccountManager2_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IImnAccountManager2_Init(This,pAdviseMigrateServer)	\
      ( (This)->lpVtbl -> Init(This,pAdviseMigrateServer) ) 
  
  #define IImnAccountManager2_CreateAccountObject(This,AcctType,ppAccount)	\
      ( (This)->lpVtbl -> CreateAccountObject(This,AcctType,ppAccount) ) 
  
  #define IImnAccountManager2_Enumerate(This,dwSrvTypes,ppEnumAccounts)	\
      ( (This)->lpVtbl -> Enumerate(This,dwSrvTypes,ppEnumAccounts) ) 
  
  #define IImnAccountManager2_GetAccountCount(This,AcctType,pcServers)	\
      ( (This)->lpVtbl -> GetAccountCount(This,AcctType,pcServers) ) 
  
  #define IImnAccountManager2_FindAccount(This,dwPropTag,pszSearchData,ppAccount)	\
      ( (This)->lpVtbl -> FindAccount(This,dwPropTag,pszSearchData,ppAccount) ) 
  
  #define IImnAccountManager2_GetDefaultAccount(This,AcctType,ppAccount)	\
      ( (This)->lpVtbl -> GetDefaultAccount(This,AcctType,ppAccount) ) 
  
  #define IImnAccountManager2_GetDefaultAccountName(This,AcctType,pszAccount,cchMax)	\
      ( (This)->lpVtbl -> GetDefaultAccountName(This,AcctType,pszAccount,cchMax) ) 
  
  #define IImnAccountManager2_ProcessNotification(This,uMsg,wParam,lParam)	\
      ( (This)->lpVtbl -> ProcessNotification(This,uMsg,wParam,lParam) ) 
  
  #define IImnAccountManager2_ValidateDefaultSendAccount(This)	\
      ( (This)->lpVtbl -> ValidateDefaultSendAccount(This) ) 
  
  #define IImnAccountManager2_AccountListDialog(This,hwnd,pinfo)	\
      ( (This)->lpVtbl -> AccountListDialog(This,hwnd,pinfo) ) 
  
  #define IImnAccountManager2_Advise(This,pAdviseAccount,pdwConnection)	\
      ( (This)->lpVtbl -> Advise(This,pAdviseAccount,pdwConnection) ) 
  
  #define IImnAccountManager2_Unadvise(This,dwConnection)	\
      ( (This)->lpVtbl -> Unadvise(This,dwConnection) ) 
  
  #define IImnAccountManager2_GetUniqueAccountName(This,szName,cch)	\
      ( (This)->lpVtbl -> GetUniqueAccountName(This,szName,cch) ) 
  
  #define IImnAccountManager2_InitEx(This,pAdviseMigrateServer,dwFlags)	\
      ( (This)->lpVtbl -> InitEx(This,pAdviseMigrateServer,dwFlags) ) 
  
  
  #define IImnAccountManager2_InitUser(This,pAdviseMigrateServer,rguidID,dwFlags)	\
      ( (This)->lpVtbl -> InitUser(This,pAdviseMigrateServer,rguidID,dwFlags) ) 
  
  #define IImnAccountManager2_GetIncompleteAccount(This,AcctType,pszAccountId,cchMax)	\
      ( (This)->lpVtbl -> GetIncompleteAccount(This,AcctType,pszAccountId,cchMax) ) 
  
  #define IImnAccountManager2_SetIncompleteAccount(This,AcctType,pszAccountId)	\
      ( (This)->lpVtbl -> SetIncompleteAccount(This,AcctType,pszAccountId) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IImnAccountManager2_INTERFACE_DEFINED__ */
  
  
  #ifndef __IPropertyContainer_INTERFACE_DEFINED__
  #define __IPropertyContainer_INTERFACE_DEFINED__
  
  /* interface IPropertyContainer */
  /* [unique][uuid][object] */ 
  
  typedef /* [public] */ 
  enum __MIDL_IPropertyContainer_0001
      {	TYPE_ERROR	= 1000,
  	TYPE_DWORD	= ( TYPE_ERROR + 1 ) ,
  	TYPE_LONG	= ( TYPE_DWORD + 1 ) ,
  	TYPE_WORD	= ( TYPE_LONG + 1 ) ,
  	TYPE_SHORT	= ( TYPE_WORD + 1 ) ,
  	TYPE_BYTE	= ( TYPE_SHORT + 1 ) ,
  	TYPE_CHAR	= ( TYPE_BYTE + 1 ) ,
  	TYPE_FILETIME	= ( TYPE_CHAR + 1 ) ,
  	TYPE_STRING	= ( TYPE_FILETIME + 1 ) ,
  	TYPE_BINARY	= ( TYPE_STRING + 1 ) ,
  	TYPE_FLAGS	= ( TYPE_BINARY + 1 ) ,
  	TYPE_STREAM	= ( TYPE_FLAGS + 1 ) ,
  	TYPE_WSTRING	= ( TYPE_STREAM + 1 ) ,
  	TYPE_BOOL	= ( TYPE_WSTRING + 1 ) ,
  	TYPE_PASS	= ( TYPE_BOOL + 1 ) ,
  	TYPE_ULARGEINTEGER	= ( TYPE_PASS + 1 ) ,
  	TYPE_LAST	= ( TYPE_ULARGEINTEGER + 1 ) 
      } 	PROPTYPE;
  
  
  
  
  
  
  EXTERN_C const IID IID_IPropertyContainer;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("FD465484-1384-11d0-ABBD-0020AFDFD10A")
      IPropertyContainer : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetProp( 
              /* [in] */ DWORD dwPropTag,
              /* [unique][ref][size_is][in] */ BYTE *pb,
              /* [in] */ ULONG *pcb) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetPropDw( 
              /* [in] */ DWORD dwPropTag,
              /* [out] */ DWORD *pdw) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetPropSz( 
              /* [in] */ DWORD dwPropTag,
              /* [size_is][out] */ 
              __out_ecount(cchMax)  LPSTR psz,
              /* [in] */ ULONG cchMax) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetProp( 
              /* [in] */ DWORD dwPropTag,
              /* [unique][size_is][in] */ BYTE *pb,
              /* [in] */ ULONG cb) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetPropDw( 
              /* [in] */ DWORD dwPropTag,
              /* [in] */ DWORD dw) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetPropSz( 
              /* [in] */ DWORD dwPropTag,
              /* [unique][in] */ 
              __in  LPSTR psz) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IPropertyContainerVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              IPropertyContainer * This,
              /* [in] */ REFIID riid,
              /* [iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              IPropertyContainer * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              IPropertyContainer * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetProp )( 
              IPropertyContainer * This,
              /* [in] */ DWORD dwPropTag,
              /* [unique][ref][size_is][in] */ BYTE *pb,
              /* [in] */ ULONG *pcb);
          
          HRESULT ( STDMETHODCALLTYPE *GetPropDw )( 
              IPropertyContainer * This,
              /* [in] */ DWORD dwPropTag,
              /* [out] */ DWORD *pdw);
          
          HRESULT ( STDMETHODCALLTYPE *GetPropSz )( 
              IPropertyContainer * This,
              /* [in] */ DWORD dwPropTag,
              /* [size_is][out] */ 
              __out_ecount(cchMax)  LPSTR psz,
              /* [in] */ ULONG cchMax);
          
          HRESULT ( STDMETHODCALLTYPE *SetProp )( 
              IPropertyContainer * This,
              /* [in] */ DWORD dwPropTag,
              /* [unique][size_is][in] */ BYTE *pb,
              /* [in] */ ULONG cb);
          
          HRESULT ( STDMETHODCALLTYPE *SetPropDw )( 
              IPropertyContainer * This,
              /* [in] */ DWORD dwPropTag,
              /* [in] */ DWORD dw);
          
          HRESULT ( STDMETHODCALLTYPE *SetPropSz )( 
              IPropertyContainer * This,
              /* [in] */ DWORD dwPropTag,
              /* [unique][in] */ 
              __in  LPSTR psz);
          
          END_INTERFACE
      } IPropertyContainerVtbl;
  
      interface IPropertyContainer
      {
          CONST_VTBL struct IPropertyContainerVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IPropertyContainer_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IPropertyContainer_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IPropertyContainer_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IPropertyContainer_GetProp(This,dwPropTag,pb,pcb)	\
      ( (This)->lpVtbl -> GetProp(This,dwPropTag,pb,pcb) ) 
  
  #define IPropertyContainer_GetPropDw(This,dwPropTag,pdw)	\
      ( (This)->lpVtbl -> GetPropDw(This,dwPropTag,pdw) ) 
  
  #define IPropertyContainer_GetPropSz(This,dwPropTag,psz,cchMax)	\
      ( (This)->lpVtbl -> GetPropSz(This,dwPropTag,psz,cchMax) ) 
  
  #define IPropertyContainer_SetProp(This,dwPropTag,pb,cb)	\
      ( (This)->lpVtbl -> SetProp(This,dwPropTag,pb,cb) ) 
  
  #define IPropertyContainer_SetPropDw(This,dwPropTag,dw)	\
      ( (This)->lpVtbl -> SetPropDw(This,dwPropTag,dw) ) 
  
  #define IPropertyContainer_SetPropSz(This,dwPropTag,psz)	\
      ( (This)->lpVtbl -> SetPropSz(This,dwPropTag,psz) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IPropertyContainer_INTERFACE_DEFINED__ */
  
  
  #ifndef __IImnAccount_INTERFACE_DEFINED__
  #define __IImnAccount_INTERFACE_DEFINED__
  
  /* interface IImnAccount */
  /* [unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IImnAccount;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("FD465482-1384-11d0-ABBD-0020AFDFD10A")
      IImnAccount : public IPropertyContainer
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Exist( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetAsDefault( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Delete( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SaveChanges( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetAccountType( 
              /* [out] */ ACCTTYPE *pAcctType) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetServerTypes( 
              /* [out] */ DWORD *pdwSrvTypes) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ShowProperties( 
              /* [in] */ HWND hwnd,
              /* [in] */ DWORD dwFlags) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ValidateProperty( 
              /* [in] */ DWORD dwPropTag,
              /* [size_is][in] */ BYTE *pb,
              /* [in] */ ULONG cb) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE DoWizard( 
              /* [in] */ HWND hwnd,
              /* [in] */ DWORD dwFlags) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE DoImportWizard( 
              /* [in] */ HWND hwnd,
              /* [in] */ CLSID clsid,
              /* [in] */ DWORD dwFlags) = 0;
          
      };
      
  #else 	/* C style interface */
  
      typedef struct IImnAccountVtbl
      {
          BEGIN_INTERFACE
          
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              IImnAccount * This,
              /* [in] */ REFIID riid,
              /* [iid_is][out] */ 
              __RPC__deref_out  void **ppvObject);
          
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              IImnAccount * This);
          
          ULONG ( STDMETHODCALLTYPE *Release )( 
              IImnAccount * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetProp )( 
              IImnAccount * This,
              /* [in] */ DWORD dwPropTag,
              /* [unique][ref][size_is][in] */ BYTE *pb,
              /* [in] */ ULONG *pcb);
          
          HRESULT ( STDMETHODCALLTYPE *GetPropDw )( 
              IImnAccount * This,
              /* [in] */ DWORD dwPropTag,
              /* [out] */ DWORD *pdw);
          
          HRESULT ( STDMETHODCALLTYPE *GetPropSz )( 
              IImnAccount * This,
              /* [in] */ DWORD dwPropTag,
              /* [size_is][out] */ 
              __out_ecount(cchMax)  LPSTR psz,
              /* [in] */ ULONG cchMax);
          
          HRESULT ( STDMETHODCALLTYPE *SetProp )( 
              IImnAccount * This,
              /* [in] */ DWORD dwPropTag,
              /* [unique][size_is][in] */ BYTE *pb,
              /* [in] */ ULONG cb);
          
          HRESULT ( STDMETHODCALLTYPE *SetPropDw )( 
              IImnAccount * This,
              /* [in] */ DWORD dwPropTag,
              /* [in] */ DWORD dw);
          
          HRESULT ( STDMETHODCALLTYPE *SetPropSz )( 
              IImnAccount * This,
              /* [in] */ DWORD dwPropTag,
              /* [unique][in] */ 
              __in  LPSTR psz);
          
          HRESULT ( STDMETHODCALLTYPE *Exist )( 
              IImnAccount * This);
          
          HRESULT ( STDMETHODCALLTYPE *SetAsDefault )( 
              IImnAccount * This);
          
          HRESULT ( STDMETHODCALLTYPE *Delete )( 
              IImnAccount * This);
          
          HRESULT ( STDMETHODCALLTYPE *SaveChanges )( 
              IImnAccount * This);
          
          HRESULT ( STDMETHODCALLTYPE *GetAccountType )( 
              IImnAccount * This,
              /* [out] */ ACCTTYPE *pAcctType);
          
          HRESULT ( STDMETHODCALLTYPE *GetServerTypes )( 
              IImnAccount * This,
              /* [out] */ DWORD *pdwSrvTypes);
          
          HRESULT ( STDMETHODCALLTYPE *ShowProperties )( 
              IImnAccount * This,
              /* [in] */ HWND hwnd,
              /* [in] */ DWORD dwFlags);
          
          HRESULT ( STDMETHODCALLTYPE *ValidateProperty )( 
              IImnAccount * This,
              /* [in] */ DWORD dwPropTag,
              /* [size_is][in] */ BYTE *pb,
              /* [in] */ ULONG cb);
          
          HRESULT ( STDMETHODCALLTYPE *DoWizard )( 
              IImnAccount * This,
              /* [in] */ HWND hwnd,
              /* [in] */ DWORD dwFlags);
          
          HRESULT ( STDMETHODCALLTYPE *DoImportWizard )( 
              IImnAccount * This,
              /* [in] */ HWND hwnd,
              /* [in] */ CLSID clsid,
              /* [in] */ DWORD dwFlags);
          
          END_INTERFACE
      } IImnAccountVtbl;
  
      interface IImnAccount
      {
          CONST_VTBL struct IImnAccountVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IImnAccount_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IImnAccount_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IImnAccount_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IImnAccount_GetProp(This,dwPropTag,pb,pcb)	\
      ( (This)->lpVtbl -> GetProp(This,dwPropTag,pb,pcb) ) 
  
  #define IImnAccount_GetPropDw(This,dwPropTag,pdw)	\
      ( (This)->lpVtbl -> GetPropDw(This,dwPropTag,pdw) ) 
  
  #define IImnAccount_GetPropSz(This,dwPropTag,psz,cchMax)	\
      ( (This)->lpVtbl -> GetPropSz(This,dwPropTag,psz,cchMax) ) 
  
  #define IImnAccount_SetProp(This,dwPropTag,pb,cb)	\
      ( (This)->lpVtbl -> SetProp(This,dwPropTag,pb,cb) ) 
  
  #define IImnAccount_SetPropDw(This,dwPropTag,dw)	\
      ( (This)->lpVtbl -> SetPropDw(This,dwPropTag,dw) ) 
  
  #define IImnAccount_SetPropSz(This,dwPropTag,psz)	\
      ( (This)->lpVtbl -> SetPropSz(This,dwPropTag,psz) ) 
  
  
  #define IImnAccount_Exist(This)	\
      ( (This)->lpVtbl -> Exist(This) ) 
  
  #define IImnAccount_SetAsDefault(This)	\
      ( (This)->lpVtbl -> SetAsDefault(This) ) 
  
  #define IImnAccount_Delete(This)	\
      ( (This)->lpVtbl -> Delete(This) ) 
  
  #define IImnAccount_SaveChanges(This)	\
      ( (This)->lpVtbl -> SaveChanges(This) ) 
  
  #define IImnAccount_GetAccountType(This,pAcctType)	\
      ( (This)->lpVtbl -> GetAccountType(This,pAcctType) ) 
  
  #define IImnAccount_GetServerTypes(This,pdwSrvTypes)	\
      ( (This)->lpVtbl -> GetServerTypes(This,pdwSrvTypes) ) 
  
  #define IImnAccount_ShowProperties(This,hwnd,dwFlags)	\
      ( (This)->lpVtbl -> ShowProperties(This,hwnd,dwFlags) ) 
  
  #define IImnAccount_ValidateProperty(This,dwPropTag,pb,cb)	\
      ( (This)->lpVtbl -> ValidateProperty(This,dwPropTag,pb,cb) ) 
  
  #define IImnAccount_DoWizard(This,hwnd,dwFlags)	\
      ( (This)->lpVtbl -> DoWizard(This,hwnd,dwFlags) ) 
  
  #define IImnAccount_DoImportWizard(This,hwnd,clsid,dwFlags)	\
      ( (This)->lpVtbl -> DoImportWizard(This,hwnd,clsid,dwFlags) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IImnAccount_INTERFACE_DEFINED__ */
  
  
  /* interface __MIDL_itf_imnact_0000_0007 */
  /* [local] */ 
  
  #if defined( WIN16 ) && !defined( __cplusplus )
  // {8D4B04E1-1331-11d0-81B8-00C04FD85AB4}
  EXTERN_C const IID CLSID_ImnAccountManager =
      { 0x8d4b04e1, 0x1331, 0x11d0, { 0x81, 0xb8, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4 } };
  
  // {FD465484-1384-11d0-ABBD-0020AFDFD10A}
  EXTERN_C const IID IID_IPropertyContainer =
      { 0xfd465484, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };
  
  // {FD465481-1384-11d0-ABBD-0020AFDFD10A}
  EXTERN_C const IID IID_IImnAccountManager =
      { 0xfd465481, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };
  
  // {C43DFC6F-62BB-11d2-A727-00C04F79E7C8}
  EXTERN_C const IID IID_IImnAccountManager2 =
      { 0xc43dfc6f, 0x62bb, 0x11d2, { 0xa7, 0x27, 0x0, 0xc0, 0x4f, 0x79, 0xe7, 0xc8 } };
  
  // {FD465482-1384-11d0-ABBD-0020AFDFD10A}
  EXTERN_C const IID IID_IImnAccount =
      { 0xfd465482, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };
  
  // {FD465483-1384-11d0-ABBD-0020AFDFD10A}
  EXTERN_C const IID IID_IImnEnumAccounts =
      { 0xfd465483, 0x1384, 0x11d0, { 0xab, 0xbd, 0x0, 0x20, 0xaf, 0xdf, 0xd1, 0xa } };
  
  // {8D0AED11-1638-11d0-81B9-00C04FD85AB4}
  EXTERN_C const IID IID_IImnAdviseMigrateServer =
      { 0x8d0aed11, 0x1638, 0x11d0, { 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4 } };
  
  // {0A06BD31-166F-11d0-81B9-00C04FD85AB4}
  EXTERN_C const IID IID_IImnAdviseAccount =
      { 0xa06bd31, 0x166f, 0x11d0, { 0x81, 0xb9, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4 } };
  
  #endif //WIN16 && !__cplusplus
  
  
  extern RPC_IF_HANDLE __MIDL_itf_imnact_0000_0007_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_imnact_0000_0007_v0_0_s_ifspec;
  
  /* Additional Prototypes for ALL interfaces */
  
  unsigned long             __RPC_USER  HWND_UserSize(     unsigned long *, unsigned long            , HWND * ); 
  unsigned char * __RPC_USER  HWND_UserMarshal(  unsigned long *, unsigned char *, HWND * ); 
  unsigned char * __RPC_USER  HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * ); 
  void                      __RPC_USER  HWND_UserFree(     unsigned long *, HWND * ); 
  
  /* end of Additional Prototypes */
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif
  
  
  