/*********************************************************************** * * _ABUSER.H * * Header file for code in ABUSER.C * * Copyright 1992, 1993 Microsoft Corporation. All Rights Reserved. * ***********************************************************************/ #ifdef __cplusplus extern "C" { #endif /* * Function prototypes * * Reuses methods: * ROOT_QueryInterface * ROOT_AddRef * ROOT_GetLastError * ROOT_Reserved */ #undef INTERFACE #define INTERFACE struct _ABUSER #undef MAPIMETHOD_ #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, ABU_) MAPI_IUNKNOWN_METHODS(IMPL) MAPI_IMAPIPROP_METHODS(IMPL) MAPI_IMAILUSER_METHODS(IMPL) #undef MAPIMETHOD_ #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, ABU_) MAPI_IUNKNOWN_METHODS(IMPL) MAPI_IMAPIPROP_METHODS(IMPL) MAPI_IMAILUSER_METHODS(IMPL) #undef MAPIMETHOD_ #define MAPIMETHOD_(type, method) STDMETHOD_(type, method) DECLARE_MAPI_INTERFACE(ABU_) { MAPI_IUNKNOWN_METHODS(IMPL) MAPI_IMAPIPROP_METHODS(IMPL) MAPI_IMAILUSER_METHODS(IMPL) }; typedef struct _ABUSER { ABU_Vtbl FAR * lpVtbl; FAB_Wrapped; /* * Table used for country codes drop down list */ LPTABLEDATA lpTDatDDListBox; } ABUSER, *LPABUSER; #define CBABUSER sizeof(ABUSER) /* * Creates a new Mail User object (see ABUSER.C) */ HRESULT HrNewFaxUser( LPMAILUSER * lppMAPIPropEntry, ULONG * lpulObjectType, ULONG cbEntryID, LPENTRYID lpEntryID, LPABLOGON lpABPLogon, LPCIID lpInterface, HINSTANCE hLibrary, LPALLOCATEBUFFER lpAllocBuff, LPALLOCATEMORE lpAllocMore, LPFREEBUFFER lpFreeBuff, LPMALLOC lpMalloc ); HRESULT HrBuildDDLBXCountriesTable(LPABUSER lpABUser); // country list structure #define COUNTRY_NAME_SIZE 50 typedef struct tagCOUNTRIESLIST { TCHAR szDisplayName[COUNTRY_NAME_SIZE+1]; DWORD dwValue; } COUNTRIESLIST, *LPCOUNTRIESLIST; // Entry ID for the DD list box table typedef struct _options_entryid { BYTE abFlags[4]; MAPIUID muid; ULONG ulVersion; ULONG ulType; ULONG ulRowNumber; } OPTIONS_ENTRYID, *LPOPTIONS_ENTRYID; #define CBOPTIONS_ENTRYID sizeof(OPTIONS_ENTRYID) /* * * Declaration of a button interface for various button controls * */ #undef INTERFACE #define INTERFACE struct _ABUBUTT #undef MAPIMETHOD_ #define MAPIMETHOD_(type,method) MAPIMETHOD_DECLARE(type,method,ABUBUTT_) MAPI_IUNKNOWN_METHODS(IMPL) MAPI_IMAPICONTROL_METHODS(IMPL) #undef MAPIMETHOD_ #define MAPIMETHOD_(type,method) MAPIMETHOD_TYPEDEF(type,method,ABUBUTT_) MAPI_IUNKNOWN_METHODS(IMPL) MAPI_IMAPICONTROL_METHODS(IMPL) #undef MAPIMETHOD_ #define MAPIMETHOD_(type,method) STDMETHOD_(type,method) DECLARE_MAPI_INTERFACE(ABUBUTT_) { MAPI_IUNKNOWN_METHODS(IMPL) MAPI_IMAPICONTROL_METHODS(IMPL) }; typedef struct _ABUBUTT { ABUBUTT_Vtbl FAR * lpVtbl; /* * Need to be the same as other objects * since this object reuses methods from * other objects. */ FAB_IUnkWithLogon; /* Private data */ // The property tag associated with this button ULONG ulPropTag; } ABUBUTT, *LPABUBUTT; #define CBABUBUTT sizeof(ABUBUTT) /* * Create a button of the type above (ABUSER.C) */ HRESULT HrNewABUserButton( LPMAPICONTROL * lppMAPICont, LPABLOGON lpABLogon, HINSTANCE hLibrary, LPALLOCATEBUFFER lpAllocBuff, LPALLOCATEMORE lpAllocMore, LPFREEBUFFER lpFreeBuff, LPMALLOC lpMalloc, ULONG ulPropTag); #ifdef __cplusplus } /* extern "C" */ #endif