libmapi/cdo_mapi.c File Reference

MAPI subsystem related operations. More...

#include <libmapi/libmapi.h>

Functions

_PUBLIC_ enum MAPISTATUS GetLoadparmContext (struct loadparm_context **lp_ctx)
_PUBLIC_ enum MAPISTATUS MAPIInitialize (const char *profiledb)
_PUBLIC_ enum MAPISTATUS MapiLogonEx (struct mapi_session **session, const char *profname, const char *password)
_PUBLIC_ enum MAPISTATUS MapiLogonProvider (struct mapi_session **session, const char *profname, const char *password, enum PROVIDER_ID provider)
_PUBLIC_ void MAPIUninitialize (void)
_PUBLIC_ enum MAPISTATUS SetMAPIDebugLevel (uint32_t level)
_PUBLIC_ enum MAPISTATUS SetMAPIDumpData (bool status)

Variables

struct mapi_ctxglobal_mapi_ctx = NULL

Detailed Description

MAPI subsystem related operations.


Function Documentation

_PUBLIC_ enum MAPISTATUS GetLoadparmContext ( struct loadparm_context **  lp_ctx)

Retrieve the global MAPI loadparm context

Parameters:
lp_ctxpointer to a pointer to the loadparm context that the function returns
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI_E_NOT_INITIALIZED or MAPI_E_INVALID_PARAMETER

References mapi_ctx::lp_ctx, and OPENCHANGE_RETVAL_IF.

_PUBLIC_ enum MAPISTATUS MAPIInitialize ( const char *  profiledb)

Initialize mapi context global structure

This function inititalizes the MAPI subsystem and open the profile database pointed by profiledb .

Parameters:
profiledbprofile database path
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error.
Note:
Developers may also call GetLastError() to retrieve the last MAPI error code. Possible MAPI error codes are:
  • MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized
  • MAPI_E_NOT_ENOUGH_RESOURCES: MAPI subsystem failed to allocate the necessary resources to operate properly
  • MAPI_E_NOT_FOUND: No suitable profile database was found in the path pointed by profiledb
  • MAPI_E_CALL_FAILED: A network problem was encountered during the transaction
See also:
MAPIUninitialize
Examples:
fetchappointment.c, fetchmail.c, and mapi_sample1.c.

References mapi_ctx::dumpdata, mapi_ctx::ldb_ctx, mapi_ctx::lp_ctx, mapi_ctx::mem_ctx, OPENCHANGE_RETVAL_IF, OpenProfileStore(), and mapi_ctx::session.

_PUBLIC_ enum MAPISTATUS MapiLogonEx ( struct mapi_session **  session,
const char *  profname,
const char *  password 
)

Create a full MAPI session

Open providers stored in the profile and return a pointer on a IMAPISession object.

Parameters:
sessionpointer to a pointer to a MAPI session object
profnameprofile name to use
passwordpassword to use for the profile

password should be set to NULL if the password has been stored in the profile.

Returns:
MAPI_E_SUCCESS on success otherwise MAPI error.
Note:
Developers may also call GetLastError() to retrieve the last MAPI error code. Possible MAPI error codes are:
  • MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized
  • MAPI_E_NOT_ENOUGH_RESOURCES: MAPI subsystem failed to allocate the necessary resources to operate properly
  • MAPI_E_CALL_FAILED: A network problem was encountered during the transaction
See also:
MAPIInitialize, OpenProfile, MapiLogonProvider
Examples:
fetchappointment.c, fetchmail.c, and mapi_sample1.c.

References MapiLogonProvider(), PROVIDER_ID_EMSMDB, and PROVIDER_ID_NSPI.

_PUBLIC_ enum MAPISTATUS MapiLogonProvider ( struct mapi_session **  session,
const char *  profname,
const char *  password,
enum PROVIDER_ID  provider 
)

Initialize a session on the specified provider

Parameters:
sessionpointer to a pointer to a MAPI session object
profnameprofile name
passwordprofile password
providerprovider we want to establish a connection on

password should be set to NULL if the password has been stored in the profile.

Supported providers are:

  • PROVIDER_ID_NSPI: Address Book provider
  • PROVIDER_ID_EMSMDB: MAPI Store provider
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error.
Note:
Developers may also call GetLastError() to retrieve the last MAPI error code. Possible MAPI error codes are:
  • MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized
  • MAPI_E_NOT_ENOUGH_RESOURCES: MAPI subsystem failed to allocate the necessary resources to operate properly
  • MAPI_E_CALL_FAILED: A network problem was encountered during the transaction
See also:
MapiLogonEx, OpenProfile, LoadProfile

References DLIST_ADD, mapi_session::emsmdb, emsmdb_disconnect_dtor(), LoadProfile(), Logon(), mapi_session::logon_ids, mapi_ctx::mem_ctx, mapi_session::next, mapi_session::nspi, nspi_disconnect_dtor(), OPENCHANGE_RETVAL_IF, OpenProfile(), mapi_session::profile, PROVIDER_ID_EMSMDB, PROVIDER_ID_NSPI, and mapi_ctx::session.

Referenced by MapiLogonEx().

_PUBLIC_ void MAPIUninitialize ( void  )

