On Tue, 2011-12-06 at 14:04 -0500, Wolfgang Sourdeau wrote:
> Those structures correspond to different representations of the same 
> datatypes, depending on where they are rendered or parsed in the protocol.
> 
> For example, a PT_BINARY property will always be rendered as a 
> mapi_SPropValue when transferred via a RopGetProperties or a 
> RopQueryRows but as a SPropValue when transferred via the stream ROPs or 
> the FastTransfer ROPs.
> 
> Basically, the mapi_ ones are made to not take more than 32767 bytes 
> while the non-mapi ones can be 2^32-1 bytes long, this does not apply to 
> small values but will apply to string, binary and array values...

        Hi,
thanks for the answer. I see that GetProps takes struct SPropValue **
and GetPropsAll takes struct mapi_SPropValue_array *, still, if I recall
correctly, both will fail with PidTagBody or PidTagHtml larger than 4KB.
It's quite long time I played with this, thus it's possible I'm wrong
here.

Anyway, OK, let's keep there mapi_SPropValue and SPropValue structs, but
join mapi_SPropValue_CTR and SPropValue_CTR into one structure seems to
me as a good step, feel free to call it a cleanup. I see that MSDN
doesn't distinguish between these two [1], though they have it done
slightly differently with compare to OpenChange. (Some values are
probably stored as PT_PTR, to avoid circular dependencies, seems to me).
        Bye,
        Milan

[1] http://msdn.microsoft.com/en-us/library/cc815896.aspx

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

Reply via email to