-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Did I not send this to the list as well? Not sure why "Reply" seems to be replying to the author rather than the list. Could be I have something misconfigured in squirrelmail. Sorry about this.
Cheers, Jason - ---------------------------- Original Message ---------------------------- Subject: Re: [otlkcon-devel] may we help each other? From: [EMAIL PROTECTED] Date: Mon, January 24, 2005 3:36 pm - -------------------------------------------------------------------------- - -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > Hello Jason, Hello Kervin, Thanks for the response. > [EMAIL PROTECTED] wrote: >> I'm the lead developer of the the MAPI toolkit at SourceXtreme, Inc. We also have the start of a MAPI message store and MAPI transport provider built using our MAPI toolkit. We haven't been working on it as fervently the last few months, but would happily join efforts with this group. We have no problems with GPL, LGPL, or dual-licensing. We do prefer C++ over >> straight C, but are willing to work with those who prefer straight C. >> >> We also have a separate IMAP library we would be willing to release under >> the same licensing terms. > > It would be good if we can combine efforts somehow. I'm > sure we would have a better chance of succeeding if we > did. Yes, couldn't agree more. > What does your toolkit do exactly? Well, I'll do my best to sum this up in short. First off, the toolkit doesn't do a lot on its own. It is primarily an Object-Oriented library to encapsulate much of the annoyances of working with MAPI. The *intent* is to write less lines of similar code when working with MAPI. The goal is to end up with code that is easier to read and maintain. For example, normally, when working with MAPI you might write 2 or 3 lines of code for every MAPI property, something like the following (just typing this up - forgive any typos): SPropValue Props[4]; memset(&Props, 0, sizeof(Props)); Props[propNum].ulPropTag = PR_DISPLAY_NAME; Props[propNum++].Value.lpszA = strdup(MESSAGE_STORE_NAME); Props[propNum].ulPropTag = PR_ENTRYID; Props[propNum].Value.bin.lpb = (LPBYTE)entryID; Props[propNum++].Value.bin.cb = sizeof(CUSTOM_ENTRYID); Props[propNum].ulPropTag = PR_VALID_FOLDER_MASK; Props[propNum++].Value.l = FOLDER_IPM_SUBTREE_VALID | FOLDER_FINDER_VALID | FOLDER_VIEWS_VALID | FOLDER_COMMON_VIEWS_VALID; With the MAPI Toolkit, you might instead write: MapiPropList propList; propList.AddProperty(PR_DISPLAY_NAME, new MapiStringValue(MESSAGE_STORE_NAME)); propList.AddProperty(PR_ENTRYID, new CustomEntryID(entryID)); propList.AddProperty(PR_VALID_FOLDER_MASK, new MapiLongValue(FOLDER_IPM_SUBTREE_VALID | FOLDER_FINDER_VALID | FOLDER_VIEWS_VALID | FOLDER_COMMON_VIEWS_VALID)); Does that help? Building up rowsets, etc. the idea is to encapsulate as much as would be useful, including allocation, deallocation, etc. Thoughts? > The connector is currently C++ Glad to hear that. > - > Kervin Cheers, Jason Nocks - -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFB9VxQ3CryLfCgqRkRAiSlAJ9fdfZwHSKFztAxRCbyKAe7mMTGJgCfTbv1 kDjvESMsafg56hlo6oGzeec= =u2D3 - -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFB9t9U3CryLfCgqRkRAvXiAJ0aLCPe81iJJqmYYfBC+OBZBfDNywCfffBb fa3mooYLJtTRB5Pm9T7PsS4= =2YKO -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ otlkcon-devel mailing list otlkcon-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/otlkcon-devel