1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018 |
- /*
- * Copyright 2005 - 2016 Zarafa and its licensors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- #ifndef __M4L_EDKMDB_H_
- #define __M4L_EDKMDB_H_
- /*
- * No, this is not the edkmdb.h file,
- * but it contains the exchange interfaces used in kopano
- */
- #define OPENSTORE_USE_ADMIN_PRIVILEGE ((ULONG)1)
- #define OPENSTORE_PUBLIC ((ULONG)2)
- #define OPENSTORE_HOME_LOGON ((ULONG)4)
- #define OPENSTORE_TAKE_OWNERSHIP ((ULONG)8)
- #define OPENSTORE_OVERRIDE_HOME_MDB ((ULONG)16)
- #define OPENSTORE_TRANSPORT ((ULONG)32)
- #define OPENSTORE_REMOTE_TRANSPORT ((ULONG)64)
- #include <kopano/platform.h>
- #include <initializer_list>
- class IExchangeManageStore : public IUnknown {
- public:
- virtual HRESULT __stdcall CreateStoreEntryID(LPTSTR lpszMsgStoreDN, LPTSTR lpszMailboxDN, ULONG ulFlags, ULONG *lpcbEntryID,
- LPENTRYID *lppEntryID) = 0;
- virtual HRESULT __stdcall EntryIDFromSourceKey(ULONG cFolderKeySize, BYTE *lpFolderSourceKey, ULONG cMessageKeySize,
- BYTE *lpMessageSourceKey, ULONG *lpcbEntryID, LPENTRYID *lppEntryID) = 0;
- virtual HRESULT __stdcall GetRights(ULONG cbUserEntryID, LPENTRYID lpUserEntryID, ULONG cbEntryID, LPENTRYID lpEntryID,
- ULONG *lpulRights) = 0;
- virtual HRESULT __stdcall GetMailboxTable(LPTSTR lpszServerName, LPMAPITABLE *lppTable, ULONG ulFlags) = 0;
- virtual HRESULT __stdcall GetPublicFolderTable(LPTSTR lpszServerName, LPMAPITABLE *lppTable, ULONG ulFlags) = 0;
- };
- class IExchangeManageStore6 : public IUnknown {
- public:
- virtual HRESULT __stdcall CreateStoreEntryID(LPTSTR lpszMsgStoreDN, LPTSTR lpszMailboxDN, ULONG ulFlags, ULONG *lpcbEntryID,
- LPENTRYID *lppEntryID) = 0;
- virtual HRESULT __stdcall EntryIDFromSourceKey(ULONG cFolderKeySize, BYTE *lpFolderSourceKey, ULONG cMessageKeySize,
- BYTE *lpMessageSourceKey, ULONG *lpcbEntryID, LPENTRYID *lppEntryID) = 0;
- virtual HRESULT __stdcall GetRights(ULONG cbUserEntryID, LPENTRYID lpUserEntryID, ULONG cbEntryID, LPENTRYID lpEntryID,
- ULONG *lpulRights) = 0;
- virtual HRESULT __stdcall GetMailboxTable(LPTSTR lpszServerName, LPMAPITABLE *lppTable, ULONG ulFlags) = 0;
- virtual HRESULT __stdcall GetPublicFolderTable(LPTSTR lpszServerName, LPMAPITABLE *lppTable, ULONG ulFlags) = 0;
- virtual HRESULT __stdcall CreateStoreEntryIDEx(LPTSTR lpszMsgStoreDN, LPTSTR lpszEmailAddress, LPTSTR lpszMailboxDN, ULONG ulFlags,
- ULONG *lpcbEntryID, LPENTRYID *lppEntryID) = 0;
- };
- class IExchangeManageStoreEx : public IUnknown {
- public:
- virtual HRESULT __stdcall CreateStoreEntryID(LPTSTR lpszMsgStoreDN, LPTSTR lpszMailboxDN, ULONG ulFlags, ULONG *lpcbEntryID,
- LPENTRYID *lppEntryID) = 0;
- virtual HRESULT __stdcall EntryIDFromSourceKey(ULONG cFolderKeySize, BYTE *lpFolderSourceKey, ULONG cMessageKeySize,
- BYTE *lpMessageSourceKey, ULONG *lpcbEntryID, LPENTRYID *lppEntryID) = 0;
- virtual HRESULT __stdcall GetRights(ULONG cbUserEntryID, LPENTRYID lpUserEntryID, ULONG cbEntryID, LPENTRYID lpEntryID,
- ULONG *lpulRights) = 0;
- virtual HRESULT __stdcall GetMailboxTable(LPTSTR lpszServerName, LPMAPITABLE *lppTable, ULONG ulFlags) = 0;
- virtual HRESULT __stdcall GetPublicFolderTable(LPTSTR lpszServerName, LPMAPITABLE *lppTable, ULONG ulFlags) = 0;
- virtual HRESULT __stdcall CreateStoreEntryID2(ULONG cValues, LPSPropValue lpProps, ULONG ulFlags, ULONG *lpcbEntryID, LPENTRYID *lppEntryID) = 0;
- };
- typedef IExchangeManageStore* LPEXCHANGEMANAGESTORE;
- #define pidStoreNonTransMin 0x0E40
- #define pidExchangeXmitReservedMin 0x3FE0
- #define pidExchangeNonXmitReservedMin 0x65E0
- #define pidProfileMin 0x6600
- #define pidStoreMin 0x6618
- #define pidFolderMin 0x6638
- #define pidMessageReadOnlyMin 0x6640
- #define pidMessageWriteableMin 0x6658
- #define pidAttachReadOnlyMin 0x666C
- #define pidSpecialMin 0x6670
- #define pidAdminMin 0x6690
- #define pidSecureProfileMin PROP_ID_SECURE_MIN
- #define pidRenMsgFldMin 0x1080
- #define pidLocalStoreInternalMin 0x6500
- #define pidLocalStoreInternalMax 0x65C0
- #define PR_NON_IPM_SUBTREE_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x08)
- #define PR_IPM_FAVORITES_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x18)
- #define PR_IPM_PUBLIC_FOLDERS_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x19)
- /* missing PR_* defines for common/ECDebug */
- #define PR_PROFILE_VERSION PROP_TAG(PT_LONG, pidProfileMin+0x00)
- #define PR_PROFILE_CONFIG_FLAGS PROP_TAG(PT_LONG, pidProfileMin+0x01)
- #define PR_PROFILE_HOME_SERVER PROP_TAG(PT_STRING8, pidProfileMin+0x02)
- #define PR_PROFILE_HOME_SERVER_DN PROP_TAG(PT_STRING8, pidProfileMin+0x12)
- #define PR_PROFILE_HOME_SERVER_ADDRS PROP_TAG(PT_MV_STRING8, pidProfileMin+0x13)
- #define PR_PROFILE_USER PROP_TAG(PT_STRING8, pidProfileMin+0x03)
- #define PR_PROFILE_CONNECT_FLAGS PROP_TAG(PT_LONG, pidProfileMin+0x04)
- #define PR_PROFILE_TRANSPORT_FLAGS PROP_TAG(PT_LONG, pidProfileMin+0x05)
- #define PR_PROFILE_UI_STATE PROP_TAG(PT_LONG, pidProfileMin+0x06)
- #define PR_PROFILE_UNRESOLVED_NAME PROP_TAG(PT_STRING8, pidProfileMin+0x07)
- #define PR_PROFILE_UNRESOLVED_SERVER PROP_TAG(PT_STRING8, pidProfileMin+0x08)
- #define PR_PROFILE_BINDING_ORDER PROP_TAG(PT_STRING8, pidProfileMin+0x09)
- #define PR_PROFILE_MAX_RESTRICT PROP_TAG(PT_LONG, pidProfileMin+0x0D)
- #define PR_PROFILE_AB_FILES_PATH PROP_TAG(PT_STRING8, pidProfileMin+0xE)
- #define PR_PROFILE_OFFLINE_STORE_PATH PROP_TAG(PT_STRING8, pidProfileMin+0x10)
- #define PR_PROFILE_OFFLINE_INFO PROP_TAG(PT_BINARY, pidProfileMin+0x11)
- #define PR_PROFILE_ADDR_INFO PROP_TAG(PT_BINARY, pidSpecialMin+0x17)
- #define PR_PROFILE_OPTIONS_DATA PROP_TAG(PT_BINARY, pidSpecialMin+0x19)
- #define PR_PROFILE_SECURE_MAILBOX PROP_TAG(PT_BINARY, pidSecureProfileMin+0x00)
- #define PR_DISABLE_WINSOCK PROP_TAG(PT_LONG, pidProfileMin+0x18)
- #define PR_PROFILE_AUTH_PACKAGE PROP_TAG(PT_LONG, pidProfileMin+0x19)
- #define PR_PROFILE_RECONNECT_INTERVAL PROP_TAG(PT_LONG, pidProfileMin+0x1A)
- #define PR_PROFILE_SERVER_VERSION PROP_TAG(PT_LONG, pidProfileMin+0x1B)
- #define PR_OST_ENCRYPTION PROP_TAG(PT_LONG, 0x6702)
- #define PR_PROFILE_OPEN_FLAGS PROP_TAG(PT_LONG, pidProfileMin+0x09)
- #define PR_PROFILE_TYPE PROP_TAG(PT_LONG, pidProfileMin+0x0A)
- #define PR_PROFILE_MAILBOX PROP_TAG(PT_STRING8, pidProfileMin+0x0B)
- #define PR_PROFILE_SERVER PROP_TAG(PT_STRING8, pidProfileMin+0x0C)
- #define PR_PROFILE_SERVER_DN PROP_TAG(PT_STRING8, pidProfileMin+0x14)
- #define PR_PROFILE_FAVFLD_DISPLAY_NAME PROP_TAG(PT_STRING8, pidProfileMin+0x0F)
- #define PR_PROFILE_FAVFLD_COMMENT PROP_TAG(PT_STRING8, pidProfileMin+0x15)
- #define PR_PROFILE_ALLPUB_DISPLAY_NAME PROP_TAG(PT_STRING8, pidProfileMin+0x16)
- #define PR_PROFILE_ALLPUB_COMMENT PROP_TAG(PT_STRING8, pidProfileMin+0x17)
- #define PR_PROFILE_MOAB PROP_TAG(PT_STRING8, pidSpecialMin+0x0B)
- #define PR_PROFILE_MOAB_GUID PROP_TAG(PT_STRING8, pidSpecialMin+0x0C)
- #define PR_PROFILE_MOAB_SEQ PROP_TAG(PT_LONG, pidSpecialMin+0x0D)
- #define PR_GET_PROPS_EXCLUDE_PROP_ID_LIST PROP_TAG(PT_BINARY, pidSpecialMin+0x0E)
- #define PR_USER_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x01)
- #define PR_USER_NAME PROP_TAG( PT_TSTRING, pidStoreMin+0x02)
- #define PR_USER_NAME_A PROP_TAG( PT_STRING8, pidStoreMin+0x02)
- #define PR_USER_NAME_W PROP_TAG( PT_UNICODE, pidStoreMin+0x02)
- #define PR_MAILBOX_OWNER_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x03)
- #define PR_MAILBOX_OWNER_NAME PROP_TAG( PT_TSTRING, pidStoreMin+0x04)
- #define PR_MAILBOX_OWNER_NAME_A PROP_TAG( PT_STRING8, pidStoreMin+0x04)
- #define PR_MAILBOX_OWNER_NAME_W PROP_TAG( PT_UNICODE, pidStoreMin+0x04)
- #define PR_OOF_STATE PROP_TAG(PT_BOOLEAN, pidStoreMin+0x05)
- #define PR_HIERARCHY_SERVER PROP_TAG(PT_TSTRING, pidStoreMin+0x1B)
- #define PR_SCHEDULE_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x06)
- #define PR_IPM_DAF_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x07)
- #define PR_EFORMS_REGISTRY_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x09)
- #define PR_SPLUS_FREE_BUSY_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x0A)
- #define PR_OFFLINE_ADDRBOOK_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x0B)
- #define PR_NNTP_CONTROL_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidSpecialMin+0x1B)
- #define PR_EFORMS_FOR_LOCALE_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x0C)
- #define PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x0D)
- #define PR_ADDRBOOK_FOR_LOCAL_SITE_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x0E)
- #define PR_NEWSGROUP_ROOT_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidSpecialMin+0x1C)
- #define PR_OFFLINE_MESSAGE_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x0F)
- #define PR_FAVORITES_DEFAULT_NAME PROP_TAG(PT_STRING8, pidStoreMin+0x1D)
- #define PR_SYS_CONFIG_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x1E)
- #define PR_NNTP_ARTICLE_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidSpecialMin+0x1A)
- #define PR_EVENTS_ROOT_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidSpecialMin+0xA)
- #define PR_GW_MTSIN_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x10)
- #define PR_GW_MTSOUT_ENTRYID PROP_TAG(PT_BINARY, pidStoreMin+0x11)
- #define PR_TRANSFER_ENABLED PROP_TAG(PT_BOOLEAN, pidStoreMin+0x12)
- #define PR_TEST_LINE_SPEED PROP_TAG(PT_BINARY, pidStoreMin+0x13)
- #define PR_HIERARCHY_SYNCHRONIZER PROP_TAG(PT_OBJECT, pidStoreMin+0x14)
- #define PR_CONTENTS_SYNCHRONIZER PROP_TAG(PT_OBJECT, pidStoreMin+0x15)
- #define PR_COLLECTOR PROP_TAG(PT_OBJECT, pidStoreMin+0x16)
- #define PR_FAST_TRANSFER PROP_TAG(PT_OBJECT, pidStoreMin+0x17)
- #define PR_CHANGE_ADVISOR PROP_TAG(PT_OBJECT, pidStoreMin+0x1C)
- #define PR_CHANGE_NOTIFICATION_GUID PROP_TAG(PT_CLSID, pidStoreMin+0x1F)
- #define PR_STORE_OFFLINE PROP_TAG(PT_BOOLEAN, pidStoreMin+0x1A)
- #define PR_IN_TRANSIT PROP_TAG(PT_BOOLEAN, pidStoreMin+0x00)
- #define PR_REPLICATION_STYLE PROP_TAG(PT_LONG, pidAdminMin+0x00)
- #define PR_REPLICATION_SCHEDULE PROP_TAG(PT_BINARY, pidAdminMin+0x01)
- #define PR_REPLICATION_MESSAGE_PRIORITY PROP_TAG(PT_LONG, pidAdminMin+0x02)
- #define PR_OVERALL_MSG_AGE_LIMIT PROP_TAG(PT_LONG, pidAdminMin+0x03)
- #define PR_REPLICATION_ALWAYS_INTERVAL PROP_TAG(PT_LONG, pidAdminMin+0x04)
- #define PR_REPLICATION_MSG_SIZE PROP_TAG(PT_LONG, pidAdminMin+0x05)
- #define PR_SOURCE_KEY PROP_TAG(PT_BINARY, pidExchangeNonXmitReservedMin+0x00)
- #define PR_PARENT_SOURCE_KEY PROP_TAG(PT_BINARY, pidExchangeNonXmitReservedMin+0x01)
- #define PR_CHANGE_KEY PROP_TAG(PT_BINARY, pidExchangeNonXmitReservedMin+0x02)
- #define PR_PREDECESSOR_CHANGE_LIST PROP_TAG(PT_BINARY, pidExchangeNonXmitReservedMin+0x03)
- #define PR_SOURCE_FID PROP_TAG(PT_I8, pidStoreNonTransMin+0x1F)
- #define PR_CATALOG PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x1B)
- #define PR_CI_SEARCH_ENABLED PROP_TAG(PT_BOOLEAN, pidStoreNonTransMin+0x1C)
- #define PR_CI_NOTIFICATION_ENABLED PROP_TAG(PT_BOOLEAN, pidStoreNonTransMin+0x1D)
- #define PR_MAX_CACHED_VIEWS PROP_TAG(PT_LONG, pidStoreNonTransMin+0x28)
- #define PR_MAX_INDICES PROP_TAG(PT_LONG, pidStoreNonTransMin+0x1E)
- #define PR_IMPLIED_RESTRICTIONS PROP_TAG(PT_MV_BINARY, pidSpecialMin+0x0F)
- #define PR_FOLDER_CHILD_COUNT PROP_TAG(PT_LONG, pidFolderMin)
- #define PR_RIGHTS PROP_TAG(PT_LONG, pidFolderMin+0x01)
- #define PR_ACL_TABLE PROP_TAG(PT_OBJECT, pidExchangeXmitReservedMin)
- #define PR_RULES_TABLE PROP_TAG(PT_OBJECT, pidExchangeXmitReservedMin+0x1)
- #define PR_HAS_RULES PROP_TAG(PT_BOOLEAN, pidFolderMin+0x02)
- #define PR_HAS_MODERATOR_RULES PROP_TAG(PT_BOOLEAN, pidFolderMin+0x07 )
- #define PR_ADDRESS_BOOK_ENTRYID PROP_TAG(PT_BINARY, pidFolderMin+0x03)
- #define PR_ACL_DATA PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin)
- #define PR_RULES_DATA PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x1)
- #define PR_EXTENDED_ACL_DATA PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x1E)
- #define PR_FOLDER_DESIGN_FLAGS PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x2)
- #define PR_DESIGN_IN_PROGRESS PROP_TAG(PT_BOOLEAN, pidExchangeXmitReservedMin+0x4)
- #define PR_SECURE_ORIGINATION PROP_TAG(PT_BOOLEAN, pidExchangeXmitReservedMin+0x5)
- #define PR_PUBLISH_IN_ADDRESS_BOOK PROP_TAG(PT_BOOLEAN, pidExchangeXmitReservedMin+0x6)
- #define PR_RESOLVE_METHOD PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x7)
- #define PR_ADDRESS_BOOK_DISPLAY_NAME PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin+0x8)
- #define PR_EFORMS_LOCALE_ID PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x9)
- #define PR_REPLICA_LIST PROP_TAG(PT_BINARY, pidAdminMin+0x8)
- #define PR_OVERALL_AGE_LIMIT PROP_TAG(PT_LONG, pidAdminMin+0x9)
- #define PR_IS_NEWSGROUP_ANCHOR PROP_TAG(PT_BOOLEAN, pidAdminMin+0x06)
- #define PR_IS_NEWSGROUP PROP_TAG(PT_BOOLEAN, pidAdminMin+0x07)
- #define PR_NEWSGROUP_COMPONENT PROP_TAG(PT_STRING8, pidAdminMin+0x15)
- #define PR_INTERNET_NEWSGROUP_NAME PROP_TAG(PT_STRING8, pidAdminMin+0x17)
- #define PR_NEWSFEED_INFO PROP_TAG(PT_BINARY, pidAdminMin+0x16)
- #define PR_PREVENT_MSG_CREATE PROP_TAG(PT_BOOLEAN, pidExchangeNonXmitReservedMin+0x14)
- #define PR_IMAP_INTERNAL_DATE PROP_TAG(PT_SYSTIME, pidExchangeNonXmitReservedMin+0x15)
- #define PR_INBOUND_NEWSFEED_DN PROP_TAG(PT_STRING8, pidSpecialMin+0x1D)
- #define PR_OUTBOUND_NEWSFEED_DN PROP_TAG(PT_STRING8, pidSpecialMin+0x1E)
- #define PR_INTERNET_CHARSET PROP_TAG(PT_TSTRING, pidAdminMin+0xA)
- #define PR_PUBLIC_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidFolderMin+0x04)
- #define PR_HIERARCHY_CHANGE_NUM PROP_TAG(PT_LONG, pidFolderMin+0x06)
- #define PR_USER_SID PROP_TAG(PT_BINARY, PROP_ID(ptagSearchState))
- #define PR_CREATOR_TOKEN PR_USER_SID
- #define PR_HAS_NAMED_PROPERTIES PROP_TAG(PT_BOOLEAN, pidMessageReadOnlyMin+0x0A)
- #define PR_CREATOR_NAME PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin+0x18)
- #define PR_CREATOR_NAME_A PROP_TAG(PT_STRING8, pidExchangeXmitReservedMin+0x18)
- #define PR_CREATOR_NAME_W PROP_TAG(PT_UNICODE, pidExchangeXmitReservedMin+0x18)
- #define PR_CREATOR_ENTRYID PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x19)
- #define PR_LAST_MODIFIER_NAME PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin+0x1A)
- #define PR_LAST_MODIFIER_NAME_A PROP_TAG(PT_STRING8, pidExchangeXmitReservedMin+0x1A)
- #define PR_LAST_MODIFIER_NAME_W PROP_TAG(PT_UNICODE, pidExchangeXmitReservedMin+0x1A)
- #define PR_LAST_MODIFIER_ENTRYID PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x1B)
- #define PR_REPLY_RECIPIENT_SMTP_PROXIES PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin+0x1C)
- #define PR_REPLY_RECIPIENT_SMTP_PROXIES_A PROP_TAG(PT_STRING8, pidExchangeXmitReservedMin+0x1C)
- #define PR_REPLY_RECIPIENT_SMTP_PROXIES_W PROP_TAG(PT_UNICODE, pidExchangeXmitReservedMin+0x1C)
- #define PR_HAS_DAMS PROP_TAG(PT_BOOLEAN, pidExchangeXmitReservedMin+0x0A)
- #define PR_RULE_TRIGGER_HISTORY PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x12)
- #define PR_MOVE_TO_STORE_ENTRYID PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x13)
- #define PR_MOVE_TO_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x14)
- #define PR_REPLICA_SERVER PROP_TAG(PT_TSTRING, pidMessageReadOnlyMin+0x04)
- #define PR_REPLICA_VERSION PROP_TAG(PT_I8, pidMessageReadOnlyMin+0x0B)
- #define PR_CREATOR_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x18)
- #define PR_LAST_MODIFIER_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x19)
- #define PR_SENDER_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x0d)
- #define PR_SENT_REPRESENTING_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x0e)
- #define PR_ORIGINAL_SENDER_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x0f)
- #define PR_ORIGINAL_SENT_REPRESENTING_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x10)
- #define PR_READ_RECEIPT_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x11)
- #define PR_REPORT_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x12)
- #define PR_ORIGINATOR_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x13)
- #define PR_REPORT_DESTINATION_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x14)
- #define PR_ORIGINAL_AUTHOR_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x15)
- #define PR_RECEIVED_BY_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x16)
- #define PR_RCVD_REPRESENTING_SID PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x17)
- #define PR_TRUST_SENDER_NO 0x00000000L
- #define PR_TRUST_SENDER_YES 0x00000001L
- #define PR_TRUST_SENDER PROP_TAG(PT_LONG, pidStoreNonTransMin+0x39)
- #define PR_CREATOR_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x2C)
- #define PR_LAST_MODIFIER_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x2D)
- #define PR_SENDER_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x2E)
- #define PR_SENT_REPRESENTING_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x2F)
- #define PR_ORIGINAL_SENDER_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x30)
- #define PR_ORIGINAL_SENT_REPRESENTING_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x31)
- #define PR_READ_RECEIPT_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x32)
- #define PR_REPORT_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x33)
- #define PR_ORIGINATOR_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x34)
- #define PR_REPORT_DESTINATION_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x35)
- #define PR_ORIGINAL_AUTHOR_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x36)
- #define PR_RECEIVED_BY_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x37)
- #define PR_RCVD_REPRESENTING_SID_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x38)
- #define PR_MERGE_MIDSET_DELETED PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x3a)
- #define PR_RESERVE_RANGE_OF_IDS PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x3b)
- #define PR_FID_VID PROP_TAG(PT_BINARY, pidMessageReadOnlyMin+0x0C)
- //#define PR_FID_MID PR_FID_VID //NSK : temporary to allow transition
- #define PR_ORIGIN_ID PROP_TAG(PT_BINARY, pidMessageReadOnlyMin+0x0D)
- #define PR_RANK PROP_TAG(PT_LONG, pidAdminMin+0x82 )
- #define PR_MSG_FOLD_TIME PROP_TAG(PT_SYSTIME, pidMessageReadOnlyMin+0x14)
- #define PR_ICS_CHANGE_KEY PROP_TAG(PT_BINARY, pidMessageReadOnlyMin+0x15)
- #define PR_DEFERRED_SEND_NUMBER PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0xB)
- #define PR_DEFERRED_SEND_UNITS PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0xC)
- #define PR_EXPIRY_NUMBER PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0xD)
- #define PR_EXPIRY_UNITS PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0xE)
- #define PR_DEFERRED_SEND_TIME PROP_TAG(PT_SYSTIME, pidExchangeXmitReservedMin+0xF)
- #define PR_GW_ADMIN_OPERATIONS PROP_TAG(PT_LONG, pidMessageWriteableMin)
- #define PR_P1_CONTENT PROP_TAG(PT_BINARY, 0x1100)
- #define PR_P1_CONTENT_TYPE PROP_TAG(PT_BINARY, 0x1101)
- #define PR_CLIENT_ACTIONS PROP_TAG(PT_BINARY, pidMessageReadOnlyMin+0x5)
- #define PR_DAM_ORIGINAL_ENTRYID PROP_TAG(PT_BINARY, pidMessageReadOnlyMin+0x6)
- #define PR_DAM_BACK_PATCHED PROP_TAG(PT_BOOLEAN, pidMessageReadOnlyMin+0x7)
- #define PR_RULE_ERROR PROP_TAG(PT_LONG, pidMessageReadOnlyMin+0x8)
- #define PR_RULE_ACTION_TYPE PROP_TAG(PT_LONG, pidMessageReadOnlyMin+0x9)
- #define PR_RULE_ACTION_NUMBER PROP_TAG(PT_LONG, pidMessageReadOnlyMin+0x10)
- #define PR_RULE_FOLDER_ENTRYID PROP_TAG(PT_BINARY, pidMessageReadOnlyMin+0x11)
- #define PR_INTERNET_CONTENT PROP_TAG(PT_BINARY, pidMessageWriteableMin+0x1)
- #define PR_INTERNET_CONTENT_HANDLE PROP_TAG(PT_FILE_HANDLE, pidMessageWriteableMin+0x1)
- #define PR_INTERNET_CONTENT_EA PROP_TAG(PT_FILE_EA, pidMessageWriteableMin+0x1)
- #define PR_DOTSTUFF_STATE PROP_TAG(PT_LONG, pidUserNonTransmitMin+0x1)
- #define PR_MIME_SIZE PROP_TAG(PT_LONG, 0x6746)
- #define PR_MIME_SIZE_EXTENDED PROP_TAG(PT_I8, 0x6746)
- #define PR_FILE_SIZE PROP_TAG(PT_LONG, 0x6747)
- #define PR_FILE_SIZE_EXTENDED PROP_TAG(PT_I8, 0x6747)
- #define PR_MSG_EDITOR_FORMAT PROP_TAG(PT_LONG, 0x5909)
- #define PR_CONVERSION_STATE PROP_TAG(PT_LONG, PROP_ID(ptagAdminNickName))
- #define PR_HTML PROP_TAG(PT_BINARY, PROP_ID(PR_BODY_HTML))
- #define PR_ACTIVE_USER_ENTRYID PROP_TAG(PT_BINARY, pidMessageReadOnlyMin+0x12)
- #define PR_CONFLICT_ENTRYID PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x10)
- #define PR_MESSAGE_LOCALE_ID PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x11)
- #define PR_MESSAGE_CODEPAGE PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x1D)
- #define PR_STORAGE_QUOTA_LIMIT PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x15)
- #define PR_EXCESS_STORAGE_USED PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x16)
- #define PR_SVR_GENERATING_QUOTA_MSG PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin+0x17)
- #define PR_DELEGATED_BY_RULE PROP_TAG(PT_BOOLEAN, pidExchangeXmitReservedMin+0x3)
- #define PR_X400_ENVELOPE_TYPE PROP_TAG(PT_LONG, pidMessageReadOnlyMin+0x13)
- #define PR_AUTO_RESPONSE_SUPPRESS PROP_TAG(PT_LONG, pidExchangeXmitReservedMin-0x01)
- #define PR_INTERNET_CPID PROP_TAG(PT_LONG, pidExchangeXmitReservedMin-0x02)
- #define PR_SYNCEVENT_FIRED PROP_TAG(PT_BOOLEAN, pidMessageReadOnlyMin+0x0F)
- #define PR_IN_CONFLICT PROP_TAG(PT_BOOLEAN, pidAttachReadOnlyMin)
- #define PR_DELETED_ON PROP_TAG(PT_SYSTIME, pidSpecialMin+0x1F)
- #define PR_DELETED_MSG_COUNT PROP_TAG(PT_LONG, pidFolderMin+0x08)
- #define PR_DELETED_ASSOC_MSG_COUNT PROP_TAG(PT_LONG, pidFolderMin+0x0B)
- #define PR_DELETED_FOLDER_COUNT PROP_TAG(PT_LONG, pidFolderMin + 0x09)
- #define PR_OLDEST_DELETED_ON PROP_TAG(PT_SYSTIME, pidFolderMin + 0x0A)
- #define PR_DELETED_MESSAGE_SIZE_EXTENDED PROP_TAG(PT_I8, pidAdminMin+0xB)
- #define PR_DELETED_NORMAL_MESSAGE_SIZE_EXTENDED PROP_TAG(PT_I8, pidAdminMin+0xC)
- #define PR_DELETED_ASSOC_MESSAGE_SIZE_EXTENDED PROP_TAG(PT_I8, pidAdminMin+0xD)
- #define PR_RETENTION_AGE_LIMIT PROP_TAG(PT_LONG, pidAdminMin+0x34)
- #define PR_DISABLE_PERUSER_READ PROP_TAG(PT_BOOLEAN, pidAdminMin+0x35)
- #define PR_LAST_FULL_BACKUP PROP_TAG(PT_SYSTIME, pidSpecialMin+0x15)
- #define PR_URL_NAME PROP_TAG(PT_TSTRING, pidAdminMin+0x77)
- #define PR_URL_NAME_A PROP_TAG(PT_STRING8, pidAdminMin+0x77)
- #define PR_URL_NAME_W PROP_TAG(PT_UNICODE, pidAdminMin+0x77)
- #define PR_URL_COMP_NAME PROP_TAG(PT_TSTRING, pidRenMsgFldMin+0x73)
- #define PR_URL_COMP_NAME_A PROP_TAG(PT_STRING8, pidRenMsgFldMin+0x73)
- #define PR_URL_COMP_NAME_W PROP_TAG(PT_UNICODE, pidRenMsgFldMin+0x73)
- #define PR_PARENT_URL_NAME PROP_TAG(PT_TSTRING, pidAdminMin+0x7D)
- #define PR_PARENT_URL_NAME_A PROP_TAG(PT_STRING8, pidAdminMin+0x7D)
- #define PR_PARENT_URL_NAME_W PROP_TAG(PT_UNICODE, pidAdminMin+0x7D)
- #define PR_FLAT_URL_NAME PROP_TAG(PT_TSTRING, pidAdminMin+0x7E)
- #define PR_FLAT_URL_NAME_A PROP_TAG(PT_STRING8, pidAdminMin+0x7E)
- #define PR_FLAT_URL_NAME_W PROP_TAG(PT_UNICODE, pidAdminMin+0x7E)
- #define PR_SRC_URL_NAME PROP_TAG(PT_TSTRING, pidAdminMin+0x7F)
- #define PR_SRC_URL_NAME_A PROP_TAG(PT_STRING8, pidAdminMin+0x7F)
- #define PR_SRC_URL_NAME_W PROP_TAG(PT_UNICODE, pidAdminMin+0x7F)
- #define PR_SECURE_IN_SITE PROP_TAG(PT_BOOLEAN, pidAdminMin+0xE)
- #define PR_LOCAL_COMMIT_TIME PROP_TAG(PT_SYSTIME, pidAdminMin+0x79)
- #define PR_LOCAL_COMMIT_TIME_MAX PROP_TAG(PT_SYSTIME, pidAdminMin+0x7a)
- #define PR_DELETED_COUNT_TOTAL PROP_TAG(PT_LONG, pidAdminMin+0x7b)
- #define PR_AUTO_RESET PROP_TAG(PT_MV_CLSID, pidAdminMin+0x7c)
- #define PR_LONGTERM_ENTRYID_FROM_TABLE PROP_TAG(PT_BINARY, pidSpecialMin)
- #define PR_SUBFOLDER PROP_TAG(PT_BOOLEAN, pidAdminMin+0x78)
- /* ATTN: new property types */
- #define PT_SRESTRICTION ((ULONG) 0x00FD)
- #define PT_ACTIONS ((ULONG) 0x00FE)
- #define PR_ORIGINATOR_NAME PROP_TAG( PT_TSTRING, pidMessageWriteableMin+0x3)
- #define PR_ORIGINATOR_ADDR PROP_TAG( PT_TSTRING, pidMessageWriteableMin+0x4)
- #define PR_ORIGINATOR_ADDRTYPE PROP_TAG( PT_TSTRING, pidMessageWriteableMin+0x5)
- #define PR_ORIGINATOR_ENTRYID PROP_TAG( PT_BINARY, pidMessageWriteableMin+0x6)
- #define PR_ARRIVAL_TIME PROP_TAG( PT_SYSTIME, pidMessageWriteableMin+0x7)
- #define PR_TRACE_INFO PROP_TAG( PT_BINARY, pidMessageWriteableMin+0x8)
- #define PR_INTERNAL_TRACE_INFO PROP_TAG( PT_BINARY, pidMessageWriteableMin+0x12)
- #define PR_SUBJECT_TRACE_INFO PROP_TAG( PT_BINARY, pidMessageWriteableMin+0x9)
- #define PR_RECIPIENT_NUMBER PROP_TAG( PT_LONG, pidMessageWriteableMin+0xA)
- #define PR_MTS_SUBJECT_ID PROP_TAG(PT_BINARY, pidMessageWriteableMin+0xB)
- #define PR_REPORT_DESTINATION_NAME PROP_TAG(PT_TSTRING, pidMessageWriteableMin+0xC)
- #define PR_REPORT_DESTINATION_ENTRYID PROP_TAG(PT_BINARY, pidMessageWriteableMin+0xD)
- #define PR_CONTENT_SEARCH_KEY PROP_TAG(PT_BINARY, pidMessageWriteableMin+0xE)
- #define PR_FOREIGN_ID PROP_TAG(PT_BINARY, pidMessageWriteableMin+0xF)
- #define PR_FOREIGN_REPORT_ID PROP_TAG(PT_BINARY, pidMessageWriteableMin+0x10)
- #define PR_FOREIGN_SUBJECT_ID PROP_TAG(PT_BINARY, pidMessageWriteableMin+0x11)
- #define PR_PROMOTE_PROP_ID_LIST PROP_TAG(PT_BINARY, pidMessageWriteableMin+0x13)
- #define PR_MTS_ID PR_MESSAGE_SUBMISSION_ID
- #define PR_MTS_REPORT_ID PR_MESSAGE_SUBMISSION_ID
- #define PR_MEMBER_ID PROP_TAG(PT_I8, pidSpecialMin+0x01)
- #define PR_MEMBER_NAME PROP_TAG(PT_TSTRING, pidSpecialMin+0x02)
- #define PR_MEMBER_ENTRYID PR_ENTRYID
- #define PR_MEMBER_RIGHTS PROP_TAG(PT_LONG, pidSpecialMin+0x03)
- #define PR_RULE_ID PROP_TAG(PT_I8, pidSpecialMin+0x04)
- #define PR_RULE_IDS PROP_TAG(PT_BINARY, pidSpecialMin+0x05)
- #define PR_RULE_SEQUENCE PROP_TAG(PT_LONG, pidSpecialMin+0x06)
- #define PR_RULE_STATE PROP_TAG(PT_LONG, pidSpecialMin+0x07)
- #define PR_RULE_USER_FLAGS PROP_TAG(PT_LONG, pidSpecialMin+0x08)
- #define PR_RULE_CONDITION PROP_TAG(PT_SRESTRICTION, pidSpecialMin+0x09)
- #define PR_RULE_ACTIONS PROP_TAG(PT_ACTIONS, pidSpecialMin+0x10)
- #define PR_RULE_PROVIDER PROP_TAG(PT_STRING8, pidSpecialMin+0x11)
- #define PR_RULE_NAME PROP_TAG(PT_TSTRING, pidSpecialMin+0x12)
- #define PR_RULE_LEVEL PROP_TAG(PT_LONG, pidSpecialMin+0x13)
- #define PR_RULE_PROVIDER_DATA PROP_TAG(PT_BINARY, pidSpecialMin+0x14)
- #define PR_EXTENDED_RULE_ACTIONS PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x59)
- #define PR_EXTENDED_RULE_CONDITION PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x5a)
- #define PR_EXTENDED_RULE_SIZE_LIMIT PROP_TAG(PT_LONG, pidStoreNonTransMin+0x5b)
- #define PR_NT_USER_NAME PROP_TAG(PT_TSTRING, pidAdminMin+0x10)
- #define PR_LAST_LOGON_TIME PROP_TAG(PT_SYSTIME, pidAdminMin+0x12 )
- #define PR_LAST_LOGOFF_TIME PROP_TAG(PT_SYSTIME, pidAdminMin+0x13 )
- #define PR_STORAGE_LIMIT_INFORMATION PROP_TAG(PT_LONG, pidAdminMin+0x14 )
- #define PR_INTERNET_MDNS PROP_TAG(PT_BOOLEAN, PROP_ID(PR_NEWSGROUP_COMPONENT))
- #define PR_QUOTA_WARNING_THRESHOLD PROP_TAG(PT_LONG, pidAdminMin+0x91)
- #define PR_QUOTA_SEND_THRESHOLD PROP_TAG(PT_LONG, pidAdminMin+0x92)
- #define PR_QUOTA_RECEIVE_THRESHOLD PROP_TAG(PT_LONG, pidAdminMin+0x93)
- #define PR_FOLDER_FLAGS PROP_TAG(PT_LONG, pidAdminMin+0x18)
- #define PR_LAST_ACCESS_TIME PROP_TAG(PT_SYSTIME, pidAdminMin+0x19)
- #define PR_RESTRICTION_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x1A)
- #define PR_CATEG_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x1B)
- #define PR_CACHED_COLUMN_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x1C)
- #define PR_NORMAL_MSG_W_ATTACH_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x1D)
- #define PR_ASSOC_MSG_W_ATTACH_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x1E)
- #define PR_RECIPIENT_ON_NORMAL_MSG_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x1F)
- #define PR_RECIPIENT_ON_ASSOC_MSG_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x20)
- #define PR_ATTACH_ON_NORMAL_MSG_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x21)
- #define PR_ATTACH_ON_ASSOC_MSG_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x22)
- #define PR_NORMAL_MESSAGE_SIZE PROP_TAG(PT_LONG, pidAdminMin+0x23)
- #define PR_NORMAL_MESSAGE_SIZE_EXTENDED PROP_TAG(PT_I8, pidAdminMin+0x23)
- #define PR_ASSOC_MESSAGE_SIZE PROP_TAG(PT_LONG, pidAdminMin+0x24)
- #define PR_ASSOC_MESSAGE_SIZE_EXTENDED PROP_TAG(PT_I8, pidAdminMin+0x24)
- #define PR_FOLDER_PATHNAME PROP_TAG(PT_TSTRING, pidAdminMin+0x25)
- #define PR_OWNER_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x26)
- #define PR_CONTACT_COUNT PROP_TAG(PT_LONG, pidAdminMin+0x27)
- #define PR_PF_OVER_HARD_QUOTA_LIMIT PROP_TAG(PT_LONG, pidAdminMin+0x91)
- #define PR_PF_MSG_SIZE_LIMIT PROP_TAG(PT_LONG, pidAdminMin+0x92)
- #define PR_PF_DISALLOW_MDB_WIDE_EXPIRY PROP_TAG(PT_BOOLEAN, pidAdminMin+0x93)
- #define PR_LOCALE_ID PROP_TAG(PT_LONG, pidAdminMin+0x11)
- #define PR_CODE_PAGE_ID PROP_TAG(PT_LONG, pidAdminMin+0x33)
- #define PR_SORT_LOCALE_ID PROP_TAG(PT_LONG, pidAdminMin+0x75)
- #define PR_MESSAGE_SIZE_EXTENDED PROP_TAG(PT_I8, PROP_ID(PR_MESSAGE_SIZE))
- #define PR_AUTO_ADD_NEW_SUBS PROP_TAG(PT_BOOLEAN, pidExchangeNonXmitReservedMin+0x5)
- #define PR_NEW_SUBS_GET_AUTO_ADD PROP_TAG(PT_BOOLEAN, pidExchangeNonXmitReservedMin+0x6)
- #define PR_OFFLINE_FLAGS PROP_TAG(PT_LONG, pidFolderMin+0x5)
- #define PR_SYNCHRONIZE_FLAGS PROP_TAG(PT_LONG, pidExchangeNonXmitReservedMin+0x4)
- #define PR_MESSAGE_SITE_NAME PROP_TAG(PT_TSTRING, pidExchangeNonXmitReservedMin+0x7)
- #define PR_MESSAGE_SITE_NAME_A PROP_TAG(PT_STRING8, pidExchangeNonXmitReservedMin+0x7)
- #define PR_MESSAGE_SITE_NAME_W PROP_TAG(PT_UNICODE, pidExchangeNonXmitReservedMin+0x7)
- #define PR_MESSAGE_PROCESSED PROP_TAG(PT_BOOLEAN, pidExchangeNonXmitReservedMin+0x8)
- #define PR_MSG_BODY_ID PROP_TAG(PT_LONG, pidExchangeXmitReservedMin-0x03)
- #define PR_BILATERAL_INFO PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin-0x04)
- #define PR_DL_REPORT_FLAGS PROP_TAG(PT_LONG, pidExchangeXmitReservedMin-0x05)
- #define PR_ABSTRACT PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin-0x06)
- #define PR_ABSTRACT_A PROP_TAG(PT_STRING8, pidExchangeXmitReservedMin-0x06)
- #define PR_ABSTRACT_W PROP_TAG(PT_UNICODE, pidExchangeXmitReservedMin-0x06)
- #define PR_PREVIEW PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin-0x07)
- #define PR_PREVIEW_A PROP_TAG(PT_STRING8, pidExchangeXmitReservedMin-0x07)
- #define PR_PREVIEW_W PROP_TAG(PT_UNICODE, pidExchangeXmitReservedMin-0x07)
- #define PR_PREVIEW_UNREAD PROP_TAG(PT_TSTRING, pidExchangeXmitReservedMin-0x08)
- #define PR_PREVIEW_UNREAD_A PROP_TAG(PT_STRING8, pidExchangeXmitReservedMin-0x08)
- #define PR_PREVIEW_UNREAD_W PROP_TAG(PT_UNICODE, pidExchangeXmitReservedMin-0x08)
- #define PR_DISABLE_FULL_FIDELITY PROP_TAG(PT_BOOLEAN, pidRenMsgFldMin+0x72)
- #define PR_ATTR_HIDDEN PROP_TAG(PT_BOOLEAN, pidRenMsgFldMin+0x74)
- #define PR_ATTR_SYSTEM PROP_TAG(PT_BOOLEAN, pidRenMsgFldMin+0x75)
- #define PR_ATTR_READONLY PROP_TAG(PT_BOOLEAN, pidRenMsgFldMin+0x76)
- #define PR_READ PROP_TAG(PT_BOOLEAN, pidStoreNonTransMin+0x29)
- #define PR_ADMIN_SECURITY_DESCRIPTOR PROP_TAG(PT_BINARY, 0x3d21)
- #define PR_WIN32_SECURITY_DESCRIPTOR PROP_TAG(PT_BINARY, 0x3d22)
- #define PR_NON_WIN32_ACL PROP_TAG(PT_BOOLEAN, 0x3d23)
- #define PR_ITEM_LEVEL_ACL PROP_TAG(PT_BOOLEAN, 0x3d24)
- #define PR_DAV_TRANSFER_SECURITY_DESCRIPTOR PROP_TAG(PT_BINARY, 0x0E84)
- #define PR_NT_SECURITY_DESCRIPTOR_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x2A)
- #define PR_NT_SECURITY_DESCRIPTOR_AS_XML_A PROP_TAG(PT_STRING8, pidStoreNonTransMin+0x2A)
- #define PR_NT_SECURITY_DESCRIPTOR_AS_XML_W PROP_TAG(PT_UNICODE, pidStoreNonTransMin+0x2A)
- #define PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x2B)
- #define PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML_A PROP_TAG(PT_STRING8, pidStoreNonTransMin+0x2B)
- #define PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML_W PROP_TAG(PT_UNICODE, pidStoreNonTransMin+0x2B)
- #define PR_OWA_URL PROP_TAG (PT_STRING8, pidRenMsgFldMin+0x71)
- #define PR_SYNCEVENT_SUPPRESS_GUID PROP_TAG( PT_BINARY, 0x3880 )
- #define PR_LOCK_BRANCH_ID PROP_TAG( PT_I8, 0x3800 )
- #define PR_LOCK_RESOURCE_FID PROP_TAG( PT_I8, 0x3801 )
- #define PR_LOCK_RESOURCE_DID PROP_TAG( PT_I8, 0x3802 )
- #define PR_LOCK_RESOURCE_VID PROP_TAG( PT_I8, 0x3803 )
- #define PR_LOCK_ENLISTMENT_CONTEXT PROP_TAG( PT_BINARY, 0x3804 )
- #define PR_LOCK_TYPE PROP_TAG( PT_SHORT, 0x3805 )
- #define PR_LOCK_SCOPE PROP_TAG( PT_SHORT, 0x3806 )
- #define PR_LOCK_TRANSIENT_ID PROP_TAG( PT_BINARY, 0x3807 )
- #define PR_LOCK_DEPTH PROP_TAG( PT_LONG, 0x3808 )
- #define PR_LOCK_TIMEOUT PROP_TAG( PT_LONG, 0x3809 )
- #define PR_LOCK_EXPIRY_TIME PROP_TAG( PT_SYSTIME, 0x380a )
- #define PR_LOCK_GLID PROP_TAG( PT_BINARY, 0x380b )
- #define PR_LOCK_NULL_URL_W PROP_TAG( PT_UNICODE, 0x380c )
- #define PR_ANTIVIRUS_VENDOR PROP_TAG(PT_STRING8, pidStoreNonTransMin+0x45)
- #define PR_ANTIVIRUS_VERSION PROP_TAG(PT_LONG, pidStoreNonTransMin+0x46)
- #define PR_ANTIVIRUS_SCAN_STATUS PROP_TAG(PT_LONG, pidStoreNonTransMin+0x47)
- #define PR_ANTIVIRUS_SCAN_INFO PROP_TAG(PT_STRING8, pidStoreNonTransMin+0x48)
- #define PR_ADDR_TO PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x57)
- #define PR_ADDR_TO_A PROP_TAG(PT_STRING8, pidStoreNonTransMin+0x57)
- #define PR_ADDR_TO_W PROP_TAG(PT_UNICODE, pidStoreNonTransMin+0x57)
- #define PR_ADDR_CC PROP_TAG(PT_TSTRING, pidStoreNonTransMin+0x58)
- #define PR_ADDR_CC_A PROP_TAG(PT_STRING8, pidStoreNonTransMin+0x58)
- #define PR_ADDR_CC_W PROP_TAG(PT_UNICODE, pidStoreNonTransMin+0x58)
- #define pbGlobalProfileSectionGuid "\x13\xDB\xB0\xC8\xAA\x05\x10\x1A\x9B\xB0\x00\xAA\x00\x2F\xC4\x5A"
- /*
- * IExchangeModifyTable
- *
- * Used for get/set rules (and access control) on folders.
- *
- */
- /* ulRowFlags */
- #define ROWLIST_REPLACE ((ULONG)1)
- #define ROW_ADD ((ULONG)1)
- #define ROW_MODIFY ((ULONG)2)
- #define ROW_REMOVE ((ULONG)4)
- #define ROW_EMPTY (ROW_ADD|ROW_REMOVE)
- struct ROWENTRY {
- ULONG ulRowFlags;
- ULONG cValues;
- LPSPropValue rgPropVals;
- };
- typedef struct ROWENTRY *LPROWENTRY;
- struct ROWLIST {
- ROWLIST(void) = delete;
- template<typename _T> ROWLIST(std::initializer_list<_T>) = delete;
- ULONG cEntries;
- ROWENTRY aEntries[MAPI_DIM];
- };
- typedef struct ROWLIST *LPROWLIST;
- #define CbNewROWLIST(_centries) \
- (offsetof(ROWLIST,aEntries) + (_centries)*sizeof(ROWENTRY))
- class IExchangeModifyTable : public IUnknown {
- public:
- virtual HRESULT __stdcall GetLastError(HRESULT hResult, ULONG ulFlags, LPMAPIERROR *lppMAPIError) = 0;
- virtual HRESULT __stdcall GetTable(ULONG ulFlags, LPMAPITABLE *lppTable) = 0;
- virtual HRESULT __stdcall ModifyTable(ULONG ulFlags, LPROWLIST lpMods) = 0;
- };
- typedef IExchangeModifyTable* LPEXCHANGEMODIFYTABLE;
- /* --- snip acl stuff --- */
- /*
- * Rules specifics
- */
- // Property types
- #define PT_SRESTRICTION ((ULONG) 0x00FD)
- #define PT_ACTIONS ((ULONG) 0x00FE)
- /*
- * PT_FILE_HANDLE: real data is in file specified by handle.
- * prop.Value.l has file handle
- * PT_FILE_EA: real data is in file specified by extended attribute
- * prop.Value.bin has binary EA data
- * PT_VIRTUAL: real data is computed on the fly.
- * prop.Value.bin has raw binary virtual property blob that has
- * information to do conversion. This is internal to the store and
- * is not supported for outside calls.
- */
- #define PT_FILE_HANDLE ((ULONG) 0x0103)
- #define PT_FILE_EA ((ULONG) 0x0104)
- #define PT_VIRTUAL ((ULONG) 0x0105)
- #define FVirtualProp(ptag) (PROP_TYPE(ptag) == PT_VIRTUAL)
- #define FFileHandleProp(ptag) (PROP_TYPE(ptag) == PT_FILE_HANDLE || PROP_TYPE(ptag) == PT_FILE_EA)
- //Properties in rule table
- #define PR_RULE_ID PROP_TAG(PT_I8, pidSpecialMin+0x04)
- #define PR_RULE_IDS PROP_TAG(PT_BINARY, pidSpecialMin+0x05)
- #define PR_RULE_SEQUENCE PROP_TAG(PT_LONG, pidSpecialMin+0x06)
- #define PR_RULE_STATE PROP_TAG(PT_LONG, pidSpecialMin+0x07)
- #define PR_RULE_USER_FLAGS PROP_TAG(PT_LONG, pidSpecialMin+0x08)
- #define PR_RULE_CONDITION PROP_TAG(PT_SRESTRICTION, pidSpecialMin+0x09)
- #define PR_RULE_ACTIONS PROP_TAG(PT_ACTIONS, pidSpecialMin+0x10)
- #define PR_RULE_PROVIDER PROP_TAG(PT_STRING8, pidSpecialMin+0x11)
- #define PR_RULE_NAME PROP_TAG(PT_TSTRING, pidSpecialMin+0x12)
- #define PR_RULE_LEVEL PROP_TAG(PT_LONG, pidSpecialMin+0x13)
- #define PR_RULE_PROVIDER_DATA PROP_TAG(PT_BINARY, pidSpecialMin+0x14)
- #define PR_EXTENDED_RULE_ACTIONS PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x59)
- #define PR_EXTENDED_RULE_CONDITION PROP_TAG(PT_BINARY, pidStoreNonTransMin+0x5a)
- #define PR_EXTENDED_RULE_SIZE_LIMIT PROP_TAG(PT_LONG, pidStoreNonTransMin+0x5b)
- // what?
- // moved to ptag.h (scottno) - still needed for 2.27 upgrader
- // #define PR_RULE_VERSION PROP_TAG( PT_I2, pidSpecialMin+0x1D)
- //PR_STATE property values
- #define ST_DISABLED 0x0000
- #define ST_ENABLED 0x0001
- #define ST_ERROR 0x0002
- #define ST_ONLY_WHEN_OOF 0x0004
- #define ST_KEEP_OOF_HIST 0x0008
- #define ST_EXIT_LEVEL 0x0010
- #define ST_SKIP_IF_SCL_IS_SAFE 0x0020
- #define ST_RULE_PARSE_ERROR 0x0040
- #define ST_CLEAR_OOF_HIST 0x80000000
- //Empty restriction
- #define NULL_RESTRICTION 0xff
- // special RELOP for Member of DL
- #define RELOP_MEMBER_OF_DL 100
- //Action types
- enum ACTTYPE {
- OP_MOVE = 1,
- OP_COPY,
- OP_REPLY,
- OP_OOF_REPLY,
- OP_DEFER_ACTION,
- OP_BOUNCE,
- OP_FORWARD,
- OP_DELEGATE,
- OP_TAG,
- OP_DELETE,
- OP_MARK_AS_READ
- };
- // provider name for moderator rules
- #define szProviderModeratorRule "MSFT:MR"
- // #define wszProviderModeratorRule L"MSFT:MR"
- // action flavors
- // for OP_REPLY
- #define DO_NOT_SEND_TO_ORIGINATOR 1
- #define STOCK_REPLY_TEMPLATE 2
- // for OP_FORWARD
- #define FWD_PRESERVE_SENDER 1
- #define FWD_DO_NOT_MUNGE_MSG 2
- #define FWD_AS_ATTACHMENT 4
- //scBounceCode values
- #define BOUNCE_MESSAGE_SIZE_TOO_LARGE (SCODE) MAPI_DIAG_LENGTH_CONSTRAINT_VIOLATD
- #define BOUNCE_FORMS_MISMATCH (SCODE) MAPI_DIAG_RENDITION_UNSUPPORTED
- #define BOUNCE_ACCESS_DENIED (SCODE) MAPI_DIAG_MAIL_REFUSED
- //Message class prefix for Reply and OOF Reply templates
- #define szReplyTemplateMsgClassPrefix "IPM.Note.Rules.ReplyTemplate."
- #define szOofTemplateMsgClassPrefix "IPM.Note.Rules.OofTemplate."
- //Action structure
- struct ACTION {
- ACTTYPE acttype;
- // to indicate which flavor of the action.
- ULONG ulActionFlavor;
- // Action restriction
- // currently unused and must be set to NULL
- LPSRestriction lpRes;
- // currently unused and must be set to NULL.
- LPSPropTagArray lpPropTagArray;
- // User defined flags
- ULONG ulFlags;
- // padding to align the union on 8 byte boundary
- ULONG dwAlignPad;
- union {
- // used for OP_MOVE and OP_COPY actions
- struct {
- ULONG cbStoreEntryId;
- LPENTRYID lpStoreEntryId;
- ULONG cbFldEntryId;
- LPENTRYID lpFldEntryId;
- } actMoveCopy;
- // used for OP_REPLY and OP_OOF_REPLY actions
- struct {
- ULONG cbEntryId;
- LPENTRYID lpEntryId;
- GUID guidReplyTemplate;
- } actReply;
- // used for OP_DEFER_ACTION action
- struct {
- ULONG cbData;
- BYTE *pbData;
- } actDeferAction;
- // Error code to set for OP_BOUNCE action
- SCODE scBounceCode;
- // list of address for OP_FORWARD and OP_DELEGATE action
- LPADRLIST lpadrlist;
- // prop value for OP_TAG action
- SPropValue propTag;
- };
- };
- typedef struct ACTION *LPACTION;
- // Rules version
- #define EDK_RULES_VERSION 1
- //Array of actions
- struct ACTIONS {
- ULONG ulVersion; // use the #define above
- UINT cActions;
- LPACTION lpAction;
- };
- #ifdef __cplusplus
- extern "C" {
- #endif
- HRESULT HrSerializeSRestriction(IMAPIProp * pprop, LPSRestriction prest, BYTE ** ppbRest, ULONG * pcbRest);
- HRESULT HrDeserializeSRestriction(IMAPIProp * pprop, BYTE * pbRest, ULONG cbRest, LPSRestriction * pprest);
- HRESULT HrSerializeActions(IMAPIProp * pprop, ACTIONS * pActions, BYTE ** ppbActions, ULONG * pcbActions);
- HRESULT HrDeserializeActions(IMAPIProp * pprop, BYTE * pbActions, ULONG cbActions, ACTIONS ** ppActions);
- #ifdef __cplusplus
- } // extern "C"
- #endif
- // message class definitions for Deferred Action and Deffered Error messages
- #define szDamMsgClass "IPC.Microsoft Exchange 4.0.Deferred Action"
- #define szDemMsgClass "IPC.Microsoft Exchange 4.0.Deferred Error"
- #define szExRuleMsgClass "IPM.ExtendedRule.Message"
- //#define wszExRuleMsgClass L"IPM.ExtendedRule.Message"
- /*
- * Rule error codes
- * Values for PR_RULE_ERROR
- */
- #define RULE_ERR_UNKNOWN 1 //general catchall error
- #define RULE_ERR_LOAD 2 //unable to load folder rules
- #define RULE_ERR_DELIVERY 3 //unable to deliver message temporarily
- #define RULE_ERR_PARSING 4 //error while parsing
- #define RULE_ERR_CREATE_DAE 5 //error creating DAE message
- #define RULE_ERR_NO_FOLDER 6 //folder to move/copy doesn't exist
- #define RULE_ERR_NO_RIGHTS 7 //no rights to move/copy into folder
- #define RULE_ERR_CREATE_DAM 8 //error creating DAM
- #define RULE_ERR_NO_SENDAS 9 //can not send as another user
- #define RULE_ERR_NO_TEMPLATE 10 //reply template is missing
- #define RULE_ERR_EXECUTION 11 //error in rule execution
- #define RULE_ERR_QUOTA_EXCEEDED 12 //mailbox quota size exceeded
- #define RULE_ERR_TOO_MANY_RECIPS 13 //number of recips exceded upper limit
- #define RULE_ERR_FIRST RULE_ERR_UNKNOWN
- #define RULE_ERR_LAST RULE_ERR_TOO_MANY_RECIPS
- /*
- * "IExchangeRuleAction" Interface Declaration
- *
- * Used for get actions from a Deferred Action Message.
- */
- class IExchangeRuleAction : public IUnknown {
- public:
- virtual HRESULT __stdcall ActionCount(ULONG *lpcActions) = 0;
- virtual HRESULT __stdcall GetAction(ULONG ulActionNumber, LARGE_INTEGER *lpruleid, LPACTION *lppAction) = 0;
- };
- typedef IExchangeRuleAction* LPEXCHANGERULEACTION;
- //Outlook 2007, Blocked Attachments
- class IAttachmentSecurity : public IUnknown {
- public:
- virtual HRESULT __stdcall IsAttachmentBlocked(LPCWSTR pwszFileName, BOOL *pfBlocked) = 0;
- };
- struct READSTATE {
- ULONG cbSourceKey;
- BYTE * pbSourceKey;
- ULONG ulFlags;
- };
- typedef struct READSTATE *LPREADSTATE;
- /* Special flag bit for DeleteFolder */
- #define DELETE_HARD_DELETE ((ULONG) 0x00000010)
- /*------------------------------------------------------------------------
- *
- * Errors returned by Exchange Incremental Change Synchronization Interface
- *
- *-----------------------------------------------------------------------*/
- #define MAKE_SYNC_E(err) (MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, err ))
- #define MAKE_SYNC_W(warn) (MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, warn))
- #define SYNC_E_UNKNOWN_FLAGS MAPI_E_UNKNOWN_FLAGS
- #define SYNC_E_INVALID_PARAMETER E_INVALIDARG
- #define SYNC_E_ERROR E_FAIL
- #define SYNC_E_OBJECT_DELETED MAKE_SYNC_E(0x800)
- #define SYNC_E_IGNORE MAKE_SYNC_E(0x801)
- #define SYNC_E_CONFLICT MAKE_SYNC_E(0x802)
- #define SYNC_E_NO_PARENT MAKE_SYNC_E(0x803)
- #define SYNC_E_INCEST MAKE_SYNC_E(0x804)
- #define SYNC_E_UNSYNCHRONIZED MAKE_SYNC_E(0x805)
- #define SYNC_W_PROGRESS MAKE_SYNC_W(0x820)
- #define SYNC_W_CLIENT_CHANGE_NEWER MAKE_SYNC_W(0x821)
- /*------------------------------------------------------------------------
- *
- * Flags used by Exchange Incremental Change Synchronization Interface
- *
- *-----------------------------------------------------------------------*/
- #define SYNC_UNICODE 0x01
- #define SYNC_NO_DELETIONS 0x02
- #define SYNC_NO_SOFT_DELETIONS 0x04
- #define SYNC_READ_STATE 0x08
- #define SYNC_ASSOCIATED 0x10
- #define SYNC_NORMAL 0x20
- #define SYNC_NO_CONFLICTS 0x40
- #define SYNC_ONLY_SPECIFIED_PROPS 0x80
- #define SYNC_NO_FOREIGN_KEYS 0x100
- #define SYNC_LIMITED_IMESSAGE 0x200
- #define SYNC_CATCHUP 0x400
- #define SYNC_NEW_MESSAGE 0x800 // only applicable to ImportMessageChange()
- #define SYNC_MSG_SELECTIVE 0x1000 // Used internally. Will reject if used by clients.
- #define SYNC_BEST_BODY 0x2000
- #define SYNC_IGNORE_SPECIFIED_ON_ASSOCIATED 0x4000
- #define SYNC_PROGRESS_MODE 0x8000 // AirMapi progress mode
- #define SYNC_FXRECOVERMODE 0x10000
- #define SYNC_DEFER_CONFIG 0x20000
- #define SYNC_FORCE_UNICODE 0x40000 // Forces server to return Unicode properties
- #define SYNC_NO_DB_CHANGES 0x80000
- /*------------------------------------------------------------------------
- *
- * Flags used by ImportMessageDeletion and ImportFolderDeletion methods
- *
- *-----------------------------------------------------------------------*/
- #define SYNC_SOFT_DELETE 0x01
- #define SYNC_EXPIRY 0x02
- /*------------------------------------------------------------------------
- *
- * Flags used by ImportPerUserReadStateChange method
- *
- *-----------------------------------------------------------------------*/
- #define SYNC_READ 0x01
- class IExchangeExportChanges : public IUnknown {
- public:
- virtual HRESULT __stdcall GetLastError(HRESULT hResult, ULONG ulFlags, LPMAPIERROR *lppMAPIError) = 0;
- virtual HRESULT __stdcall Config(LPSTREAM lpStream, ULONG ulFlags, LPUNKNOWN lpCollector, LPSRestriction lpRestriction, LPSPropTagArray lpIncludeProps, LPSPropTagArray lpExcludeProps, ULONG ulBufferSize) = 0;
- virtual HRESULT __stdcall Synchronize(ULONG *pulSteps, ULONG *pulProgress) = 0;
- virtual HRESULT __stdcall UpdateState(LPSTREAM lpStream) = 0;
- };
- typedef IExchangeExportChanges* LPEXCHANGEEXPORTCHANGES;
- class IExchangeImportContentsChanges : public IUnknown {
- public:
- virtual HRESULT __stdcall GetLastError(HRESULT hResult, ULONG ulFlags, LPMAPIERROR *lppMAPIError) = 0;
- virtual HRESULT __stdcall Config(LPSTREAM lpStream, ULONG ulFlags) = 0;
- virtual HRESULT __stdcall UpdateState(LPSTREAM lpStream) = 0;
- virtual HRESULT __stdcall ImportMessageChange(ULONG cValue, LPSPropValue lpPropArray, ULONG ulFlags, LPMESSAGE * lppMessage) = 0;
- virtual HRESULT __stdcall ImportMessageDeletion(ULONG ulFlags, LPENTRYLIST lpSourceEntryList) = 0;
- virtual HRESULT __stdcall ImportPerUserReadStateChange(ULONG cElements, LPREADSTATE lpReadState) = 0;
- virtual HRESULT __stdcall ImportMessageMove(ULONG cbSourceKeySrcFolder, BYTE *pbSourceKeySrcFolder, ULONG cbSourceKeySrcMessage, BYTE *pbSourceKeySrcMessage, ULONG cbPCLMessage, BYTE *pbPCLMessage, ULONG cbSourceKeyDestMessage, BYTE *pbSourceKeyDestMessage, ULONG cbChangeNumDestMessage, BYTE *pbChangeNumDestMessage) = 0;
- };
- typedef IExchangeImportContentsChanges* LPEXCHANGEIMPORTCONTENTSCHANGES;
- class IExchangeImportHierarchyChanges : public IUnknown {
- public:
- virtual HRESULT __stdcall GetLastError(HRESULT hResult, ULONG ulFlags, LPMAPIERROR *lppMAPIError) = 0;
- virtual HRESULT __stdcall Config(LPSTREAM lpStream, ULONG ulFlags) = 0;
- virtual HRESULT __stdcall UpdateState(LPSTREAM lpStream) = 0;
- virtual HRESULT __stdcall ImportFolderChange(ULONG cValue, LPSPropValue lpPropArray) = 0;
- virtual HRESULT __stdcall ImportFolderDeletion(ULONG ulFlags, LPENTRYLIST lpSourceEntryList) = 0;
- };
- typedef IExchangeImportHierarchyChanges* LPEXCHANGEIMPORTHIERARCHYCHANGES;
- class IProxyStoreObject : public IUnknown {
- public:
- virtual HRESULT __stdcall PlaceHolder1() = 0;
- virtual HRESULT __stdcall UnwrapNoRef(LPVOID *ppvObject) = 0;
- virtual HRESULT __stdcall PlaceHolder2() = 0;
- };
- typedef IProxyStoreObject* LPPROXYSTOREOBJECT;
- #define FS_NONE 0x00 //indicates that the folder does not support sharing.
- #define FS_SUPPORTS_SHARING 0x01 //indicates that the folder supports sharing.
- // Outlook 2007
- // Provides information about a folder's support for sharing.
- class IFolderSupport : public IUnknown {
- public:
- virtual HRESULT __stdcall GetSupportMask(DWORD *pdwSupportMask) = 0;
- };
- typedef IFolderSupport* LPIFOLDERSUPPORT;
- class IExchangeFavorites : public IUnknown {
- public:
- virtual HRESULT __stdcall GetLastError(HRESULT hr, ULONG ulFlags, LPMAPIERROR *lppMAPIError) = 0;
- virtual HRESULT __stdcall AddFavorites(LPENTRYLIST lpEntryList) = 0;
- virtual HRESULT __stdcall DelFavorites(LPENTRYLIST lpEntryList) = 0;
- };
- /* New from Outlook 2010 MAPI Extension */
- class IMAPIGetSession : public virtual IUnknown {
- public:
- // virtual ~IMAPIGetSession() = 0;
- virtual HRESULT __stdcall GetMAPISession(LPUNKNOWN *lppSession) = 0;
- };
- typedef IMAPIGetSession* LPMAPIGETSESSION;
- #endif
|