On Monday 13 April 2009 12:52:54 am you wrote:
> Hi,
>
> On Sun, Apr 12, 2009 at 1:00 PM, Brad Hards <[email protected]> wrote:
> > On Saturday 11 April 2009 11:16:19 pm you wrote:
> >> But according to [MS-OXCNOTIF] section 2.2.1.4.1, it can be inferred
> >> that such field is not present (it's bit trick since must match the
> >> NotificationType and Code against the info provided in the last table
> >> column).
> >
> > I'm not seeing this. I see discussion of FolderID, but not specifically
> > SearchFID. Perhaps you can explain it to me more clearly?
> >
> > I think we may be able to deal with this case, once we have this fully
> > understood.
>
> In the whole section 2.2.1.4.1 no field is named 'SearchFID', so I
> assume a different naming convection is in place. I Think that the
> 'SearchFID' from MS-OXCDATA section 2.6.3.3 is mapped into the
> ParentFolderID (since this is compatible with the description of the
> other notification structures, but even if the real mapping is another
> one the following discussion should apply).
Just wanted to let you know I haven't forgotten about this.

I partly agree your logic, but that really implies that 0xC010 can never 
contain a SearchFID, which means that it should not have appeared in that 
section of MS-OXCDATA. 

I've asked the Microsoft people to clarify what is actually happening here.
http://social.msdn.microsoft.com/Forums/en-US/os_exchangeprotocols/thread/c2bffb5a-fb67-4beb-a266-05fc3ee57f9a

I have your patch folded into a local tree, but haven't conducted separate 
tests yet.

With that patch applied there are (at least) three identical structures:
        /* MessageCreatedNotification: case 0x8004 */
        typedef [flag(NDR_NOALIGN)] struct {
                hyper                                   FID;
                hyper                                   MID;
                uint16                                  TagCount;
                MAPITAGS                                Tags[TagCount];
        } MessageCreatedNotification;

        /* MessageModifiedNotification: case 0x8010 */
        typedef [flag(NDR_NOALIGN)] struct {
                hyper                                   FID;
                hyper                                   MID;
                uint16                                  TagCount;
                MAPITAGS                                Tags[TagCount];
        } MessageModifiedNotification;

        /* SearchMessageModifiedNotification: 0xc010 */
        typedef [flag(NDR_NOALIGN)] struct {
                hyper                                   FID;
                hyper                                   MID;
                uint16                                  TagCount;
                MAPITAGS                                Tags[TagCount];
        } SearchMessageModifiedNotification;

So there might be a little more simplicity to be gained yet.

Brad


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

Reply via email to