The purpose of the size is for the DLL to know how many of the fields are valid. Clearly there is a bug in 2.6.0 -> 2.6.4 Beta 2. The bug is not in the header but in the Leash32.DLL. If the old size is detected, the new fields are not used. If the current size is detected, they are used. Why do you believe this is a problem when user's specify LSH_DLGINFO_EX dlgInfoEx; dlgInfoEx.size = sizeof( dlgInfoEx ); as they should be doing? Pierre Goyette wrote: >Jeff, > >Most windows application do something like: > >LSH_DLGINFO_EX dlgInfoEx; > >dlgInfoEx.size = sizeof( dlgInfoEx ); > >I realize that this is the size of the old structure (if you are using >the old SDK). The problem is, if you want an application to work with >2.5 & 2.6.x & future versions, it is not possible to pass a correct >value and not get an error. If you pass the real old structure size, >this will work with 2.5 and fail with 2.6.x. If you pass the new 2.6 >structure size, it will fail with 2.5. If you pass the definition size, >it will fail with 2.5 and work with 2.6. > >The only way for an application to programmatically work properly is to >get the version of LEASHW32.DLL and check if it is 2.6 or higher and >then pass the new dialog structure size. This is pretty ugly to have to >do this. Unless you have another way to determine the version and know >what dialog structure size to pass? > >Thanks, > >Pierre > >