Hi Luke,
i noticed that Wine has a mapi32.dll.so.
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 mapi32_test.exe.so 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.
Cheers, Jon
===== "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@yahoo.com
__________________________________ Do you Yahoo!? Meet the all-new My Yahoo! - Try it today! http://my.yahoo.com
On Tue, Feb 01, 2005 at 04:45:41AM -0800, Jon Griffiths wrote:
Hi Luke,
i noticed that Wine has a mapi32.dll.so.
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.
ah ha, you're going to like this: i'm implementing exchange 5.5 server so the native dlls don't help :)
[hm, if crossover office runs ms outlook, that would mean that codeweavers enhanced the mapi code, hm...]
what i am looking to do is to actually _implement_ a MAPI database, such that tables can be read etc.
i haven't a clue what i'm doing, so am just copying the data from off-the-wire.
but it will look very strangely familiar to anyone who has been working for some time with MAPI.
i spent two hours yesterday mapping the data structures in mapidefs.h into emsabp.idl.
they're identical (idl file sent to wine-devel list yesterday).
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.
thank you.
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.
ha ha - i am _replacing_ exchange 5.5 server :)
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 am kinda looking for something with a Makefile, compiles and links against Wine directly - under linux not windows.
i am inclined to rip bits of code out of Wine (parts of header files so far) until i can get to grips with it.
the thing is that by the time i am done, there will be some code that should just... integrate in a _very_ obvious manner into Wine's MAPI32.dll implementation, providing an interface to Nspi (emsabp.idl) and EcMapi (emsmdb.idl).
... it's just that at the moment i haven't really got a handle on this stuff: all i can say is i appear to be implementing MAPI tables and MAPI properties etc. but don't know what those really are.
l.
Luke Kenneth Casson Leighton wrote:
[hm, if crossover office runs ms outlook, that would mean that codeweavers enhanced the mapi code, hm...]
That's incorrect. We allow Office 2000/XP to install and it installs it's own version of MAPI.
Mike
On Tue, Feb 01, 2005 at 11:20:12PM +0900, Mike McCormack wrote:
Luke Kenneth Casson Leighton wrote:
[hm, if crossover office runs ms outlook, that would mean that codeweavers enhanced the mapi code, hm...]
That's incorrect. We allow Office 2000/XP to install and it installs it's own version of MAPI.
ah, thanks for the correction.
Luke Kenneth Casson Leighton wrote:
... i am kinda looking for something with a Makefile, compiles and links against Wine directly - under linux not windows.
i am inclined to rip bits of code out of Wine (parts of header files so far) until i can get to grips with it.
It looks like what you are looking for is a vanilla Winelib application. It compiles on Linux with a Makefile it can freely be linked to any Linux resource/Library and in turn also use Wine or native windows DLLs. Only thing is that it is executed under the Wine loader and must keep some linking and structure rules special for wine. Once it works it is easy to take code from a Winelib App and make it a Winelib DLL.
So Just look at the Winelib programmer's guide (On Winehq) documentation on how to make a Winelib application.
Hope that helps Free Life Boaz
Boaz Harrosh wrote:
Luke Kenneth Casson Leighton wrote:
... i am kinda looking for something with a Makefile, compiles and links against Wine directly - under linux not windows.
i am inclined to rip bits of code out of Wine (parts of header files so far) until i can get to grips with it.
So Just look at the Winelib programmer's guide (On Winehq) documentation on how to make a Winelib application.
for inspiration, you could look at the makefiles of the various winelib programs in the /programs directory in the wine source code.