freebusy.c File Reference

Convenient API to access FreeBusy. More...

#include "libmapi/libmapi.h"
#include "libmapi/libmapi_private.h"
#include <ctype.h>

Functions

_PUBLIC_ int GetFreeBusyYear (const uint32_t *publish_start)
 
_PUBLIC_ enum MAPISTATUS GetUserFreeBusyData (mapi_object_t *obj_store, const char *recipient, struct SRow *pSRow)
 
_PUBLIC_ enum MAPISTATUS IsFreeBusyConflict (mapi_object_t *obj_store, struct FILETIME *date, bool *conflict)
 

Detailed Description

Convenient API to access FreeBusy.

Function Documentation

_PUBLIC_ int GetFreeBusyYear ( const uint32_t *  publish_start)

Return the year associated with the FreeBusy start range

Parameters
publish_startpointer to the publish start integer
Returns
a valid year on success, otherwise 0

Referenced by IsFreeBusyConflict().

_PUBLIC_ enum MAPISTATUS GetUserFreeBusyData ( mapi_object_t obj_store,
const char *  recipient,
struct SRow *  pSRow 
)

Retrieve FreeBusy data associated with the specified recipient

Parameters
obj_storepointer to the public folder MAPI object
recipientname of the recipient to fetch freebusy data
pSRowpointer to the returned properties
Note
The function returns a SRow structure with the following property tags:
  1. PR_NORMALIZED_SUBJECT
  2. PR_FREEBUSY_RANGE_TIMESTAMP
  3. PR_FREEBUSY_PUBLISH_START
  4. PR_FREEBUSY_PUBLISH_END
  5. PR_SCHDINFO_MONTHS_MERGED
  6. PR_SCHDINFO_FREEBUSY_MERGED
  7. PR_SCHDINFO_MONTHS_TENTATIVE
  8. PR_SCHDINFO_FREEBUSY_TENTATIVE
  9. PR_SCHDINFO_MONTHS_BUSY
  10. PR_SCHDINFO_FREEBUSY_BUSY
  11. PR_SCHDINFO_MONTHS_OOF
  12. PR_SCHDINFO_FREEBUSY_OOF
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References FindRow(), FREEBUSY_FOLDER, FREEBUSY_USER, get_PropertyValue_PropertyRowSet_data(), get_SPropValue_SRowSet_data(), GetABRecipientInfo(), GetContentsTable(), GetDefaultPublicFolder(), GetHierarchyTable(), GetProps(), mapi_object_get_session(), mapi_object_init(), mapi_object_release(), MAPIFreeBuffer(), olFolderPublicFreeBusyRoot, OPENCHANGE_RETVAL_IF, OpenFolder(), OpenMessage(), ORG, ORG_UNIT, PR_ADDRBOOK_MID, PR_DISPLAY_NAME, PR_EMAIL_ADDRESS_UNICODE, PR_FID, PR_FREEBUSY_PUBLISH_END, PR_FREEBUSY_PUBLISH_START, PR_FREEBUSY_RANGE_TIMESTAMP, PR_INSTANCE_NUM, PR_MID, PR_NORMALIZED_SUBJECT, PR_SCHDINFO_FREEBUSY_BUSY, PR_SCHDINFO_FREEBUSY_MERGED, PR_SCHDINFO_FREEBUSY_OOF, PR_SCHDINFO_FREEBUSY_TENTATIVE, PR_SCHDINFO_MONTHS_BUSY, PR_SCHDINFO_MONTHS_MERGED, PR_SCHDINFO_MONTHS_OOF, PR_SCHDINFO_MONTHS_TENTATIVE, RES_PROPERTY, set_SPropTagArray(), SetColumns(), SortTable(), and x500_get_dn_element().

Referenced by IsFreeBusyConflict().

_PUBLIC_ enum MAPISTATUS IsFreeBusyConflict ( mapi_object_t obj_store,
struct FILETIME *  date,
bool *  conflict 
)

Check if a date conflicts with existing FreeBusy Busy/Out Of Office events

Parameters
obj_storepointer to the public folder MAPI object
datepointer to the date to check
conflictpointer to the returned boolean value
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References find_SPropValue_data(), GetFreeBusyYear(), GetUserFreeBusyData(), mapi_object_get_session(), OPENCHANGE_RETVAL_IF, PR_FREEBUSY_PUBLISH_START, PR_SCHDINFO_FREEBUSY_MERGED, PR_SCHDINFO_MONTHS_MERGED, mapi_session::profile, and mapi_profile::username.


Creative Commons License
Creative Commons Attribution icon Creative Commons Share Alike icon
This content is licensed under the Creative Commons
Attribution ShareAlike License v. 3.0:
http://creativecommons.org/licenses/by-sa/3.0/