791 lines
24 KiB
C
791 lines
24 KiB
C
#ifndef EXCHEXT_H
|
|
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
#define EXCHEXT_H
|
|
|
|
|
|
/*
|
|
* E X C H E X T . H
|
|
*
|
|
* Declarations of interfaces for providers of Microsoft Exchange
|
|
* client extensions.
|
|
*
|
|
* Copyright 1986-1996 Microsoft Corporation. All Rights Reserved.
|
|
*/
|
|
|
|
|
|
#ifndef BEGIN_INTERFACE
|
|
#define BEGIN_INTERFACE
|
|
#endif
|
|
|
|
|
|
/*
|
|
* C o n s t a n t s
|
|
*/
|
|
|
|
|
|
// SCODEs
|
|
#define EXCHEXT_S_NOCRITERIA MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 1)
|
|
#define EXCHEXT_S_NOCHANGE MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 2)
|
|
|
|
// Flag for Unicode strings
|
|
#define EXCHEXT_UNICODE (0x80000000)
|
|
|
|
// Flag values for IExchExtCallback::GetVersion
|
|
#define EECBGV_GETBUILDVERSION (0x00000001)
|
|
#define EECBGV_GETACTUALVERSION (0x00000002)
|
|
#define EECBGV_GETVIRTUALVERSION (0x00000004)
|
|
|
|
// Build version value for IExchExtCallback::GetVersion
|
|
#define EECBGV_BUILDVERSION_MAJOR (0x000d0000)
|
|
#define EECBGV_BUILDVERSION_MAJOR_MASK (0xFFFF0000)
|
|
#define EECBGV_BUILDVERSION_MINOR_MASK (0x0000FFFF)
|
|
|
|
// Actual/Virtual version values for IExchExtCallback::GetVersion
|
|
#define EECBGV_MSEXCHANGE_WIN31 (0x01010000)
|
|
#define EECBGV_MSEXCHANGE_WIN95 (0x01020000)
|
|
#define EECBGV_MSEXCHANGE_WINNT (0x01030000)
|
|
#define EECBGV_MSEXCHANGE_MAC (0x01040000)
|
|
#define EECBGV_VERSION_PRODUCT_MASK (0xFF000000)
|
|
#define EECBGV_VERSION_PLATFORM_MASK (0x00FF0000)
|
|
#define EECBGV_VERSION_MAJOR_MASK (0x0000FF00)
|
|
#define EECBGV_VERSION_MINOR_MASK (0x000000FF)
|
|
|
|
// Flag values for IExchExtCallback::GetMenuPos
|
|
#define EECBGMP_RANGE (0x00000001)
|
|
|
|
// Flag values for IExchExtCallback::GetNewMessageSite
|
|
#define EECBGNMS_MODAL (0x00000001)
|
|
|
|
// Flag values for IExchExtCallback::ChooseFolder
|
|
#define EECBCF_GETNAME (0x00000001)
|
|
#define EECBCF_HIDENEW (0x00000002)
|
|
#define EECBCF_PREVENTROOT (0x00000004)
|
|
|
|
// Extensibility contexts used with IExchExt::Install
|
|
#define EECONTEXT_SESSION (0x00000001)
|
|
#define EECONTEXT_VIEWER (0x00000002)
|
|
#define EECONTEXT_REMOTEVIEWER (0x00000003)
|
|
#define EECONTEXT_SEARCHVIEWER (0x00000004)
|
|
#define EECONTEXT_ADDRBOOK (0x00000005)
|
|
#define EECONTEXT_SENDNOTEMESSAGE (0x00000006)
|
|
#define EECONTEXT_READNOTEMESSAGE (0x00000007)
|
|
#define EECONTEXT_SENDPOSTMESSAGE (0x00000008)
|
|
#define EECONTEXT_READPOSTMESSAGE (0x00000009)
|
|
#define EECONTEXT_READREPORTMESSAGE (0x0000000A)
|
|
#define EECONTEXT_SENDRESENDMESSAGE (0x0000000B)
|
|
#define EECONTEXT_PROPERTYSHEETS (0x0000000C)
|
|
#define EECONTEXT_ADVANCEDCRITERIA (0x0000000D)
|
|
#define EECONTEXT_TASK (0x0000000E)
|
|
|
|
// Flag values for IExchExt::Install
|
|
#define EE_MODAL (0x00000001)
|
|
|
|
// Toolbar ids used with IExchExtCommands::InstallCommands
|
|
#define EETBID_STANDARD (0x00000001)
|
|
|
|
// Flag values for IExchExtCommands::QueryHelpText
|
|
#define EECQHT_STATUS (0x00000001)
|
|
#define EECQHT_TOOLTIP (0x00000002)
|
|
|
|
// Flag values for IExchExtMessageEvents::OnXComplete
|
|
#define EEME_FAILED (0x00000001)
|
|
#define EEME_COMPLETE_FAILED (0x00000002)
|
|
|
|
// Flag values for IExchExtAttachedFileEvents::OpenSzFile
|
|
#define EEAFE_OPEN (0x00000001)
|
|
#define EEAFE_PRINT (0x00000002)
|
|
#define EEAFE_QUICKVIEW (0x00000003)
|
|
|
|
// Flag values for IExchExtPropertySheets methods
|
|
#define EEPS_MESSAGE (0x00000001)
|
|
#define EEPS_FOLDER (0x00000002)
|
|
#define EEPS_STORE (0x00000003)
|
|
#define EEPS_TOOLSOPTIONS (0x00000004)
|
|
|
|
// Flag values for IExchExtAdvancedCriteria::Install and ::SetFolder
|
|
#define EEAC_INCLUDESUBFOLDERS (0x00000001)
|
|
|
|
|
|
/*
|
|
* S t r u c t u r e s
|
|
*/
|
|
|
|
|
|
// Hook procedure for IExchExtCallback::ChooseFolder
|
|
typedef UINT (STDAPICALLTYPE FAR * LPEECFHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
// Dialog information for IExchExtCallback::ChooseFolder
|
|
typedef struct
|
|
{
|
|
UINT cbLength;
|
|
HWND hwnd;
|
|
LPTSTR szCaption;
|
|
LPTSTR szLabel;
|
|
LPTSTR szHelpFile;
|
|
ULONG ulHelpID;
|
|
HINSTANCE hinst;
|
|
UINT uiDlgID;
|
|
LPEECFHOOKPROC lpeecfhp;
|
|
DWORD dwHookData;
|
|
ULONG ulFlags;
|
|
LPMDB pmdb;
|
|
LPMAPIFOLDER pfld;
|
|
LPTSTR szName;
|
|
DWORD dwReserved1;
|
|
DWORD dwReserved2;
|
|
DWORD dwReserved3;
|
|
}
|
|
EXCHEXTCHOOSEFOLDER, FAR * LPEXCHEXTCHOOSEFOLDER;
|
|
|
|
// Toolbar list entries for IExchExtCommands::InstallCommands
|
|
typedef struct
|
|
{
|
|
HWND hwnd;
|
|
ULONG tbid;
|
|
ULONG ulFlags;
|
|
UINT itbbBase;
|
|
}
|
|
TBENTRY, FAR * LPTBENTRY;
|
|
|
|
|
|
/*
|
|
* E x t e r n a l T y p e s
|
|
*/
|
|
|
|
|
|
// Property sheet pages from Windows 95 prsht.h
|
|
#ifndef _PRSHT_H_
|
|
typedef struct _PROPSHEETPAGE;
|
|
typedef struct _PROPSHEETPAGE FAR * LPPROPSHEETPAGE;
|
|
#endif
|
|
|
|
// Toolbar adjust info from Windows 95 commctrl.h
|
|
#ifndef _INC_COMMCTRL
|
|
typedef struct _TBBUTTON;
|
|
typedef struct _TBBUTTON FAR * LPTBBUTTON;
|
|
#endif
|
|
|
|
|
|
/*
|
|
* S u p p o r t I n t e r f a c e s
|
|
*/
|
|
|
|
|
|
// Forward reference
|
|
#ifdef __cplusplus
|
|
interface IExchExtModeless;
|
|
#else
|
|
typedef interface IExchExtModeless IExchExtModeless;
|
|
#endif
|
|
typedef IExchExtModeless FAR* LPEXCHEXTMODELESS;
|
|
|
|
|
|
/*
|
|
* IExchExtModelessCallback
|
|
*
|
|
* Purpose:
|
|
* Interface which may be used by Exchange client
|
|
* extensions that create modeless UI.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtModelessCallback
|
|
DECLARE_INTERFACE_(IExchExtModelessCallback, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtModelessCallback methods ***
|
|
STDMETHOD(EnableModeless) (THIS_ HWND hwnd, BOOL fEnable) PURE;
|
|
STDMETHOD(AddWindow) (THIS) PURE;
|
|
STDMETHOD(ReleaseWindow) (THIS) PURE;
|
|
};
|
|
typedef IExchExtModelessCallback FAR * LPEXCHEXTMODELESSCALLBACK;
|
|
|
|
|
|
/*
|
|
* IExchExtCallback
|
|
*
|
|
* Purpose:
|
|
* Resource interface that may be used by Exchange client extensions.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtCallback
|
|
|
|
DECLARE_INTERFACE_(IExchExtCallback, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtCallback methods ***
|
|
STDMETHOD(GetVersion) (THIS_ ULONG FAR * lpulVersion, ULONG ulFlags) PURE;
|
|
STDMETHOD(GetWindow) (THIS_ HWND FAR * lphwnd) PURE;
|
|
STDMETHOD(GetMenu) (THIS_ HMENU FAR * lphmenu) PURE;
|
|
STDMETHOD(GetToolbar) (THIS_ ULONG tbid, HWND FAR * lphwndTb) PURE;
|
|
STDMETHOD(GetSession) (THIS_ LPMAPISESSION FAR * lppses,
|
|
LPADRBOOK FAR * lppab) PURE;
|
|
STDMETHOD(GetObject) (THIS_ LPMDB FAR * lppmdb,
|
|
LPMAPIPROP FAR * lppmp) PURE;
|
|
STDMETHOD(GetSelectionCount) (THIS_ ULONG FAR * lpceid) PURE;
|
|
STDMETHOD(GetSelectionItem) (THIS_ ULONG ieid, ULONG FAR * lpcbEid,
|
|
LPENTRYID FAR * lppeid, ULONG FAR * lpulType,
|
|
LPTSTR lpszMsgClass, ULONG cbMsgClass,
|
|
ULONG FAR * lpulMsgFlags, ULONG ulFlags) PURE;
|
|
STDMETHOD(GetMenuPos) (THIS_ ULONG cmdid, HMENU FAR * lphmenu,
|
|
ULONG FAR * lpmposMin, ULONG FAR * lpmposMax,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(GetSharedExtsDir) (THIS_ LPTSTR lpszDir, ULONG cchDir,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(GetRecipients) (THIS_ LPADRLIST FAR * lppal) PURE;
|
|
STDMETHOD(SetRecipients) (THIS_ LPADRLIST lpal) PURE;
|
|
STDMETHOD(GetNewMessageSite) (THIS_ ULONG fComposeInFolder,
|
|
LPMAPIFOLDER pfldFocus,
|
|
LPPERSISTMESSAGE ppermsg,
|
|
LPMESSAGE FAR * ppmsg,
|
|
LPMAPIMESSAGESITE FAR * ppmms,
|
|
LPMAPIVIEWCONTEXT FAR * ppmvc,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(RegisterModeless) (THIS_ LPEXCHEXTMODELESS peem,
|
|
LPEXCHEXTMODELESSCALLBACK FAR * ppeemcb) PURE;
|
|
STDMETHOD(ChooseFolder) (THIS_ LPEXCHEXTCHOOSEFOLDER peecf) PURE;
|
|
};
|
|
typedef IExchExtCallback FAR * LPEXCHEXTCALLBACK;
|
|
|
|
|
|
/*
|
|
* E x t e n s i o n I n t e r f a c e s
|
|
*/
|
|
|
|
|
|
/*
|
|
* IExchExt
|
|
*
|
|
* Purpose:
|
|
* Central interface implemented by Exchange client extensions.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExt
|
|
|
|
DECLARE_INTERFACE_(IExchExt, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExt methods ***
|
|
STDMETHOD(Install) (THIS_ LPEXCHEXTCALLBACK lpeecb,
|
|
ULONG mecontext, ULONG ulFlags) PURE;
|
|
};
|
|
typedef IExchExt FAR * LPEXCHEXT;
|
|
|
|
// Type of function called by the client to load an extension
|
|
typedef LPEXCHEXT (CALLBACK * LPFNEXCHEXTENTRY)(VOID);
|
|
|
|
|
|
/*
|
|
* IExchExtCommands
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish to
|
|
* add additional commands to the client's menus.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtCommands
|
|
|
|
DECLARE_INTERFACE_(IExchExtCommands, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtCommands methods ***
|
|
STDMETHOD(InstallCommands) (THIS_ LPEXCHEXTCALLBACK lpeecb, HWND hwnd,
|
|
HMENU hmenu, UINT FAR * lpcmdidBase,
|
|
LPTBENTRY lptbeArray, UINT ctbe,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD_(VOID,InitMenu) (THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
STDMETHOD(DoCommand) (THIS_ LPEXCHEXTCALLBACK lpeecb, UINT cmdid) PURE;
|
|
STDMETHOD(Help) (THIS_ LPEXCHEXTCALLBACK lpeecb, UINT cmdid) PURE;
|
|
STDMETHOD(QueryHelpText) (THIS_ UINT cmdid, ULONG ulFlags,
|
|
LPTSTR lpsz, UINT cch) PURE;
|
|
STDMETHOD(QueryButtonInfo) (THIS_ ULONG tbid, UINT itbb, LPTBBUTTON ptbb,
|
|
LPTSTR lpsz, UINT cch, ULONG ulFlags) PURE;
|
|
STDMETHOD(ResetToolbar) (THIS_ ULONG tbid, ULONG ulFlags) PURE;
|
|
};
|
|
typedef IExchExtCommands FAR * LPEXCHEXTCOMMANDS;
|
|
|
|
|
|
/*
|
|
* IExchExtUserEvents
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish to
|
|
* take special action when the user does certain actions.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtUserEvents
|
|
|
|
DECLARE_INTERFACE_(IExchExtUserEvents, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtUserEvents methods ***
|
|
STDMETHOD_(VOID,OnSelectionChange) (THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
STDMETHOD_(VOID,OnObjectChange) (THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
};
|
|
typedef IExchExtUserEvents FAR * LPEXCHEXTUSEREVENTS;
|
|
|
|
|
|
/*
|
|
* IExchExtSessionEvents
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish to
|
|
* take special action when certain events happen in the session.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtSessionEvents
|
|
|
|
DECLARE_INTERFACE_(IExchExtSessionEvents, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtEvents methods ***
|
|
STDMETHOD(OnDelivery)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
};
|
|
typedef IExchExtSessionEvents FAR * LPEXCHEXTSESSIONEVENTS;
|
|
|
|
|
|
/*
|
|
* IExchExtMessageEvents
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish to
|
|
* take special action when certain events happen to messages.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtMessageEvents
|
|
|
|
DECLARE_INTERFACE_(IExchExtMessageEvents, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtMessageEvents methods ***
|
|
STDMETHOD(OnRead)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
STDMETHOD(OnReadComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(OnWrite)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
STDMETHOD(OnWriteComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(OnCheckNames)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
STDMETHOD(OnCheckNamesComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(OnSubmit)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
|
|
STDMETHOD_(VOID, OnSubmitComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
|
|
ULONG ulFlags) PURE;
|
|
};
|
|
typedef IExchExtMessageEvents FAR * LPEXCHEXTMESSAGEEVENTS;
|
|
|
|
|
|
/*
|
|
* IExchExtAttachedFileEvents
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish to
|
|
* take special action when certain events happen to attached files.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtAttachedFileEvents
|
|
|
|
DECLARE_INTERFACE_(IExchExtAttachedFileEvents, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtAttachedFileEvents methods ***
|
|
STDMETHOD(OnReadPattFromSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(OnWritePattToSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(QueryDisallowOpenPatt)(THIS_ LPATTACH lpatt) PURE;
|
|
STDMETHOD(OnOpenPatt)(THIS_ LPATTACH lpatt) PURE;
|
|
STDMETHOD(OnOpenSzFile)(THIS_ LPTSTR lpszFile, ULONG ulFlags) PURE;
|
|
};
|
|
typedef IExchExtAttachedFileEvents FAR * LPEXCHEXTATTACHEDFILEEVENTS;
|
|
|
|
|
|
/*
|
|
* IExchExtPropertySheets
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish
|
|
* to add additional pages to the client's object property sheets.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtPropertySheets
|
|
|
|
DECLARE_INTERFACE_(IExchExtPropertySheets, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtPropertySheet methods ***
|
|
STDMETHOD_(ULONG,GetMaxPageCount) (THIS_ ULONG ulFlags) PURE;
|
|
STDMETHOD(GetPages) (THIS_ LPEXCHEXTCALLBACK lpeecb, ULONG ulFlags,
|
|
LPPROPSHEETPAGE lppsp, ULONG FAR * lpcpsp) PURE;
|
|
STDMETHOD_(VOID,FreePages) (THIS_ LPPROPSHEETPAGE lppsp,
|
|
ULONG ulFlags, ULONG cpsp) PURE;
|
|
};
|
|
typedef IExchExtPropertySheets FAR * LPEXCHEXTPROPERTYSHEETS;
|
|
|
|
|
|
/*
|
|
* IExchExtAdvancedCriteria
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish to
|
|
* implement an advanced criteria dialog.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtAdvancedCriteria
|
|
|
|
DECLARE_INTERFACE_(IExchExtAdvancedCriteria, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtAdvancedCriteria methods ***
|
|
STDMETHOD(InstallAdvancedCriteria) (THIS_ HWND hwnd, LPSRestriction lpres,
|
|
BOOL fNot, LPENTRYLIST lpeidl,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD(DoDialog) (THIS) PURE;
|
|
STDMETHOD_(VOID,Clear) (THIS) PURE;
|
|
STDMETHOD_(VOID,SetFolders) (THIS_ LPENTRYLIST lpeidl, ULONG ulFlags) PURE;
|
|
STDMETHOD(QueryRestriction) (THIS_ LPVOID lpvAllocBase,
|
|
LPSRestriction FAR * lppres,
|
|
LPSPropTagArray FAR * lppPropTags,
|
|
LPMAPINAMEID FAR * FAR * lpppPropNames,
|
|
BOOL * lpfNot, LPTSTR lpszDesc, ULONG cchDesc,
|
|
ULONG ulFlags) PURE;
|
|
STDMETHOD_(VOID,UninstallAdvancedCriteria) (THIS) PURE;
|
|
};
|
|
typedef IExchExtAdvancedCriteria FAR * LPEXCHEXTADVANCEDCRITERIA;
|
|
|
|
|
|
/*
|
|
* IExchExtModeless
|
|
*
|
|
* Purpose:
|
|
* Interface implemented by Exchange client extensions that wish
|
|
* to create modeless UI.
|
|
*/
|
|
#undef INTERFACE
|
|
#define INTERFACE IExchExtModeless
|
|
|
|
DECLARE_INTERFACE_(IExchExtModeless, IUnknown)
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IExchExtModeless methods ***
|
|
STDMETHOD(TranslateAccelerator) (THIS_ LPMSG pmsg) PURE;
|
|
STDMETHOD(EnableModeless) (THIS_ BOOL fEnable) PURE;
|
|
};
|
|
|
|
|
|
/*
|
|
* G U I D s
|
|
*/
|
|
|
|
|
|
#define DEFINE_EXCHEXTGUID(name, b) \
|
|
DEFINE_GUID(name, 0x00020D00 | (b), 0, 0, 0xC0,0,0,0,0,0,0,0x46)
|
|
|
|
#ifndef NOEXCHEXTGUIDS
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtCallback, 0x10);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExt, 0x11);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtCommands, 0x12);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtUserEvents, 0x13);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtSessionEvents, 0x14);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtMessageEvents, 0x15);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtAttachedFileEvents, 0x16);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtPropertySheets, 0x17);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtAdvancedCriteria, 0x18);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtModeless, 0x19);
|
|
DEFINE_EXCHEXTGUID(IID_IExchExtModelessCallback, 0x1a);
|
|
#endif // NOEXCHEXTGUIDS
|
|
|
|
|
|
/*
|
|
* C M D I D s
|
|
*/
|
|
|
|
|
|
// File
|
|
#define EECMDID_File 10
|
|
#define EECMDID_FileOpen 11
|
|
#define EECMDID_FileSend 12
|
|
#define EECMDID_FileSave 13
|
|
#define EECMDID_FileSaveAs 14
|
|
#define EECMDID_FileMove 16
|
|
#define EECMDID_FileCopy 17
|
|
#define EECMDID_FilePrint 25
|
|
#define EECMDID_FileNewEntry 18
|
|
#define EECMDID_FileNewMessage 19
|
|
#define EECMDID_FileNewFolder 20
|
|
#define EECMDID_FileAddToPAB 29
|
|
#define EECMDID_FileDelete 21
|
|
#define EECMDID_FileRename 22
|
|
#define EECMDID_FileProperties 23
|
|
#define EECMDID_FilePropertiesRecipients 24
|
|
#define EECMDID_FileClose 30
|
|
#define EECMDID_FileExit 32
|
|
#define EECMDID_FileExitAndLogOff 33
|
|
|
|
// Edit
|
|
#define EECMDID_Edit 40
|
|
#define EECMDID_EditUndo 41
|
|
#define EECMDID_EditCut 42
|
|
#define EECMDID_EditCopy 43
|
|
#define EECMDID_EditPaste 44
|
|
#define EECMDID_EditPasteSpecial 45
|
|
#define EECMDID_EditSelectAll 46
|
|
#define EECMDID_EditMarkAsRead 49
|
|
#define EECMDID_EditMarkAsUnread 50
|
|
#define EECMDID_EditMarkToRetrieve 52
|
|
#define EECMDID_EditMarkToRetrieveACopy 53
|
|
#define EECMDID_EditMarkToDelete 54
|
|
#define EECMDID_EditUnmarkAll 55
|
|
#define EECMDID_EditFind 56
|
|
#define EECMDID_EditReplace 57
|
|
#define EECMDID_EditLinks 59
|
|
#define EECMDID_EditObject 60
|
|
#define EECMDID_EditObjectConvert 61
|
|
#ifdef DBCS
|
|
#define EECMDID_EditFullShape 62
|
|
#define EECMDID_EditHiraKataAlpha 63
|
|
#define EECMDID_EditHangAlpha 64
|
|
#define EECMDID_EditHanja 65
|
|
#define EECMDID_EditRoman 66
|
|
#define EECMDID_EditCode 67
|
|
#endif
|
|
|
|
// View
|
|
#define EECMDID_View 70
|
|
#define EECMDID_ViewFolders 71
|
|
#define EECMDID_ViewToolbar 72
|
|
#define EECMDID_ViewFormattingToolbar 73
|
|
#define EECMDID_ViewStatusBar 74
|
|
#define EECMDID_ViewNewWindow 75
|
|
#define EECMDID_ViewColumns 79
|
|
#define EECMDID_ViewSort 78
|
|
#define EECMDID_ViewFilter 80
|
|
#define EECMDID_ViewBccBox 91
|
|
#define EECMDID_ViewPrevious 87
|
|
#define EECMDID_ViewNext 88
|
|
#ifdef DBCS
|
|
#define EECMDID_ViewWritingMode 89
|
|
#define EECMDID_ViewImeStatus 94
|
|
#endif
|
|
|
|
// Insert
|
|
#define EECMDID_Insert 100
|
|
#define EECMDID_InsertFile 101
|
|
#define EECMDID_InsertMessage 102
|
|
#define EECMDID_InsertObject 103
|
|
#define EECMDID_InsertInkObject 104
|
|
|
|
// Format
|
|
#define EECMDID_Format 110
|
|
#define EECMDID_FormatFont 111
|
|
#define EECMDID_FormatParagraph 112
|
|
|
|
// Tools
|
|
#define EECMDID_Tools 120
|
|
#define EECMDID_ToolsDeliverNowUsing 121
|
|
#define EECMDID_ToolsDeliverNow 122
|
|
#define EECMDID_ToolsSpelling 131
|
|
#define EECMDID_ToolsAddressBook 123
|
|
#define EECMDID_ToolsCheckNames 133
|
|
#define EECMDID_ToolsFind 124
|
|
#define EECMDID_ToolsConnect 126
|
|
#define EECMDID_ToolsUpdateHeaders 127
|
|
#define EECMDID_ToolsTransferMail 128
|
|
#define EECMDID_ToolsDisconnect 129
|
|
#define EECMDID_ToolsRemoteMail 130
|
|
#define EECMDID_ToolsCustomizeToolbar 134
|
|
#define EECMDID_ToolsServices 135
|
|
#define EECMDID_ToolsOptions 136
|
|
#ifdef DBCS
|
|
#define EECMDID_ToolsWordRegistration 137
|
|
#endif
|
|
|
|
// Compose
|
|
#define EECMDID_Compose 150
|
|
#define EECMDID_ComposeNewMessage 151
|
|
#define EECMDID_ComposeReplyToSender 154
|
|
#define EECMDID_ComposeReplyToAll 155
|
|
#define EECMDID_ComposeForward 156
|
|
|
|
// Help
|
|
#define EECMDID_Help 160
|
|
#define EECMDID_HelpMicrosoftExchangeHelpTopics 161
|
|
#define EECMDID_HelpAboutMicrosoftExchange 162
|
|
|
|
// Header
|
|
#define EECMDID_CtxHeader 203
|
|
#define EECMDID_CtxHeaderSortAscending 204
|
|
#define EECMDID_CtxHeaderSortDescending 205
|
|
|
|
// In Folder
|
|
#define EECMDID_CtxInFolder 206
|
|
#define EECMDID_CtxInFolderChoose 207
|
|
|
|
// Container
|
|
#define EECMDID_CtxContainer 208
|
|
#define EECMDID_CtxContainerProperties 209
|
|
|
|
// Standard Toolbar
|
|
#define EECMDID_Toolbar 220
|
|
#define EECMDID_ToolbarPrint 221
|
|
#define EECMDID_ToolbarReadReceipt 222
|
|
#define EECMDID_ToolbarImportanceHigh 223
|
|
#define EECMDID_ToolbarImportanceLow 224
|
|
#define EECMDID_ToolbarFolderList 225
|
|
#define EECMDID_ToolbarOpenParent 226
|
|
#define EECMDID_ToolbarInbox 76
|
|
#define EECMDID_ToolbarOutbox 77
|
|
|
|
// Formatting Toolbar
|
|
#define EECMDID_Formatting 230
|
|
#define EECMDID_FormattingFont 231
|
|
#define EECMDID_FormattingSize 232
|
|
#define EECMDID_FormattingColor 233
|
|
#define EECMDID_FormattingColorAuto 234
|
|
#define EECMDID_FormattingColor1 235
|
|
#define EECMDID_FormattingColor2 236
|
|
#define EECMDID_FormattingColor3 237
|
|
#define EECMDID_FormattingColor4 238
|
|
#define EECMDID_FormattingColor5 239
|
|
#define EECMDID_FormattingColor6 240
|
|
#define EECMDID_FormattingColor7 241
|
|
#define EECMDID_FormattingColor8 242
|
|
#define EECMDID_FormattingColor9 243
|
|
#define EECMDID_FormattingColor10 244
|
|
#define EECMDID_FormattingColor11 245
|
|
#define EECMDID_FormattingColor12 246
|
|
#define EECMDID_FormattingColor13 247
|
|
#define EECMDID_FormattingColor14 248
|
|
#define EECMDID_FormattingColor15 249
|
|
#define EECMDID_FormattingColor16 250
|
|
#define EECMDID_FormattingBold 251
|
|
#define EECMDID_FormattingItalic 252
|
|
#define EECMDID_FormattingUnderline 253
|
|
#define EECMDID_FormattingBullets 254
|
|
#define EECMDID_FormattingDecreaseIndent 255
|
|
#define EECMDID_FormattingIncreaseIndent 256
|
|
#define EECMDID_FormattingLeft 257
|
|
#define EECMDID_FormattingCenter 258
|
|
#define EECMDID_FormattingRight 259
|
|
|
|
// Note accelerators
|
|
#define EECMDID_Accel 270
|
|
#define EECMDID_AccelFont 271
|
|
#define EECMDID_AccelSize 272
|
|
#define EECMDID_AccelSizePlus1 273
|
|
#define EECMDID_AccelSizeMinus1 274
|
|
#define EECMDID_AccelBold 275
|
|
#define EECMDID_AccelItalic 276
|
|
#define EECMDID_AccelUnderline 277
|
|
#define EECMDID_AccelLeft 278
|
|
#define EECMDID_AccelCenter 279
|
|
#define EECMDID_AccelRight 280
|
|
#define EECMDID_AccelBullets 281
|
|
#define EECMDID_AccelNoFormatting 282
|
|
#define EECMDID_AccelRepeatFind 283
|
|
#define EECMDID_AccelContextHelp 284
|
|
#define EECMDID_AccelNextWindow 285
|
|
#define EECMDID_AccelPrevWindow 286
|
|
#define EECMDID_AccelCtrlTab 287
|
|
#define EECMDID_AccelUndo 288
|
|
#define EECMDID_AccelCut 289
|
|
#define EECMDID_AccelCopy 290
|
|
#define EECMDID_AccelPaste 291
|
|
#define EECMDID_AccelSubject 292
|
|
#define EECMDID_AccelContextHelpOff 293
|
|
#define EECMDID_AccelDecreaseIndent 294
|
|
#define EECMDID_AccelIncreaseIndent 295
|
|
#define EECMDID_AccelColor 296
|
|
|
|
// Edit.Object
|
|
#define EECMDID_ObjectMin 300
|
|
#define EECMDID_ObjectMax 399
|
|
|
|
// Tools.Remote Mail
|
|
#define EECMDID_RemoteMailMin 600
|
|
#define EECMDID_RemoteMailMax 699
|
|
|
|
// Tools.Deliver Now Using
|
|
#define EECMDID_DeliverNowUsingMin 700
|
|
#define EECMDID_DeliverNowUsingMax 799
|
|
|
|
// Form verbs
|
|
#define EECMDID_FormVerbMin 800
|
|
#define EECMDID_FormVerbMax 899
|
|
|
|
// For backward compatibility with earlier header versions
|
|
#define EECMDID_ViewInbox EECMDID_ToolbarInbox
|
|
#define EECMDID_ViewOutbox EECMDID_ToolbarOutbox
|
|
#define EECMDID_ViewItemAbove EECMDID_ViewPrevious
|
|
#define EECMDID_ViewItemBelow EECMDID_ViewNext
|
|
#define EECMDID_ToolsFindItem EECMDID_ToolsFind
|
|
#define EECMDID_HelpUsersGuideContents EECMDID_HelpMicrosoftExchangeHelpTopics
|
|
#define EECMDID_HelpAbout EECMDID_HelpAboutMicrosoftExchange
|
|
|
|
#pragma option pop /*P_O_Pop*/
|
|
#endif // EXCHEXT_H
|