Why is the animation common control limited to RLE8-compressed animations?

Raymond Chen

The animation common control is very limited in the type of animations it can play. The animation must be in AVI format, it cannot have any sound, and it must be either uncompressed or use RLE8 compression. Why so many restrictions?

Because if it could handle other file formats, play sound, and support arbitrary codecs, it would just be a reimplementation of the multimedia animation control. (We saw this principle earlier when discussing why you can’t do everything with registry values that you can do with registry keys.)

The point of the animation common control is to play very simple animations without the overhead and accompanying complexity of the full generality of the multimedia animation control. Think of it as the 1040EZ of animation. If your animation is comparatively simple and you don’t need very much control over its playback at all, then go ahead and use the animation common control, which is designed to be a simple playback control for simple animations. But if your animation is complicated, uses an advanced compression scheme, or contains audio, then you’ve left the world of simple animations and need to move up to the full-sized 1040 form. There’s no point adding support for everything to the simplified control, because once you’ve added support for everything, you have the complex control that the simplified control was trying to simplify!

Okay, fine, so the animation common control can’t be a full-featured animation control or that would have defeated its purpose for existing. But why those specific limitations?

Because those were just barely enough features to play the animations that the shell team needed to play. The animation common control was written by the Windows 95 shell team, and it supports only enough features to be able to play the animations that the Windows 95 Explorer used. After the control was written, the shell team figured, hey, we already wrote it, we may as well do other people a favor and let them call it, too. The downside of this is that even though the shell doesn’t use these simple animations any more, it still has to ship the animation control because other applications rely on it. What started out as a courtesy has turned into a support burden.


Discussion is closed.

Feedback usabilla icon