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)

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_ctx pointer 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
_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:
profiledb profile 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.
_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:
session pointer to a pointer to a MAPI session object
profname profile name to use
password password 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().

_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:
session pointer to a pointer to a MAPI session object
profname profile name
password profile password
provider provider 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 emsmdb_disconnect_dtor(), LoadProfile(), nspi_disconnect_dtor(), and OpenProfile().

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.
_PUBLIC_ enum MAPISTATUS SetMAPIDebugLevel ( uint32_t  level  ) 

Set MAPI debug level

Parameters:
level the 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
_PUBLIC_ enum MAPISTATUS SetMAPIDumpData ( bool  status  ) 

Enable MAPI network trace output

Parameters:
status the 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

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/