Colin, as you can imagine, that SetTimer stuff broke Windows apps on
Windows too.

And that's where the Shim Database comes in

Best regards,
Alex Ionescu

On Mon, Mar 9, 2015 at 10:46 AM, Magnus Johnsson <magnus...@gmail.com>
wrote:

> A thought occurs to me. Is there a way to add descriptors to DLL
> functions? It would be a neat way to handle having multiple versions. In
> Python you can tag functions like @TargetVersionWindowsXP. If you could
> transparently hide and rename symbols in the DLL's kernel-side on load
> time, then you could have all the functions in the same file without losing
> sanity points.
>
> 2015-03-09 11:27 GMT+01:00 Colin Finck <co...@reactos.org>:
>
>> Am 09.03.2015 um 09:59 schrieb Aleksey Bragin:
>> > I suppose if the API "changes" (and it means, it improves, and usually
>> > without breaking backward compatibility), then there is no reason to
>> > provide old, broken or incomplete implementation. I doubt there is any
>> > popular app which relies on some bugs in old API implementation which
>> > can justify that.
>>
>> My favourite for subtle changes inside Win32: SetTimer :)
>> MSDN has removed many of the details now, so I quote from the old
>> version of the page:
>>
>> ===================================================================
>> uElapse
>> [in] Specifies the time-out value, in milliseconds.
>> Windows NT/2000/XP: If uElapse is greater than USER_TIMER_MAXIMUM, the
>> timeout is set to 1.
>>
>> Windows 2000/XP: If uElapse is less than USER_TIMER_MINIMUM, the timeout
>> is set to USER_TIMER_MINIMUM.
>>
>> Windows Server 2003: If uElapse is greater than USER_TIMER_MAXIMUM, the
>> timeout is set to USER_TIMER_MAXIMUM.
>>
>> Windows XP SP2/Windows Server 2003 SP1: If uElapse is less than
>> USER_TIMER_MINIMUM, the timeout is set to USER_TIMER_MINIMUM. If uElapse
>> is greater than USER_TIMER_MAXIMUM, the timeout is set to
>> USER_TIMER_MAXIMUM.
>> ===================================================================
>>
>> Reference e.g. http://www.jliforum.de/board/viewtopic.php?p=61375#61375
>>
>>
>> This has broken at least our third-party imported Matrix screensaver
>> (see fix in r28955). Due to the widespread usage of the SetTimer API,
>> there are probably more examples.
>> Of course, given that we're targetting Windows Server 2003 SP1 or newer,
>> the behaviour for us is clear. But if such changes occur in recent
>> Windows versions as well, I believe we need different implementations of
>> an API for each Windows version we try to emulate.
>>
>> Maybe someone can give an example of such a change in more recent
>> Windows versions as well.
>>
>>
>> Cheers,
>>
>> Colin
>>
>>
>> _______________________________________________
>> Ros-dev mailing list
>> Ros-dev@reactos.org
>> http://www.reactos.org/mailman/listinfo/ros-dev
>>
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev@reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
>
_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to