Hi List,

While developing the preliminary version of exchange2ical, I've found
that the method we use to create a SPropTagArray with named and fixed
properties and fetch named properties after the GetProps call is not
really convenient:

        1. MS-OXCPROPS refers named properties with a canonical name
        which we don't have.
        
        2. With the current API we must create the SPropTagArray with
        the mapi_nameid API, then use SPropTagArray_add.
        
        3. When we fetch properties from the SRowSet we need to look
        back into mapi-named-properties and use the common property tag
        hexadecimal value.


The idea would be to add:
        1. Add a canonical name to each MAPI named properties
        
        2. use a unique set_SPropTagArray to create the full property
        tag array
        
        3. Do the magic in GetProps: retrieve the effective named
        properties ID on Exchange, then map it back to the common
        property tag at the end of the call.

        4. When we fetch the property data (using one of the property.c
        convenient function), we can simply use the canonical name.

The remaining case is how to deal with custom named properties, such as
those implementors may add or possibly named properties we don't yet
support in mapi-nameid-properties. For this last case, we could probably
a custom list maintained statically within the mapi_nameid API and with
add/delete/fetch/check semantics.

Finally, this approach doesn't really match with libmapi philosophy:
"libmapi is wire level", but the scope of these changes is imho limited
and would make life much easier for developers.

Ideas/Suggestions Welcome.

Cheers,
Julien.

-- 
Julien Kerihuel
[EMAIL PROTECTED]
OpenChange Project Manager

GPG Fingerprint: 0B55 783D A781 6329 108A  B609 7EF6 FE11 A35F 1F79

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
devel mailing list
devel@openchange.org
http://mailman.openchange.org/listinfo/devel

Reply via email to