📄 edkmdb.h
字号:
/*
* EDKMDB.H
*
* Microsoft Exchange Information Store
* Copyright (C) 1986-1996, Microsoft Corporation
*
* Contains declarations of additional properties and interfaces
* offered by Microsoft Exchange Information Store
*/
#ifndef EDKMDB_INCLUDED
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define EDKMDB_INCLUDED
/*
* WARNING: Many of the property id values contained within this
* file are subject to change. For best results please use the
* literals declared here instead of the numerical values.
*/
#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
/*------------------------------------------------------------------------
*
* PROFILE properties
*
* These are used in profiles which contain the Exchange Messaging
* Service. These profiles contain a "global section" used to store
* common data, plus individual sections for the transport provider,
* one store provider for the user, one store provider for the public
* store, and one store provider for each additional mailbox the user
* has delegate access to.
*
*-----------------------------------------------------------------------*/
/* GUID of the global section */
#define pbGlobalProfileSectionGuid "\x13\xDB\xB0\xC8\xAA\x05\x10\x1A\x9B\xB0\x00\xAA\x00\x2F\xC4\x5A"
/* Properties in the global section */
#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 + 0)
#define PR_DISABLE_WINSOCK PROP_TAG( PT_LONG, pidProfileMin+0x18)
/* Properties passed through the Service Entry to the OST */
#define PR_OST_ENCRYPTION PROP_TAG(PT_LONG, 0x6702)
/* Values for PR_OST_ENCRYPTION */
#define OSTF_NO_ENCRYPTION ((DWORD)0x80000000)
#define OSTF_COMPRESSABLE_ENCRYPTION ((DWORD)0x40000000)
#define OSTF_BEST_ENCRYPTION ((DWORD)0x20000000)
/* Properties in each profile section */
#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)
/* Properties in the Public Folders section */
#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)
// Current value for PR_PROFILE_VERSION
#define PROFILE_VERSION ((ULONG)0x501)
// Bit values for PR_PROFILE_CONFIG_FLAGS
#define CONFIG_SERVICE ((ULONG)1)
#define CONFIG_SHOW_STARTUP_UI ((ULONG)2)
#define CONFIG_SHOW_CONNECT_UI ((ULONG)4)
#define CONFIG_PROMPT_FOR_CREDENTIALS ((ULONG)8)
// Bit values for PR_PROFILE_CONNECT_FLAGS
#define CONNECT_USE_ADMIN_PRIVILEGE ((ULONG)1)
#define CONNECT_NO_RPC_ENCRYPTION ((ULONG)2)
// Bit values for PR_PROFILE_TRANSPORT_FLAGS
#define TRANSPORT_DOWNLOAD ((ULONG)1)
#define TRANSPORT_UPLOAD ((ULONG)2)
// Bit values for PR_PROFILE_OPEN_FLAGS
#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)
// Values for PR_PROFILE_TYPE
#define PROFILE_PRIMARY_USER ((ULONG)1)
#define PROFILE_DELEGATE ((ULONG)2)
#define PROFILE_PUBLIC_STORE ((ULONG)3)
#define PROFILE_SUBSCRIPTION ((ULONG)4)
/*------------------------------------------------------------------------
*
* MDB object properties
*
*-----------------------------------------------------------------------*/
/* PR_MDB_PROVIDER GUID in stores table */
#define pbExchangeProviderPrimaryUserGuid "\x54\x94\xA1\xC0\x29\x7F\x10\x1B\xA5\x87\x08\x00\x2B\x2A\x25\x17"
#define pbExchangeProviderDelegateGuid "\x9e\xb4\x77\x00\x74\xe4\x11\xce\x8c\x5e\x00\xaa\x00\x42\x54\xe2"
#define pbExchangeProviderPublicGuid "\x78\xb2\xfa\x70\xaf\xf7\x11\xcd\x9b\xc8\x00\xaa\x00\x2f\xc4\x5a"
#define pbExchangeProviderXportGuid "\xa9\x06\x40\xe0\xd6\x93\x11\xcd\xaf\x95\x00\xaa\x00\x4a\x35\xc3"
// All properties in this section are readonly
// Identity of store
// All stores
#define PR_USER_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x01)
#define PR_USER_NAME PROP_TAG( PT_STRING8, pidStoreMin+0x02)
// All mailbox stores
#define PR_MAILBOX_OWNER_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x03)
#define PR_MAILBOX_OWNER_NAME PROP_TAG( PT_STRING8, pidStoreMin+0x04)
#define PR_OOF_STATE PROP_TAG( PT_BOOLEAN, pidStoreMin+0x05)
// Public stores -- name of hierarchy server
#define PR_HIERARCHY_SERVER PROP_TAG( PT_TSTRING, pidStoreMin+0x1B)
// Entryids of special folders
// All mailbox stores
#define PR_SCHEDULE_FOLDER_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x06)
// All mailbox and gateway stores
#define PR_IPM_DAF_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x07)
// Public store
#define PR_NON_IPM_SUBTREE_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x08)
#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_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_OFFLINE_MESSAGE_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x0F)
#define PR_IPM_FAVORITES_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x18)
#define PR_IPM_PUBLIC_FOLDERS_ENTRYID PROP_TAG( PT_BINARY, pidStoreMin+0x19)
// Gateway stores
#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)
// This property is preinitialized to 256 bytes of zeros
// GetProp on this property is guaranteed to RPC. May be used
// to determine line speed of connection to server.
#define PR_TEST_LINE_SPEED PROP_TAG( PT_BINARY, pidStoreMin+0x13)
// Used with OpenProperty to get interface, also on folders
#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)
// Used with OpenProperty to get interface for folders, messages, attachmentson
#define PR_FAST_TRANSFER PROP_TAG( PT_OBJECT, pidStoreMin+0x17)
// This property is available on mailbox and public stores. If it exists
// and its value is TRUE, the store is connected to the offline store provider.
#define PR_STORE_OFFLINE PROP_TAG( PT_BOOLEAN, pidStoreMin+0x1A)
// In transit state for store object. This state is
// set when mail is being moved and it pauses mail delivery
// to the mail box
#define PR_IN_TRANSIT PROP_TAG( PT_BOOLEAN, pidStoreMin)
// Writable only with Admin rights, available on public stores and folders
#define PR_REPLICATION_STYLE PROP_TAG( PT_LONG, pidAdminMin)
#define PR_REPLICATION_SCHEDULE PROP_TAG( PT_BINARY, pidAdminMin+0x01)
#define PR_REPLICATION_MESSAGE_PRIORITY PROP_TAG( PT_LONG, pidAdminMin+0x02)
// Writable only with Admin rights, available on public stores
#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 )
// default replication style=always interval (minutes)
#define STYLE_ALWAYS_INTERVAL_DEFAULT (ULONG) 15
// default replication message size limit (KB)
#define REPLICATION_MESSAGE_SIZE_LIMIT_DEFAULT (ULONG) 100
// Values for PR_REPLICATION_STYLE
#define STYLE_NEVER (ULONG) 0 // never replicate
#define STYLE_NORMAL (ULONG) 1 // use 84 byte schedule TIB
#define STYLE_ALWAYS (ULONG) 2 // replicate at fastest rate
#define STYLE_DEFAULT (ULONG) -1 // default value
/*------------------------------------------------------------------------
*
* INCREMENTAL CHANGE SYNCHRONIZATION
* folder and message properties
*
*-----------------------------------------------------------------------*/
#define PR_SOURCE_KEY PROP_TAG( PT_BINARY, pidExchangeNonXmitReservedMin+0x0)
#define PR_PARENT_SOURCE_KEY PROP_TAG( PT_BINARY, pidExchangeNonXmitReservedMin+0x1)
#define PR_CHANGE_KEY PROP_TAG( PT_BINARY, pidExchangeNonXmitReservedMin+0x2)
#define PR_PREDECESSOR_CHANGE_LIST PROP_TAG( PT_BINARY, pidExchangeNonXmitReservedMin+0x3)
/*------------------------------------------------------------------------
*
* FOLDER object properties
*
*-----------------------------------------------------------------------*/
// Read only, available on all folders
#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)
//Read only, available only for public folders
#define PR_ADDRESS_BOOK_ENTRYID PROP_TAG( PT_BINARY, pidFolderMin+0x03)
//Writable, available on folders in all stores
#define PR_ACL_DATA PROP_TAG( PT_BINARY, pidExchangeXmitReservedMin)
#define PR_RULES_DATA PROP_TAG( PT_BINARY, pidExchangeXmitReservedMin+0x1)
#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)
//Writable, available only for public folders
#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)
//Writable, used to indicate locale id for eforms registry subfolders
#define PR_EFORMS_LOCALE_ID PROP_TAG( PT_LONG, pidExchangeXmitReservedMin+0x9)
// Writable only with Admin rights, available only for public folders
#define PR_REPLICA_LIST PROP_TAG( PT_BINARY, pidAdminMin+0x8)
#define PR_OVERALL_AGE_LIMIT PROP_TAG( PT_LONG, pidAdminMin+0x9)
//PR_RESOLVE_METHOD values
#define RESOLVE_METHOD_DEFAULT ((LONG)0) // default handling attach conflicts
#define RESOLVE_METHOD_LAST_WRITER_WINS ((LONG)1) // the last writer will win conflict
#define RESOLVE_METHOD_NO_CONFLICT_NOTIFICATION ((LONG)2) // no conflict notif
//Read only, available only for public folder favorites
#define PR_PUBLIC_FOLDER_ENTRYID PROP_TAG( PT_BINARY, pidFolderMin+0x04)
/*------------------------------------------------------------------------
*
* MESSAGE object properties
*
*-----------------------------------------------------------------------*/
// Read only, automatically set on all messages in all stores
#define PR_HAS_NAMED_PROPERTIES PROP_TAG(PT_BOOLEAN, pidMessageReadOnlyMin+0x0A)
// Read only but outside the provider specific range for replication thru GDK-GWs
#define PR_CREATOR_NAME PROP_TAG(PT_TSTRING, 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_ENTRYID PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x1B)
// Read only, appears on messages which have DAM's pointing to them
#define PR_HAS_DAMS PROP_TAG( PT_BOOLEAN, pidExchangeXmitReservedMin+0xA)
#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)
// Read only, available only on messages in the public store
#define PR_REPLICA_SERVER PROP_TAG(PT_TSTRING, pidMessageReadOnlyMin+0x4)
// Writeable, used for recording send option dialog settings
#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)
// Writeable, deferred send time
#define PR_DEFERRED_SEND_TIME PROP_TAG( PT_SYSTIME, pidExchangeXmitReservedMin+0xF)
//Writeable, intended for both folders and messages in gateway mailbox
#define PR_GW_ADMIN_OPERATIONS PROP_TAG( PT_LONG, pidMessageWriteableMin)
//Writeable, used for DMS messages
#define PR_P1_CONTENT PROP_TAG( PT_BINARY, 0x1100)
#define PR_P1_CONTENT_TYPE PROP_TAG( PT_BINARY, 0x1101)
// Properties on deferred action messages
#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)
// Properties on deferred action error messages
#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)
// Property on conflict notification indicating entryid of conflicting object
#define PR_CONFLICT_ENTRYID PROP_TAG(PT_BINARY, pidExchangeXmitReservedMin+0x10)
// Property on messages to indicate the language client used to create this message
#define PR_MESSAGE_LOCALE_ID PROP_TAG(PT_LONG, pidExchangeXmitReservedMin+0x11)
// Properties on Quota warning messages to indicate Storage quota and Excess used
#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)
// Property affixed by delegation rule and deleted on forwards
#define PR_DELEGATED_BY_RULE PROP_TAG( PT_BOOLEAN, pidExchangeXmitReservedMin+0x3)
// Message status bit used to indicate message is in conflict
#define MSGSTATUS_IN_CONFLICT ((ULONG) 0x800)
/*------------------------------------------------------------------------
*
* ATTACHMENT object properties
*
*-----------------------------------------------------------------------*/
// Appears on attachments to a message marked to be in conflict. Identifies
// those attachments which are conflicting versions of the top level message
#define PR_IN_CONFLICT PROP_TAG(PT_BOOLEAN, pidAttachReadOnlyMin)
/*------------------------------------------------------------------------
*
* TABLE object properties
*
* Id Range: 0x662F-0x662F
*
*-----------------------------------------------------------------------*/
//This property can be used in a contents table to get PR_ENTRYID returned
//as a long term entryid instead of a short term entryid.
#define PR_LONGTERM_ENTRYID_FROM_TABLE PROP_TAG(PT_BINARY, pidSpecialMin)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -