-----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

Reply via email to