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