📄 mapidefs.h
字号:
(THIS_ ULONG cValues, \
LPSPropValue lpPropArray, \
LPSPropProblemArray FAR * lppProblems) IPURE; \
MAPIMETHOD(DeleteProps) \
(THIS_ LPSPropTagArray lpPropTagArray, \
LPSPropProblemArray FAR * lppProblems) IPURE; \
MAPIMETHOD(CopyTo) \
(THIS_ ULONG ciidExclude, \
LPCIID rgiidExclude, \
LPSPropTagArray lpExcludeProps, \
ULONG ulUIParam, \
LPMAPIPROGRESS lpProgress, \
LPCIID lpInterface, \
LPVOID lpDestObj, \
ULONG ulFlags, \
LPSPropProblemArray FAR * lppProblems) IPURE; \
MAPIMETHOD(CopyProps) \
(THIS_ LPSPropTagArray lpIncludeProps, \
ULONG ulUIParam, \
LPMAPIPROGRESS lpProgress, \
LPCIID lpInterface, \
LPVOID lpDestObj, \
ULONG ulFlags, \
LPSPropProblemArray FAR * lppProblems) IPURE; \
MAPIMETHOD(GetNamesFromIDs) \
(THIS_ LPSPropTagArray FAR * lppPropTags, \
LPGUID lpPropSetGuid, \
ULONG ulFlags, \
ULONG FAR * lpcPropNames, \
LPMAPINAMEID FAR * FAR * lpppPropNames) IPURE; \
MAPIMETHOD(GetIDsFromNames) \
(THIS_ ULONG cPropNames, \
LPMAPINAMEID FAR * lppPropNames, \
ULONG ulFlags, \
LPSPropTagArray FAR * lppPropTags) IPURE; \
#undef INTERFACE
#define INTERFACE IMAPIProp
DECLARE_MAPI_INTERFACE_(IMAPIProp, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMAPIPROP_METHODS(PURE)
};
/* IMAPITable Interface ---------------------------------------------------- */
/* Table status */
#define TBLSTAT_COMPLETE ((ULONG) 0)
#define TBLSTAT_QCHANGED ((ULONG) 7)
#define TBLSTAT_SORTING ((ULONG) 9)
#define TBLSTAT_SORT_ERROR ((ULONG) 10)
#define TBLSTAT_SETTING_COLS ((ULONG) 11)
#define TBLSTAT_SETCOL_ERROR ((ULONG) 13)
#define TBLSTAT_RESTRICTING ((ULONG) 14)
#define TBLSTAT_RESTRICT_ERROR ((ULONG) 15)
/* Table Type */
#define TBLTYPE_SNAPSHOT ((ULONG) 0)
#define TBLTYPE_KEYSET ((ULONG) 1)
#define TBLTYPE_DYNAMIC ((ULONG) 2)
/* Sort order */
/* bit 0: set if descending, clear if ascending */
#define TABLE_SORT_ASCEND ((ULONG) 0x00000000)
#define TABLE_SORT_DESCEND ((ULONG) 0x00000001)
#define TABLE_SORT_COMBINE ((ULONG) 0x00000002)
/* Data structures */
typedef struct _SSortOrder
{
ULONG ulPropTag; /* Column to sort on */
ULONG ulOrder; /* Ascending, descending, combine to left */
} SSortOrder, FAR * LPSSortOrder;
typedef struct _SSortOrderSet
{
ULONG cSorts; /* Number of sort columns in aSort below*/
ULONG cCategories; /* 0 for non-categorized, up to cSorts */
ULONG cExpanded; /* 0 if no categories start expanded, */
/* up to cExpanded */
SSortOrder aSort[MAPI_DIM]; /* The sort orders */
} SSortOrderSet, FAR * LPSSortOrderSet;
#define CbNewSSortOrderSet(_csort) \
(offsetof(SSortOrderSet,aSort) + (_csort)*sizeof(SSortOrder))
#define CbSSortOrderSet(_lpset) \
(offsetof(SSortOrderSet,aSort) + \
(UINT)((_lpset)->cSorts*sizeof(SSortOrder)))
#define SizedSSortOrderSet(_csort, _name) \
struct _SSortOrderSet_ ## _name \
{ \
ULONG cSorts; \
ULONG cCategories; \
ULONG cExpanded; \
SSortOrder aSort[_csort]; \
} _name
typedef ULONG BOOKMARK;
#define BOOKMARK_BEGINNING ((BOOKMARK) 0) /* Before first row */
#define BOOKMARK_CURRENT ((BOOKMARK) 1) /* Before current row */
#define BOOKMARK_END ((BOOKMARK) 2) /* After last row */
/* Fuzzy Level */
#define FL_FULLSTRING ((ULONG) 0x00000000)
#define FL_SUBSTRING ((ULONG) 0x00000001)
#define FL_PREFIX ((ULONG) 0x00000002)
#define FL_IGNORECASE ((ULONG) 0x00010000)
#define FL_IGNORENONSPACE ((ULONG) 0x00020000)
#define FL_LOOSE ((ULONG) 0x00040000)
/* Restrictions */
typedef struct _SRestriction FAR * LPSRestriction;
/* Restriction types */
#define RES_AND ((ULONG) 0x00000000)
#define RES_OR ((ULONG) 0x00000001)
#define RES_NOT ((ULONG) 0x00000002)
#define RES_CONTENT ((ULONG) 0x00000003)
#define RES_PROPERTY ((ULONG) 0x00000004)
#define RES_COMPAREPROPS ((ULONG) 0x00000005)
#define RES_BITMASK ((ULONG) 0x00000006)
#define RES_SIZE ((ULONG) 0x00000007)
#define RES_EXIST ((ULONG) 0x00000008)
#define RES_SUBRESTRICTION ((ULONG) 0x00000009)
#define RES_COMMENT ((ULONG) 0x0000000A)
/* Relational operators. These apply to all property comparison restrictions. */
#define RELOP_LT ((ULONG) 0) /* < */
#define RELOP_LE ((ULONG) 1) /* <= */
#define RELOP_GT ((ULONG) 2) /* > */
#define RELOP_GE ((ULONG) 3) /* >= */
#define RELOP_EQ ((ULONG) 4) /* == */
#define RELOP_NE ((ULONG) 5) /* != */
#define RELOP_RE ((ULONG) 6) /* LIKE (Regular expression) */
/* Bitmask operators, for RES_BITMASK only. */
#define BMR_EQZ ((ULONG) 0) /* ==0 */
#define BMR_NEZ ((ULONG) 1) /* !=0 */
/* Subobject identifiers for RES_SUBRESTRICTION only. See MAPITAGS.H. */
/* #define PR_MESSAGE_RECIPIENTS PROP_TAG(PT_OBJECT,0x0E12) */
/* #define PR_MESSAGE_ATTACHMENTS PROP_TAG(PT_OBJECT,0x0E13) */
typedef struct _SAndRestriction
{
ULONG cRes;
LPSRestriction lpRes;
} SAndRestriction;
typedef struct _SOrRestriction
{
ULONG cRes;
LPSRestriction lpRes;
} SOrRestriction;
typedef struct _SNotRestriction
{
ULONG ulReserved;
LPSRestriction lpRes;
} SNotRestriction;
typedef struct _SContentRestriction
{
ULONG ulFuzzyLevel;
ULONG ulPropTag;
LPSPropValue lpProp;
} SContentRestriction;
typedef struct _SBitMaskRestriction
{
ULONG relBMR;
ULONG ulPropTag;
ULONG ulMask;
} SBitMaskRestriction;
typedef struct _SPropertyRestriction
{
ULONG relop;
ULONG ulPropTag;
LPSPropValue lpProp;
} SPropertyRestriction;
typedef struct _SComparePropsRestriction
{
ULONG relop;
ULONG ulPropTag1;
ULONG ulPropTag2;
} SComparePropsRestriction;
typedef struct _SSizeRestriction
{
ULONG relop;
ULONG ulPropTag;
ULONG cb;
} SSizeRestriction;
typedef struct _SExistRestriction
{
ULONG ulReserved1;
ULONG ulPropTag;
ULONG ulReserved2;
} SExistRestriction;
typedef struct _SSubRestriction
{
ULONG ulSubObject;
LPSRestriction lpRes;
} SSubRestriction;
typedef struct _SCommentRestriction
{
ULONG cValues; /* # of properties in lpProp */
LPSRestriction lpRes;
LPSPropValue lpProp;
} SCommentRestriction;
typedef struct _SRestriction
{
ULONG rt; /* Restriction type */
union
{
SComparePropsRestriction resCompareProps; /* first */
SAndRestriction resAnd;
SOrRestriction resOr;
SNotRestriction resNot;
SContentRestriction resContent;
SPropertyRestriction resProperty;
SBitMaskRestriction resBitMask;
SSizeRestriction resSize;
SExistRestriction resExist;
SSubRestriction resSub;
SCommentRestriction resComment;
} res;
} SRestriction;
/* SComparePropsRestriction is first in the union so that */
/* static initializations of 3-value restriction work. */
/* Flags of the methods of IMAPITable */
/* QueryColumn */
#define TBL_ALL_COLUMNS ((ULONG) 0x00000001)
/* QueryRows */
/* Possible values for PR_ROW_TYPE (for categorization) */
#define TBL_LEAF_ROW ((ULONG) 1)
#define TBL_EMPTY_CATEGORY ((ULONG) 2)
#define TBL_EXPANDED_CATEGORY ((ULONG) 3)
#define TBL_COLLAPSED_CATEGORY ((ULONG) 4)
/* Table wait flag */
#define TBL_NOWAIT ((ULONG) 0x00000001)
/* alternative name for TBL_NOWAIT */
#define TBL_ASYNC ((ULONG) 0x00000001)
#define TBL_BATCH ((ULONG) 0x00000002)
/* FindRow */
#define DIR_BACKWARD ((ULONG) 0x00000001)
/* Table cursor states */
#define TBL_NOADVANCE ((ULONG) 0x00000001)
#define MAPI_IMAPITABLE_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(Advise) \
(THIS_ ULONG ulEventMask, \
LPMAPIADVISESINK lpAdviseSink, \
ULONG FAR * lpulConnection) IPURE; \
MAPIMETHOD(Unadvise) \
(THIS_ ULONG ulConnection) IPURE; \
MAPIMETHOD(GetStatus) \
(THIS_ ULONG FAR * lpulTableStatus, \
ULONG FAR * lpulTableType) IPURE; \
MAPIMETHOD(SetColumns) \
(THIS_ LPSPropTagArray lpPropTagArray, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(QueryColumns) \
(THIS_ ULONG ulFlags, \
LPSPropTagArray FAR * lpPropTagArray) IPURE; \
MAPIMETHOD(GetRowCount) \
(THIS_ ULONG ulFlags, \
ULONG FAR * lpulCount) IPURE; \
MAPIMETHOD(SeekRow) \
(THIS_ BOOKMARK bkOrigin, \
LONG lRowCount, \
LONG FAR * lplRowsSought) IPURE; \
MAPIMETHOD(SeekRowApprox) \
(THIS_ ULONG ulNumerator, \
ULONG ulDenominator) IPURE; \
MAPIMETHOD(QueryPosition) \
(THIS_ ULONG FAR * lpulRow, \
ULONG FAR * lpulNumerator, \
ULONG FAR * lpulDenominator) IPURE; \
MAPIMETHOD(FindRow) \
(THIS_ LPSRestriction lpRestriction, \
BOOKMARK bkOrigin, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(Restrict) \
(THIS_ LPSRestriction lpRestriction, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(CreateBookmark) \
(THIS_ BOOKMARK FAR * lpbkPosition) IPURE; \
MAPIMETHOD(FreeBookmark) \
(THIS_ BOOKMARK bkPosition) IPURE; \
MAPIMETHOD(SortTable) \
(THIS_ LPSSortOrderSet lpSortCriteria, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(QuerySortOrder) \
(THIS_ LPSSortOrderSet FAR * lppSortCriteria) IPURE; \
MAPIMETHOD(QueryRows) \
(THIS_ LONG lRowCount, \
ULONG ulFlags, \
LPSRowSet FAR * lppRows) IPURE; \
MAPIMETHOD(Abort) (THIS) IPURE; \
MAPIMETHOD(ExpandRow) \
(THIS_ ULONG cbInstanceKey, \
LPBYTE pbInstanceKey, \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -