G'day team.

mapitest currently has one failure when run with Exchange 2003.

Basically the problem is we do RopSetCollapseState, and can't clean up the 
returned Bookmark.

The documentation says to use RopFreeBookmark, but that can't work with 
Exchange, according to Microsoft:
http://social.msdn.microsoft.com/Forums/en-US/os_exchangeprotocols/thread/bb1eaff1-4cf8-4639-becc-8825bdad7130

So I think there are three options:
1. We make FreeBookmark() tolerant to failure (i.e. accept that the ROP will 
fail if we pass the wrong kind of bookmark, and just make the libmapi wrapper 
return success for that case)
2. We make FreeBookmark() track which kind of bookmark it is (e.g. whether it 
came from CreateBookmark, or from SetCollapseState), and not try anything 
that we think will fail. An equivalent way would be to figure out which kind 
of table it is.
3. Tell the user not to call FreeBookmark for SetCollapseState. If they do, 
its their error.

The first option feels rough, but it would be tolerant to future changes in 
either Exchange or the OpenChange server.

The second is fussier but less rough, but would never work for a changed 
server behavior.

The third option is the easiest to implement (probably just API docs and 
delete from mapitest test case, plus not storing the bookmark for 
SetCollapseState). It does move the "what if the server behavior changes" 
problem from libmapi to the application.

Thoughts?

Brad
_______________________________________________
devel mailing list
[email protected]
http://mailman.openchange.org/listinfo/devel

Reply via email to