#///////////////////////////////////////////////////////////////////////////
# DSClient Gateway
#///////////////////////////////////////////////////////////////////////////
DS_HTTPXML_VERSION = 0x00060002
#DS_HTTPXML_VERSION = 0x00050000

DSAXES_SUCCESS = 0
DSAXES_INPROG = 1
DSAXES_NOCONNATTEMPT = 2
DSAXES_NOCHANGE = 3
DSAXES_NOEXACTMATCH = 4
DSAXES_NOTSTARTED = 5
DSAXES_PARTIALSUCCESS = 6
DSAXES_PROCESSDELEGATED = 7
DSAXES_PROCESSCLOSED = 8
DSAXES_E_CANCEL = -1
DSAXES_E_APPSELECT = -2
DSAXES_E_SKIP = -3
DSAXES_E_STOP = -4
DSAXES_E_TIMEOUT = -5
DSAXES_E_LOCALLOCK = -10
DSAXES_E_CLIENTNOTFOUND = -20
DSAXES_E_LIBOPEN = -30
DSAXES_E_LIBINIT = -31
DSAXES_E_SERVLOCKED = -100
DSAXES_E_SERVREADONLY = -101
DSAXES_E_SERVDOWN = -102
DSAXES_E_LOGIN_REFUSED = -103
DSAXES_E_LOGIN = -104
DSAXES_E_UNHANDLEDREDIR = -105
DSAXES_E_BUSY = -200
DSAXES_E_FAIL = -201
DSAXES_E_SYSRES = -202
DSAXES_E_MODNOTFOUND = -203
DSAXES_E_PROPSNOTFOUND = -204
DSAXES_E_UPDATELINKS = -205
DSAXES_E_OPENLINK = -206
DSAXES_E_CREATELINK = -207
DSAXES_E_OPENFILE = -210
DSAXES_E_CREATEFILE = -211
DSAXES_E_READDATA = -212
DSAXES_E_WRITEDATA = -213
DSAXES_E_BADDIR = -220
DSAXES_E_BADSEL = -221
DSAXES_E_BADPARAM = -222
DSAXES_E_BADDSCMD = -223
DSAXES_E_BADSCRCMD = -224
DSAXES_E_BADCONTEXT = -225
DSAXES_E_VARNOTFOUND = -226
DSAXES_E_PARSEDATA = -230
DSAXES_E_DATAFORMAT = -231
DSAXES_E_DATACORRUPTED = -232
DSAXES_E_DATAOBSOLETE = -233
DSAXES_E_PARSERESPONSE = -235
DSAXES_E_PARSEREQUEST = -236
DSAXES_E_OBJNOTFOUND = -240
DSAXES_E_OPERATION = -250
DSAXES_E_MAPNOTFOUND = -260
DSAXES_E_MAPUNSPECIFIED = -261
DSAXES_E_NOMAPPINGS = -262
DSAXES_E_WINSOCK = -300
DSAXES_E_CONNTIMEOUT = -310
DSAXES_E_HTTP = -400
DSAXES_E_BADLINK = -500
DSAXES_E_UNKNOWN = -501
DSAXES_E_NOTIMPL = -502
DSAXES_E_MAXELEMENTS = -503
DSAXES_E_DIRCACHE_READ = -600
DSAXES_E_DIRCACHE_WRITE = -601
DSAXES_E_HCACHE_READ = -610
DSAXES_E_HCACHE_WRITE = -611
DSAXES_E_CMDPROCESSING = -620
DSXITEMHANDLE_UNSPECIFIED = -1
DSXITEMTYPE_UNSPECIFIED = -1
DSXITEMTYPE_ROOT = 0
DSXITEMTYPE_SERVER = 1
DSXITEMTYPE_COLLECTION = 2
DSXITEMTYPE_DOCUMENT = 3
DSXITEMTYPE_VERSION = 4
DSXITEMTYPE_CALENDAR = 5
DSXITEMTYPE_BBOARD = 6
DSXITEMTYPE_URL = 7
DSXITEMTYPE_BULLETIN = 8
DSXITEMTYPE_SAVEDQUERY = 9
DSXITEMTYPE_EVENT = 10
DSXITEMTYPE_RENDITION = 11
DSXITEMTYPE_DOCVERSION = 12
DSXITEMTYPE_SUBSCRIPTION = 13
DSXITEMTYPE_USER = 14
DSXITEMTYPE_GROUP = 15
DSXITEMTYPE_UNKNOWN = 16
DSXITEMTYPE_OBJECT = 17
DSXITEMTYPE_CONTELEM = 18
DSXITEMTYPE_MAILMESSAGE = 19
DSXITEMTYPE_WORKSPACE = 20
DSXITEMTYPE_WIKI = 21
DSXITEMTYPE_WEBLOG = 22
#
DSXITEMTYPE_MAX_ID = DSXITEMTYPE_WEBLOG
DSXOBJTYPE_UNSPECIFIED = -1
DSXOBJTYPE_DOCUMENT = 0
DSXOBJTYPE_COLLECTION = 1
DSXOBJTYPE_SERVER = 2
DSXOBJTYPE_GATEWAY = 3
DSXOBJTYPE_CALENDAR = 4
DSXOBJTYPE_BBOARD = 5
DSXOBJTYPE_URL = 6
DSXOBJTYPE_BULLETIN = 7
DSXOBJTYPE_USER = 8
DSXOBJTYPE_GROUP = 9
DSXOBJTYPE_SAVEDQUERY = 10
DSXOBJTYPE_EVENT = 11
DSXOBJTYPE_UNKNOWN = 12
DSXOBJTYPE_SUBSCRIPTION = 13
DSXOBJTYPE_DOCVERSION = 14
DSXOBJTYPE_RENDITION = 15
DSXOBJTYPE_CONTELEM = 16
DSXOBJTYPE_MAILMESSAGE = 17
DSXOBJTYPE_WORKSPACE = 18
DSXOBJTYPE_WIKI = 19
DSXOBJTYPE_WEBLOG = 20
DSAXES_MAX_NAME_LEN = 256
DSAXES_MAX_TITLE_LEN = 256
DSAXES_MAX_SUMMARY_LEN = 256
DSAXES_MAX_AUTH_LEN = 0x2000
DSAXES_MAX_SERVER_LEN = 128
DSAXES_MAX_PROXY_LEN = 80
DSAXES_MAX_MIME_LEN = 80
DSAXES_MAX_FORMAT_LEN = 80
DSAXES_MAX_HOSTNAME_LEN = 80
DSAXES_MAX_PROTOCOL_LEN = 40
DSAXES_MAX_URI_LEN = 128
DSAXES_MAX_URL_LEN = (DSAXES_MAX_SERVER_LEN + DSAXES_MAX_URI_LEN)
DSAXES_MAX_OWNER_LEN = 40
DSAXES_MAX_LANGTAG = 40
DSAXES_MAX_USER_PROPS = 512
# Flags for GetPropAttrIds/SetPropAttrIds
DSAXES_PROPATTRID_PROPTYPE = 0x00000001
DSAXES_PROPATTRID_PROPNAME = 0x00000002
DSAXES_PROPATTRID_PROPLABEL = 0x00000004
DSAXES_PROPATTRID_PROPVALUECHOICES = 0x00000008
DSAXES_PROPATTRID_PROPVALUES = 0x00000010
DSAXES_PROPATTRID_HELPTEXT = 0x00000020
DSAXES_PROPATTRID_ISSYSTEM = 0x00000040
DSAXES_PROPATTRID_ISREQUIRED = 0x00000080
DSAXES_PROPATTRID_ISREADONLY = 0x00000100
DSAXES_PROPATTRID_DEFAULTVALUE = 0x00000200
DSAXES_PROPATTRID_MINIMUMVALUE = 0x00000400
DSAXES_PROPATTRID_MAXIMUMVALUE = 0x00000800
DSAXES_PROPATTRID_ISMULTIVALUED = 0x00001000
DSAXES_PROPATTRID_ISSEARCHABLE = 0x00002000
DSAXES_PROPATTRID_SORTBYLABEL = 0x00004000
DSAXES_PROPATTRID_ISVISIBLE = 0x00008000
DSAXES_PROPATTR_QUERYDEPTH_SELF = 0x00000000
DSAXES_PROPATTR_QUERYDEPTH_CHILDREN = 0x00010000
DSAXES_PROPATTR_QUERYDEPTH_2 = 0x00020000
DSAXES_PROPATTR_QUERYDEPTH_3 = 0x00030000
DSAXES_PROPATTR_QUERYDEPTH_4 = 0x00040000
DSAXES_PROPATTR_QUERYDEPTH_5 = 0x00050000
DSAXES_PROPATTR_QUERYDEPTH_6 = 0x00060000
DSAXES_PROPATTR_QUERYDEPTH_INFINITE = 0x00070000
DSAXES_PROPATTR_QUERYELEV_PARENT = 0x00080000
DSAXES_PROPATTR_QUERYELEV_2 = 0x00100000
DSAXES_PROPATTR_QUERYELEV_3 = 0x00180000
DSAXES_PROPATTR_QUERYELEV_4 = 0x00200000
DSAXES_PROPATTR_QUERYELEV_5 = 0x00280000
DSAXES_PROPATTR_QUERYELEV_6 = 0x00300000
DSAXES_PROPATTR_QUERYELEV_INFINITE = 0x00380000
DSAXES_PROPATTR_QUERYDEPTHBITMASK = DSAXES_PROPATTR_QUERYDEPTH_INFINITE
DSAXES_PROPATTR_QUERYDEPTHBITPOS = 16
# Flags for GetPropIds/SetPropIds
# Core properties (common to all DocuShare resources)
DSAXES_PROPID_CORE = 0x00000000
DSAXES_PROPID_CORE_CUSTOM = (0x00000001 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_TITLE = (0x00000002 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_SUMMARY = (0x00000004 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_DESCRIPTION = (0x00000008 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_KEYWORDS = (0x00000010 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_HANDLE = (0x00000020 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_OWNER = (0x00000040 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_CREATEDATE = (0x00000080 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_MODIFIEDDATE = (0x00000100 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_MODIFIEDBY = (0x00000200 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_PARENTHANDLES = (0x00000400 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_ACL = (0x00000800 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_MYACCESS = (0x00001000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_PRIVATE = (0x00002000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_SUBSCRIPTIONS = (0x00004000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_CHILDHANDLES = (0x00008000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_CLIENTDATA = (0x00010000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_CONTAINERS = (0x00020000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_EXPIRATIONDATE = (0x00040000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_ISRECORD = (0x00080000 | DSAXES_PROPID_CORE)
DSAXES_PROPID_CORE_DECLAREREADY = (0x00100000 | DSAXES_PROPID_CORE)
# file-specific:
DSAXES_PROPID_FILE = 0x80000000
DSAXES_PROPID_FILE_CUSTOM = (0x00000001 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_FILENAME = (0x00000002 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_MIMETYPE = (0x00000004 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_AUTHOR = (0x00000008 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_MAXVERSIONS = (0x00000010 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_SIZE = (0x00000040 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_ABSTRACT = (0x00000080 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_VERSIONCOMMENT = (0x00000100 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_FILENAME_2 = (0x00000200 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_LASTVERSIONUSED = (0x00000400 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_LOCKEDBY = (0x00000800 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_ISINTERACT = (0x00001000 | DSAXES_PROPID_FILE)
DSAXES_PROPID_FILE_CLASSIFICATIONS = (0x00002000 | DSAXES_PROPID_FILE)
# container-specific:
DSAXES_PROPID_COLL = 0x40000000
DSAXES_PROPID_COLL_CUSTOM = (0x00000001 | DSAXES_PROPID_COLL)
DSAXES_PROPID_COLL_LOGO = (0x00000002 | DSAXES_PROPID_COLL)
DSAXES_PROPID_COLL_BGIMAGE = (0x00000004 | DSAXES_PROPID_COLL)
DSAXES_PROPID_COLL_SORTORDER = (0x00000008 | DSAXES_PROPID_COLL)
DSAXES_PROPID_COLL_SIZE = (0x00000010 | DSAXES_PROPID_COLL)
# bulletin-board-specific:
DSAXES_PROPID_BBRD = 0xC0000000
DSAXES_PROPID_BBRD_CUSTOM = (0x00000001 | DSAXES_PROPID_BBRD)
DSAXES_PROPID_BBRD_EXPIRES = (0x00000002 | DSAXES_PROPID_BBRD)
DSAXES_PROPID_BBRD_SIZE = (0x00000010 | DSAXES_PROPID_BBRD)
# calendar-specific:
DSAXES_PROPID_CLND = 0x20000000
DSAXES_PROPID_CLND_CUSTOM = (0x00000001 | DSAXES_PROPID_CLND)
DSAXES_PROPID_CLND_DEFAULTVIEW = (0x00000002 | DSAXES_PROPID_CLND)
DSAXES_PROPID_CLND_SIZE = (0x00000010 | DSAXES_PROPID_CLND)
# URL-specific:
DSAXES_PROPID_URL = 0xA0000000
DSAXES_PROPID_URL_CUSTOM = (0x00000001 | DSAXES_PROPID_URL)
DSAXES_PROPID_URL_URL = (0x00000002 | DSAXES_PROPID_URL)
# version-specific:
DSAXES_PROPID_VRSN = 0x60000000
# public const int DSAXES_PROPID_VRSN_CUSTOM = 		( 0x00000001 | DSAXES_PROPID_VRSN );
# public const int DSAXES_PROPID_VRSN_COMMENT = 		( 0x00000002 | DSAXES_PROPID_VRSN );
# server-specific:
DSAXES_PROPID_SRVR = 0xE0000000
DSAXES_PROPID_SRVR_CUSTOM = (0x00000001 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_READONLY = (0x00000002 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_SITEACCESS = (0x00000004 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_HTTPPROTOCOL = (0x00000008 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_SCHEMATA = (0x00000010 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_AUTOLOGIN = (0x00000020 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_DOMAINS = (0x00000040 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_OCEXPIRES = (0x00000080 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_LOCALES = (0x00000100 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_SVRLICENSES = (0x00000200 | DSAXES_PROPID_SRVR)
DSAXES_PROPID_SRVR_LINKSCHEMATA = (0x00000400 | DSAXES_PROPID_SRVR)
# user-specific:
DSAXES_PROPID_USER = 0x10000000
DSAXES_PROPID_USER_CUSTOM = (0x00000001 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_FIRSTNAME = (0x00000002 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_LASTNAME = (0x00000004 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_EMAIL = (0x00000008 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_MAILSTOP = (0x00000010 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_PHONE = (0x00000020 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_USEUPLDHLPR = (0x00000040 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_USERNAME = (0x00000080 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_PASSWORD = (0x00000100 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_LASTLOGIN = (0x00000200 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_HOMEPAGE = (0x00000400 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_CANCLASSIFY = (0x00000800 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_CANDECLARE = (0x00001000 | DSAXES_PROPID_USER)
DSAXES_PROPID_USER_PRESETS = (0x00002000 | DSAXES_PROPID_USER)
# group-specific:
DSAXES_PROPID_GRP = 0x90000000
DSAXES_PROPID_GRP_CUSTOM = (0x00000001 | DSAXES_PROPID_GRP)
DSAXES_PROPID_GRP_CHANGEACCESS = (0x00000002 | DSAXES_PROPID_GRP)
# saved-query-specific:
DSAXES_PROPID_QRY = 0x50000000
DSAXES_PROPID_QRY_CUSTOM = (0x00000001 | DSAXES_PROPID_QRY)
# bulletin-specific
DSAXES_PROPID_BLTN = 0xD0000000
DSAXES_PROPID_BLTN_CUSTOM = (0x00000001 | DSAXES_PROPID_BLTN)
# event-specific
DSAXES_PROPID_EVNT = 0x30000000
DSAXES_PROPID_EVNT_CUSTOM = (0x00000001 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_YEAR = (0x00000002 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_MONTH = (0x00000004 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_DAY = (0x00000008 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_START = (0x00000010 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_END = (0x00000020 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_NUMREPEAT = (0x00000040 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_REPEAT = (0x00000080 | DSAXES_PROPID_EVNT)
DSAXES_PROPID_EVNT_HASTIME = (0x00000100 | DSAXES_PROPID_EVNT)
# mail-specific
DSAXES_PROPID_MAIL = 0xB0000000
DSAXES_PROPID_MAIL_SIZE = (0x00000040 | DSAXES_PROPID_MAIL)
DSAXES_PROPID_MAIL_CLASSIFICATIONS = (0x00002000 | DSAXES_PROPID_MAIL)
DSAXES_PROPID_MAIL_CUSTOM = (0x00000001 | DSAXES_PROPID_MAIL)
# workspace-specific
DSAXES_PROPID_WSPC = 0x70000000
DSAXES_PROPID_WSPC_CUSTOM = (0x00000001 | DSAXES_PROPID_WSPC)
DSAXES_PROPID_WSPC_SIZE = (0x00000002 | DSAXES_PROPID_WSPC)
# Use these for new item groupings
DSAXES_PROPID_UNUSED15 = 0xF0000000
DSAXES_PROPID_CORE_RANGE = 0xFFFFFFFF
DSAXES_PROPID_NONCORE_RANGE = 0x0FFFFFFF
DSAXES_PROPID_ITEMTYPE_RANGE = 0xF0000000
DSAXES_PROPID_CORE_BITWIDTH = 32
DSAXES_PROPID_NONCORE_BITWIDTH = 28
DSAXES_PROPID_ITEMTYPE_BITWIDTH = 4
DSAXES_PROPID_COREDEFAULT = (DSAXES_PROPID_CORE_TITLE | DSAXES_PROPID_CORE_SUMMARY | DSAXES_PROPID_CORE_KEYWORDS | DSAXES_PROPID_CORE_HANDLE | DSAXES_PROPID_CORE_OWNER | DSAXES_PROPID_CORE_CREATEDATE | DSAXES_PROPID_CORE_MODIFIEDDATE | DSAXES_PROPID_CORE_MODIFIEDBY | DSAXES_PROPID_CORE_PARENTHANDLES | DSAXES_PROPID_CORE_EXPIRATIONDATE)
DSAXES_PROPID_CORE_GETTABLE = (DSAXES_PROPID_CORE_TITLE | DSAXES_PROPID_CORE_SUMMARY | DSAXES_PROPID_CORE_KEYWORDS | DSAXES_PROPID_CORE_HANDLE | DSAXES_PROPID_CORE_OWNER | DSAXES_PROPID_CORE_CREATEDATE | DSAXES_PROPID_CORE_MODIFIEDDATE | DSAXES_PROPID_CORE_MODIFIEDBY | DSAXES_PROPID_CORE_PARENTHANDLES | DSAXES_PROPID_CORE_DESCRIPTION | DSAXES_PROPID_CORE_EXPIRATIONDATE)
DSAXES_PROPID_CORE_GETTABLE_EX = (DSAXES_PROPID_CORE_ACL | DSAXES_PROPID_CORE_MYACCESS | DSAXES_PROPID_CORE_SUBSCRIPTIONS | DSAXES_PROPID_CORE_CHILDHANDLES) # gettable by ItemObj.DSLoadProps and DSFind; also, ItemObj.ExcludedCoreProps is set to this
DSAXES_PROPID_CORE_SETTABLE = (DSAXES_PROPID_CORE_TITLE | DSAXES_PROPID_CORE_SUMMARY | DSAXES_PROPID_CORE_KEYWORDS | DSAXES_PROPID_CORE_PARENTHANDLES | DSAXES_PROPID_CORE_DESCRIPTION | DSAXES_PROPID_CORE_EXPIRATIONDATE)
DSAXES_PROPID_COLLECTIONDEFAULT = (DSAXES_PROPID_COLL_LOGO | DSAXES_PROPID_COLL_BGIMAGE | DSAXES_PROPID_COLL_SORTORDER | DSAXES_PROPID_COLL_SIZE)
DSAXES_PROPID_COLL_GETTABLE = (DSAXES_PROPID_COLL_LOGO | DSAXES_PROPID_COLL_BGIMAGE | DSAXES_PROPID_COLL_SORTORDER | DSAXES_PROPID_COLL_SIZE)
DSAXES_PROPID_COLL_SETTABLE = (DSAXES_PROPID_COLL_LOGO | DSAXES_PROPID_COLL_BGIMAGE | DSAXES_PROPID_COLL_SORTORDER)
DSAXES_PROPID_FILEDEFAULT = (DSAXES_PROPID_FILE_FILENAME | DSAXES_PROPID_FILE_MIMETYPE | DSAXES_PROPID_FILE_AUTHOR | DSAXES_PROPID_FILE_MAXVERSIONS | DSAXES_PROPID_FILE_LOCKEDBY | DSAXES_PROPID_FILE_SIZE | DSAXES_PROPID_FILE_LASTVERSIONUSED | DSAXES_PROPID_FILE_ISINTERACT)
DSAXES_PROPID_FILE_GETTABLE = (DSAXES_PROPID_FILE_ABSTRACT | DSAXES_PROPID_FILE_FILENAME | DSAXES_PROPID_FILE_MIMETYPE | DSAXES_PROPID_FILE_AUTHOR | DSAXES_PROPID_FILE_MAXVERSIONS | DSAXES_PROPID_FILE_LOCKEDBY | DSAXES_PROPID_FILE_SIZE | DSAXES_PROPID_FILE_LASTVERSIONUSED | DSAXES_PROPID_FILE_ISINTERACT) # DSAXES_PROPID_FILE_FILENAME |
DSAXES_PROPID_FILE_SETTABLE = (DSAXES_PROPID_FILE_MIMETYPE | DSAXES_PROPID_FILE_AUTHOR | DSAXES_PROPID_FILE_MAXVERSIONS)
DSAXES_PROPID_MAIL_GETTABLE = (DSAXES_PROPID_MAIL_SIZE)
DSAXES_PROPID_MAIL_SETTABLE = (0)
DSAXES_PROPID_SERVERDEFAULT = (DSAXES_PROPID_SRVR_READONLY | DSAXES_PROPID_SRVR_SITEACCESS | DSAXES_PROPID_SRVR_AUTOLOGIN | DSAXES_PROPID_SRVR_DOMAINS)
DSAXES_PROPID_SRVR_GETTABLE = (DSAXES_PROPID_SRVR_READONLY | DSAXES_PROPID_SRVR_SITEACCESS | DSAXES_PROPID_SRVR_AUTOLOGIN | DSAXES_PROPID_SRVR_DOMAINS)
DSAXES_PROPID_SRVR_SETTABLE = (0)
DSAXES_PROPID_BBRD_GETTABLE = (DSAXES_PROPID_BBRD_EXPIRES | DSAXES_PROPID_BBRD_SIZE)
DSAXES_PROPID_BBRD_SETTABLE = (DSAXES_PROPID_BBRD_EXPIRES)
DSAXES_PROPID_CLND_GETTABLE = (DSAXES_PROPID_CLND_DEFAULTVIEW | DSAXES_PROPID_CLND_SIZE)
DSAXES_PROPID_CLND_SETTABLE = (DSAXES_PROPID_CLND_DEFAULTVIEW)
DSAXES_PROPID_URL_GETTABLE = (DSAXES_PROPID_URL_URL)
DSAXES_PROPID_URL_SETTABLE = (DSAXES_PROPID_URL_URL)
DSAXES_PROPID_USER_GETTABLE = (DSAXES_PROPID_USER_FIRSTNAME | DSAXES_PROPID_USER_LASTNAME | DSAXES_PROPID_USER_EMAIL | DSAXES_PROPID_USER_MAILSTOP | DSAXES_PROPID_USER_PHONE | DSAXES_PROPID_USER_USEUPLDHLPR | DSAXES_PROPID_USER_USERNAME | DSAXES_PROPID_USER_LASTLOGIN | DSAXES_PROPID_USER_HOMEPAGE)
DSAXES_PROPID_USER_SETTABLE = (DSAXES_PROPID_USER_FIRSTNAME | DSAXES_PROPID_USER_LASTNAME | DSAXES_PROPID_USER_EMAIL | DSAXES_PROPID_USER_MAILSTOP | DSAXES_PROPID_USER_PHONE | DSAXES_PROPID_USER_USEUPLDHLPR | DSAXES_PROPID_USER_USERNAME | DSAXES_PROPID_USER_HOMEPAGE)
DSAXES_PROPID_GRP_GETTABLE = (DSAXES_PROPID_GRP_CHANGEACCESS)
DSAXES_PROPID_GRP_SETTABLE = (DSAXES_PROPID_GRP_CHANGEACCESS)
DSAXES_PROPID_QRY_GETTABLE = (0)
DSAXES_PROPID_QRY_SETTABLE = (0)
DSAXES_PROPID_BLTN_GETTABLE = (0)
DSAXES_PROPID_BLTN_SETTABLE = (0)
DSAXES_PROPID_EVNT_GETTABLE = (DSAXES_PROPID_EVNT_YEAR | DSAXES_PROPID_EVNT_MONTH | DSAXES_PROPID_EVNT_DAY | DSAXES_PROPID_EVNT_START | DSAXES_PROPID_EVNT_END | DSAXES_PROPID_EVNT_NUMREPEAT | DSAXES_PROPID_EVNT_REPEAT | DSAXES_PROPID_EVNT_HASTIME)
DSAXES_PROPID_EVNT_SETTABLE = (DSAXES_PROPID_EVNT_YEAR | DSAXES_PROPID_EVNT_MONTH | DSAXES_PROPID_EVNT_DAY | DSAXES_PROPID_EVNT_START | DSAXES_PROPID_EVNT_END | DSAXES_PROPID_EVNT_NUMREPEAT | DSAXES_PROPID_EVNT_REPEAT | DSAXES_PROPID_EVNT_HASTIME)
DSAXES_PROPID_WSPC_GETTABLE = (DSAXES_PROPID_WSPC_SIZE)
DSAXES_PROPID_WSPC_SETTABLE = (0)
DSAXES_PROPID_CORE_DEFAULT_QUERY_BASIC = (DSAXES_PROPID_CORE_TITLE | DSAXES_PROPID_CORE_SUMMARY | DSAXES_PROPID_CORE_KEYWORDS | DSAXES_PROPID_CORE_HANDLE | DSAXES_PROPID_CORE_OWNER | DSAXES_PROPID_CORE_CREATEDATE | DSAXES_PROPID_CORE_MODIFIEDDATE | DSAXES_PROPID_CORE_MODIFIEDBY | DSAXES_PROPID_CORE_PARENTHANDLES | DSAXES_PROPID_CORE_CLIENTDATA | DSAXES_PROPID_CORE_EXPIRATIONDATE)
DSAXES_PROPID_CORE_DEFAULT_QUERY = (DSAXES_PROPID_CORE_DEFAULT_QUERY_BASIC | DSAXES_PROPID_CORE_ISRECORD | DSAXES_PROPID_CORE_DECLAREREADY)
DSAXES_PROPID_CORE_DEFAULT_QUERY = DSAXES_PROPID_CORE_DEFAULT_QUERY_BASIC
DSAXES_PROPID_FILE_DEFAULT_QUERY_BASIC = (DSAXES_PROPID_FILE_SIZE | DSAXES_PROPID_FILE_FILENAME | DSAXES_PROPID_FILE_MIMETYPE | DSAXES_PROPID_FILE_LOCKEDBY)
DSAXES_PROPID_FILE_DEFAULT_QUERY = (DSAXES_PROPID_FILE_DEFAULT_QUERY_BASIC | DSAXES_PROPID_FILE_MAXVERSIONS | DSAXES_PROPID_FILE_LASTVERSIONUSED | DSAXES_PROPID_FILE_ISINTERACT)
DSAXES_PROPID_COLL_DEFAULT_QUERY = (DSAXES_PROPID_COLL_SIZE)
DSAXES_PROPID_BBRD_DEFAULT_QUERY = (DSAXES_PROPID_BBRD_EXPIRES | DSAXES_PROPID_BBRD_SIZE)
DSAXES_PROPID_CLND_DEFAULT_QUERY = (DSAXES_PROPID_CLND_SIZE)
DSAXES_PROPID_URL_DEFAULT_QUERY = (DSAXES_PROPID_URL_URL)
DSAXES_PROPID_QRY_DEFAULT_QUERY = (0)
DSAXES_PROPID_BLTN_DEFAULT_QUERY = (DSAXES_PROPID_BLTN_GETTABLE)
DSAXES_PROPID_EVNT_DEFAULT_QUERY = (DSAXES_PROPID_EVNT_GETTABLE)
DSAXES_PROPID_USER_DEFAULT_QUERY = (DSAXES_PROPID_USER_FIRSTNAME | DSAXES_PROPID_USER_LASTNAME)
DSAXES_PROPID_GRP_DEFAULT_QUERY = (DSAXES_PROPID_GRP_GETTABLE)
DSAXES_PROPID_WSPC_DEFAULT_QUERY = (DSAXES_PROPID_WSPC_GETTABLE)
# Defined property types
DSAXES_PROPTYPE_BINARY = 0
DSAXES_PROPTYPE_STRING = 1
DSAXES_PROPTYPE_TEXT = 2
DSAXES_PROPTYPE_URL = 3
DSAXES_PROPTYPE_BOOLEAN = 4
DSAXES_PROPTYPE_INTEGER = 5
DSAXES_PROPTYPE_FLOAT = 6
DSAXES_PROPTYPE_MENU = 7
DSAXES_PROPTYPE_DATE = 8 # RFC1123
DSAXES_PROPTYPE_EMAIL = 9
DSAXES_PROPTYPE_PASSWORD = 10
DSAXES_PROPTYPE_HANDLE = 11 # Handle-nnn
DSAXES_PROPTYPE_HANDLEREFERENCE = 12 # DSREF
DSAXES_PROPTYPE_ACE = 13
DSAXES_PROPTYPE_FILE = 14
DSAXES_PROPTYPE_DAY = 15
DSAXES_PROPTYPE_TIME = 16
DSAXES_PROPTYPE_DATE_ISO8601 = 17
DSAXES_PROPTYPE_LICENSE = 18
DSAXES_PROPTYPE_HANDLELIST = 19 # DSREF
DSAXES_PROPTYPE_MULTIVALUED = 0x80000000
# Flags for GetMode/SetMode
DSAXES_MODE_SILENT = 0x00000001
DSAXES_MODE_USEPROXY = 0x00000002
DSAXES_MODE_USEMIMETYPE = 0x00000004
DSAXES_MODE_ADDDSCGI = 0x00000008
DSAXES_MODE_MEMORIZEUSER = 0x00000010
DSAXES_MODE_VIRTUALROOT = 0x00000020
DSAXES_MODE_ENABLECACHE = 0x00000040
DSAXES_MODE_ENABLEXML = 0x00000080
DSAXES_MODE_READONLY = 0x00000100
DSAXES_MODE_DNLDNAMECLASHPROMPT = 0x00000200
DSAXES_MODE_UPLDNAMECLASHPROMPT = 0x00000400
DSAXES_MODE_UPLDALWAYSASNEWDOC = 0x00000800
DSAXES_MODE_AUTOUPLOAD = 0x00001000
DSAXES_MODE_SAVESETTINGS = 0x00002000
DSAXES_MODE_LOADSETTINGS = 0x00004000
DSAXES_MODE_SHOWWINDOW = 0x00008000
DSAXES_MODE_NOERRORDLG = 0x00010000
DSAXES_MODE_RENAME1STREPLICATE = 0x00020000
DSAXES_MODE_HCACHEREAD = 0x00040000 # enables hierarchy cache read for ItemObj.DSLoadChildren
DSAXES_MODE_HCACHEWRITE = 0x00080000 # enables hierarchy cache write for ItemObj.DSLoadChildren
DSAXES_MODE_WWWAUTH = 0x00100000
DSAXES_MODE_AUTOSETWWWAUTH = 0x00200000
DSAXES_MODE_COPYVERSIONS = 0x00400000
DSAXES_MODE_SYNCTHREAD = 0x00800000 # IItemObj synchronous worker thread
DSAXES_MODE_NOSERVERSTATUSQUERY = 0x01000000
DSAXES_MODE_ASYNCHRONOUS = 0x02000000
DSAXES_MODE_COMPRESSREQUEST = 0x04000000 # compress request data
DSAXES_MODE_COMPRESSRESPONSE = 0x08000000 # set when server is capable of gzip compression
DSAXES_MODE_UNINHERITABLE = 0x10000000 # Gateway may not be inherited by child IItemObj
DSAXES_MODE_COPYCONTENTS = 0x20000000 # IItemObj::DSCopy should always copy contents (not reference)
DSAXES_MODE_CREATERESULTENUM = 0x40000000 # IItemObj::DSUpload, etc. should create enumerator for uploaded items
DSAXES_MODE_LOADDEFPROPS = 0x80000000 # loads default properties for file upload and object creation
DSAXES_MODE_STDMASK = 0x000000FF
# Flags for OpenDSObject
DSAXES_OPENDSOBJ_OPEN = 0x00000001
DSAXES_OPENDSOBJ_CREATE = 0x00000002
DSAXES_OPENDSOBJ_READ = 0x00000010
DSAXES_OPENDSOBJ_WRITE = 0x00000020
DSAXES_OPENDSOBJ_EMPTYNOW = 0x00000100
DSAXES_OPENDSOBJ_OPENNOW = 0x00000200
DSAXES_OPENDSOBJ_RECONNECT = 0x00000400
DSAXES_OPENDSOBJ_LOCK = 0x00001000
DSAXES_OPENDSOBJ_RENAMEIFEXISTS = 0x00010000
DSAXES_OPENDSOBJ_FAILIFEXISTS = 0x00020000
DSAXES_OPENDSOBJ_WWWAUTH = 0x00100000
DSAXES_OPENDSOBJ_CACHE = 0x01000000
DSAXES_OPENDSOBJ_SHOWPROGRESS = 0x10000000
DSAXES_OPENDSOBJ_SHOWERRORDLG = 0x20000000
DSAXES_FLAG_DOWNLOADREPR = 0x0001
DSAXES_FLAG_DOWNLOADVALIDATE = 0x0002
DSAXES_FLAG_DOWNLOADRENDITION = 0x0004
DSAXES_FLAG_DOWNLOADCONTELEM = 0x0008
DSAXES_FLAG_DOWNLOADRETRY = 0x0010
DSAXES_FLAG_DOWNLOADSHORTNAME = 0x0100
DSAXES_FLAG_DOWNLOADVERSION = 0x0200 # VERSION instructs InitiateDownload to regard FileHandle as handle number of a Version object (e.g., Version-n). It can be combined with DSAXES_FLAG_DOWNLOADBYRANGE to download a partial content of a file version
DSAXES_FLAG_DOWNLOADMULTIPLY4K = 0x0800 # HIWORD value for a BYRANGE operation should be multiplied by 0x1000 (4KB)
DSAXES_FLAG_DOWNLOADBYRANGE = 0x1000 # BYRANGE instructs InitiateDownload to download a range of 0x1000 content bytes; DownloadData contains the starting offset of the range. HIWORD of Flags is set to the range size (in bytes).
DSAXES_FLAG_DOWNLOADCONTTYPE = 0x2000
DSAXES_FLAG_DOWNLOADBYNAME = 0x4000 # BYNAME instructs Download to use MIME type to download a rendition, and use element name to download a content element. MIME type is a renditon's 'name'.
DSAXES_FLAG_DOWNLOADLOCKED = 0x8000
DSAXES_FLAG_UPLOADVERSION = 0x0001
DSAXES_FLAG_UPLOADLOCKED = 0x8000
DSAXES_SELDOCDLG_MODEMASK = 0x000F
DSAXES_SELDOCDLG_MODEOPEN = 0x0000
DSAXES_SELDOCDLG_MODESAVE = 0x0002
DSAXES_TYPE_TITLE = 1
DSAXES_TYPE_SUMMARY = 2
DSAXES_TYPE_AUTHOR = 3
DSAXES_TYPE_MIME = 4
DSAXES_REPR_HTML = 1
DSAXES_REPR_PDF = 2
DSAXES_REPR_THUMBNAIL = 3
DSAXES_RMFILINGMODE_SINGLE = 1
DSAXES_RMFILINGMODE_SEPARATE = 2
DSAXES_RMFILINGMODE_BOTH = 3
# Grants are OR'd into a 32-bit word
DSGRANT_READER = 0x00000001
DSGRANT_WRITER = 0x00000002
DSGRANT_MANAGER = 0x00000004
DSGRANT_READLINKED = 0x00000008
DSGRANT_READOBJECT = 0x00000010
DSGRANT_READHISTORY = 0x00000020
DSGRANT_WRITELINKED = 0x00000040
DSGRANT_WRITEOBJECT = 0x00000080
DSGRANT_MANAGE = 0x00000100
DSGRANT_CASCADE = 0x80000000
# Flags used by the IDsAxes::Search method
DSSRCH_DEFAULT_MODE = 0x00000000
DSSRCH_ALREADY_XML = 0x00000001
DSSRCH_USE_TEMPLATE = 0x00000002
DSSRCH_INC_SUBCLASS = 0x00000004
DSSRCH_AS_CUSTOM = 0x00000008
DSSRCH_AS_TITLE = 0x00000010
DSSRCH_AS_FILENAME = 0x00000020
DSSRCH_AS_SUMMARY = 0x00000040
DSSRCH_AS_DESCRIPTN = 0x00000080
DSSRCH_AS_KEYWORD = 0x00000100
DSSRCH_AS_AUTHOR = 0x00000200
DSSRCH_AS_OWNER = 0x00000400
DSSRCH_AS_LASTUSER = 0x00000800
DSSRCH_BY_CREATTIME = 0x00001000
DSSRCH_BY_MODIFTIME = 0x00002000
DSSRCH_BY_MIMETYPE = 0x00004000
DSSRCH_BY_OWNER = 0x00008000
DSSRCH_BY_TITLE = 0x00010000
DSSRCH_BY_FILENAME = 0x00020000
DSSRCH_BY_CONTENT = 0x00040000
DSSRCH_BY_KEYWORD = 0x00080000
DSSRCH_TYPE_GROUP = 0x00100000
DSSRCH_TYPE_USER = 0x00200000
DSSRCH_TYPE_BBOARD = 0x00400000
DSSRCH_TYPE_CALNDR = 0x00800000
DSSRCH_TYPE_FILE = 0x01000000
DSSRCH_TYPE_COLL = 0x02000000
DSSRCH_AS_TYPE = 0x04000000
DSSRCH_SCOPE_COLL = 0x08000000
DSSRCH_TYPE_URL = 0x10000000
DSSRCH_ASYNC = 0x20000000
DSSRCH_CONJUNCT_AND = 0x40000000
DSSRCH_OP_NEGATE = 0x80000000
# Flags the VARIANT PropValues->lVal can contain if PropValues->vt == VT_I4
DSXINITIATEPOST_PROPVAL_QUERYSCOPEMASK = 0x0000FFFF
DSXINITIATEPOST_PROPVAL_UTF8ENCODED = 0x00010000
DSXINITIATEPOST_PROPVAL_CONVERTTOUTF8 = 0x00100000
# GoOnline flags
DSXDIALUP_FORCE_DIAL = 0x00000001
DSXDIALUP_CHECK_NETWORK_FIRST = 0x00000002
DSXDIALUP_SKIP_RETEST = 0x00000004
DSXDIALUP_CONNECT_BYURL = 0x00000008
DSXDIALUP_CONNECT_UNATTENDED = 0x00000010
DSXDIALUP_CONNECT_ASK = 0x00000020
DSXDIALUP_CHECK_NETWORK_LATER = 0x00000040
DSXDIALUP_IGNORE_LAN = 0x00000080
DSXDIALUP_RAS_FlAG_DONT_USE_RAS = 0x00010000
DSXDIALUP_RAS_FlAG_DONT_DIAL_FIRST_PHONEBOOK_ENTRY = 0x00020000
# GoOffline flags
DSXDIALUP_DISCONNECT_NEVER = 0x00000100
DSXDIALUP_DISCONNECT_ASK = 0x00000200
# Masks
DSXDIALUP_ONLINE_TESTS = 0x0000000F # Mask for testing if any connection test is being called for
DSXDIALUP_ALREADY_ONLINE = 0x80000000 # Used by gateway to keep online status. App should not modify
# Special event ids of SetShellNotification
# Disallow automatic notification to DSNSX after bulk upload or bulk replicate. AbsIDL1=NULL, AbsIDL2=NULL
DSXSSN_DISABLE_IPCNOTIFY = 0
# Allow automatic notification to DSNSX after bulk upload or bulk replicate. AbsIDL1=NULL, AbsIDL2=NULL
DSXSSN_ENABLE_IPCNOTIFY = -1
# Notify DSNSX immediately. AbsIDL1=NSXNOTIFOBJ event id, e.g., NSXNOTIFOBJ_COLLUPDATED; AbsIDL2=Item handle, e.g., Collection-10
DSXSSN_IPCNOTIFY_NOW = -2
# Flags of CNameConflictResolver::ResolveRemoteName2
NAMECONFRES_RESOLVE_BYNAME = 0x00000001
NAMECONFRES_RESOLVE_BYHANDLE = 0x00000002
# IPropertyIDs::Load option flags
DSXPROPIDSLOAD_OPT_APPEND = 0x00000001
DSXPROPIDSLOAD_OPT_IDENTIFY = 0x00000002
DSXPROPIDSLOAD_OPT_DSXTYPEMASK = 0xFFFF0000
#///////////////////////////////////////////////////////////////////////////
# Server Map Control
#///////////////////////////////////////////////////////////////////////////
SVRMAP_RESULT_SUCCESS = 0
SVRMAP_RESULT_NOCHANGE = 1
SVRMAP_RESULT_CANCEL = 2
SVRMAP_RESULT_BADINSTANCEID = 3
SVRMAP_RESULT_BADMAP = 4
SVRMAP_RESULT_NOTIFYFAIL = 5
SVRMAP_RESULT_NODSNSX = 6
SVRMAP_RESULT_PARTIALSUCCESS = 7
SVRMAP_RESULT_UNKNOWNERROR = -1
SVRMAP_RESULT_INVALIDARG = -2
SVRMAP_RESULT_OUTOFRANGE = -3
SVRMAP_RESULT_AXESOPENFAIL = -100
SVRMAP_RESULT_AXESLOGONFAIL = -101
SVRMAP_RESULT_AXESSCHEMAFAIL = -102
SVRMAP_RESULT_AXESUSERFAIL = -103
SVRMAP_RESULT_WEBUSERBAD = -104
SVRMAP_RESULT_WEBPSWDBAD = -105
SVRMAP_RESULT_SERVERDOWN = -110
SVRMAP_RESULT_SERVERUNREACH = -111
SVRMAP_RESULT_NEWPSWDREQUESTED = -112
SVRMAP_RESULT_PSWDOBSOLETE = -113
SVRMAP_RESULT_OUTOFMEMORY = -200
SVRMAP_RESULT_OUTOFSYSRES = -201
SVRMAP_RESULT_COMCREATEFAIL = -300
SVRMAP_RESULT_OLEERROR = -301
SVRMAP_RESULT_DIRCREATEFAIL = -400
SVRMAP_RESULT_AUTHDBNOTLOADED = -500
SVRMAP_RESULT_AUTHDBERROR = -501
SVRMAP_RESULT_AUTHDBLOCKFAIL = -502
SVRMAP_RESULT_AUTHDBLOCKED = -503
SVRMAP_RESULT_NOTAUTHORIZED = -504
SVRMAP_RESULT_NOTLOGGEDOUT = -505
SVRMAP_RESULT_NOHTTPCOOKIE = -507
SVRMAP_RESULT_MAPLOADFAIL = -600
SVRMAP_RESULT_MAPREADFAIL = -601
SVRMAP_RESULT_MAPWRITEFAIL = -602
SVRMAP_RESULT_MAPSAVEFAIL = -603
SVRMAP_RESULT_NOMAPS = -604
SVRMAP_RESULT_DUPLICATEINDEX = -605
SVRMAP_RESULT_TITLETOOLONG = -700
SVRMAP_RESULT_TITLETOOSHORT = -701
SVRMAP_RESULT_WIPTOOLONG = -702
SVRMAP_RESULT_WIPTOOSHORT = -703
SVRMAP_RESULT_TITLEINUSE = -704
SVRMAP_RESULT_WIPINUSE = -705
SVRMAP_RESULT_WIPSYNTAXERROR = -706
# Logon dialog flags
SVRMAP_OPTION_CANCHANGEADDR = 0x00000001 # Address can be changed
SVRMAP_OPTION_CANCHANGEUSER = 0x00000002 # User name can be changed
# Logon flags
SVRMAP_OPTION_LOGONTOPMOST = 0x00000004 # Display logon dialog box as top most
SVRMAP_OPTION_LOGONCAPTION = 0x00000008 # Show special caption on logon dialog box
SVRMAP_OPTION_NOLOGONRETRY = 0x00000010 # Disallow retry
SVRMAP_OPTION_NOAUTOLOGON = 0x00000020
SVRMAP_OPTION_NOLOGONNOTIFY = 0x00000040
SVRMAP_OPTION_LOGONTHREAD = 0x00000400 # Run Logon and AuthenticateUser on a separate thread
SVRMAP_OPTION_LOGONLOADSSCHEMA = 0x00000800 # Fetch schema after authentication
SVRMAP_OPTION_LOGONLOADSAUTOCFG = 0x10000000 # Fetch config.xml after authentication
SVRMAP_OPTION_LOGONLOADSUSERINFO = 0x00080000 # Fetch user props after authentication
SVRMAP_OPTION_NOLOGONDIALOG = 0x00020000 # Dialog with user not allowed
# Logoff flags
SVRMAP_OPTION_NOLOGOFFNOTIFY = 0x00000080
SVRMAP_OPTION_LOGOFFSILENT = 0x00000100 # Do not ask user
# Schema cache control
SVRMAP_OPTION_TEMPSCHEMA = 0x00000200 # Delete schema cache when IServer is destroyed
# Open flag
SVRMAP_OPTION_OPENWITHOUTAUTH = 0x00001000 # Open gateway even if not authenticated
SVRMAP_OPTION_REUSEGATEWAY = 0x00002000 # Keep gateway instance and reuse it for a subsequent Open call
SVRMAP_OPTION_SILENT = 0x00004000 # Do not display network progress (for logon)
SVRMAP_OPTION_NOERRORDLG = 0x00008000 # Do not display error message (for logon)
# put_AuthToken flag
SVRMAP_OPTION_UPDATELOGONCACHE = 0x00010000 # put_AuthToken updates authtoken cache of auto-logon
SVRMAP_OPTION_WEBLOGONCRED = 0x00040000 # put_AuthToken, get_UserName, get_Password are redirected to WebLogon params.
SVRMAP_OPTION_PERSISTCRED = 0x00100000
# Peer flags
SVRMAP_OPTION_PEERBROKERED = 0x00200000 # Access to this peer is brokered by a DocuShare server.
SVRMAP_OPTION_PEERDIRECT = 0x00400000 # Use IP-based direct access mode.
SVRMAP_OPTION_PEERREMOTE = 0x00800000 # Use brokered remote access mode.
# CopyTo flags
SVRMAP_OPTION_COPYPRIV = 0x01000000 # Copy private parameters (instance id, etc)
SVRMAP_OPTION_COPYCRED = 0x02000000 # Copy credentials
SVRMAP_OPTION_COPYNOIDENTIFY = 0x04000000 # Copy no identify (name, type, handle)
SVRMAP_OPTION_COPYSTATE = 0x08000000 # Copy all session state settings
# This IServer is a shortcut to a collection, etc.
SVRMAP_OPTION_SHORTCUT = 0x20000000
# CacheCredentials overrides authentication lock.
SVRMAP_OPTION_OVERRIDE = 0x40000000
# Collection map does not piggyback on host server to authenticate user.
SVRMAP_OPTION_STANDALONE = 0x80000000
SVRMAP_COMPARE_NAME = 0x00000001
SVRMAP_COMPARE_DSADDR = 0x00000002
SVRMAP_COMPARE_USERNAME = 0x00000004
SVRMAP_COMPARE_FOLDERTYPE = 0x00000008
SVRMAP_COMPARE_FOLDERHANDLE = 0x00000010
SVRMAP_COMPARE_INSTANCEID = 0x00000020
SVRMAP_COMPARE_USERHANDLE = 0x00000040
SVRMAP_COMPARE_AUTHTOKEN = 0x00000080 # only works when modifying SVRMAP_COMPARE_DSADDR and target server is logged in.
SVRMAP_COMPARE_STATUS = 0x00000100
SVRMAP_COMPARE_NSXATTRIB = 0x00000200
SVRMAP_COMPARE_DSDOMAIN = 0x00001000
SVRMAP_COMPARE_CUSTOMPROP = 0x00002000 # compare by string value of form "CustomPropName=CustomPropValue" (e.g., "XDBConnectorURL=http://...com/docushare" which is url of XDB connector download page)
SVRMAP_COMPARE_PARTIAL = 0x10000000
SVRMAP_COMPARE_CASESENS = 0x20000000
SVRMAP_COMPARE_APPID = 0x40000000
SVRMAP_COMPARE_REVERSE = 0x80000000
# IStore::Find does not return a blank IServer if sought server is not found
SVRMAP_FIND_NOBLANKSVR = 0x80000000 # Do not return an empty IServer when no match is found
# IStore::Find can run a mapping dialog to add an IServer that meets the Find criteria
SVRMAP_FIND_CREATEIFNOTFOUND = 0x08000000
# IStore options
SVRMAP_STOREOPT_REMOVEBYID = 0x00000001 # Use instance ID to validate to-be-removed server.
SVRMAP_STOREOPT_KEEPDISCON = 0x00000010 # Find & Reset should not remove disconnected servers.
SVRMAP_STOREOPT_LIMITREMOVE = 0x00000100 # Disallow removal if server is open (user hasn't logged out).
SVRMAP_STOREOPT_DONTFASTLOAD = 0x00001000 # Load method should not engage in fast mode; it should load and keep all server instances
SVRMAP_STOREOPT_DONTFINDPEER = 0x10000000 # Method Find should not find a peer server.
SVRMAP_STOREOPT_PEERSTORE = 0x20000000 # This IStore stores maps to peer folder share servers
SVRMAP_STOREOPT_SHORTCUTSTORE = 0x40000000 # This IStore stores collection shortcuts
SVRMAP_STOREOPT_STANDALONE = 0x80000000 # Use this IStore standalone, i.e., not attached to database
SVRMAP_STOREOPT_TROUBLESHOOT_ON = 0x00010000 # turn on call tracing for DSClient core library
# special flag for argument fClearDirty of IStore::IPersisteStream::Save and IServer::IPersisteStream::Save
DSSVRMAP_ISTORE_SAVEFLAG_PERSISTSHORTCUTS = 0x10000000
# Session flags of IServer::SessionFlags
SVRMAP_SESSFLAG_MAPINDEX = 0x000000FF # Zero-based registry index of the IServer map.
SVRMAP_SESSFLAG_USEPROXY = 0x00000400 # This server is accessed via a proxy server.
SVRMAP_SESSFLAG_USEXML = 0x00000800 # This server supports the DS2.x XML API.
SVRMAP_SESSFLAG_SECURE = 0x00001000 # This server uses a secure http protocol.
SVRMAP_SESSFLAG_WWWAUTH = 0x00002000 # This server requires NTLM or WWW authentication.
SVRMAP_SESSFLAG_WINLOGON = 0x00004000 # This server uses WinLogon credentials to authenticate user.
SVRMAP_SESSFLAG_PROXYAUTH = 0x00008000 # The proxy requires WWW authentication.
SVRMAP_SESSFLAG_LOGGEDOUT = 0x00010000 # User has logged out from or has not logged into this server.
SVRMAP_SESSFLAG_LOCKED = 0x00020000 # Access to this IServer is disallowed.
SVRMAP_SESSFLAG_READONLY = 0x00040000 # This server is in maintenance mode and is readonly.
SVRMAP_SESSFLAG_NETFAILED = 0x00080000 # There has been an error in network call.
SVRMAP_SESSFLAG_APPRESERVED = 0x00F00000 # Reserved for private use by external application.
SVRMAP_SESSFLAG_QUERIEDITEM = 0x01000000 # Used by DSFIND to mark the PIDL of a queried item (i.e., not connected to shell folder).
SVRMAP_SESSFLAG_HASDSXINFO = 0x02000000 # Used by DSSUP to mark the PIDL as being followed by a DSX..INFO structure.
SVRMAP_SESSFLAG_FORCELOGOUT = 0x04000000 # Not currently used.
SVRMAP_SESSFLAG_NSXRESERVED = 0x08000000 # Used by DSNSX to mark the PIDL of an 'Add Server/Collection' item.
SVRMAP_SESSFLAG_ORPHANED = 0x10000000 # This IServer does not belong to an IStore object.
SVRMAP_SESSFLAG_PEER = 0x20000000 # This IServer maps to a peer machine.
SVRMAP_SESSFLAG_DISCONNECTED = 0x40000000 # This server has been disconnected.
SVRMAP_SESSFLAG_GUEST = 0x80000000 # This IServer represents a guest account.
# Session flags inherited by a mapped collection from its host server.
SVRMAP_SESSFLAG_HOSTMASK = (SVRMAP_SESSFLAG_USEPROXY | SVRMAP_SESSFLAG_USEXML | SVRMAP_SESSFLAG_SECURE | SVRMAP_SESSFLAG_WWWAUTH | SVRMAP_SESSFLAG_PROXYAUTH | SVRMAP_SESSFLAG_LOGGEDOUT | SVRMAP_SESSFLAG_LOCKED | SVRMAP_SESSFLAG_READONLY | SVRMAP_SESSFLAG_GUEST)
# Flags for IStore::CanAdd
SVRMAP_CANADDFLAG_SHOWERROR = 0x80000000
# Flags for IStore::DoSelectDialog
SVRMAP_SELDLGFLAG_SINGLESEL = 0x00000001
SVRMAP_SELDLGFLAG_SHOWPRESEL = 0x00000010
SVRMAP_SELDLGFLAG_SHOWOPTION = 0x00000020
SVRMAP_SELDLGFLAG_TOPMOST = 0x00000040
SVRMAP_SELDLGFLAG_NOCOLLMAPS = 0x00000100
SVRMAP_SELDLGFLAG_ADDCHECKBOX = 0x00000200
# Flags for IStore::SelectDialogOption
SVRMAP_SDOFLAG_CHECKBOX = 0x00000000 # High word=widget type, Low word=selection state
SVRMAP_SDOFLAG_TRISTATE = 0x00010000
SVRMAP_SDOFLAG_RADIOBUTTON = 0x00020000
# Event flags for IServer::BroadcastEvent
SVRMAP_EVENT_EXCLUDESELF = 0x80000000
SVRMAP_EVENT_LOGON = 0x00000001
SVRMAP_EVENT_LOGOFF = 0x00000002
SVRMAP_EVENT_ADD = 0x00000004
SVRMAP_EVENT_REMOVE = 0x00000008
SVRMAP_EVENT_RENAME = 0x00000010
SVRMAP_EVENT_CHANGEATTR = 0x00000020
SVRMAP_EVENT_MODIFYMASK = 0x000000FF
# IBrowser::NavigateTo, View, ViewProps flags
IELINK_OPTION_NOSETCOOKIE = 0x00000001
IELINK_OPTION_NODOCREPR = 0x00000010
IELINK_OPTION_ISVIEWABLE = 0x00000020
IELINK_OPTION_HTMLREPR = 0x00010000
IELINK_OPTION_PDFREPR = 0x00020000
IELINK_OPTION_THUMBREPR = 0x00040000
IELINK_OPTION_CALMONTH = 0x00100000
IELINK_OPTION_CALWEEK = 0x00200000
IELINK_OPTION_CALDAY = 0x00400000
IELINK_OPTION_ROUTINGFORM = 0x01000000
IELINK_OPTION_PROMPTUSER = 0x40000000
IELINK_OPTION_PRINT = 0x80000000
# IWizard options
SVRMAP_WIZOPT_DISALLOW_ACCTCREATE = 0x00000001
# IServer::BuildURL flags
DSSVRBURL_FLAG_DONT_ESCAPE_NAME = 0x00000001
DSSVRBURL_FLAG_DONT_ESCAPE_DOT = 0x00000002
DSSVRBURL_FLAG_UNDERSCORE_NAME = 0x00000010
DSSVRBURL_FLAG_URI_ONLY = 0x00000100
DSSVRBURL_FLAG_WEBDAV_URL = 0x00001000
# IServer::SubmitHTTPRequest flags
DSSVRHTTPREQ_WANT_ENUMOBJ = 0x00000001
DSSVRHTTPREQ_WANT_ITEMOBJ = 0x00000002
DSSVRHTTPREQ_WANT_XMLDOM = 0x00000004
DSSVRHTTPREQ_WANT_DATAENUM = 0x00000010
#struct PASSWORDPOLICYPARAMS {
#    ULONG size;
#    // <time_interval_for_inactive_sessions>
#    ULONG sessionLifetime;
#    // <password_constraints>
#    UINT minLen; // <minimum_password_length>
#    UINT maxLen;
#    BOOL mustAlpha : 1; // <must_contain_alpha>
#    BOOL mustNumeric : 1; // <must_contain_numeric>
#    BOOL mustPunct : 1; // <must_contain_punctuation>
#    BOOL mustMixCase : 1; // <must_contain_mixed_case>
#    BOOL mayReuse : 1; // <may_reuse_current_password>
#    BOOL mayUseVariants : 1; // <may_use_username_variants>
#    ULONG passwordLifetime;
#};
# flags for IServer::RetrievePasswordPolicy
DSSVRMAP_RPP_WANT_POLICYXML = 0x0001
DSSVRMAP_RPP_WANT_POLICYTEXT = 0x0002
DSSVRMAP_RPP_WANT_POLICYSTRUCT = 0x0003
# reason flags for IServer::ChangePassword, RunLogonDialog
DSSVRMAP_REASON_PASSWORDEXPIRED = 0x00000001
DSSVRMAP_REASON_FAILEDPOLICY = 0x00000002
DSSVRMAP_REASON_SESSIONEXPIRED = 0x00000004
# flags for IServer::RunLogonDialog
DSSVRMAP_RLD_REASON_MASK = 0x0000000F
DSSVRMAP_RLD_WANTNEWPASSWORD = 0x00010000 # Return new password in Result; keep old password in Server.Password
DSSVRMAP_RLD_AUTHENTICATE = 0x00100000 # Go ahead and call ChangePassword or Logon
# ICFRFlags flags for ICheckinServiceManager::IsCheckinFormRequired
# Note ICFRFlags was formally called AllowSubclass which now corresponds
# to CHECKINSERVICEMAN_ICFRFLAG_CHECKSUBCLASS.
CHECKINSERVICEMAN_ICFRFLAG_CHECKSUBCLASS = 0x00000001 # require checkin form if a custom class exists
CHECKINSERVICEMAN_ICFRFLAG_CHECKDEFVALUE = 0x00000002 # ignore props for which server supplies default values
CHECKINSERVICEMAN_ICFRFLAG_IGNOREEXTCHECKIN = 0x00000010 # ignore DSNSX_FLAG_EXTERNALCHECKIN (option 'Always display Checkin Wizard.." of Client Properties)
#///////////////////////////////////////////////////////////////////////////
# Item Object/Item Enumerator
#///////////////////////////////////////////////////////////////////////////
# IEnumObj::Load flags
DSCONTF_PARENT = 0x0001
DSCONTF_FOLDERS = 0x0002
DSCONTF_DOCUMENTS = 0x0004
DSCONTF_NONDOCUMENTS = 0x0008
DSCONTF_VERSIONS = 0x0010
DSCONTF_IDENTITY = 0x0020
DSCONTF_DESCENDANTS = 0x0040
DSCONTF_ASCENDANTS = 0x0080
DSCONTF_ASCEND_ROOTFIRST = 0x0100
DSCONTF_ACL = 0x0200
DSCONTF_SUBSCRIPTION = 0x0400
DSCONTF_ATTACH = 0x1000
DSCONTF_RENDITIONS = 0x2000
DSCONTF_CLASSES = 0x4000
DSCONTF_CHILDCLASSES = 0x8000
DSCONTF_CHILDREN = (DSCONTF_FOLDERS | DSCONTF_DOCUMENTS | DSCONTF_NONDOCUMENTS)
DSCONTF_ALL = (DSCONTF_IDENTITY | DSCONTF_PARENT | DSCONTF_CHILDREN)
DSCONTF_SEARCHRESULTS = (DSCONTF_CHILDREN | DSCONTF_DESCENDANTS)
# IItemObj::EnumObjects flags
ITEMOBJ_EOFLAG_DSCONTF = 0x0000FFFF # Reserved for DSCONTF flags
ITEMOBJ_EOFLAG_LOADCHILDHANDLES = 0x01000000
ITEMOBJ_EOFLAG_DOCTREE = 0x02000000
ITEMOBJ_EOFLAG_FREEENUM = 0x04000000 # Free master IEnumObj on successful allocation of IEnumObj
ITEMOBJ_EOFLAG_SHAREENUM = 0x08000000 # Share master IEnumObj with returned IEnumObj
ITEMOBJ_EOFLAG_ORIGENUM = 0x20000000 # Return master IEnumObj itself
# Special flag for Load for performing simple
# deserialization. Load reads the contained items
# in the exact sequential order as the items appear
# in the list.
DSCONTF_USEPERSISTSTREAM = 0x00800000
DSCONTF_SERIALIZE = 0x10000000
DSCONTF_DESERIALIZE = 0x40000000
ITEMOBJ_EOFFLAG_NONEWENUM = 0x80000000
# Special flag for Load, New and GetNode to pass
# current IEnumObj to the created IItemObj.
# DSAXESS TREE command uses this flag to use
# a single enumerator to build the entire
# nested collection tree. To specify the flag
# for New and GetNode, use IEnumObj::put_Flags.
DSCONTF_PASSMASTERENUM = 0x80000000
# IEnumObj::GetLengthOf sub-item types
ENUMOBJ_GLOTYPE_ALL = 0
ENUMOBJ_GLOTYPE_COLL = 1
ENUMOBJ_GLOTYPE_FILE = 2
# SortOrder flags of IEnumObj::Sort
ENUMOBJ_SORT_ASCEND = 0x00000000
ENUMOBJ_SORT_DESCEND = 0x00000001
ENUMOBJ_SORT_REVERSE = 0x00000002 # Set sort key to zero as well.
# IItemObj::Compare flags (also used as SortKey flags of IEnumObj::Sort)
ITEMOBJ_COMPARE_CORE_ALL = 0x000033FF
ITEMOBJ_COMPARE_COLL_ALL = 0x000033FF
ITEMOBJ_COMPARE_FILE_ALL = 0x0000FFFF
ITEMOBJ_COMPARE_TYPE = 0x00000001
ITEMOBJ_COMPARE_HANDLE = 0x00000002
ITEMOBJ_COMPARE_PARENT = 0x00000004
ITEMOBJ_COMPARE_LENGTH = 0x00000008
ITEMOBJ_COMPARE_OWNER = 0x00000010
ITEMOBJ_COMPARE_USER = 0x00000020
ITEMOBJ_COMPARE_OWNERNAME = 0x00000040
ITEMOBJ_COMPARE_USERNAME = 0x00000080
ITEMOBJ_COMPARE_TITLE = 0x00000100
ITEMOBJ_COMPARE_SUMMARY = 0x00000200
ITEMOBJ_COMPARE_FILENAME = 0x00000400
ITEMOBJ_COMPARE_MIMETYPE = 0x00000800
ITEMOBJ_COMPARE_CREATETIME = 0x00001000
ITEMOBJ_COMPARE_MODIFYTIME = 0x00002000
ITEMOBJ_COMPARE_VERSION = 0x00008000
ITEMOBJ_COMPARE_KEY2_TYPE = 0x00010000 # Secondary key = item type
ITEMOBJ_COMPARE_KEY2_HANDLE = 0x00020000 # Secondary key = item handle
ITEMOBJ_COMPARE_KEY2_PARENT = 0x00040000 # Secondary key = parent handle
ITEMOBJ_COMPARE_KEY2_LENGTH = 0x00080000 # Secondary key = length
ITEMOBJ_COMPARE_KEY2_OWNER = 0x00100000 # Secondary key = owner name
ITEMOBJ_COMPARE_KEY2_USER = 0x00200000 # Secondary key = user name
ITEMOBJ_COMPARE_KEY2_TITLE = 0x00400000 # Secondary key = title
ITEMOBJ_COMPARE_KEY2_NAME = 0x00800000 # Secondary key = filename
ITEMOBJ_COMPARE_KEY2_CREATE = 0x01000000 # Secondary key = creation time
ITEMOBJ_COMPARE_KEY2_MODIFY = 0x02000000 # Secondary key = modified time
ITEMOBJ_COMPARE_LOCKSTATE = 0x04000000 # Compare by lock state
ITEMOBJ_COMPARE_PROPSTRUCT = 0x08000000 # Compare by DSX...INFO structure (no other flags should be used)
ITEMOBJ_COMPARE_SERVER = 0x10000000 # Compare by associated server
ITEMOBJ_COMPARE_CASESENS = 0x20000000 # Case sensitive comparison
ITEMOBJ_COMPARE_VALIDATED = 0x40000000 # Use validated filename
ITEMOBJ_COMPARE_REVERSE = 0x80000000 # Reverse order
# IItemObj::DSSelect flags
ITEMOBJ_SELFLAG_OPEN = 0x00000000 # select an item to open
ITEMOBJ_SELFLAG_SAVE = 0x00000001 # select an item to save
ITEMOBJ_SELFLAG_STARTPARENT = 0x00000002 # start folder browsing at parent collection
ITEMOBJ_SELFLAG_READONLY = 0x00000010 # disable lock option
ITEMOBJ_SELFLAG_APPSEL = 0x00000020 # enable application-select button
ITEMOBJ_SELFLAG_NOVERCHECK = 0x00000040 # do not perform version check/warning
ITEMOBJ_SELFLAG_NONFILE = 0x00000080 # allow selection of a non-file item
ITEMOBJ_SELFLAG_SPLASHUI = 0x00000100 # suppress splash screen
ITEMOBJ_SELFLAG_STARTROOT = 0x00000200 # start at DSClient root folder
ITEMOBJ_SELFLAG_NAVFREE = 0x00000400 # can navigate freely outside specified server/collection
ITEMOBJ_SELFLAG_NOVALIDATE = 0x00000800 # do not perform type validation for selected item
ITEMOBJ_SELFLAG_USEEXPLORER = 0x00001000 # use Explorer folder browse dialog if it's available
ITEMOBJ_SELFLAG_USEOUTLOOK = 0x00002000 # use Outlook folder browse dialog if it's available
ITEMOBJ_SELFLAG_USEDSUL = 0x00004000 # use DSUtilityLib browse dialog if it's available
ITEMOBJ_SELFLAG_NONCOLL = 0x00010000 # display non-Collection/non-Workspace container items (e.g., Calendar)
ITEMOBJ_SELFLAG_DONTKEEPNAME = 0x00020000 # always set ItemObj.Name to the title text (optionally with a file extension name) if ItemObj represents a Document object. The flag is effective with ITEMOBJ_SELFLAG_USEDSUL. If the flag is not raised, DSSelect makes the Name assignment only if ItemObj.Name is empty.
# ItemObj.Options flags
ITEMOBJ_OPTION_AUTODEL = 0x00000001 # readonly; auto delete file specified in ItemObj.Name
ITEMOBJ_OPTION_RELOAD = 0x00000002 # readonly; reload thumbnail when IItemObj::get_Thumbnail is called
ITEMOBJ_OPTION_RELEASEGATE = 0x00000004 # release IGatewayHandler attached by IItemObj::AttachGateway
ITEMOBJ_OPTION_RELEASESERV = 0x00000008 # release IServer attached by IItemObj::AttachServerMap
ITEMOBJ_OPTION_USESYSTIME = 0x00000010 # use system time (GMT) for ItemObj.TimeCreated, TimeModified, TimeAccessed
ITEMOBJ_OPTION_CHANGESTORE = 0x00000020 # use a non-default (DSNSX) server map store
ITEMOBJ_OPTION_ASYNCSLEEP = 0x00000040 # readonly; this IItemObj is running on a worker thread
ITEMOBJ_OPTION_ASYNCTHREAD = 0x00000080 # get_TaskStatus can sleep 100 msec before returning
ITEMOBJ_OPTION_ASYNCDONE = 0x00000100
ITEMOBJ_OPTION_ASYNCLINKS = 0x00000200
ITEMOBJ_OPTION_RESTRICTQUERY = 0x00000400
ITEMOBJ_OPTION_DONTLINK = 0x00000800
ITEMOBJ_OPTION_DOWNLOADALT = 0x00001000
ITEMOBJ_OPTION_UPLOADALT = 0x00002000
ITEMOBJ_OPTION_UPLOADATTACH = 0x00004000
ITEMOBJ_OPTION_SKIPSCHEMALOAD = 0x00008000
ITEMOBJ_OPTION_EMBEDDEDATTACH = 0x00010000
ITEMOBJ_OPTION_KEEPALLVER = 0x00020000
ITEMOBJ_OPTION_LINKTOGATEWAY = 0x00040000
ITEMOBJ_OPTION_POSTPROCESSDSTASK = 0x00080000
ITEMOBJ_OPTION_PRELOADCUSTPROPS = 0x00100000
ITEMOBJ_OPTION_ALWAYSDELETE = 0x00200000
ITEMOBJ_OPTION_SKIPIPCNOTIFY = 0x00400000
ITEMOBJ_OPTION_SETACL = 0x00800000
ITEMOBJ_OPTION_ADDATTACHLIST = 0x01000000
ITEMOBJ_OPTION_SAVERENDITIONHANDLE = 0x02000000
ITEMOBJ_OPTION_NOCOMPOUNDDOC = 0x04000000
ITEMOBJ_OPTION_KEEPDEFPROPSSTORE = 0x08000000
ITEMOBJ_OPTION_PREPROCESSDSTASK = 0x10000000
ITEMOBJ_OPTION_RENAMEONPREPROCESS = 0x20000000
# put_Options control flags
ITEMOBJ_OPTION_OFF = 0x40000000 # disable options of specified bit masks only
ITEMOBJ_OPTION_ON = 0x80000000 # enable options of specified bit masks only
ITEMOBJ_OPTIONS_READONLY = (ITEMOBJ_OPTION_AUTODEL | ITEMOBJ_OPTION_RELOAD | ITEMOBJ_OPTION_ASYNCSLEEP | ITEMOBJ_OPTION_ASYNCDONE | ITEMOBJ_OPTION_LINKTOGATEWAY)
# EventLogObj::LogEvent flags
EVENTLOG_FLAG_FEEDLINE = 0x00000001
EVENTLOG_FLAG_STAMPTIME = 0x00000002
# IItemObj::EnumProps flags
DSPROPF_SERVERCOREPROPS = 0x00000001
DSPROPF_SERVERCUSTOMPROPS = 0x00000002
DSPROPF_SERVERAPPPROPS = 0x00000004
DSPROPF_SERVERPROPS = (DSPROPF_SERVERCOREPROPS | DSPROPF_SERVERCUSTOMPROPS | DSPROPF_SERVERAPPPROPS)
DSPROPF_CLIENTCOREPROPS = 0x00000010
DSPROPF_CLIENTCUSTOMPROPS = 0x00000020
DSPROPF_CLIENTPROPS = (DSPROPF_CLIENTCOREPROPS | DSPROPF_CLIENTCUSTOMPROPS)
DSPROPF_DSSCHEMATA = 0x00000100 # Do preload schema enumerator
DSPROPF_SERVERCUSTOMPROPS_INMEM = 0x00000200
DSPROPF_SERVERINSTANCEPROPS_INMEM = 0x00000400
DSPROPF_SERVERPROPS_INMEM = (DSPROPF_SERVERCUSTOMPROPS_INMEM | DSPROPF_SERVERINSTANCEPROPS_INMEM)
DSPROPF_NOOBJ = 0x00010000
DSPROPF_NOCONT = 0x00020000
DSPROPF_NOPICT = 0x00040000
# IItemObj::LoadDefaultPropsByCriteria flags
DSLOADPROPF_IFREQUIRED = 0x00000001
DSLOADPROPF_IFEMPTYVALUED = 0x00000002
# IItemObj::DSLoadProps2 flags
DSLOADPROPS_FLAG_PRELOADNAMESFROMSERVER = 0x0001
DSLOADPROPS_FLAG_DO_PRELOADNAMESFROMSCHEMATA = 0x0002
DSLOADPROPS_FLAG_DONT_PRELOADNAMESFROMSCHEMATA = 0x0004
DSLOADPROPS_FLAG_DONT_PRELOADCUSTOMPROPS = 0x0010
DSLOADPROPS_FLAG_DONT_INCSTDPROPS = 0x0020 # don't include standard props (e.g., children and parents); modifies PRELOADNAMESFROMSERVER
DSLOADPROPS_FLAG_LOADUSERTASKS = 0x0100
DSLOADPROPS_FLAG_LOADROUTINGTASKS = 0x0200
DSLOADPROPS_FLAG_LOADTASKATTRIBUTES = 0x0400
DSLOADPROPS_FLAG_CREATEUSERTASKENUM = 0x0800
DSLOADPROPS_FLAG_LOADPROPFROMCONTENT = 0x1000
# IItemObj::EnumPresets flags
DSPRESETF_CLASSIFICATION = 0x00000001
#///////////////////////////////////////////////////////////////////////////
# File Monitor
#///////////////////////////////////////////////////////////////////////////
# IDSMon::EditNotify flags
DSMON_NOTIF_LOCKDOC = 0x00000001
DSMON_NOTIF_KEEPDOC = 0x00000002
DSMON_NOTIF_BROWSEDOC = 0x00000004
DSMON_NOTIF_DOWNLOAD = 0x00000008
DSMON_NOTIF_QUERYOPEN = 0x00000010
DSMON_NOTIF_QUERYLOCK = 0x00000020
DSMON_NOTIF_QUERYDOC = 0x00000040
DSMON_NOTIF_QUERYALLDOCS = 0x00000080
DSMON_NOTIF_CANREOPEN = 0x00000100
DSMON_NOTIF_CANCLOSEAFTERCHECKIN = 0x00000200
DSMON_NOTIF_CANDELWORKAFTERCHECKIN = 0x00000400
DSMON_NOTIF_CANCELSAVE = 0x00000800
DSMON_NOTIF_PENDINGSAVE = 0x00001000
DSMON_NOTIF_EDITOFFLINE = 0x00002000
DSMON_NOTIF_WORKMODIFIED = 0x00004000
DSMON_NOTIF_ODMACHECKIN = 0x00008000
DSMON_NOTIF_ODMAOPEN = 0x00010000
DSMON_NOTIF_ODMACLOSE = 0x00020000
DSMON_NOTIF_EXTSAVE = 0x00040000
DSMON_NOTIF_DEFERSAVE = 0x00080000
DSMON_NOTIF_PARAMISPROCID = 0x00100000
DSMON_NOTIF_DOCUPLOADED = 0x00200000
DSMON_NOTIF_IGNORENAME = 0x00400000
DSMON_NOTIF_COPYTOWIP = 0x00800000
DSMON_NOTIF_DOC_CREATED = 0x01000000
DSMON_NOTIF_DOC_OPENED = 0x02000000
DSMON_NOTIF_DOC_SAVED = 0x04000000
DSMON_NOTIF_DOC_CLOSED = 0x08000000
DSMON_NOTIF_RECENTITEM = 0x10000000
# IDSMon::EditNotify param
DSMON_NOTIFPARAM_CLOSED = 0x00000001 # offline open/close
DSMON_NOTIFPARAM_UNLOCKED = 0x00010000 # offline already unlocked by caller; clear to have file monitor unlock
DSMON_NOTIFPARAM_NOBROWSEDDOCS = 0x00000010 # for use with DSMON_NOTIF_QUERYALLDOCS to exclude browsed documents
# IHierarchyMonitor::Open flags
HIERMON_OPEN_FROMCACHE = 0x00000001
HIERMON_OPEN_FROMGATEWAY = 0x00000002
HIERMON_OPEN_SILENT = 0x00000010
HIERMON_OPEN_NOERRORDLG = 0x00000020
HIERMON_OPEN_NOSERVERQUERY = 0x00000100
HIERMON_OPEN_WWWAUTH = 0x00000200
# IHierarchyMonitor::ClearCache flags
HIERMON_CLEAR_COLLONLY = 0x00000000
HIERMON_CLEAR_RELATED = 0x00000001
HIERMON_CLEAR_ALL = 0x00000002
# IHierarchyMonitor error codes
HIERMON_SUCCESS = 0
HIERMON_INPROG = 1
HIERMON_NOATTEMPT = 2
HIERMON_NOCHANGE = 3
HIERMON_DEFERUPDATE = 100
HIERMON_CANCEL = -1
HIERMON_E_CACHEUPDATE = -1000
HIERMON_E_LOADLIST = -1001
HIERMON_E_CREATEOBJ = -1002
HIERMON_E_OPENCOLL = -1003
HIERMON_E_OLEADVISE = -2000
HIERMON_E_CLIENTADVISE = -2001
HIERMON_E_OLELINK = -2002
#///////////////////////////////////////////////////////////////////////////
# DSClient ODMA Client
#///////////////////////////////////////////////////////////////////////////
DSDOC_LOCALNAME = 100
DSDOC_REMOTENAME = 101
DSDOC_SUMMARY = 102
DSDOC_MIMETYPE = 103
DSDOC_AUTHTOKEN = 104
DSDOC_SERVERURL = 105
DSDOC_COMMENT = 106
DSDOC_PROXYADDR = 107
DSDOC_ABSTRACT = 108
DSDOC_KEYWORDS = 109
DSDOC_SERVERNAME = 110
DSDOC_OWNER = 111
DSDOC_LOCKOWNER = 112
DSDOC_USER = 113
DSDOC_LASTUSER = 114
DSDOC_TITLE = 115
DSDOC_EXPIRATION = 116
DSDOC_LOCALNAME_SHORT = 120
DSDOC_LOCALNAME_REL = 121
DSDOC_FILEHANDLE = 200
DSDOC_COLLECTION = 201
DSDOC_SERVER = 202
DSDOC_COLLECTIONTYPE = 203
DSDOC_SERVER_ACCESSINFO = 210
DSDOC_APP_DATA = 211
DSDOC_SELECTABLETYPE = 220
DSDOC_SESSION = 300
DSDOC_DSXINFO_LENGTH = 310
DSDOC_DSXINFO_DATA = 311
#
DSDOC_GLOBAL_PROP_FIRST = 312
DSDOC_APPHWND = 312
DSDOC_APPNAME = 313
DSDOC_APPID = 314
DSDOC_APPFLAGS = 315
DSDOC_APPFLAGSSAVED = 316
DSDOC_EDITORID = 317
DSDOC_SRCCONTENTLINKID = 318
DSDOC_TRACKID = 319
DSDOC_USERFILETYPES = 320
DSDOC_USERFILEEXT = 321
DSDOC_USERDLGCAPTION = 322
DSDOC_USERVIEWSTYLE = 323
DSDOC_FILEOPENMODE = 400 # specific to DsDocObj; not used by DSODMA
DSDOC_EXTDLGHWND = 500
DSDOC_GLOBAL_PROP_LAST = 599
#
DSDOC_ENUMSELECTION_RESET = 700
DSDOC_ENUMSELECTION_NEXT = 701
DSDOC_ENUMSELECTION_CLEAR = 702
# DSODMA-specific actions for ODMActivate
DSODM_ACTION_RESYNC = -1
DSODM_ACTION_KEEPDOC = -2
DSODM_ACTION_SETISLOCKED = -3
DSODM_ACTION_CLEARISLOCKED = -4
DSODM_ACTION_DISABLENOTIFY = -5
DSODM_ACTION_ENABLEENTRYPROMPT = -6
DSODM_ACTION_DISABLEENTRYPROMPT = -7
DSODM_ACTION_RESTORESETTINGS = -8
DSODM_ACTION_UPLOADONSAVE = -10
DSODM_ACTION_DEFERUPLOAD = -11
DSODM_ACTION_OPENDIRECTSESSION = -13
DSODM_ACTION_CLOSEDIRECTSESSION = -14
DSODM_ACTION_ENABLEENTRYPROMPTPROCESS = -15
DSODM_ACTION_DISABLEENTRYPROMPTPROCESS = -16
DSODM_ACTION_STOP_OFFLINE_MODE = -17
DSODM_ACTION_SHAREDOCID = -18
DSODM_ACTION_FINDDOCID = -19
DSODM_ACTION_CLEARSAVECOUNT = -20
DSODM_ACTION_ADDSAVECOUNT = -21
DSODM_ACTION_CHECKOUT = -22
DSODM_ACTION_CANCELCHECKOUT = -23
DSODM_ACTION_CHECKIN = -24
# DSODMA-specific SelectDoc flags
DSODM_SELDOC_TITLEASDOCLOC = 0x00400000
DSODM_SELDOC_ENABLEFILETYPESELECTOR = 0x00800000
DSODM_SELDOC_DISABLEENTRYPROMPT = 0x01000000
DSODM_SELDOC_DISABLEAPPSEL = 0x02000000
DSODM_SELDOC_DISABLEVERPROMPT = 0x04000000
DSODM_SELDOC_ALLOWNONFILESEL = 0x08000000
DSODM_SELDOC_LIMITFOLDER = 0x10000000
DSODM_SELDOC_VALIDATEITEMTYPE = 0x20000000
DSODM_SELDOC_DISABLEMODESEL = 0x40000000
DSODM_SELDOC_ALLOWMULTISEL = 0x80000000
# DSOMDA-specific Open flags
DSODM_OPEN_REUSE_DOCID = 0x00000010 # Used by DSDOCOBJ to reuse DocId attached to current IDocObj
DSODM_OPEN_OFFLINE_DOC = 0x00000020
DSODM_OPEN_ONLINE_DOC = 0x00000040
DSODM_OPEN_LOCAL_DOC = 0x00000080
#///////////////////////////////////////////////////////////////////////////
# DocuShare Checkin UI
#///////////////////////////////////////////////////////////////////////////
DSCHECKIN_CANFILTERCONTENT = 0x00000001
DSCHECKIN_CANPARSEPROPS = 0x00000002
DSCHECKIN_CANSETCUSTOMPROPS = 0x00000004
DSCHECKIN_ENABLEFILTERCONTENT = 0x00000008
DSCHECKIN_DISABLEEXPRESS = 0x00000010
DSCHECKIN_DELETESOURCE = 0x00000020
DSCHECKIN_CANROUTE = 0x00000040
DSCHECKIN_FILTERCONTENT = 0x00010000
DSCHECKIN_SETCUSTOMPROPS = 0x00040000
DSCHECKIN_ROUTE = 0x00080000
DSSCHEMA_INCLUDE_NONVISIBLE_PROPS = 0x00000001
#///////////////////////////////////////////////////////////////////////////
# DSProps TreeList UI
#///////////////////////////////////////////////////////////////////////////
DSPROPS_GROUP_BY_OBJTYPE = 0x00000001
DSPROPS_REQUIREDPROPS = 0x00000002
DSPROPS_OPTIONALPROPS = 0x00000004
DSPROPS_GROUP_BY_REQD = 0x00000008
DSPROPS_STANDARDPROPS = 0x00000010
DSPROPS_CUSTOMPROPS = 0x00000020
DSPROPS_PROVIDE_DEFAULTS = 0x00000040
DSPROPS_CREATEMODE = 0x00000080
#///////////////////////////////////////////////////////////////////////////
# DocuShare PropObj.PropCtrl Control
#///////////////////////////////////////////////////////////////////////////
PROPCTRL_SHOWLABEL = 0x00000001
PROPCTRL_SHOWVALUE = 0x00000002
PROPCTRL_SHOWTOOLTIP = 0x00000004
PROPCTRL_SINGLEVALUE = 0x00000008
PROPCTRL_HIDETIMECTRL = 0x00000010
#///////////////////////////////////////////////////////////////////////////
# DocuShare Records Management UI
#///////////////////////////////////////////////////////////////////////////
DSRMLIB_CLASSIFY_NEW = 0x00000001
DSRMLIB_CAN_DECLARE = 0x00000002

class MailAttachType:
	MailAttachType_None, MailAttachType_Attachment, MailAttachType_NativeMessage, MailAttachType_MailMessage = range(4)
	
# Module ids for GetDSClientModuleVersion.
class ModuleIDs: 
	DSCMODVER_SDK,DSCMODVER_DSNSX,DSCMODVER_DSMON,DSCMODVER_DSODMA,DSCMODVER_DSFIND,DSCMODVER_MESSAGING,DSCMODVER_PAPERPORTLINK = range(7)	
	
class DSXCOMPRESSIONMETHOD:
	DSXCOMPRESSIONMETHOD_UNKNOWN,DSXCOMPRESSIONMETHOD_CAB,DSXCOMPRESSIONMETHOD_ZIP_STORED,DSXCOMPRESSIONMETHOD_ZIP_DEFLATED_N,DSXCOMPRESSIONMETHOD_ZIP_DEFLATED_X,DSXCOMPRESSIONMETHOD_ZIP_DEFLATED_FAST,DSXCOMPRESSIONMETHOD_ZIP_DEFLATED_EXTRAFAST = range(7)
    
#///////////////////////////////////////////////////////////////////////////
# DSClient Support Library
# DSClientSDK version number (major and minor)
#///////////////////////////////////////////////////////////////////////////
# 0x00030006 - 3.1
# 0x00030007 - 3.1a/b
# 0x00030008 - 3.1c
# 0x00040000 - 4.0 and 4.0.1
# 0x00040001 - 4.0.1 update 1
# 0x00060502 - 6.5.2