Uninitialize MAPI subsystem

This function uninitializes the MAPI context and destroy recursively the whole mapi session and associated objects hierarchy

See also:
MAPIInitialize, GetLastError
Examples:
fetchappointment.c, fetchmail.c, and mapi_sample1.c.

References mapi_notify_ctx::fd, mapi_ctx::mem_ctx, mapi_session::notify_ctx, and mapi_ctx::session.

_PUBLIC_ enum MAPISTATUS SetMAPIDebugLevel ( uint32_t  level)

Set MAPI debug level

Parameters:
levelthe debug level to set
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error.
Note:
Developers may also call GetLastError() to retrieve the last MAPI error code. Possible MAPI error codes are:
  • MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized
  • MAPI_E_INVALID_PARAMETER: the function parameter is invalid

References mapi_ctx::lp_ctx, and OPENCHANGE_RETVAL_IF.

_PUBLIC_ enum MAPISTATUS SetMAPIDumpData ( bool  status)

Enable MAPI network trace output

Parameters:
statusthe status

possible status values/behavior:

  1. true: Network traces are displayed on stdout
  2. false: Network traces are not displayed on stdout
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI_E_NOT_INITIALIZED

References mapi_ctx::dumpdata, and OPENCHANGE_RETVAL_IF.


Variable Documentation

struct mapi_ctx* global_mapi_ctx = NULL

Referenced by Abort(), AbortSubmit(), AddressTypes(), AddUserPermission(), cast_mapi_SPropValue(), cast_SPropValue(), CloneStream(), CollapseRow(), CommitStream(), CopyFolder(), CopyProps(), CopyTo(), CopyToStream(), CreateAttach(), CreateBookmark(), CreateFolder(), CreateMessage(), CreateProfile(), DeleteAttach(), DeleteFolder(), DeleteMessage(), DeleteProfile(), DeletePropertiesNoReplicate(), DeleteProps(), DispatchNotifications(), EmptyFolder(), emsmdb_bind_notification(), emsmdb_get_info(), emsmdb_register_notification(), ExpandRow(), FindProfileAttr(), FindRow(), FreeBookmark(), GetABRecipientInfo(), GetAttachmentTable(), GetBestBody(), GetCollapseState(), GetContentsTable(), GetDefaultFolder(), GetDefaultProfile(), GetDefaultPublicFolder(), GetFolderItemsCount(), GetGALTable(), GetHierarchyTable(), GetIdFromLongTermId(), GetIDsFromNames(), GetLocalReplicaIds(), GetLongTermIdFromId(), GetMessageStatus(), GetNamesFromIDs(), GetOutboxFolder(), GetOwningServers(), GetProfileAttr(), GetProfileTable(), GetPropList(), GetProps(), GetPropsAll(), GetReceiveFolder(), GetReceiveFolderTable(), GetRulesTable(), GetSearchCriteria(), GetStatus(), GetStoreState(), GetStreamSize(), GetTable(), GetTransportFolder(), GetUserFreeBusyData(), GetValidAttach(), HardDeleteMessage(), HardDeleteMessagesAndSubfolders(), IsFreeBusyConflict(), LoadProfile(), LockRegionStream(), Logoff(), Logon(), mapi_id_array_add_id(), mapi_id_array_add_obj(), mapi_id_array_del_id(), mapi_id_array_del_obj(), mapi_id_array_get(), mapi_id_array_init(), mapi_id_array_release(), mapi_object_bookmark_debug(), mapi_object_bookmark_find(), mapi_object_bookmark_get_count(), mapi_object_init(), mapi_profile_add_string_attr(), mapi_profile_delete_string_attr(), mapi_profile_modify_string_attr(), MAPIAllocateBuffer(), ModifyRecipients(), ModifyTable(), ModifyUserPermission(), MonitorNotification(), MoveCopyMessages(), MoveFolder(), OpenAttach(), OpenEmbeddedMessage(), OpenFolder(), OpenMessage(), OpenMsgStore(), OpenProfile(), OpenPublicFolder(), OpenPublicFolderByName(), OpenStream(), OpenUserMailbox(), PublicFolderIsGhosted(), QueryColumns(), QueryNamedProperties(), QueryPosition(), QueryRows(), ReadRecipients(), ReadStream(), RegisterNotification(), Release(), ReloadCachedInformation(), RemoveAllRecipients(), RemoveUserPermission(), RenameProfile(), Reset(), ResolveNames(), Restrict(), RfrGetFQDNFromLegacyDN(), RfrGetNewDSA(), SaveChangesAttachment(), SaveChangesMessage(), SeekRow(), SeekRowApprox(), SeekRowBookmark(), SeekStream(), SetCollapseState(), SetColumns(), SetDefaultProfile(), SetMessageReadFlag(), SetMessageStatus(), SetPropertiesNoReplicate(), SetProps(), SetReadFlags(), SetReceiveFolder(), SetSearchCriteria(), SetSpooler(), SetStreamSize(), SortTable(), SpoolerLockMessage(), SubmitMessage(), Subscribe(), TransportNewMail(), TransportSend(), UnlockRegionStream(), Unsubscribe(), WrapCompressedRTFStream(), WriteAndCommitStream(), and WriteStream().


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/