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
