Just sharing a lovely filth I found which seems to lack g-coverage. When you go beyond run-of-the-mill QuickTime plugin usecases, you'll quickly find that calling its methods like Play() will throw an exception. Apparently, whoever wrote the QuickTime plugin wrote it very strictly because, instead of just queuing up request to play when the movie is not ready to play yet (like buffering), it throws an exception. This usually happens when you embed a QuickTime plugin with autoplay off then attempt to play too early or after telling QuickTime plugin to play another movie. The trick is to call the GetPluginStatus() to make sure it's in the right state (like "Playable"). QuickTime plugin doesn't support any event either (I couldn't find any) so you'll have to use the timer event to poll. Same technique can be used to detect when the movie is finished.
I could pile on the the guy for all the crap I ran into but I won't because it must not be much fun being a Win32 engineer at Apple. Let's just say, from a developer's perspective, QuickTime should have a "don't touch me unless your poll is 12 feet long" sticker on it. In comparison, Flash is like a choirboy.
Update: Another problem with QuickTime, this time with ActiveX version of the plugin. QuickTime ActiveX plugin gets confused when it's embedded inside a floating element. Workaround is to use the Netscape plugin version, even for IE, which means you should use the tag without the wrapping <object> tag. Also, I couldn't find a reliable way to force QuickTime player to play an arbitrary movie after it has been instantiated, forcing me to reinstantiate for each movie after cleaning up to avoid resource leaks.
At this point, I am thinking about pressing the eject button on this pet project because it's starting to look like a maintenance nightmare in the making.