## Porting Code from ActiveMovie

This article describes the steps you must take to port your Microsoft® ActiveMovie™ 1.0 code to Microsoft DirectShow™.

Contents of this article:

- Recompiling ActiveMovie 1.0 Code with DirectShow
- Interfaces and Services Improved Since ActiveMovie 1.0

Recompiling ActiveMovie 1.0 Code with DirectShow

If you are recompiling your ActiveMovie 1.0 code with the DirectShow header files and libraries, you must make the following changes:

1. The name of the IFilter interface has been changed to IBaseFilter. You need to change the name to compile with DirectShow libraries and headers. ActiveMovie 1.0 binaries will continue to work because the IID (Interface Identifier) GUID for the interface is still the same.
2. The constructor of the CBasePropertyPage::CBasePropertyPage function has one less parameter. Once again, if you are recompiling your code with the DirectShow base class libraries, you will have to modify the parameters for the CBasePropertyPage constructor.

   The old prototype for the constructor was:

       CBasePropertyPage(TCHAR *pName,       // Debug only name
                             LPUNKNOWN pUnk,         // COM Delegator
                             HRESULT *phr,                 // Return code
                             int DialogId,                      // Resource ID
                             int TitleId);                        // To get title

   The new prototype is:

       CBasePropertyPage(TCHAR *pName,       // Debug only name
                             LPUNKNOWN pUnk,         // COM Delegator
                             int DialogId,                      // Resource ID
                             int TitleId);                        // To get title

Interfaces and Services Improved Since ActiveMovie 1.0

Some interfaces and services in ActiveMovie 1.0 have been improved in DirectShow. You should use the following improved interfaces and services:

1. A new interface, IFilterMapper2, has been introduced to support the concept of filter categories and registering filters in correct categories. IFilterMapper will still work for filters that were shipped with ActiveMovie 1.0 and are now part of the standard filters in the Filter Graph Editor. IFilterMapper might not do the right thing for filters that are in the new categories. For example, you might end up with filters that you can't instantiate.
2. The AMovieSetupRegisterFilter2 function has been added to use IFilterMapper2. AMovieSetupRegisterFilter will still work and will use IFilterMapper.

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.