Back to index

d-push  2.0
mapidefs.php
Go to the documentation of this file.
00001 <?php
00002 /*
00003  * Copyright 2005 - 2012  Zarafa B.V.
00004  *
00005  * This program is free software: you can redistribute it and/or modify
00006  * it under the terms of the GNU Affero General Public License, version 3,
00007  * as published by the Free Software Foundation with the following additional
00008  * term according to sec. 7:
00009  *
00010  * According to sec. 7 of the GNU Affero General Public License, version
00011  * 3, the terms of the AGPL are supplemented with the following terms:
00012  *
00013  * "Zarafa" is a registered trademark of Zarafa B.V. The licensing of
00014  * the Program under the AGPL does not imply a trademark license.
00015  * Therefore any rights, title and interest in our trademarks remain
00016  * entirely with us.
00017  *
00018  * However, if you propagate an unmodified version of the Program you are
00019  * allowed to use the term "Zarafa" to indicate that you distribute the
00020  * Program. Furthermore you may use our trademarks where it is necessary
00021  * to indicate the intended purpose of a product or service provided you
00022  * use it in accordance with honest practices in industrial or commercial
00023  * matters.  If you want to propagate modified versions of the Program
00024  * under the name "Zarafa" or "Zarafa Server", you may only do so if you
00025  * have a written permission by Zarafa B.V. (to acquire a permission
00026  * please contact Zarafa at trademark@zarafa.com).
00027  *
00028  * The interactive user interface of the software displays an attribution
00029  * notice containing the term "Zarafa" and/or the logo of Zarafa.
00030  * Interactive user interfaces of unmodified and modified versions must
00031  * display Appropriate Legal Notices according to sec. 5 of the GNU
00032  * Affero General Public License, version 3, when you propagate
00033  * unmodified or modified versions of the Program. In accordance with
00034  * sec. 7 b) of the GNU Affero General Public License, version 3, these
00035  * Appropriate Legal Notices must retain the logo of Zarafa or display
00036  * the words "Initial Development by Zarafa" if the display of the logo
00037  * is not reasonably feasible for technical reasons. The use of the logo
00038  * of Zarafa in Legal Notices is allowed for unmodified and modified
00039  * versions of the software.
00040  *
00041  * This program is distributed in the hope that it will be useful,
00042  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00043  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00044  * GNU Affero General Public License for more details.
00045  *
00046  * You should have received a copy of the GNU Affero General Public License
00047  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00048  *
00049  */
00050 
00051 
00052 /* Resource types as defined in main.h of the mapi extension */
00053 define('RESOURCE_SESSION'                        ,'MAPI Session');
00054 define('RESOURCE_TABLE'                          ,'MAPI Table');
00055 define('RESOURCE_ROWSET'                         ,'MAPI Rowset');
00056 define('RESOURCE_MSGSTORE'                       ,'MAPI Message Store');
00057 define('RESOURCE_FOLDER'                         ,'MAPI Folder');
00058 define('RESOURCE_MESSAGE'                        ,'MAPI Message');
00059 define('RESOURCE_ATTACHMENT'                     ,'MAPI Attachment');
00060 
00061 
00062 /* Object type */
00063 
00064 define('MAPI_STORE'                              ,0x00000001);    /* Message Store */
00065 define('MAPI_ADDRBOOK'                           ,0x00000002);    /* Address Book */
00066 define('MAPI_FOLDER'                             ,0x00000003);    /* Folder */
00067 define('MAPI_ABCONT'                             ,0x00000004);    /* Address Book Container */
00068 define('MAPI_MESSAGE'                            ,0x00000005);    /* Message */
00069 define('MAPI_MAILUSER'                           ,0x00000006);    /* Individual Recipient */
00070 define('MAPI_ATTACH'                             ,0x00000007);    /* Attachment */
00071 define('MAPI_DISTLIST'                           ,0x00000008);    /* Distribution List Recipient */
00072 define('MAPI_PROFSECT'                           ,0x00000009);    /* Profile Section */
00073 define('MAPI_STATUS'                             ,0x0000000A);    /* Status Object */
00074 define('MAPI_SESSION'                            ,0x0000000B);    /* Session */
00075 define('MAPI_FORMINFO'                           ,0x0000000C);    /* Form Information */
00076 
00077 define('MV_FLAG'                                 ,0x1000);
00078 define('MV_INSTANCE'                             ,0x2000);
00079 define('MVI_FLAG'                                ,MV_FLAG | MV_INSTANCE);
00080 
00081 define('PT_UNSPECIFIED'                          ,  0);    /* (Reserved for interface use) type doesn't matter to caller */
00082 define('PT_NULL'                                 ,  1);    /* NULL property value */
00083 define('PT_I2'                                   ,  2);    /* Signed 16-bit value */
00084 define('PT_LONG'                                 ,  3);    /* Signed 32-bit value */
00085 define('PT_R4'                                   ,  4);    /* 4-byte floating point */
00086 define('PT_DOUBLE'                               ,  5);    /* Floating point double */
00087 define('PT_CURRENCY'                             ,  6);    /* Signed 64-bit int (decimal w/    4 digits right of decimal pt) */
00088 define('PT_APPTIME'                              ,  7);    /* Application time */
00089 define('PT_ERROR'                                , 10);    /* 32-bit error value */
00090 define('PT_BOOLEAN'                              , 11);    /* 16-bit boolean (non-zero true) */
00091 define('PT_OBJECT'                               , 13);    /* Embedded object in a property */
00092 define('PT_I8'                                   , 20);    /* 8-byte signed integer */
00093 define('PT_STRING8'                              , 30);    /* Null terminated 8-bit character string */
00094 define('PT_UNICODE'                              , 31);    /* Null terminated Unicode string */
00095 define('PT_SYSTIME'                              , 64);    /* FILETIME 64-bit int w/ number of 100ns periods since Jan 1,1601 */
00096 define('PT_CLSID'                                , 72);    /* OLE GUID */
00097 define('PT_BINARY'                               ,258);   /* Uninterpreted (counted byte array) */
00098 /* Changes are likely to these numbers, and to their structures. */
00099 
00100 /* Alternate property type names for ease of use */
00101 define('PT_SHORT'                                ,PT_I2);
00102 define('PT_I4'                                   ,PT_LONG);
00103 define('PT_FLOAT'                                ,PT_R4);
00104 define('PT_R8'                                   ,PT_DOUBLE);
00105 define('PT_LONGLONG'                             ,PT_I8);
00106 
00107 
00108 define('PT_TSTRING'                              ,PT_STRING8);
00109 
00110 
00111 
00112 define('PT_MV_I2'                                ,(MV_FLAG | PT_I2));
00113 define('PT_MV_LONG'                              ,(MV_FLAG | PT_LONG));
00114 define('PT_MV_R4'                                ,(MV_FLAG | PT_R4));
00115 define('PT_MV_DOUBLE'                            ,(MV_FLAG | PT_DOUBLE));
00116 define('PT_MV_CURRENCY'                          ,(MV_FLAG | PT_CURRENCY));
00117 define('PT_MV_APPTIME'                           ,(MV_FLAG | PT_APPTIME));
00118 define('PT_MV_SYSTIME'                           ,(MV_FLAG | PT_SYSTIME));
00119 define('PT_MV_STRING8'                           ,(MV_FLAG | PT_STRING8));
00120 define('PT_MV_BINARY'                            ,(MV_FLAG | PT_BINARY));
00121 define('PT_MV_UNICODE'                           ,(MV_FLAG | PT_UNICODE));
00122 define('PT_MV_CLSID'                             ,(MV_FLAG | PT_CLSID));
00123 define('PT_MV_I8'                                ,(MV_FLAG | PT_I8));
00124 
00125 define('PT_MV_TSTRING'                           ,PT_MV_STRING8);
00126 /* bit 0: set if descending, clear if ascending */
00127 
00128 define('TABLE_SORT_ASCEND'                       ,(0x00000000));
00129 define('TABLE_SORT_DESCEND'                      ,(0x00000001));
00130 define('TABLE_SORT_COMBINE'                      ,(0x00000002));
00131 
00132 define('MAPI_UNICODE'                            ,0x80000000);
00133 
00134 /* IMAPIFolder Interface --------------------------------------------------- */
00135 define('CONVENIENT_DEPTH'                        ,0x00000001);
00136 define('SEARCH_RUNNING'                          ,0x00000001);
00137 define('SEARCH_REBUILD'                          ,0x00000002);
00138 define('SEARCH_RECURSIVE'                        ,0x00000004);
00139 define('SEARCH_FOREGROUND'                       ,0x00000008);
00140 define('STOP_SEARCH'                             ,0x00000001);
00141 define('RESTART_SEARCH'                          ,0x00000002);
00142 define('RECURSIVE_SEARCH'                        ,0x00000004);
00143 define('SHALLOW_SEARCH'                          ,0x00000008);
00144 define('FOREGROUND_SEARCH'                       ,0x00000010);
00145 define('BACKGROUND_SEARCH'                       ,0x00000020);
00146 
00147 /* IMAPIFolder folder type (enum) */
00148 
00149 define('FOLDER_ROOT'                             ,0x00000000);
00150 define('FOLDER_GENERIC'                          ,0x00000001);
00151 define('FOLDER_SEARCH'                           ,0x00000002);
00152 
00153 /* CreateMessage */
00154 /****** MAPI_DEFERRED_ERRORS    ((ULONG) 0x00000008) below */
00155 /****** MAPI_ASSOCIATED         ((ULONG) 0x00000040) below */
00156 
00157 /* CopyMessages */
00158 
00159 define('MESSAGE_MOVE'                            ,0x00000001);
00160 define('MESSAGE_DIALOG'                          ,0x00000002);
00161 /****** MAPI_DECLINE_OK         ((ULONG) 0x00000004) above */
00162 
00163 /* CreateFolder */
00164 
00165 define('OPEN_IF_EXISTS'                          ,0x00000001);
00166 /****** MAPI_DEFERRED_ERRORS    ((ULONG) 0x00000008) below */
00167 /****** MAPI_UNICODE            ((ULONG) 0x80000000) above */
00168 
00169 /* DeleteFolder */
00170 
00171 define('DEL_MESSAGES'                            ,0x00000001);
00172 define('FOLDER_DIALOG'                           ,0x00000002);
00173 define('DEL_FOLDERS'                             ,0x00000004);
00174 
00175 /* EmptyFolder */
00176 define('DEL_ASSOCIATED'                          ,0x00000008);
00177 
00178 /* CopyFolder */
00179 
00180 define('FOLDER_MOVE'                             ,0x00000001);
00181 /****** FOLDER_DIALOG           ((ULONG) 0x00000002) above */
00182 /****** MAPI_DECLINE_OK         ((ULONG) 0x00000004) above */
00183 define('COPY_SUBFOLDERS'                         ,0x00000010);
00184 /****** MAPI_UNICODE            ((ULONG) 0x80000000) above */
00185 
00186 
00187 /* SetReadFlags */
00188 
00189 define('SUPPRESS_RECEIPT'                        ,0x00000001);
00190 /****** FOLDER_DIALOG           ((ULONG) 0x00000002) above */
00191 define('CLEAR_READ_FLAG'                         ,0x00000004);
00192 /****** MAPI_DEFERRED_ERRORS    ((ULONG) 0x00000008) below */
00193 define('GENERATE_RECEIPT_ONLY'                   ,0x00000010);
00194 define('CLEAR_RN_PENDING'                        ,0x00000020);
00195 define('CLEAR_NRN_PENDING'                       ,0x00000040);
00196 
00197 /* Flags defined in PR_MESSAGE_FLAGS */
00198 
00199 define('MSGFLAG_READ'                            ,0x00000001);
00200 define('MSGFLAG_UNMODIFIED'                      ,0x00000002);
00201 define('MSGFLAG_SUBMIT'                          ,0x00000004);
00202 define('MSGFLAG_UNSENT'                          ,0x00000008);
00203 define('MSGFLAG_HASATTACH'                       ,0x00000010);
00204 define('MSGFLAG_FROMME'                          ,0x00000020);
00205 define('MSGFLAG_ASSOCIATED'                      ,0x00000040);
00206 define('MSGFLAG_RESEND'                          ,0x00000080);
00207 define('MSGFLAG_RN_PENDING'                      ,0x00000100);
00208 define('MSGFLAG_NRN_PENDING'                     ,0x00000200);
00209 
00210 /* GetMessageStatus */
00211 
00212 define('MSGSTATUS_HIGHLIGHTED'                   ,0x00000001);
00213 define('MSGSTATUS_TAGGED'                        ,0x00000002);
00214 define('MSGSTATUS_HIDDEN'                        ,0x00000004);
00215 define('MSGSTATUS_DELMARKED'                     ,0x00000008);
00216 
00217 /* Bits for remote message status */
00218 
00219 define('MSGSTATUS_REMOTE_DOWNLOAD'               ,0x00001000);
00220 define('MSGSTATUS_REMOTE_DELETE'                 ,0x00002000);
00221 
00222 /* SaveContentsSort */
00223 
00224 define('RECURSIVE_SORT'                          ,0x00000002);
00225 
00226 /* PR_STATUS property */
00227 
00228 define('FLDSTATUS_HIGHLIGHTED'                   ,0x00000001);
00229 define('FLDSTATUS_TAGGED'                        ,0x00000002);
00230 define('FLDSTATUS_HIDDEN'                        ,0x00000004);
00231 define('FLDSTATUS_DELMARKED'                     ,0x00000008);
00232 
00233 
00234 /* IMAPIStatus Interface --------------------------------------------------- */
00235 
00236 /* Values for PR_RESOURCE_TYPE, _METHODS, _FLAGS */
00237 
00238 define('MAPI_STORE_PROVIDER'                     , 33);    /* Message Store */
00239 define('MAPI_AB'                                 , 34);    /* Address Book */
00240 define('MAPI_AB_PROVIDER'                        , 35);    /* Address Book Provider */
00241 define('MAPI_TRANSPORT_PROVIDER'                 , 36);    /* Transport Provider */
00242 define('MAPI_SPOOLER'                            , 37);    /* Message Spooler */
00243 define('MAPI_PROFILE_PROVIDER'                   , 38);    /* Profile Provider */
00244 define('MAPI_SUBSYSTEM'                          , 39);    /* Overall Subsystem Status */
00245 define('MAPI_HOOK_PROVIDER'                      , 40);    /* Spooler Hook */
00246 define('STATUS_VALIDATE_STATE'                   ,0x00000001);
00247 define('STATUS_SETTINGS_DIALOG'                  ,0x00000002);
00248 define('STATUS_CHANGE_PASSWORD'                  ,0x00000004);
00249 define('STATUS_FLUSH_QUEUES'                     ,0x00000008);
00250 
00251 define('STATUS_DEFAULT_OUTBOUND'                 ,0x00000001);
00252 define('STATUS_DEFAULT_STORE'                    ,0x00000002);
00253 define('STATUS_PRIMARY_IDENTITY'                 ,0x00000004);
00254 define('STATUS_SIMPLE_STORE'                     ,0x00000008);
00255 define('STATUS_XP_PREFER_LAST'                   ,0x00000010);
00256 define('STATUS_NO_PRIMARY_IDENTITY'              ,0x00000020);
00257 define('STATUS_NO_DEFAULT_STORE'                 ,0x00000040);
00258 define('STATUS_TEMP_SECTION'                     ,0x00000080);
00259 define('STATUS_OWN_STORE'                        ,0x00000100);
00260 define('STATUS_NEED_IPM_TREE'                    ,0x00000800);
00261 define('STATUS_PRIMARY_STORE'                    ,0x00001000);
00262 define('STATUS_SECONDARY_STORE'                  ,0x00002000);
00263 
00264 
00265 /* ------------ */
00266 /* Random flags */
00267 
00268 /* Flag for deferred error */
00269 define('MAPI_DEFERRED_ERRORS'                    ,0x00000008);
00270 
00271 /* Flag for creating and using Folder Associated Information Messages */
00272 define('MAPI_ASSOCIATED'                         ,0x00000040);
00273 
00274 /* Flags for OpenMessageStore() */
00275 
00276 define('MDB_NO_DIALOG'                           ,0x00000001);
00277 define('MDB_WRITE'                               ,0x00000004);
00278 /****** MAPI_DEFERRED_ERRORS    ((ULONG) 0x00000008) above */
00279 /****** MAPI_BEST_ACCESS        ((ULONG) 0x00000010) above */
00280 define('MDB_TEMPORARY'                           ,0x00000020);
00281 define('MDB_NO_MAIL'                             ,0x00000080);
00282 
00283 /* Flags for OpenAddressBook */
00284 
00285 define('AB_NO_DIALOG'                            ,0x00000001);
00286 
00287 /* ((ULONG) 0x00000001 is not a valid flag on ModifyRecipients. */
00288 define('MODRECIP_ADD'                            ,0x00000002);
00289 define('MODRECIP_MODIFY'                         ,0x00000004);
00290 define('MODRECIP_REMOVE'                         ,0x00000008);
00291 
00292 
00293 define('MAPI_ORIG'                               ,0);          /* Recipient is message originator          */
00294 define('MAPI_TO'                                 ,1);          /* Recipient is a primary recipient         */
00295 define('MAPI_CC'                                 ,2);          /* Recipient is a copy recipient            */
00296 define('MAPI_BCC'                                ,3);          /* Recipient is blind copy recipient        */
00297 
00298 
00299 /* IAttach Interface ------------------------------------------------------- */
00300 
00301 /* IAttach attachment methods: PR_ATTACH_METHOD values */
00302 
00303 define('NO_ATTACHMENT'                           ,0x00000000);
00304 define('ATTACH_BY_VALUE'                         ,0x00000001);
00305 define('ATTACH_BY_REFERENCE'                     ,0x00000002);
00306 define('ATTACH_BY_REF_RESOLVE'                   ,0x00000003);
00307 define('ATTACH_BY_REF_ONLY'                      ,0x00000004);
00308 define('ATTACH_EMBEDDED_MSG'                     ,0x00000005);
00309 define('ATTACH_OLE'                              ,0x00000006);
00310 
00311 /* OpenProperty  - ulFlags */
00312 define('MAPI_MODIFY'                             ,0x00000001);
00313 define('MAPI_CREATE'                             ,0x00000002);
00314 define('STREAM_APPEND'                           ,0x00000004);
00315 /****** MAPI_DEFERRED_ERRORS    ((ULONG) 0x00000008) below */
00316 
00317 
00318 /* PR_PRIORITY values */
00319 define('PRIO_URGENT'                             , 1);
00320 define('PRIO_NORMAL'                             , 0);
00321 define('PRIO_NONURGENT'                          ,-1);
00322 
00323 /* PR_SENSITIVITY values */
00324 define('SENSITIVITY_NONE'                        ,0x00000000);
00325 define('SENSITIVITY_PERSONAL'                    ,0x00000001);
00326 define('SENSITIVITY_PRIVATE'                     ,0x00000002);
00327 define('SENSITIVITY_COMPANY_CONFIDENTIAL'        ,0x00000003);
00328 
00329 /* PR_IMPORTANCE values */
00330 define('IMPORTANCE_LOW'                          ,0);
00331 define('IMPORTANCE_NORMAL'                       ,1);
00332 define('IMPORTANCE_HIGH'                         ,2);
00333 
00334 /* Stream interace values */
00335 define('STREAM_SEEK_SET'                         ,0);
00336 define('STREAM_SEEK_CUR'                         ,1);
00337 define('STREAM_SEEK_END'                         ,2);
00338 
00339 define('SHOW_SOFT_DELETES'                       ,0x00000002);
00340 define('DELETE_HARD_DELETE'                      ,0x00000010);
00341 
00342 /*
00343  *    The following flags are used to indicate to the client what access
00344  *    level is permissible in the object. They appear in PR_ACCESS in
00345  *    message and folder objects as well as in contents and associated
00346  *    contents tables
00347  */
00348 define('MAPI_ACCESS_MODIFY'                      ,0x00000001);
00349 define('MAPI_ACCESS_READ'                        ,0x00000002);
00350 define('MAPI_ACCESS_DELETE'                      ,0x00000004);
00351 define('MAPI_ACCESS_CREATE_HIERARCHY'            ,0x00000008);
00352 define('MAPI_ACCESS_CREATE_CONTENTS'             ,0x00000010);
00353 define('MAPI_ACCESS_CREATE_ASSOCIATED'           ,0x00000020);
00354 
00355 define('MAPI_SEND_NO_RICH_INFO'                  ,0x00010000);
00356 
00357 /* flags for PR_STORE_SUPPORT_MASK */
00358 define('STORE_ANSI_OK'                           ,0x00020000); // The message store supports properties containing ANSI (8-bit) characters.
00359 define('STORE_ATTACH_OK'                         ,0x00000020); // The message store supports attachments (OLE or non-OLE) to messages.
00360 define('STORE_CATEGORIZE_OK'                     ,0x00000400); // The message store supports categorized views of tables.
00361 define('STORE_CREATE_OK'                         ,0x00000010); // The message store supports creation of new messages.
00362 define('STORE_ENTRYID_UNIQUE'                    ,0x00000001); // Entry identifiers for the objects in the message store are unique, that is, never reused during the life of the store.
00363 define('STORE_HTML_OK'                           ,0x00010000); // The message store supports Hypertext Markup Language (HTML) messages, stored in the PR_BODY_HTML property. Note that STORE_HTML_OK is not defined in versions of MAPIDEFS.H included with Microsoft� Exchange 2000 Server and earlier. If your development environment uses a MAPIDEFS.H file that does not include STORE_HTML_OK, use the value 0x00010000 instead.
00364 define('STORE_LOCALSTORE'                        ,0x00080000); // This flag is reserved and should not be used.
00365 define('STORE_MODIFY_OK'                         ,0x00000008); // The message store supports modification of its existing messages.
00366 define('STORE_MV_PROPS_OK'                       ,0x00000200); // The message store supports multivalued properties, guarantees the stability of value order in a multivalued property throughout a save operation, and supports instantiation of multivalued properties in tables.
00367 define('STORE_NOTIFY_OK'                         ,0x00000100); // The message store supports notifications.
00368 define('STORE_OLE_OK'                            ,0x00000040); // The message store supports OLE attachments. The OLE data is accessible through an IStorage interface, such as that available through the PR_ATTACH_DATA_OBJ property.
00369 define('STORE_PUBLIC_FOLDERS'                    ,0x00004000); // The folders in this store are public (multi-user), not private (possibly multi-instance but not multi-user).
00370 define('STORE_READONLY'                          ,0x00000002); // All interfaces for the message store have a read-only access level.
00371 define('STORE_RESTRICTION_OK'                    ,0x00001000); // The message store supports restrictions.
00372 define('STORE_RTF_OK'                            ,0x00000800); // The message store supports Rich Text Format (RTF) messages, usually stored compressed, and the store itself keeps PR_BODY and PR_RTF_COMPRESSED synchronized.
00373 define('STORE_SEARCH_OK'                         ,0x00000004); // The message store supports search-results folders.
00374 define('STORE_SORT_OK'                           ,0x00002000); // The message store supports sorting views of tables.
00375 define('STORE_SUBMIT_OK'                         ,0x00000080); // The message store supports marking a message for submission.
00376 define('STORE_UNCOMPRESSED_RTF'                  ,0x00008000); // The message store supports storage of Rich Text Format (RTF) messages in uncompressed form. An uncompressed RTF stream is identified by the value dwMagicUncompressedRTF in the stream header. The dwMagicUncompressedRTF value is defined in the RTFLIB.H file.
00377 define('STORE_UNICODE_OK'                        ,0x00040000); // The message store supports properties containing Unicode characters.
00378 
00379 
00380 /*  PR_DISPLAY_TYPEs                 */
00381 /*  For address book contents tables */
00382 define('DT_MAILUSER'                             ,0x00000000);
00383 define('DT_DISTLIST'                             ,0x00000001);
00384 define('DT_FORUM'                                ,0x00000002);
00385 define('DT_AGENT'                                ,0x00000003);
00386 define('DT_ORGANIZATION'                         ,0x00000004);
00387 define('DT_PRIVATE_DISTLIST'                     ,0x00000005);
00388 define('DT_REMOTE_MAILUSER'                      ,0x00000006);
00389 
00390 /* For address book hierarchy tables */
00391 define('DT_MODIFIABLE'                           ,0x00010000);
00392 define('DT_GLOBAL'                               ,0x00020000);
00393 define('DT_LOCAL'                                ,0x00030000);
00394 define('DT_WAN'                                  ,0x00040000);
00395 define('DT_NOT_SPECIFIC'                         ,0x00050000);
00396 
00397 /* For folder hierarchy tables */
00398 define('DT_FOLDER'                               ,0x01000000);
00399 define('DT_FOLDER_LINK'                          ,0x02000000);
00400 define('DT_FOLDER_SPECIAL'                       ,0x04000000);
00401 
00402 /* PR_DISPLAY_TYPE_EX values */
00403 define('DT_ROOM'                                 ,0x00000007);
00404 define('DT_EQUIPMENT'                            ,0x00000008);
00405 define('DT_SEC_DISTLIST'                         ,0x00000009);
00406 
00407 /* PR_DISPLAY_TYPE_EX flags */
00408 define('DTE_FLAG_REMOTE_VALID'                   ,0x80000000);
00409 define('DTE_FLAG_ACL_CAPABLE'                    ,0x40000000); /* on for DT_MAILUSER and DT_SEC_DISTLIST */
00410 define('DTE_MASK_REMOTE'                         ,0x0000FF00);
00411 define('DTE_MASK_LOCAL'                          ,0x000000FF);
00412 
00413 /* OlResponseStatus */
00414 define('olResponseNone'                          ,0);
00415 define('olResponseOrganized'                     ,1);
00416 define('olResponseTentative'                     ,2);
00417 define('olResponseAccepted'                      ,3);
00418 define('olResponseDeclined'                      ,4);
00419 define('olResponseNotResponded'                  ,5);
00420 
00421 /* OlRecipientTrackStatus to set PR_RECIPIENT_TRACKSTATUS in recipient table
00422  * Value of the recipient trackstatus are same as OlResponseStatus but
00423  * recipient trackstatus doesn't have olResponseOrganized and olResponseNotResponded
00424  * and olResponseNone has different interpretation with PR_RECIPIENT_TRACKSTATUS
00425  * so to avoid confusions we have defined new constants.
00426 */
00427 define('olRecipientTrackStatusNone'              ,0);
00428 define('olRecipientTrackStatusTentative'         ,2);
00429 define('olRecipientTrackStatusAccepted'          ,3);
00430 define('olRecipientTrackStatusDeclined'          ,4);
00431 
00432 /* OlMeetingStatus */
00433 define('olNonMeeting'                            ,0);
00434 define('olMeeting'                               ,1);
00435 define('olMeetingReceived'                       ,3);
00436 define('olMeetingCanceled'                       ,5);
00437 define('olMeetingReceivedAndCanceled'            ,7);
00438 
00439 /*    OlMeetingResponse */
00440 define('olMeetingTentative'                      ,2);
00441 define('olMeetingAccepted'                       ,3);
00442 define('olMeetingDeclined'                       ,4);
00443 
00444 /* OL Attendee type */
00445 define('olAttendeeRequired'                      ,1);
00446 define('olAttendeeOptional'                      ,2);
00447 define('olAttendeeResource'                      ,3);
00448 
00449 /* task status */
00450 define('olTaskNotStarted'                        ,0);
00451 define('olTaskInProgress'                        ,1);
00452 define('olTaskComplete'                          ,2);
00453 define('olTaskWaiting'                           ,3);
00454 define('olTaskDeferred'                          ,4);
00455 
00456 /* restrictions */
00457 define('RES_AND'                                 ,0);
00458 define('RES_OR'                                  ,1);
00459 define('RES_NOT'                                 ,2);
00460 define('RES_CONTENT'                             ,3);
00461 define('RES_PROPERTY'                            ,4);
00462 define('RES_COMPAREPROPS'                        ,5);
00463 define('RES_BITMASK'                             ,6);
00464 define('RES_SIZE'                                ,7);
00465 define('RES_EXIST'                               ,8);
00466 define('RES_SUBRESTRICTION'                      ,9);
00467 define('RES_COMMENT'                             ,10);
00468 
00469 /* restriction compares */
00470 define('RELOP_LT'                                ,0);
00471 define('RELOP_LE'                                ,1);
00472 define('RELOP_GT'                                ,2);
00473 define('RELOP_GE'                                ,3);
00474 define('RELOP_EQ'                                ,4);
00475 define('RELOP_NE'                                ,5);
00476 define('RELOP_RE'                                ,6);
00477 
00478 /* string 'fuzzylevel' */
00479 define('FL_FULLSTRING'                           ,0x00000000);
00480 define('FL_SUBSTRING'                            ,0x00000001);
00481 define('FL_PREFIX'                               ,0x00000002);
00482 define('FL_IGNORECASE'                           ,0x00010000);
00483 define('FL_IGNORENONSPACE'                       ,0x00020000);
00484 define('FL_LOOSE'                                ,0x00040000);
00485 
00486 /* bitmask restriction types */
00487 define('BMR_EQZ'                                 ,0x00000000);
00488 define('BMR_NEZ'                                 ,0x00000001);
00489 
00490 /* array index values of restrictions -- same values are used in php-ext/main.cpp::PHPArraytoSRestriction() */
00491 define('VALUE'                                   ,0);        // propval
00492 define('RELOP'                                   ,1);        // compare method
00493 define('FUZZYLEVEL'                              ,2);        // string search flags
00494 define('CB'                                      ,3);        // size restriction
00495 define('ULTYPE'                                  ,4);        // bit mask restriction type BMR_xxx
00496 define('ULMASK'                                  ,5);        // bitmask
00497 define('ULPROPTAG'                               ,6);        // property
00498 define('ULPROPTAG1'                              ,7);        // RES_COMPAREPROPS 1st property
00499 define('ULPROPTAG2'                              ,8);        // RES_COMPAREPROPS 2nd property
00500 define('PROPS'                                   ,9);        // RES_COMMENT properties
00501 define('RESTRICTION'                             ,10);       // RES_COMMENT and RES_SUBRESTRICTION restriction
00502 
00503 /* GUID's for PR_MDB_PROVIDER */
00504 define("ZARAFA_SERVICE_GUID"                     ,makeGuid("{3C253DCA-D227-443C-94FE-425FAB958C19}"));    // default store
00505 define("ZARAFA_STORE_PUBLIC_GUID"                ,makeGuid("{D47F4A09-D3BD-493C-B2FC-3C90BBCB48D4}"));    // public store
00506 define("ZARAFA_STORE_DELEGATE_GUID"              ,makeGuid("{7C7C1085-BC6D-4E53-9DAB-8A53F8DEF808}"));    // other store
00507 define('ZARAFA_STORE_ARCHIVER_GUID'              ,makeGuid("{BC8953AD-2E3F-4172-9404-896FF459870F}"));    // archive store
00508 
00509 /* global profile section guid */
00510 define('pbGlobalProfileSectionGuid'              ,makeGuid("{C8B0DB13-05AA-1A10-9BB0-00AA002FC45A}"));
00511 
00512 /* Zarafa Contacts provider GUID */
00513 define('ZARAFA_CONTACTS_GUID'                    ,makeGuid("{30047F72-92E3-DA4F-B86A-E52A7FE46571}"));
00514 
00515 /* Permissions */
00516 
00517 // Get permission type
00518 define('ACCESS_TYPE_DENIED'                      ,1);
00519 define('ACCESS_TYPE_GRANT'                       ,2);
00520 define('ACCESS_TYPE_BOTH'                        ,3);
00521 
00522 define('ecRightsNone'                            ,0x00000000);
00523 define('ecRightsReadAny'                         ,0x00000001);
00524 define('ecRightsCreate'                          ,0x00000002);
00525 define('ecRightsEditOwned'                       ,0x00000008);
00526 define('ecRightsDeleteOwned'                     ,0x00000010);
00527 define('ecRightsEditAny'                         ,0x00000020);
00528 define('ecRightsDeleteAny'                       ,0x00000040);
00529 define('ecRightsCreateSubfolder'                 ,0x00000080);
00530 define('ecRightsFolderAccess'                    ,0x00000100);
00531 //define('ecrightsContact'                       ,0x00000200);
00532 define('ecRightsFolderVisible'                   ,0x00000400);
00533 
00534 define('ecRightsAll'                             ,ecRightsReadAny | ecRightsCreate | ecRightsEditOwned | ecRightsDeleteOwned | ecRightsEditAny | ecRightsDeleteAny | ecRightsCreateSubfolder | ecRightsFolderAccess | ecRightsFolderVisible);
00535 define('ecRightsFullControl'                     ,ecRightsReadAny | ecRightsCreate | ecRightsEditOwned | ecRightsDeleteOwned | ecRightsEditAny | ecRightsDeleteAny | ecRightsCreateSubfolder | ecRightsFolderVisible);
00536 define('ecRightsDefault'                         ,ecRightsNone | ecRightsFolderVisible);
00537 define('ecRightsDefaultPublic'                   ,ecRightsReadAny | ecRightsFolderVisible);
00538 define('ecRightsAdmin'                           ,0x00001000);
00539 define('ecRightsAllMask'                         ,0x000015FB);
00540 
00541 // Right change indication
00542 define('RIGHT_NORMAL'                            ,0x00);
00543 define('RIGHT_NEW'                               ,0x01);
00544 define('RIGHT_MODIFY'                            ,0x02);
00545 define('RIGHT_DELETED'                           ,0x04);
00546 define('RIGHT_AUTOUPDATE_DENIED'                 ,0x08);
00547 
00548 // IExchangeModifyTable: defines for rules
00549 define('ROWLIST_REPLACE'                         ,0x0001);
00550 define('ROW_ADD'                                 ,0x0001);
00551 define('ROW_MODIFY'                              ,0x0002);
00552 define('ROW_REMOVE'                              ,0x0004);
00553 define('ROW_EMPTY'                               ,(ROW_ADD|ROW_REMOVE));
00554 
00555 // new property types
00556 define('PT_SRESTRICTION'                         ,0x00FD);
00557 define('PT_ACTIONS'                              ,0x00FE);
00558 // unused, I believe
00559 define('PT_FILE_HANDLE'                          ,0x0103);
00560 define('PT_FILE_EA'                              ,0x0104);
00561 define('PT_VIRTUAL'                              ,0x0105);
00562 
00563 // rules state
00564 define('ST_DISABLED'                             ,0x0000);
00565 define('ST_ENABLED'                              ,0x0001);
00566 define('ST_ERROR'                                ,0x0002);
00567 define('ST_ONLY_WHEN_OOF'                        ,0x0004);
00568 define('ST_KEEP_OOF_HIST'                        ,0x0008);
00569 define('ST_EXIT_LEVEL'                           ,0x0010);
00570 define('ST_SKIP_IF_SCL_IS_SAFE'                  ,0x0020);
00571 define('ST_RULE_PARSE_ERROR'                     ,0x0040);
00572 define('ST_CLEAR_OOF_HIST'                       ,0x80000000);
00573 
00574 // action types
00575 define('OP_MOVE'                                 ,1);
00576 define('OP_COPY'                                 ,2);
00577 define('OP_REPLY'                                ,3);
00578 define('OP_OOF_REPLY'                            ,4);
00579 define('OP_DEFER_ACTION'                         ,5);
00580 define('OP_BOUNCE'                               ,6);
00581 define('OP_FORWARD'                              ,7);
00582 define('OP_DELEGATE'                             ,8);
00583 define('OP_TAG'                                  ,9);
00584 define('OP_DELETE'                               ,10);
00585 define('OP_MARK_AS_READ'                         ,11);
00586 
00587 // for OP_REPLY
00588 define('DO_NOT_SEND_TO_ORIGINATOR'               ,1);
00589 define('STOCK_REPLY_TEMPLATE'                    ,2);
00590 
00591 // for OP_FORWARD
00592 define('FWD_PRESERVE_SENDER'                     ,1);
00593 define('FWD_DO_NOT_MUNGE_MSG'                    ,2);
00594 define('FWD_AS_ATTACHMENT'                       ,4);
00595 
00596 // scBounceCodevalues
00597 define('BOUNCE_MESSAGE_SIZE_TOO_LARGE'           ,13);
00598 define('BOUNCE_FORMS_MISMATCH'                   ,31);
00599 define('BOUNCE_ACCESS_DENIED'                    ,38);
00600 
00601 // Free/busystatus
00602 define('fbFree'                                  ,0);
00603 define('fbTentative'                             ,1);
00604 define('fbBusy'                                  ,2);
00605 define('fbOutOfOffice'                           ,3);
00606 
00607 /* ICS flags */
00608 
00609 // For Synchronize()
00610 define('SYNC_UNICODE'                            ,0x01);
00611 define('SYNC_NO_DELETIONS'                       ,0x02);
00612 define('SYNC_NO_SOFT_DELETIONS'                  ,0x04);
00613 define('SYNC_READ_STATE'                         ,0x08);
00614 define('SYNC_ASSOCIATED'                         ,0x10);
00615 define('SYNC_NORMAL'                             ,0x20);
00616 define('SYNC_NO_CONFLICTS'                       ,0x40);
00617 define('SYNC_ONLY_SPECIFIED_PROPS'               ,0x80);
00618 define('SYNC_NO_FOREIGN_KEYS'                    ,0x100);
00619 define('SYNC_LIMITED_IMESSAGE'                   ,0x200);
00620 define('SYNC_CATCHUP'                            ,0x400);
00621 define('SYNC_NEW_MESSAGE'                        ,0x800);         // only applicable to ImportMessageChange()
00622 define('SYNC_MSG_SELECTIVE'                      ,0x1000);        // Used internally.      Will reject if used by clients.
00623 define('SYNC_BEST_BODY'                          ,0x2000);
00624 define('SYNC_IGNORE_SPECIFIED_ON_ASSOCIATED'     ,0x4000);
00625 define('SYNC_PROGRESS_MODE'                      ,0x8000);        // AirMapi progress mode
00626 define('SYNC_FXRECOVERMODE'                      ,0x10000);
00627 define('SYNC_DEFER_CONFIG'                       ,0x20000);
00628 define('SYNC_FORCE_UNICODE'                      ,0x40000);       // Forces server to return Unicode properties
00629 
00630 define('EMS_AB_ADDRESS_LOOKUP'                   ,0x00000001);    // Flag for resolvename to resolve only exact matches
00631 
00632 define('TBL_BATCH'                               ,0x00000002);    // Batch multiple table commands
00633 
00634 /* Flags for recipients in exceptions */
00635 define('recipSendable'                           ,0x00000001);    // sendable attendee.
00636 define('recipOrganizer'                          ,0x00000002);    // meeting organizer
00637 define('recipExceptionalResponse'                ,0x00000010);    // attendee gave a response for the exception
00638 define('recipExceptionalDeleted'                 ,0x00000020);    // recipientRow exists, but it is treated as if the corresponding recipient is deleted from meeting
00639 define('recipOriginal'                           ,0x00000100);    // recipient is an original Attendee
00640 define('recipReserved'                           ,0x00000200);
00641 
00642 /* Flags which indicates type of Meeting Object */
00643 define('mtgEmpty'                                ,0x00000000);    // Unspecified.
00644 define('mtgRequest'                              ,0x00000001);    // Initial meeting request.
00645 define('mtgFull'                                 ,0x00010000);    // Full update.
00646 define('mtgInfo'                                 ,0x00020000);    // Informational update.
00647 define('mtgOutOfDate'                            ,0x00080000);    // A newer Meeting Request object or Meeting Update object was received after this one.
00648 define('mtgDelegatorCopy'                        ,0x00100000);    // This is set on the delegator's copy when a delegate will handle meeting-related objects.
00649 
00650 define('MAPI_ONE_OFF_UNICODE'                    ,0x8000);        // the flag that defines whether the embedded strings are Unicode in one off entryids.
00651 define('MAPI_ONE_OFF_NO_RICH_INFO'               ,0x0001);        // the flag that specifies whether the recipient gets TNEF or not.
00652 
00653 /* Mask flags for mapi_msgstore_advise */
00654 define('fnevCriticalError'                       ,0x00000001);
00655 define('fnevNewMail'                             ,0x00000002);
00656 define('fnevObjectCreated'                       ,0x00000004);
00657 define('fnevObjectDeleted'                       ,0x00000008);
00658 define('fnevObjectModified'                      ,0x00000010);
00659 define('fnevObjectMoved'                         ,0x00000020);
00660 define('fnevObjectCopied'                        ,0x00000040);
00661 define('fnevSearchComplete'                      ,0x00000080);
00662 define('fnevTableModified'                       ,0x00000100);
00663 define('fnevStatusObjectModified'                ,0x00000200);
00664 define('fnevReservedForMapi'                     ,0x40000000);
00665 define('fnevExtended'                            ,0x80000000);
00666 
00667 ?>