DVD Support in DirectShow

This section describes the interfaces and components that you can use to develop digital video disc (DVD) applications or to play back DVD titles. It also contains a topic that describes the supported DVD media types and formats.

For more information, see the following articles.

This article contains the following sections.

Enabling DVD Playback

To play DVD-Video movies with Microsoft® Windows® 98 and a DVD-ROM drive, you need a set of DVD decoders. Microsoft® DirectShow® provides a framework in which hardware or software decoders can decode and display MPEG-2 video and Dolby Digital audio from DVDs. However, Microsoft does not supply audio or video decoders for DVD playback. If your personal computer has hardware DVD decoders, or if your computer came with software decoders, you might need to get an updated DirectShow driver from the manufacturer. If your computer doesn't have DVD decoders, it might be possible to purchase DirectShow-compatible software DVD decoders from DVD decoder vendor companies or their retail outlets.

Registering DVD Shell Extensions

The HKEY_CLASSES_ROOT\DVDFile registry key tells Windows 9x which application to run when it detects a DVD movie disc. This shell extension must be stored in the registry. The information that the shell uses to associate a shell extension handler with a file type is stored under the shellex subkey. The shell uses the DVDFile key to look for DVD file shell extensions. With the DVDFile key, you can register context menu handlers, property sheet handlers, copy hook handlers, and the drag-and-drop handler. Note that this registry key is DVD in Windows 2000.

A class identifier for each handler must be registered under the HKEY_CLASSES_ROOT\CLSID key. The CLSID key contains a list of class identifier subkeys, such as {00030000-0000-0000-C000-000000000046}. Each subkey is a globally unique identifier (GUID). Within each class identifier subkey, the handler adds an InProcServer32 subkey that gives the location of the handler's DLL. It is best to give the complete path for the handler; using the complete path keeps the handler independent of the current path and speeds up the load time for the DLL.

The GUID strings shown in the following examples are given for example purposes only. You must use your own GUIDs when registering your shell extensions. The "<name>" values are also for example purposes only. The "<name>" is not significant as long as it is unique among all of the other subkeys at the same level.

The following example shows how to register context menu handlers, property sheet handlers, copy hook handlers, and the drag-and-drop handler.

HKEY_CLASSES_ROOT 
   DVDFile = DVDFile 
      shellex 
         ContextMenuHandlers 
           <name> = {00000000-1111-2222-3333-00000000000001} 
         PropertySheetHandlers 
            <name> = {00000000-1111-2222-3333-00000000000002} 
         CopyHookHandlers 
            <name> = {00000000-1111-2222-3333-00000000000003} 
         DragDropHandlers 
            <name> = {00000000-1111-2222-3333-00000000000004} 

Top of Page Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.