windows-nt/Source/XPSP1/NT/printscan/fax/exchange/ab/abuser.h
2020-09-26 16:20:57 +08:00

172 lines
3.7 KiB
C

/***********************************************************************
*
* _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