RE: [GD-Windows] very strange bug!!
Brought to you by:
vexxed72
From: Jon W. <hp...@mi...> - 2003-07-15 18:10:48
|
> AFAIK it's the callee's responsibility to restore these registers. If > this is true, then acmDriverEnum is broken. Should I report this > somewhere?=20 If this is the behavior, then, yes, ACM is broken. I don't think = Microsoft=20 would do anything with the report, though, as ACM is (AFAICT) deprecated = in favour of the ActiveMovie/DirectShow/DirectXMedia interface. It could be that some particular ACM codec you have installed has a bug, = and clears this register on its enum callback, rather than the ACM = itself,=20 too. What most programmers do on most mature OS-es when there are = inexplicable=20 bugs like this, is to put the work-around in, and live with it. For = example,=20 getting display device information is also broken such that it may = overwrite=20 data after the enum output struct; the work-around is to allocate a = struct=20 with a kilobyte of padding on the stack, and pass that in. Your best bet = is=20 probably to do something similar in this case (say, save esi into a = stack=20 variable, call the function, then restore esi). Cheers, / h+ |