Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mapiconcepts(3) [debian man page]

mapiconcepts(3) 						MAPIClientLibraries						   mapiconcepts(3)

NAME
mapiconcepts - MAPI Concepts MAPI objects Almost any MAPI data you access, read or edit is associated with an object. No matter whether you intend to browse mailbox hierarchy, open folders, create tables or access items (messages, appointments, contacts, tasks, notes), you will have to initialize and use MAPI objects: object understanding and manipulation is fundamental. o When developing MAPI clients with Microsoft framework, instantiated objects inherit from parent classes. As a matter of fact, developers know which methods they can apply to objects and we suppose it makes their life easier. o In OpenChange, objects are opaque. They are generic data structures which content is set and accessed through MAPI public functions. Therefore, Linux MAPI developers must know what they are doing. An example of MAPI object manipulation is shown below: mapi_object obj_store; [...] mapi_object_init(&obj_store); retval = OpenMsgStore(&obj_store); if (retval != MAPI_E_SUCCESS) { mapi_errstr('OpenMsgStore', GetLastError()); exit (1); } mapi_object_release(&obj_store); MAPI Handles Beyond memory management considerations, understanding MAPI handles role in object manipulation provides a better understanding why mapi_object_release() matters. Handles are temporary identifiers returned by Exchange when you access or create objects on the server. They are used to make reference to a particular object all along its session lifetime. They are stored in unsigned integers, are unique for each object but temporary along MAPI session. Handles are the only links between objects accessed on the client side and efficiently stored on the server side. Although OpenChange MAPI makes handles manipulation transparent for developers, mapi_object_release() frees both the allocated memory for the object on client side, but also releases the object on the server. Version 1.0 Sat Jun 14 2014 mapiconcepts(3)

Check Out this Related Man Page

MAPITEST(1)						     OpenChange Users' Manual						       MAPITEST(1)

NAME
mapitest - OpenChange torture test utility SYNOPSIS
mapitest [-?|--help] [--usage] [-f|--database=STRING] [-p|--profile=STRING] [-p|--password=STRING] [--confidential] [--color] [--subunit] [-o|--outfile=STRING] [--mapi-calls=STRING] [--list-all] [--no-server] [--dump-data] [-d|--debuglevel=STRING] DESCRIPTION
mapitest is a test harness / utility used for verifying correct operation of various ExchangeRPC calls / MAPI functions provided by the OpenChange MAPI libraries. mapitest is not normally required by users, but you may be asked to provide the output of mapitest for some kinds of bug investigations. Note that mapitest performs a lot of transactions, including deleting folders and messages. Unless you're very familiar with mapitest, we recommend only using it with a test account. OPTIONS
--database -f Set the path to the profile database to use --profile -p Set the profile to use. If no profile is specified, mapitest tries to retrieve the default profile in the database. If no default profile has been set, mapitest returns MAPI_E_NOT_FOUND . --password -P Specify the password for the profile to use. This can be omitted if the password is stored in the profile. --confidential Remove any sensitive data from the report. --color Use colors to indicate the results of each operation. --subunit Produce output in subunit protocol format, instead of the normal text output. This disables colored output. Note that availability of this option depends on suitable libraries being available at build time, so check availability before relying on this. --outfile -o Redirect the output of the tests to a file. The filename must be specified as the argument to this option. --mapi-calls Run a specific test. The name of the test must be specified as the argument to this option. See the --list-all option to obtain the name of the test. This can be specified more than once in order to run a subset of tests. This can also be used to run a "suite" of tests, by appending "-ALL" to the name of the suite. --list-all Provide a list of all test suites and test names, along with a description of the test. No tests will be run. --no-server Only run tests that do not require a server connection. This is the default if a connection to the server cannot be established. --dump-data Dump the hex data. This is only required for debugging or educational purposes. --debuglevel -d Set the debug level. EXAMPLES
Run all tests mapitest Only run two specific tests mapitest --mapi-calls=NOSERVER-SROWSET --mapi-calls=OXCPRPT-GET-PROPS Run all the NSPI tests mapitest --mapi-calls=NSPI-ALL REMARKS
If you are using the default profile database path and have set a default profile (using mapiprofile --profile=profile_name -S ) you do not need to specify these parameters on the command line. AUTHOR
mapitest was written by Julien Kerihuel <j.kerihuel at openchange dot org> with contributions from other OpenChange developers. This man page was written by Brad Hards <bradh at openchange dot org> OpenChange 2.0 QUADRANT 2013-01-24 MAPITEST(1)
Man Page