- how to use in linux programs?

Jon Griffiths jon_p_griffiths at
Tue Feb 1 06:45:41 CST 2005

Hi Luke,

>i noticed that Wine has a

The current MAPI code is very, very far from complete. I have been
implementing it in a bottom up manner (i.e. starting with the lower
level/utility functions and working up toward constructing the higher
order functions/objects). For example, there is no table support at
present (I have an IMAPITable implemenation of sorts, but its not
ready to be committed yet, pending cleanup, tests and thread safety
checks). Providing the message stores etc must then be built on top
of these objects.

I believe Crossover Office runs MS Outlook so you may have more
success using the native dlls at this moment in time.

For the functions that are complete there is documentation in the
source: "make htmlpages" from the base Wine dir will format these
into readable html starting at documentation/html/index.html.

>the test program relies on a test loader program, so i can't find a
>"int main (char *argv[], int argc)" anywhere nor is it obvious
>what's going on.

Assuming you are referring to dlls/mapi32/tests/, the test framework
is integrated to allow the tests to share common code and for
multiple tests to be run from one place. The start_test() macro
defined a test name which is then linked into the main and available by running the test with that name
as a parameter (see include/wine/test.h for the common code that
supports this). Note that these tests don't yet test anything to do
with mail per se, they are more concerned with ensuring the various
low level functions in the dll are correct.

If your tests will rely on an exchange server being present it is
unlikely that you will be able to put them in the main wine tree, so
a stand alone program is likely the best solution.

As for sample programs, a quick google for "mapi sample program" and
you will get a bunch of links, including some freely downloadable MS
samples. I personally am doing my current testing directly against
the native (XP) dll itself, it being too early at this point to
attempt to get any 'real' programs running with the code.

I have a fair amount of not yet submitted stuff for this dll; if you
think it will help I could clean it up and pass it on for your
perusal. Also if you create/discover anything that you think may be
helpful to implementing parts of this dll (and you are free to
distribute it), please feel free to send it to me.


"Don't wait for the seas to part, or messiahs to come;
 Don't you sit around and waste this chance..." - Live

jon_p_griffiths at

Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 

More information about the wine-devel mailing list