📄 mapiform.h
字号:
typedef struct
{ /* fpev */
LPTSTR pszDisplayName; /* carries the display string */
ULONG nVal; /* the value for the above enumeration */
} SMAPIFormPropEnumVal, FAR * LPMAPIFORMPROPENUMVAL;
/* MAPI Form property descriptor */
/*
* Values for the tag in the SMAPIFormProp structure
*
* Microsoft reserves the range from 0 to 0x3FFF for future use in its other
* forms registry implementations.
*/
typedef ULONG FORMPROPSPECIALTYPE;
#define FPST_VANILLA 0
#define FPST_ENUM_PROP 1
typedef struct
{
ULONG ulFlags; /* Contains MAPI_UNICODE if strings are UNICODE */
ULONG nPropType; /* type of the property, hiword is 0 */
MAPINAMEID nmid; /* id of the property */
LPTSTR pszDisplayName;
FORMPROPSPECIALTYPE nSpecialType; /* tag for the following union */
union
{
struct
{
MAPINAMEID nmidIdx;
ULONG cfpevAvailable; /* # of enums */
LPMAPIFORMPROPENUMVAL pfpevAvailable;
} s1; /* Property String/Number association Enumeration */
} u;
} SMAPIFormProp, FAR * LPMAPIFORMPROP;
/* Array of form properties */
typedef struct
{
ULONG cProps;
ULONG ulPad; /* Pad to 8-byte alignment for insurance */
SMAPIFormProp aFormProp[MAPI_DIM];
} SMAPIFormPropArray, FAR * LPMAPIFORMPROPARRAY;
#define CbMAPIFormPropArray(_c) \
(offsetof(SMAPIFormPropArray, aFormProp) + \
(_c)*sizeof(SMAPIFormProp))
/* Structure defining the layout of an mapi verb description */
typedef struct
{
LONG lVerb;
LPTSTR szVerbname;
DWORD fuFlags;
DWORD grfAttribs;
ULONG ulFlags; /* Either 0 or MAPI_UNICODE */
} SMAPIVerb, FAR * LPMAPIVERB;
/* Structure used for returning arrays of mapi verbs */
typedef struct
{
ULONG cMAPIVerb; /* Number of verbs in the structure */
SMAPIVerb aMAPIVerb[MAPI_DIM];
} SMAPIVerbArray, FAR * LPMAPIVERBARRAY;
#define CbMAPIVerbArray(_c) \
(offsetof(SMAPIVerbArray, aMAPIVerb) + \
(_c)*sizeof(SMAPIVerb))
#define MAPI_IMAPIFORMINFO_METHODS(IPURE) \
MAPIMETHOD(CalcFormPropSet)(THIS_ \
/*in*/ ULONG ulFlags, \
/*out*/ LPMAPIFORMPROPARRAY FAR * ppFormPropArray) IPURE; \
MAPIMETHOD(CalcVerbSet)(THIS_ \
/*in*/ ULONG ulFlags, \
/*out*/ LPMAPIVERBARRAY FAR * ppMAPIVerbArray) IPURE; \
MAPIMETHOD(MakeIconFromBinary)(THIS_ \
/*in*/ ULONG nPropID, \
/*out*/ HICON FAR* phicon) IPURE; \
MAPIMETHOD(SaveForm)(THIS_ \
/*in*/ LPCTSTR szFileName) IPURE; \
MAPIMETHOD(OpenFormContainer)(THIS_ \
/*out*/ LPMAPIFORMCONTAINER FAR * ppformcontainer) IPURE; \
#undef INTERFACE
#define INTERFACE IMAPIFormInfo
DECLARE_MAPI_INTERFACE_(IMAPIFormInfo, IMAPIProp)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMAPIPROP_METHODS(PURE) /* note: subsumes getlasterror */
MAPI_IMAPIFORMINFO_METHODS(PURE)
};
/* Enumeration of permissible values for PR_FORM_MESSAGE_BEHAVIOR */
#define MAPI_MESSAGE_BEHAVIOR_IPM 0
#define MAPI_MESSAGE_BEHAVIOR_FOLDER 1
/*-- IMAPIFormMgr ----------------------------------------------------------*/
/* The client-visible interface for form resolution and dispatch.
*/
/* Structure containing an array of message class strings */
typedef struct
{
ULONG cValues;
LPCSTR aMessageClass[MAPI_DIM];
} SMessageClassArray, FAR * LPSMESSAGECLASSARRAY;
#define CbMessageClassArray(_c) \
(offsetof(SMessageClassArray, aMessageClass) + (_c)*sizeof(LPCSTR))
/* Structure containing an array of IMAPIFormInfo interfaces */
typedef struct
{
ULONG cForms;
LPMAPIFORMINFO aFormInfo[MAPI_DIM];
} SMAPIFormInfoArray, FAR * LPSMAPIFORMINFOARRAY;
#define CbMAPIFormInfoArray(_c) \
(offsetof(SMAPIFormInfoArray, aFormInfo) + \
(_c)*sizeof(LPMAPIFORMINFO))
/* Flags for IMAPIFormMgr::SelectFormContainer */
#define MAPIFORM_SELECT_ALL_REGISTRIES 0
#define MAPIFORM_SELECT_FOLDER_REGISTRY_ONLY 1
#define MAPIFORM_SELECT_NON_FOLDER_REGISTRY_ONLY 2
/* Flags for IMAPIFormMgr::CalcFormPropSet */
#define FORMPROPSET_UNION 0
#define FORMPROPSET_INTERSECTION 1
/* Flags for IMAPIFormMgr::ResolveMessageClass and
IMAPIFormMgr::ResolveMultipleMessageClasses */
#define MAPIFORM_EXACTMATCH 0x0020
#define MAPI_IMAPIFORMMGR_METHODS(IPURE) \
MAPIMETHOD(LoadForm)(THIS_ \
/*in*/ ULONG ulUIParam, \
/*in*/ ULONG ulFlags, \
/*in*/ LPCSTR lpszMessageClass, \
/*in*/ ULONG ulMessageStatus, \
/*in*/ ULONG ulMessageFlags, \
/*in*/ LPMAPIFOLDER pFolderFocus, \
/*in*/ LPMAPIMESSAGESITE pMessageSite, \
/*in*/ LPMESSAGE pmsg, \
/*in*/ LPMAPIVIEWCONTEXT pViewContext, \
/*in*/ REFIID riid, \
/*out*/ LPVOID FAR *ppvObj) IPURE; \
MAPIMETHOD(ResolveMessageClass)(THIS_ \
/*in*/ LPCSTR szMsgClass, \
/*in*/ ULONG ulFlags, \
/*in*/ LPMAPIFOLDER pFolderFocus, /* can be null */ \
/*out*/ LPMAPIFORMINFO FAR* ppResult) IPURE; \
MAPIMETHOD(ResolveMultipleMessageClasses)(THIS_ \
/*in*/ LPSMESSAGECLASSARRAY pMsgClasses, \
/*in*/ ULONG ulFlags, \
/*in*/ LPMAPIFOLDER pFolderFocus, /* can be null */ \
/*out*/ LPSMAPIFORMINFOARRAY FAR * pfrminfoarray) IPURE; \
MAPIMETHOD(CalcFormPropSet)(THIS_ \
/*in*/ LPSMAPIFORMINFOARRAY pfrminfoarray, \
/*in*/ ULONG ulFlags, \
/*out*/ LPMAPIFORMPROPARRAY FAR* ppResults) IPURE; \
MAPIMETHOD(CreateForm)(THIS_ \
/*in*/ ULONG ulUIParam, \
/*in*/ ULONG ulFlags, \
/*in*/ LPMAPIFORMINFO pfrminfoToActivate, \
/*in*/ REFIID refiidToAsk, \
/*out*/ LPVOID FAR* ppvObj) IPURE; \
MAPIMETHOD(SelectForm)(THIS_ \
/*in*/ ULONG ulUIParam, \
/*in*/ ULONG ulFlags, \
/*in*/ LPCTSTR pszTitle, \
/*in*/ LPMAPIFOLDER pfld, \
/*out*/ LPMAPIFORMINFO FAR * ppfrminfoReturned) IPURE; \
MAPIMETHOD(SelectMultipleForms)(THIS_ \
/*in*/ ULONG ulUIParam, \
/*in*/ ULONG ulFlags, \
/*in*/ LPCTSTR pszTitle, \
/*in*/ LPMAPIFOLDER pfld, \
/*in*/ LPSMAPIFORMINFOARRAY pfrminfoarray, \
/*out*/ LPSMAPIFORMINFOARRAY FAR * ppfrminfoarray) IPURE; \
MAPIMETHOD(SelectFormContainer)(THIS_ \
/*in*/ ULONG ulUIParam, \
/*in*/ ULONG ulFlags, \
/*out*/ LPMAPIFORMCONTAINER FAR * lppfcnt) IPURE; \
MAPIMETHOD(OpenFormContainer)(THIS_ \
/*in*/ HFRMREG hfrmreg, \
/*in*/ LPUNKNOWN lpunk, \
/*out*/ LPMAPIFORMCONTAINER FAR * lppfcnt) IPURE; \
MAPIMETHOD(PrepareForm)(THIS_ \
/*in*/ ULONG ulUIParam, \
/*in*/ ULONG ulFlags, \
/*in*/ LPMAPIFORMINFO pfrminfo) IPURE; \
MAPIMETHOD(IsInConflict)(THIS_ \
/*in*/ ULONG ulMessageFlags, \
/*in*/ ULONG ulMessageStatus, \
/*in*/ LPCSTR szMessageClass, \
/*in*/ LPMAPIFOLDER pFolderFocus) IPURE; \
#undef INTERFACE
#define INTERFACE IMAPIFormMgr
DECLARE_MAPI_INTERFACE_(IMAPIFormMgr, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_GETLASTERROR_METHOD(PURE)
MAPI_IMAPIFORMMGR_METHODS(PURE)
};
/* Platform numbers (used in .CFG files for forms) */
#define MAPIFORM_CPU_X86 1
#define MAPIFORM_CPU_MIP 2
#define MAPIFORM_CPU_AXP 3
#define MAPIFORM_CPU_PPC 4
#define MAPIFORM_CPU_M68 5
#define MAPIFORM_OS_WIN_31 1
#define MAPIFORM_OS_WINNT_35 2
#define MAPIFORM_OS_WIN_95 3
#define MAPIFORM_OS_MAC_7x 4
#define MAPIFORM_OS_WINNT_40 5
#define MAPIFORM_PLATFORM(CPU, OS) ((ULONG) ((((ULONG) CPU) << 16) | OS))
/*-- IMAPIFormContainer -------------------------------------------------*/
/* Flags for IMAPIFormMgr::CalcFormPropSet */
/* #define FORMPROPSET_UNION 0 */
/* #define FORMPROPSET_INTERSECTION 1 */
/* Flags for IMAPIFormMgr::InstallForm */
#define MAPIFORM_INSTALL_DIALOG MAPI_DIALOG
#define MAPIFORM_INSTALL_OVERWRITEONCONFLICT 0x0010
/* Flags for IMAPIFormContainer::ResolveMessageClass and
IMAPIFormContainer::ResolveMultipleMessageClasses */
/* #define MAPIFORM_EXACTIMATCH 0x0020 */
#define MAPI_IMAPIFORMCONTAINER_METHODS(IPURE) \
MAPIMETHOD(InstallForm)(THIS_ \
/*in*/ ULONG ulUIParam, \
/*in*/ ULONG ulFlags, \
/*in*/ LPCTSTR szCfgPathName) IPURE; \
MAPIMETHOD(RemoveForm)(THIS_ \
/*in*/ LPCSTR szMessageClass) IPURE; \
MAPIMETHOD(ResolveMessageClass) (THIS_ \
/*in*/ LPCSTR szMessageClass, \
/*in*/ ULONG ulFlags, \
/*out*/ LPMAPIFORMINFO FAR * pforminfo) IPURE; \
MAPIMETHOD(ResolveMultipleMessageClasses) (THIS_ \
/*in*/ LPSMESSAGECLASSARRAY pMsgClassArray, \
/*in*/ ULONG ulFlags, \
/*out*/ LPSMAPIFORMINFOARRAY FAR * ppfrminfoarray) IPURE; \
MAPIMETHOD(CalcFormPropSet)(THIS_ \
/*in*/ ULONG ulFlags, \
/*out*/ LPMAPIFORMPROPARRAY FAR * ppResults) IPURE; \
MAPIMETHOD(GetDisplay)(THIS_ \
/*in*/ ULONG ulFlags, \
/*out*/ LPTSTR FAR * pszDisplayName) IPURE; \
#undef INTERFACE
#define INTERFACE IMAPIFormContainer
DECLARE_MAPI_INTERFACE_(IMAPIFormContainer, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_GETLASTERROR_METHOD(PURE)
MAPI_IMAPIFORMCONTAINER_METHODS(PURE)
};
/*-- IMAPIFormFactory ------------------------------------------------------*/
#define MAPI_IMAPIFORMFACTORY_METHODS(IPURE) \
MAPIMETHOD(CreateClassFactory) (THIS_ \
/*in*/ REFCLSID clsidForm, \
/*in*/ ULONG ulFlags, \
/*out*/ LPCLASSFACTORY FAR * lppClassFactory) IPURE; \
MAPIMETHOD(LockServer) (THIS_ \
/*in*/ ULONG ulFlags, \
/*in*/ ULONG fLockServer) IPURE; \
#undef INTERFACE
#define INTERFACE IMAPIFormFactory
DECLARE_MAPI_INTERFACE_(IMAPIFormFactory, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_GETLASTERROR_METHOD(PURE)
MAPI_IMAPIFORMFACTORY_METHODS(PURE)
};
#endif /* MAPIFORM_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -