Creating Custom Effects and Transitions in Windows Movie Maker
Josh Cohen
Mike Matsel
Peter Turcan
Microsoft Corporation
January 2005
Applies to:
Microsoft® Windows® Movie Maker 2.0
Microsoft Windows Movie Maker 2.1
Summary: Microsoft Windows Movie Maker enables programmers to add their own custom special effects and transitions to the Windows Movie Maker interface. These effects can be created with an XML file that modifies the supplied effects or transitions, or can be built from scratch using C++ and the Windows Media Transforms supplied by the Microsoft DirectX Media SDK.
Introduction
Creating Windows Movie Maker Effects and Transitions in XML
Reading the XML File
Making Your Own XML File
Effect and Transition Objects Provided by Windows Movie Maker
Bars Transition
Checkerboard Transition
DirectX Media Wipe Transition
Dissolve Transition
Fade Transition
Iris Transition
Pixelate Transition
SMPTE Wipe Transitions
Wheel Transition
WMTFX Transitions and Effects
Blur Effect
Brightness Effect
Fade Effect
Film Aging Effect
Filter Effects
Mirror and Grayscale Effects
Pixelate Effect
Speed Effects
Adding Custom Icons to Windows Movie Maker
Creating New Transition and Effect Objects
Overview of the Sample Code
Getting Started on a New Effect
Getting Started on a New Transition
Passing Parameters to Your DLL
Debugging Your DLL
Changing the Blue Adjust Effect to Purple Adjust
Glossary
For More Information
Microsoft® Windows® Movie Maker 2.0 and later versions enable programmers to load their own custom effects and transitions into the Windows Movie Maker interface. These effects or transitions can be as simple as a modification of an existing effect or transition, or as complex as a custom-coded Microsoft DirectX® Transform object. This article includes three main topics about creating your own effects or transitions. In order from simplest to most complex, they are:
- Creating Windows Movie Maker Effects and Transitions in XML This is a fairly simple task that requires only a text editor and a basic understanding of XML.
Note To do this with Movie Maker 2.1, you must have administrator privileges on your computer.
Adding Custom Icons to Windows Movie Maker This is a slightly more complex topic that requires the knowledge of how to compile a C++ project using Microsoft Visual Studio®, and the ability to use any graphics software needed to make custom icons.
Creating New Transition and Effect Objects This requires knowledge of COM and ATL programming, DirectX Transforms, and Microsoft Direct3D® architecture. Additionally, it requires you to have the DirectX Media 6.0 SDK and the headers for the DirectX 7.0 SDK installed. (The DirectX Media SDK was not included in DirectX 7.0.) Both Visual Studio .NET and the DirectX Media SDK installed from the location given at the end of this document include the DirectX 7.0 headers, but neither includes the documentation. The DirectX 7.0 SDK documentation is only included with the complete installation of the DirectX 7.0 SDK (which can be installed using the link at the end of this document). If you want to experiment with making new DirectX Transform Objects, you can download a compressed file that includes sample code for several new effects and transitions at the Microsoft Web site.
To do the tasks described in all these topics, you must have Windows Movie Maker 2.0 or later and the Microsoft Windows XP Home Edition or Windows XP Professional Edition operating system installed on your computer. Creating custom icons or new transition or effect objects also requires Visual Studio. Sources of additional information, and the installation locations of the DirectX Media SDK and the DirectX 7.0 SDK, can be found in the For More Information section at the end of this paper.
Windows Movie Maker reads a private XML file on startup that specifies all the effects and transitions to load, and the values of each object's parameters. This XML file cannot be viewed or changed; however you can create your own XML file that loads the objects you choose, using your own parameters, and displays them with your custom names.
Windows Movie Maker stores its built-in effects and transitions as COM objects inside one of several DLLs provided with the program. Each COM object represents one transition or effect, and is identified by a globally unique identifier (GUID). One DLL can contain several COM objects. Each object has zero or more parameters, such as color or brightness, that can be set for that effect or transition. The XML file specifies which objects to load, and sets values for any number of those objects' parameters. An object can be loaded more than once, using different parameters, to create different effects or transitions based on the same object. For example, the slow-motion and fast-motion effects are the same object, differing only in the value of the speed parameter passed in. After learning how these effects and transitions are addressed in the XML file, you will be able to make your own effects and transitions from the COM objects provided.
Note For Movie Maker 2.1, you must have administrator privileges on your computer.
This section explains:
- How to create your own XML file,
- Required and optional XML tags you can use in your custom XML file,
- Objects and parameters available for creating effects and transitions, and
- Private XML code that Windows Movie Maker uses to load its standard effects and transitions, so that you can copy and modify them quickly and easily.
The following code shows a segment of a Windows Movie Maker private XML file that describes one transition (Flip Right) and one effect (Sepia):
<TransitionsAndEffects Version="1.0">
<Transitions>
<TransitionDLL guid="{C63344D8-70D3-4032-9B32-7A3CAD5091A5}">
<Transition nameID="62800" iconid="91" comment="Flip, right">
<Param name="InternalName" value="Simple3D" />
<Param name="RevolveCamera" value="true" />
<Param name="ShowAFront" value="true" />
<Param name="ShowABack" value="false" />
<Param name="ShowBFront" value="false" />
<Param name="ShowBBack" value="true" />
</Transition>
...
</TransitionDLL>
...
</Transitions>
<Effects>
<EffectDLL guid="{B4DC8DD9-2CC1-4081-9B2B-20D7030234EF}">
<Effect nameID="62863" iconid="25" comment="Sepia tone">
<Param name="InternalName" value="Standard" />
<Param name="Desaturate" value="true" />
<Param name="Red" value="0.10" />
<Param name="Magenta" value="0.09" />
<Param name="Yellow" value="0.25" />
<Param name="contrast" value="1.0" />
</Effect>
...
</EffectDLL>
...
</Effects>
</TransitionsAndEffects>
The following table explains the tags and attributes in the preceding code. Transitions and effects use mostly the same tags. Where the tags differ, the table indicates the difference.
Element | Attributes | Description |
TransitionsAndEffects | The boundary tag for the whole XML file. | |
Version | A required field that should be set to "1.0". | |
Transitions or Effects |
This tag bounds the group of all transitions or the group of all effects. Use the appropriate tag for a transition or effect. | |
TransitionDLL or EffectDLL |
This tag bounds a single effect or transition COM object, identified by a GUID. It can hold one or more custom effects or transitions. Use the appropriate tag for a transition or effect. | |
guid | Lists the GUID defining the transition or effect COM object. (This GUID is actually the ClassID of a COM object that implements the DirectShow IDXEffect interface in the underlying code.) The values provided are given in Effect and Transition Objects Provided by Windows Movie Maker. | |
Transition or Effect |
This is the boundary tag for an individual transition or effect using the transition or effect COM object specified by the TransitionDLL or EffectDLL tag. One COM object can contain several transitions or effects. (A DLL file can contain several COM objects, although the name of the DLL is not needed for the COM objects that Windows Movie Maker provides.) Use the appropriate tag for a transition or effect. | |
nameID
or name |
Do not use nameID; this is the internal identifier that Windows Movie Maker uses for the transition. Instead, when creating your own file, substitute the name attribute as shown here:
<Effect name="My New Effect" iconid="25" comment="My cool new effect"> The value you assign will be displayed by Windows Movie Maker. If a name is not unique, the effect or transition shown in the preview may not be the proper one; however, Windows Movie Maker will apply the correct effect or transition to the actual edited video. |
|
iconID | Identifies the icon that Windows Movie Maker displays for the transition. In custom icons, this is a zero-based number indicating which icon in a bitmap strip to use. You can also use one of the existing Windows Movie Maker icons by choosing a number from 1 to approximately 90. For more information on adding custom icons, see Adding Custom Icons to Windows Movie Maker. | |
comment | Information ignored by Windows Movie Maker. The comment attribute in the standard tags usually shows the display name for an effect or transition, although it does not always match exactly. | |
Param | Tag holding a parameter in the object that you can set. You can have as many Param tags as the containing object has parameters. | |
Name | The name of the parameter to set. | |
Value | The value, in quotation marks, to assign to the parameter. |
To make your own XML file for Windows Movie Maker, you must create (or use an existing) folder called AddOnTFX in one of two places, depending on which version of Movie Maker you have.
For Movie Maker 2.0:
Create or use the folder <Movie Maker installation path>\<decimal LCID>\AddOnTFX, where <Movie Maker installation path> is where you installed Movie Maker, and <decimal LCID> is the decimal locale ID of the language version installed (1033 is the locale ID for English).
So, for example, you might use C:\Program Files\Movie Maker\1033\AddOnTFX for an English version of Movie Maker. This location makes your effects usable by everyone, but to create the folder in this location, you must have administrator privileges on your computer.
Create or use the folder at <OS Drive>\Documents and Settings\<username>\Application Data\Microsoft\Movie Maker\AddOnTFX, where <OS Drive> is the disk drive where Windows is installed, and <username> is your logon name. The user always has permission to add the new folder here, but the created effects can be used only by the user logged on as username.
For Movie Maker 2.1:
In Movie Maker 2.1, you must have administrator privileges to install custom effects. Use one or both of these locations to install your XML (and any custom DLL) file:
<Movie Maker installation path>\MUI\<hexadecimal LCID>\AddOnTFX, where <Movie Maker installation path> is where you installed Movie Maker, and <hexadecimal LCID> is the hexadecimal locale ID of the language version installed (0409 is the hexadecimal locale ID for English).
So, for example, you might use C:\Program Files\Movie Maker\0409\AddOnTFX for an English language version of Movie Maker. This location makes your effects usable by everyone, but to create the folder in this location, you must have administrator privileges on your computer.
<Movie Maker installation path>\shared\AddOnTFX. So, for example, on your computer, this folder path might be C:\Program Files\Movie Maker\Shared\AddOnTFX. This makes effects available to everyone in every locale, but to create a folder in this location you must have administrator privileges on your computer.
Windows Movie Maker checks both paths (for either version), and loads all transitions and effects it finds in both locations. If you plan to have localized versions of your transitions, be sure to use the locale ID folder rather than the local user or shared folder.
Inside the AddOnTFX folder you've created, create a new file with an .xml extension in Notepad or any other XML authoring software. There are no naming restrictions on the file, other than that it must have an .xml extension. After creating your new XML file, you can paste in the previous code sample (See Reading the XML File.) and make a few changes (such as changing the nameID attribute to name, adding your own name, and removing the "..."). The following code block shows a modified version of the previous sample. This is a complete XML file that creates a custom variation of the Flip Right transition and the Sepia effect. This new code uses new icons taken from the standard Windows Movie Maker icon set:
<TransitionsAndEffects Version="1.0" >
<Transitions>
<TransitionDLL guid="{C63344D8-70D3-4032-9B32-7A3CAD5091A5}">
<Transition name="My cool transition" iconid="88">
<Param name="InternalName" value="Simple3D" />
<Param name="RevolveCamera" value="true" />
<Param name="ShowAFront" value="true" />
<Param name="ShowABack" value="false" />
<Param name="InitialScaleA" value="smaller" />
<Param name="FinalScaleA" value="bigger" />
<Param name="ShowBFront" value="false" />
<Param name="ShowBBack" value="true" />
</Transition>
</TransitionDLL>
</Transitions>
<Effects>
<EffectDLL guid="{B4DC8DD9-2CC1-4081-9B2B-20D7030234EF}">
<Effect name="My Yellow, Rotated Effect" iconid="20" comment="Yellow, turned 3/4">
<Param name="InternalName" value="Standard" />
<Param name="Desaturate" value="true" />
<Param name="Red" value="0.0" />
<Param name="Magenta" value="0.09" />
<Param name="Yellow" value="0.75" />
<Param name="contrast" value="1.0" />
<Param name="Rotate2DA" value="270.0" />
</Effect>
</EffectDLL>
</Effects>
</TransitionsAndEffects>
When creating your custom XML file, be aware of the following two precautions:
- If your XML file is not well formed, if the GUID you use is incorrect, or there is some other problem with your XML file, Windows Movie Maker will probably not load any effects or transitions from that file and will not tell you that the file was not loaded. If an effect or transition you create does not appear in the Windows Movie Maker interface, search your XML file for errors.
- Windows Movie Maker will load XML files only on startup. Any changes you make to the XML file when Windows Movie Maker is running will not take effect until you close and restart Windows Movie Maker.
The two tables in this topic list all the base transition and effect objects that Windows Movie Maker provides. Each transition or effect object may include one or more parameters that can be changed, or even subclasses with their own parameters. You do not have to set all parameters for any effect or transition you create, because every parameter has a default value.
Transitions and effects are shown in separate tables. You cannot use a transition object as an effect, or an effect object as a transition. So, for example, the following code would not work because the Pixelate object is an effect, not a transition:
<TransitionDLL guid="{4CCEA634-FBE0-11D1-906A-00C04FD9189D}" comment="Pixelate">
<Transition nameID="62818" iconid="19" comment="Pixelate">
<Param name="MaxSquare" value="25" />
</Transition>
</TransitionDLL>
Details about all transitions and effects are given in topics that follow the tables, and the tables contain links to those topics. Each topic includes the XML code that Windows Movie Maker uses to load the effect or transition supplied with Windows Movie Maker. The names used in the following tables are arbitrary; the names that Windows Movie Maker displays are similar to those assigned to the comment attribute of the EffectDLL tag in the XML code shown.
Transitions
Name | GUID | Description |
Bars | 2E7700B7-27C4-437F-9FBF-1E8BE2817566 | Merges the first video into the second video in horizontal segments. |
Checkerboard | B3EE7802-8224-4787-A1EA-F0DE16DEABD3 | Merges the first video into the second video by fields of squares. |
DirectX Media Wipe | AF279B30-86EB-11D1-81BF-0000F87557DB | A variety of custom DirectX Media wipes. |
Dissolve | F7F4A1B6-8E87-452F-A2D7-3077F508DBC0 | Dissolves one video segment into another in discrete dots (as opposed to a fade, which causes the videos to seamlessly exchange). |
Fade | 16B280C5-EE70-11D1-9066-00C04FD9189D | Fades the first video into the second. |
Iris | 049F2CE6-D996-4721-897A-DB15CE9EB73D | Splits the first video into four segments that move out from the center diagonally. |
Pixelate | 4CCEA634-FBE0-11D1-906A-00C04FD9189D | Causes the first video to coarsen and then resolve into the second video. |
SMPTE Wipe | DE75D012-7A65-11D2-8CEA-00A0C9441E20 | A variety of standard SMPTE transitions. See Microsoft DirectShow® documentation for more details. |
Wheel | 5AE1DAE0-1461-11D2-A484-00C04F8EFB69 | Provides a spinning wheel-spoke wipe from the first video to the second video. |
WMTFX transitions | C63344D8-70D3-4032-9B32-7A3CAD5091A5 | A variety of transitions and effects. |
Effects
Name | GUID | Description |
Blur | 7312498D-E87A-11D1-81E0-0000F87557DB | Blurs an image. |
Brightness | 5A20FD6F-F8FE-4a22-9EE7-307D72D09E6E | Modifies the brightness of a segment of video. |
Fade | EC85D8F1-1C4E-46e4-A748-7AA04E7C0496 | Causes a clip to fade in to or out from a solid color of your choice. |
Film Aging | ADEADEB8-E54B-11d1-9A72-0000F875EADE | Introduces graininess, scratches, and other visual artifacts that make it appear as if a film is old. |
Filter | E673DCF2-C316-4c6f-AA96-4E4DC6DC291E | Provides a variety of visual effects, such as neon glow, sponge, and emboss. |
Mirror and Grayscale | 16B280C8-EE70-11D1-9066-00C04FD9189D | Causes an image to flip horizontally or change from color to grayscale, creating a black-and-white image. |
Pixelate | 4CCEA634-FBE0-11D1-906A-00C04FD9189D | Causes an image to coarsen into squares of a single, solid color for each square, representing the average color of the original pixels from that area. |
Speed | 00000000-0000-0000-0000-000000000000 | Null GUID used only for slowing down or speeding up. |
WMTFX effects | B4DC8DD9-2CC1-4081-9B2B-20D7030234EF | Provides a variety of transitions and effects. |
The Bars transition merges the first video into the second video in horizontal segments. It takes no parameters. The following XML code shows the Bars transition included in Windows Movie Maker:
<TransitionDLL guid="{2E7700B7-27C4-437F-9FBF-1E8BE2817566}">
<Transition nameID="62817" iconid="37" comment="Bars"/>
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Checkerboard transition merges the first video into the second video by fields of squares. It takes no parameters. The following XML code shows the Checkerboard transition included in Windows Movie Maker:
<TransitionDLL guid="{B3EE7802-8224-4787-A1EA-F0DE16DEABD3}">
<Transition nameID="62815" iconid="4" comment="Checkerboard, Across" />
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The DirectX Media Wipe transition provides wipes based on the DirectX Media Wipe. DirectX Media Wipes take the following parameters.
Parameter | Type | Default | Range | Description |
GradientSize | float | 0.25 | 0.0 to 1.0 | Width of the gradient transition area between the two inputs, as a percentage of the output size. |
WipeStype | int | 0 | 0 or 1 | Direction of the wipe. Can be horizontal (0) or vertical (1). |
The following XML code shows the DirectX Media Wipe transitions included in Windows Movie Maker:
<TransitionDLL guid="{AF279B30-86EB-11D1-81BF-0000F87557DB}" comment="Wipe">
<Transition nameID="62820" iconid="60" comment="Wipe, Wide Down">
<Param name="GradientSize" value="0.6" />
<Param name="wipeStyle" value="1" />
</Transition>
<Transition nameID="62821" iconid="58" comment="Wipe, Normal Down">
<Param name="GradientSize" value="0.5" />
<Param name="wipeStyle" value="1" />
</Transition>
<Transition nameID="62822" iconid="56" comment="Wipe, Narrow Down">
<Param name="GradientSize" value="0.2" />
<Param name="wipeStyle" value="1" />
</Transition>
<Transition nameID="62823" iconid="59" comment="Wipe, Wide right">
<Param name="GradientSize" value="0.6" />
<Param name="wipeStyle" value="0" />
</Transition>
<Transition nameID="62824" iconid="57" comment="Wipe, Normal right">
<Param name="GradientSize" value="0.5" />
<Param name="wipeStyle" value="0" />
</Transition>
<Transition nameID="62825" iconid="55" comment="Wipe, Narrow right">
<Param name="GradientSize" value="0.2" />
<Param name="wipeStyle" value="0" />
</Transition>
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Dissolve transition dissolves one video segment into another in discrete dots (as opposed to a fade, which causes the videos to seamlessly exchange). It takes no parameters. The following XML code shows the Dissolve transition included in MovieMaker:
<TransitionDLL guid="{F7F4A1B6-8E87-452F-A2D7-3077F508DBC0}">
<Transition nameID="62816" iconid="38" comment="Dissolve" />
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Fade transition provides some functionality for creating fade transitions using DirectX Media transitions. It takes no parameters.
The following XML code shows the fade transition included in Windows Movie Maker:
<TransitionDLL guid="{16B280C5-EE70-11D1-9066-00C04FD9189D}">
<Transition nameID="62814" iconid="12" comment="Fade" />
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Iris transition splits the screen into four segments that move out from the center diagonally. It takes no parameters.
The following XML code shows the Iris transition included in Windows Movie Maker:
<TransitionDLL guid="{049F2CE6-D996-4721-897A-DB15CE9EB73D}">
<Transition nameID="62813" iconid="29" comment="Iris" />
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Pixelate transition causes the first video to coarsen and then resolve into the second video. It takes no parameters. The following XML code shows the Pixelate transition included in Windows Movie Maker:
<TransitionDLL guid="{4CCEA634-FBE0-11D1-906A-00C04FD9189D}">
<Transition nameID="62818" iconid="36" comment="Pixelate"/>
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
SMPTE wipes are standard SMPTE (Society of Motion Picture & Television Engineers) wipes, as described in the DirectShow documentation. The following table shows the parameters available for SMPTE wipes.
Parameter | Type | Default | Description |
BorderColor | long | none | Color of the border around the edges of the wipe pattern. The value of this attribute is a hexadecimal number with the format 0xRRGGBB, where RR is the red hexadecimal value, GG is the green hexadecimal value, and BB is the blue hexadecimal value. (Thus, pure red, green, and blue are 0xFF000, 0x00FF00, and 0x0000FF, respectively.) |
BorderSoftness | long | 0.0 | Width of the blurry region around the edges of the wipe pattern. Specify 0 (zero) for no blurry region |
BorderWidth | long | 0 | Width of the solid border around the edges of the wipe pattern. Specify 0 (zero) for no border. |
MaskName | string | NULL | If not NULL, specifies the name of a JPEG file to use as the wipe mask instead of a standard, built-in wipe. The file must contain a monochrome, 8-bits-per-pixel gradient. The gradient is used as a mask to define the wipe's progression. |
MaskNum | long | 1 | Standard SMPTE wipe code specifying the style of wipe to use. For a list of wipe codes and their associated schematics, see SMPTE document 258M-1993. |
OffsetX | long | 0 | Offset of the wipe origin from the center of the image, in the horizontal direction. Valid only for values of MaskNum from 101 to 131. |
OffsetY | long | 0 | Offset of the wipe origin from the center of the image, in the vertical direction. Valid only for values of MaskNum from 101 to 131 |
ReplicateX | long | 0 | Number of times to replicate the wipe pattern in the horizontal direction. Valid only for values of MaskNum from 101 to 131. |
ReplicateY | long | 0 | Number of times to replicate the wipe pattern in the vertical direction. Valid only for values of MaskNum from 101 to 131. |
ScaleX | long | 0.0 | Amount by which to stretch the wipe in the horizontal direction, as a percentage of the original wipe definition. Valid only for values of MaskNum from 101 to 131. |
ScaleY | long | 0.0 | Amount by which to stretch the wipe in the vertical direction, as a percentage of the original wipe definition. Valid only for values of MaskNum from 101 to 131. |
The following XML code describes the standard SMPTE wipes included in Windows Movie Maker. The comment parameter usually gives the transition name shown in the Windows Movie Maker transition list.
<TransitionDLL guid="{DE75D012-7A65-11D2-8CEA-00A0C9441E20}" comment="DxtJpeg/SMPTE wipes">
<Transition nameID="62826" iconid="41" comment="Reveal, Right|(smpte 1)">
<Param name="MaskNum" value="1" />
</Transition>
<Transition nameID="62827" iconid="40" comment="Reveal, Down|(smpte 2)" >
<Param name="MaskNum" value="2" />
</Transition>
<Transition nameID="62828" iconid="27" comment="Inset, Down Right|(smpte 3)">
<Param name="MaskNum" value="3" />
</Transition>
<Transition nameID="62829" iconid="28" comment="Inset, Down Left|(smpte 4)" >
<Param name="MaskNum" value="4" />
</Transition>
<Transition nameID="62830" iconid="25" comment="Inset, Up Left|(smpte 5)">
<Param name="MaskNum" value="5" />
</Transition>
<Transition nameID="62831" iconid="24" comment="Inset, Up Right|(smpte 6)">
<Param name="MaskNum" value="6" />
</Transition>
<Transition nameID="62832" iconid="50" comment="Split, Vertical|(smpte 21)" >
<Param name="MaskNum" value="21" />
</Transition>
<Transition nameID="62833" iconid="22" comment="Split, Horizontal|(smpte 22)">
<Param name="MaskNum" value="22" />
</Transition>
<Transition nameID="62834" iconid="9" comment="Diagonal, Down Right|(smpte 41)">
<Param name="MaskNum" value="41" />
</Transition>
<Transition nameID="62835" iconid="51" comment="Bow Tie, Vertical|(smpte 43)">
<Param name="MaskNum" value="43" />
</Transition>
<Transition nameID="62836" iconid="23" comment="Bow Tie, Horizontal|(smpte 44)">
<Param name="MaskNum" value="44" />
</Transition>
<Transition nameID="62837" iconid="8" comment="Diagonal, Cross Out|(smpte 47)">
<Param name="MaskNum" value="47" />
</Transition>
<Transition nameID="62838" iconid="7" comment="Diagonal, Box Out|(smpte 48)">
<Param name="MaskNum" value="48" />
</Transition>
<Transition nameID="62839" iconid="16" comment="Filled V, Down|(smpte 61)">
<Param name="MaskNum" value="61" />
</Transition>
<Transition nameID="62840" iconid="15" comment="Filled V, Left|(smpte 62)">
<Param name="MaskNum" value="62" />
</Transition>
<Transition nameID="62841" iconid="13" comment="Filled V, Up|(smpte 63)">
<Param name="MaskNum" value="63" />
</Transition>
<Transition nameID="62842" iconid="14" comment="Filled V, Right|(smpte 64)">
<Param name="MaskNum" value="64" />
</Transition>
<Transition nameID="62844" iconid="64" comment="Zig Zag, Vertical|(smpte 73)">
<Param name="MaskNum" value="73" />
</Transition>
<Transition nameID="62845" iconid="62" comment="Zig Zag, Horizontal|(smpte 74)">
<Param name="MaskNum" value="74" />
</Transition>
<Transition nameID="62846" iconid="39" comment="Rectangle, Out|(smpte 101)">
<Param name="MaskNum" value="101" />
</Transition>
<Transition nameID="62847" iconid="11" comment="Diamond, Out|(smpte 102)">
<Param name="MaskNum" value="102" />
</Transition>
<Transition nameID="62848" iconid="80" comment="Circle, Out, Soft|(smpte 119)">
<Param name="MaskNum" value="119" />
<Param name="BorderSoftness" value="20" />
</Transition>
<Transition nameID="62849" iconid="81" comment="Circles, Out, Soft|(smpte 119)">
<Param name="MaskNum" value="119" />
<Param name="ReplicateX" value="8" />
<Param name="ReplicateY" value="6" />
<Param name="BorderSoftness" value="75" />
</Transition>
<Transition nameID="62850" iconid="46" comment="Star, 5 Points|(smpte 128)">
<Param name="MaskNum" value="128" />
<Param name="BorderSoftness" value="20" />
</Transition>
<Transition nameID="62851" iconid="83" comment="Stars, 5 Points|(smpte 128)">
<Param name="MaskNum" value="128" />
<Param name="ReplicateX" value="5" />
<Param name="ReplicateY" value="5" />
<Param name="BorderSoftness" value="75" />
</Transition>
<Transition nameID="62852" iconid="18" comment="Heart|(smpte 130)">
<Param name="MaskNum" value="130" />
<Param name="BorderSoftness" value="20" />
</Transition>
<Transition nameID="62853" iconid="30" comment="Key Hole|(smpte 131)" >
<Param name="MaskNum" value="131" />
<Param name="BorderSoftness" value="20" />
</Transition>
<Transition nameID="62854" iconid="84" comment="Sweep, Diagonal|(smpte 226)">
<Param name="MaskNum" value="226" />
</Transition>
<Transition nameID="62855" iconid="85" comment="Sweep, Horizontal|(smpte 228)">
<Param name="MaskNum" value="228" />
</Transition>
<Transition nameID="62856" iconid="82" comment="Fan, In, Vertical|(smpte 231)">
<Param name="MaskNum" value="231" />
</Transition>
<Transition nameID="62857" iconid="3" comment="Eye|(smpte 122)">
<Param name="MaskNum" value="122" />
<Param name="BorderSoftness" value="20" />
</Transition>
<Transition nameID="62858" iconid="86" comment="Swinging Door, Bottom|(smpte 253)">
<Param name="MaskNum" value="253" />
</Transition>
<Transition nameID="62859" iconid="87" comment="Windshield, Up|(smpte 262)">
<Param name="MaskNum" value="262" />
</Transition>
<Transition nameID="62860" iconid="88" comment="Windshield, Vertical|(smpte 263)" >
<Param name="MaskNum" value="263" />
</Transition>
</TransitionDLL>
</Transitions>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Wheel transition provides a spinning wheel-spoke wipe. It takes the following parameter.
Parameter | Type | Default | Range | Description |
Spokes | int | 4 | 2 to 20 | Number of spokes. |
The following XML code shows the Wheel transition included in Windows Movie Maker:
<TransitionDLL guid="{5AE1DAE0-1461-11D2-A484-00C04F8EFB69}">
<Transition nameID="62819" iconid="53" comment="Wheel, 4 spokes">
<Param name="spokes" value="4" />
</Transition>
</TransitionDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
Windows Media Transform Effects (WMTFX) are a group of effects and transitions that you can assemble from a standard list of parameters. These transitions and effects are based on one of two COM objects that expose identical parameters, but one is used to build transitions (GUID C63344D8-70D3-4032-9B32-7A3CAD5091A5), and the other is used to build effects (GUID B4DC8DD9-2CC1-4081-9B2B-20D7030234EF). When you create WMTFX transitions or effects, be sure that you specify the GUID of the appropriate object, and that an effect is inside an <effect> block and a transition is inside a <transition> block. The following code shows an example transition and an example effect:
<TransitionsAndEffects Version="1.0">
<Transitions>
<TransitionDLL guid="{C63344D8-70D3-4032-9B32-7A3CAD5091A5}">
<Transition name="My rotating fade" iconid="91">
<Param name="InternalName" value="ParticleSystem"/>
<Param name="RotateA" value="left"/>
<Param name="FadeStartA" value="0.1"/>
</Transition>
</TransitionDLL>
</Transitions>
<Effects>
<EffectDLL guid="{B4DC8DD9-2CC1-4081-9B2B-20D7030234EF}">
<Effect name="My yellow effect" iconid="9">
<Param name="InternalName" value="Standard"/>
<Param name="Yellow" value="1.0"/>
<Param name="Magenta" value="-1.0"/>
<Param name="Cyan" value="-1.0"/>
</Effect>
</EffectDLL>
</Effects>
</TransitionsAndEffects>
A WMTFX transition or effect can be based on one of the following four classes:
- Standard
- Hue
- Simple3D
- ParticleSystem
Each class exposes specific parameters, described later. The class you use is specified by the InternalName parameter, as shown here:
<Param name="InternalName" value=someclassname />
This must be the first parameter given for the class.
Note that the ParticleSystem class extends the Simple3D class, and exposes both its own parameters as well as the Simple3D parameters. So, for example, an effect based on the ParticleSystem class will expose both ParticleSystem parameters and Simple3D parameters.
Although classes and parameters are the same for both effects and transitions, not all parameters work with all effects or transitions. For example, a transition based on the Standard class won't have a parameter that specifies when the transition occurs. You will have to experiment a little to see which classes and parameters work together for an effect or a transition.
The following tables list the parameters exposed by each class. When an "A" or "B" appears in a parameter name, "A" refers to the existing or previous clip or picture, and "B" refers to the new clip or picture replacing it.
Standard Class Parameters
Parameter | Type | Default value | Range | Description |
Invert | float | None | 0.0 to 1.0 | Color inversion produces new color values that are the previous color values subtracted from 255. Only values above the submitted value of the Invert parameter times 255 are inverted. |
Red | float | None | -1.0 to 1.0 | Adjusts color balance. |
Green | float | None | -1.0 to 1.0 | Adjusts color balance. |
Blue | float | None | -1.0 to 1.0 | Adjusts color balance. |
Cyan | float | None | -1.0 to 1.0 | Adjusts color balance. Ignored if Red is specified. |
Magenta | float | None | -1.0 to 1.0 | Adjusts color balance. Ignored if Green is specified. |
Yellow | float | None | -1.0 to 1.0 | Adjusts color balance. Ignored if Blue is specified. |
Brightness | float | None | 0.0 to infinity | For brightness adjustment, each color channel value is multiplied by the submitted value. These values should be greater than or equal to zero and are usually around 1.0. |
Contrast | float | None | 0.0 to infinity | Contrast adjustment shifts the range of each color channel around a midpoint. These values should be greater than or equal to zero, and are usually around 1.0. |
Posterize | int | None | 0 to 255 | This value is the number of color levels that should remain after posterization. |
Threshold | float | None | 0.0 to 1.0 | For the threshold filtering adjustment, each sample color channel whose value is below the submitted Threshold value times 255 is set to zero. Each color channel with a value equal to or above that threshold is set to 255. |
Gamma | float | None | 0.0 to infinity | Gamma correction for pixels. Less than 1.0 is dimmer, greater than 1.0 is brighter. |
ExponentialProgressDuration | float | 0.0 | 0.0 to 1.0 | Length of time, starting from 0.0, during which progress will happen on a logarithmic scale. Progress is linear after that time. |
ExponentialProgressScale | float | 0.3 | 0.0 to infinity | Scale of the exponential progress. The equation is: LogrithmicScale = -log(1.0 - LinearProgress ) * ExponentialProgressScale |
MirrorVertical | bool | false | "false" or "true" | Draw output upside down if true. |
Desaturate | bool | false | "false" or "true" | Convert the image to grayscale (black-and-white) if true, allow color if false. |
Rotate2DA | int | 0 | 0 to 359 | Amount to rotate output video in degrees. |
Hue Class Parameters
This class inherits from the Standard class and is used only for the hue cycle effect included in Windows Movie Maker. The effect cycles the video through a color spectrum—blue, cyan, green, yellow, red, magenta, then back to blue—and lets the user to choose the starting and ending colors on a scale from 0 to 1, where 0 and 1 are both blue on this path.
Parameter | Type | Default value | Range | Description |
Value | float | 0.0 | 0.0 to 1.0 | The starting color on a scale where zero is blue, 0.5 is yellow, and one is blue again. |
EndValue | float | None | 0.0 to 1.0 | The ending color on a scale where zero is blue, 0.5 is yellow, and one is blue again. If Value is specified, EndValue must be specified as well, or the effect will not work. |
Simple3D Class Parameters
This class is typically used by transitions for basic rotating, expanding, shrinking, or page-turning transitions.
Parameter | Type | Default value | Range | Description |
MoveA | string | none | left, right, up, down | Slide first video in direction of property: left, right, up, down, in, or out |
MoveSpeedA | float | 1.0 | 0.0 to infinity | Speed at which MoveA parameter is applied. |
RotateA | string | none | left, right, up, down | Direction of rotation of the first video. |
ScaleA | string | none | Smaller, Bigger, or a float > 0 | Final video size compared to the original video. "Smaller" and "Bigger" give generic relative values, while a floating-point number is a size multiplier (1.0 would give you a final size the same as the original size). |
InitialScaleA | string | 1.0 | Smaller, Bigger, or a float > 0 | Initial video size compared to original video. "Smaller" and "Bigger" give generic relative values, while a floating-point number is a size multiplier (1.0 would give you an initial size the same as the original size). |
RotateCenterA | string | none | lowerright only | Center of rotation for first video. |
ZScaleAStart | string | none | 0.0 to 1.0 | Time when X axis stops scaling and Z axis starts. |
ShowAFront | bool | true | true or false | The front polygon of the first video is rendered when this parameter is true. |
ShowABack | bool | false | true or false | The rear polygon of the first video is rendered when this parameter is true. |
ShowBFront | bool | true | true or false | The front polygon of the second video is rendered when this parameter is true. |
ShowBBack | bool | false | true or false | The rear polygon of the second video is rendered when this parameter is true. |
RevolveCamera | string | nothing | true or nothing | Camera rotates around the world x-axis when true. If any value is passed into this parameter, it will set the value to true. |
PageCurlA | string | none | lowerright, lowerleft, upperleft, upperright, right, left, upper, or lower. | Where the page curl starts. |
FadeStartA | float | none | 0.0 to 1.0 | Time when first video starts to fade out. |
ParticleSystem Class Parameters
This class inherits from the Simple3D class, and exposes all the Simple3D parameters, as well as these parameters. These effects enable an image to be divided into spinning, three-dimensional particles (squares or rectangles) that can move in a desired direction.
Parameter | Type | Default value | Range | Description |
ScatterDirection | string | none | left, right, up, down, in, out | Direction in which pieces of the first video will move, where "in" means away from the viewer, and "out" means toward the viewer. You may choose more than one direction, so "up, left" makes the pieces move to the upper left of the screen. |
ParticleSpeed | float | 1.0 | > 0 | The speed at which the pieces move. |
SpinDirection | string | none | left, right, up, down, in, out | Direction in which the pieces of the first video will rotate, where "in" means toward the screen and "out" means away from the screen. Choose only one direction. |
ParticleSpinSpeed | float | 1.0 | > 0 | How fast the particles spin. |
MaxParticles | int | 100 | 3 to 1000 | Maximum number of particles in the scene. |
Gravity | float | 0.0 | 0 to infinity | Vertical acceleration of the particles. |
RandomizeSpeed | float | 1.0 | any number | Randomization multiplier. Set to 0 (zero) to make the speed uniform for all particles. |
BothDirections | bool | false | true or false | If true, particles will move in both directions with equal probability. |
The following XML code describes all the WMTFX transitions and effects included with Windows Movie Maker. The comment parameter usually gives the name shown in the Windows Movie Maker transition or effect list.
WMTFX Transitions
<TransitionDLL guid="{C63344D8-70D3-4032-9B32-7A3CAD5091A5}">
<Transition nameID="62800" iconid="91" comment="Flip, right">
<Param name="InternalName" value="Simple3D" />
<Param name="RevolveCamera" value="true" />
<Param name="ShowAFront" value="true" />
<Param name="ShowABack" value="false" />
<Param name="ShowBFront" value="false" />
<Param name="ShowBBack" value="true" />
</Transition>
<Transition nameID="62801" iconid="72" comment="Slide, up">
<Param name="InternalName" value="Simple3D" />
<Param name="MoveA" value="up" />
</Transition>
<Transition nameID="62802" iconid="73" comment="Slide up, center">
<Param name="InternalName" value="Simple3D" />
<Param name="MoveA" value="up" />
<Param name="ScaleA" value="smaller" />
<Param name="MoveSpeedA" value="0.75" />
</Transition>
<Transition nameID="62803" iconid="70" comment="Roll, right">
<Param name="InternalName" value="Simple3D" />
<Param name="RotateA" value="right" />
<Param name="RotateCenterA" value="lowerright" />
</Transition>
<Transition nameID="62804" iconid="74" comment="Spin out, left">
<Param name="InternalName" value="Simple3D" />
<Param name="ScaleA" value="smaller" />
<Param name="RotateA" value="left" />
<Param name="FadeStartA" value="0.2" />
</Transition>
<Transition nameID="62805" iconid="89" comment="Page Curl, lower left">
<Param name="InternalName" value="Simple3D" />
<Param name="PageCurlA" value="lowerleft" />
<Param name="ShowABack" value="true" />
</Transition>
<Transition nameID="62806" iconid="90" comment="Page Curl, lower right">
<Param name="InternalName" value="Simple3D" />
<Param name="PageCurlA" value="lowerright" />
<Param name="ShowABack" value="true" />
<Param name="FadeStartA" value="0.8" />
</Transition>
<Transition nameID="62807" iconid="77" comment="Shatter, Right">
<Param name="InternalName" value="ParticleSystem" />
<Param name="ScatterDirection" value="right" />
<Param name="SpinDirection" value="right" />
<Param name="MaxParticles" value="200" />
</Transition>
<Transition nameID="62808" iconid="78" comment="Shatter, up left">
<Param name="InternalName" value="ParticleSystem" />
<Param name="ScatterDirection" value="up, left" />
<Param name="MaxParticles" value="64" />
<Param name="ExponentialProgressDuration" value="0.4" />
<Param name="ExponentialProgressScale" value="0.33" />
</Transition>
<Transition nameID="62809" iconid="76" comment="Shatter, in">
<Param name="InternalName" value="ParticleSystem" />
<Param name="ScatterDirection" value="in" />
<Param name="MaxParticles" value="600" />
<Param name="SpinDirection" value="right" />
<Param name="ParticleSpeed" value="40.0" />
<Param name="ParticleSpinSpeed" value="0.5" />
<Param name="ExponentialProgressDuration" value="0.9" />
<Param name="ExponentialProgressScale" value="0.25" />
</Transition>
<Transition nameID="62810" iconid="75" comment="Whirlwind, Fade">
<Param name="InternalName" value="ParticleSystem" />
<Param name="MaxParticles" value="200" />
<Param name="SpinDirection" value="right" />
<Param name="BothDirections" value="true" />
</Transition>
<Transition nameID="62811" iconid="79" comment="Shatter, up right">
<Param name="InternalName" value="ParticleSystem" />
<Param name="MaxParticles" value="700" />
<Param name="ScatterDirection" value="up, right" />
<Param name="BothDirections" value="true" />
</Transition>
<Transition nameID="62812" iconid="71" comment="Shrink vertical, then horizontal">
<Param name="InternalName" value="Simple3D" />
<Param name="ScaleA" value="smaller" />
<Param name="ZScaleAStart" value="0.5" />
<Param name="FadeStartA" value="0.5" />
</Transition>
</TransitionDLL>
WMTFX Effects
<EffectDLL guid="{B4DC8DD9-2CC1-4081-9B2B-20D7030234EF}">
<Effect nameID="62863" iconid="25" comment="Sepia tone">
<Param name="InternalName" value="Standard" />
<Param name="Desaturate" value="true" />
<Param name="Red" value="0.10" />
<Param name="Magenta" value="0.09" />
<Param name="Yellow" value="0.25" />
<Param name="contrast" value="1.0" />
</Effect>
<Effect nameID="62864" iconid="18" comment="Negative">
<Param name="InternalName" value="Standard" />
<Param name="Invert" value="-1.0" />
</Effect>
<Effect nameID="62865" iconid="20" comment="Posterize">
<Param name="InternalName" value="Standard" />
<Param name="Posterize" value="6" />
</Effect>
<Effect nameID="62866" iconid="29" comment="Threshold">
<Param name="InternalName" value="Standard" />
<Param name="Threshold" value="0.5" />
</Effect>
<Effect nameID="62867" iconid="16" comment="Hue, Cycles Entire Color Spectrum">
<Param name="InternalName" value="Hue" />
<Param name="Value" value="0.0" />
<Param name="EndValue" value="1.0" />
</Effect>
<Effect nameID="62868" iconid="33" comment="Ease In">
<Param name="InternalName" value="Simple3D" />
<Param name="ScaleA" value="bigger" />
<Param name="ExponentialProgressDuration" value="0.01" />
</Effect>
<Effect nameID="62869" iconid="34" comment="Ease Out">
<Param name="InternalName" value="Simple3D" />
<Param name="ScaleA" value="smaller" />
<Param name="InitialScaleA" value="bigger" />
<Param name="ExponentialProgressDuration" value="0.01" />
</Effect>
<Effect nameID="62870" iconid="35" comment="Mirror, Vertical">
<Param name="InternalName" value="Standard" />
<Param name="MirrorVertical" value="true" />
</Effect>
<Effect nameID="62871" iconid="24" comment="Rotate 90">
<Param name="InternalName" value="Standard" />
<Param name="Rotate2DA" value="90" />
</Effect>
<Effect nameID="62872" iconid="22" comment="Rotate 180">
<Param name="InternalName" value="Standard" />
<Param name="Rotate2DA" value="180" />
</Effect>
<Effect nameID="62873" iconid="23" comment="Rotate 270">
<Param name="InternalName" value="Standard" />
<Param name="Rotate2DA" value="270" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Blur effect blurs an image by custom amounts. It takes the following parameters.
Parameter | Type | Default | Range | Description |
PixelRadius | float | 2.0 | 0.0 to 25 | The larger the number, the blurrier the picture. |
The following XML code shows the Blur effect included in Windows Movie Maker:
<EffectDLL guid="{7312498D-E87A-11D1-81E0-0000F87557DB}" comment="Blur">
<Effect nameID="62890" iconid="30" comment="Blur">
<Param name="PixelRadius" value="2.5" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Brightness effect modifies the brightness of a segment of video. It takes the following parameter.
Parameter | Type | Default | Range | Description |
Brightness | long | 0 | -255 to 255 | Amount to modify the brightness by, where zero is no difference. |
The following XML code shows the brightness effects included in Windows Movie Maker:
<EffectDLL guid="{5A20FD6F-F8FE-4a22-9EE7-307D72D09E6E}">
<Effect nameID="62881" iconid="7" comment="Brightness increase">
<Param name="Brightness" value="25" />
</Effect>
<Effect nameID="62882" iconid="6" comment="Brightness decrease">
<Param name="Brightness" value="-25" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Fade effect causes a clip to fade in to or out from a solid color of your choice. It takes the following parameters.
Parameter | Type | Default | Range | Description |
FadeIn | bool | 0 | 0 or 1 | 0 indicates that the clip will fade out to a color; 1 indicates that a clip will fade in from a color. |
FadeColor | long | 0 | 0 to 0xFFFFFF | The number can be given in hexadecimal or binary. In hexadecimal, the values represent blue, green, and red values as 0xBBGGRR. (This is not a misprint. The blue value must be first.) |
The following XML code shows the Film Aging effects included in Windows Movie Maker:
<EffectDLL guid="{EC85D8F1-1C4E-46e4-A748-7AA04E7C0496}">
<Effect nameID="62877" iconid="11" comment="Fade Out, To black">
<Param name="FadeIn" value="0" />
<Param name="FadeColor" value="0" />
</Effect>
<Effect nameID="62878" iconid="9" comment="Fade in, from black">
<Param name="FadeIn" value="1" />
<Param name="FadeColor" value="0" />
</Effect>
<Effect nameID="62879" iconid="12" comment="Fade Out, to white">
<Param name="FadeIn" value="0" />
<Param name="FadeColor" value="16777215" />
</Effect>
<Effect nameID="62880" iconid="10" comment="Fade in, to white">
<Param name="FadeIn" value="1" />
<Param name="FadeColor" value="16777215" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Film Aging effect introduces graininess, scratches, and other visual artifacts that make it appear as if a film is old. It takes the following parameters.
Parameter | Type | Default | Range | Description |
Age | long | 0 | 0 to 100 | Number of "years" to age the film. |
The Age parameter is actually a combination of ten separate parameters. If you want to set these parameters independently, rather than using the Age parameter, you can do so. These are the parameters that Age includes.
Parameter | Type | Default | Range | Description |
BlurAmount | long | 0 | 0 to 255 | Higher value means blurrier image. |
EdgeFade | long | 0 | 0 to 255 | Higher value means more edge fade. |
FilmJerkiness | long | 0 | 0 to 255 | Degree of film jerkiness, where 0 is least and 255 is most. |
FlickerFrequency | long | 0 | 0, 1 to 255 | This effect sets the darkness of intervening, regularly spaced frames, where the lower the number, the darker the intervening frames, giving a flickering appearance. Zero means no visible flicker. |
FrameSkips | long | 0 | 0 to 255 | Number of frames to skip before showing the next frame. |
Grey | bool | false | true, false | True means grayscale (black-and-white) image. |
LineFrequency | long | 0 | 0 to 255 | The frequency of white traveling "cracks" or lines in the image, where 0 creates the fewest lines and 255 the most. |
LintFrequency | long | 0 | 0 to 255 | Frequency of "lint" or "tears" on the screen, where 0 creates the least and 255 the most. |
NoiseFrequency | long | 0 | 0 to 255 | Adds noise to the image, where 0 creates the least noise and 255 the most. |
PosterizeBits | long | 0 | 0 to 8 | Amount of posterization to apply to the image, where zero is least and 8 is most. |
The following XML code shows the Film Aging effects included in Windows Movie Maker:
<EffectDLL guid="{ADEADEB8-E54B-11d1-9A72-0000F875EADE}">
<Effect nameID="62874" iconid="4" comment="Film Age, Oldest">
<Param name="Age" value="90" />
</Effect>
<Effect nameID="62875" iconid="3" comment="Older">
<Param name="Age" value="60" />
</Effect>
<Effect nameID="62876" iconid="2" comment="Old">
<Param name="Age" value="30" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
Filter effects provide a variety of effects often associated with print media. Each effect has a number of parameters associated with it, passed in by generic names Control1Value through Control8Value. Not all parameters are used for every effect. Effects cannot be combined. The following table describes the parameters for all effects.
Parameter | Type | Default | Range | Description |
EffectID | long | 0 | 0 or 1 | The ID of an effect to use, described in the next table. |
Control1Value
to Control8Value |
long | Varies by effect | 0 or 1 | Up to eight custom parameters for the effect. |
Transparency | long | 0 | 0 to 100 | How transparent the added effect is, with a higher number indicating more transparent. |
RGBForeColor | string | black | Any standard HTML color string that Internet Explorer will accept | Depends on the EffectID. |
RGBBackColor | string | white | Any standard HTML color string that Internet Explorer will accept | Depends on the EffectID. |
RGBExtraColor | string | black | Any standard HTML color string that Internet Explorer will accept | Depends on the EffectID. |
TextureURL | string | none | Any standard HTML color string that Internet Explorer will accept | Applies to ConteCrayon, RoughPastel, Texturizer, and Underpainting effects. |
The following table lists the effects that can be specified by the EffectID parameter.
EffectID | Effect name |
0 | None |
1 | Accents |
2 | AngledStrokes |
3 | BasRelief |
4 | Mosaic |
5 | ChalkAndCharcoal |
6 | Charcoal |
7 | Chrome |
8 | ColoredPencil |
9 | Craquelure |
10 | Crosshatch |
11 | Cutout |
12 | DarkStrokes |
13 | DiffuseGlow |
14 | DryBrush |
15 | Emboss |
16 | FilmGrain |
17 | InkOutline |
18 | NotePaper |
19 | Fresco |
20 | GlowingEdges |
21 | Grain |
22 | HalftoneScreen |
23 | Patchwork |
24 | NeonGlow |
25 | PaintDaubs |
26 | PaletteKnife |
27 | Plaster |
28 | PlasticWrap |
29 | PosterEdges |
30 | Ripple |
31 | Reticulation |
32 | SmudgeStick |
33 | Sponge |
34 | SprayedStrokes |
35 | Stamp |
36 | Photocopy |
37 | Sumie |
38 | GraphicPen |
39 | TornEdges |
40 | Watercolor |
41 | WaterPaper |
42 | StainedGlass |
43 | Glass |
44 | Texturizer |
45 | Underpainting |
46 | ConteCrayon |
47 | RoughPastel |
48 | Spatter |
The following XML code shows the Filter effects included in Windows Movie Maker:
<EffectDLL guid="{E673DCF2-C316-4c6f-AA96-4E4DC6DC291E}" >
<Effect nameID="62886" iconid="13">
<Param name="EffectID" value="16" comment="Film Grain" />
<Param name="Control1Value" value="4" />
<Param name="Control2Value" value="0" />
<Param name="Control3Value" value="10" />
</Effect>
<Effect nameID="62887" iconid="27" comment="Smudge Stick">
<Param name="EffectID" value="32" />
<Param name="Control1Value" value="2" />
<Param name="Control2Value" value="0" />
<Param name="Control3Value" value="10" />
</Effect>
<Effect nameID="62888" iconid="14" comment="Graphic Pen">
<Param name="EffectID" value="38" />
<Param name="Control1Value" value="15" />
<Param name="Control2Value" value="0" />
<Param name="Control3Value" value="40" />
</Effect>
<Effect nameID="62889" iconid="30" comment="Watercolor">
<Param name="EffectID" value="40" />
<Param name="Control1Value" value="9" />
<Param name="Control2Value" value="1" />
<Param name="Control3Value" value="1" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
This object provides two abilities: creating a mirror image, and changing a color image to grayscale. This object takes the following parameters.
Parameter | Type | Default | Range | Description |
Mirror | long | 0 | 0 or 1 | A value of 1 indicates that the picture should be flipped horizontally. |
GrayScale | long | 0 | 0 or 1 | A value of 1 indicates that colors should be changed to grayscale, creating a black-and-white image. |
The following XML code shows the Mirror and Grayscale effects included in Windows Movie Maker:
<EffectDLL guid="{16B280C8-EE70-11D1-9066-00C04FD9189D}">
<Effect nameID="62884" iconid="17" comment="Mirror, Horizontal">
<Param name="Mirror" value="1" />
</Effect>
<Effect nameID="62885" iconid="15" comment="Grayscale">
<Param name="Grayscale" value="1" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
The Pixelate effect causes an image to coarsen into squares of a single, solid color for each square, representing the average color of the original pixels from that area. It takes the following parameter.
Parameter | Type | Default | Range | Description |
MaxSquare | long | 50 | 2 to 50 | The larger the number, the larger the squares and the coarser the picture. |
The following XML code shows the Pixelate effect included in Windows Movie Maker:
<EffectDLL guid="{4CCEA634-FBE0-11D1-906A-00C04FD9189D}" comment="Pixelate">
<Effect nameID="62818" iconid="19" comment="Pixelate">
<Param name="MaxSquare" value="25" />
</Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
Speed effects speed up or slow down the playback of a video. They cannot be used for pausing or backward motion. These effects are not tied to an actual GUID, but are passed the null GUID. Speed effects may cause frame skipping, so selecting a value that is too large will cause an unsatisfactory result. This effect takes the following parameter.
Parameter | Type | Default | Range | Description |
Speed | float | 1.0 | Greater than 0.0 | A value of 1.0 is normal speed, less means slower, and greater means faster. |
The following XML code shows the Speed effects included in Windows Movie Maker:
<EffectDLL guid="{00000000-0000-0000-0000-000000000000}">
<Effect nameID="62861" iconid="32" speed="2.0" comment="Speed up"></Effect>
<Effect nameID="62862" iconid="31" speed="0.5" comment="Slow down"></Effect>
</EffectDLL>
See Also
- Effect and Transition Objects Provided by Windows Movie Maker
You can attach custom icons to your custom effects and transitions for Windows Movie Maker. These icons are created as a resource file in a C++ project and compiled into a DLL. If you are not providing any custom transition or effect code, the project will contain only the icon resource file.
Windows Movie Maker can use a single bitmap image consisting of one or more icons joined at the sides. Windows Movie Maker automatically cuts the image into 96-pixel-wide, 84-pixel-high segments, each segment being one icon. The top and bottom 6 pixels should be left blank for image padding, which trims the visible icon size to 96 x 72 (3 x 4) segments. Windows Movie Maker assigns an identification number to each segment, starting at 0 and incrementing by 1, which describes how many "jumps" into the strip an icon is. In your XML file you specify which icon to use for each effect. You can use all custom icons, or all Windows Movie Maker standard icons, but you cannot mix the two types. The following diagram shows the layout of a bitmap image strip for icons.
In the preceding diagram, an effect or transition would set iconid = 0 for the smiley-face icon, and 4 for the sun icon.
When creating an icon strip, the top and bottom 6 pixels should be pure white, as this margin will be trimmed to make a 4 x 3 thumbnail to be displayed in the storyboard. Pure white (255,255,255) will be transparent when displayed.
To add your own icons, you must add two additional attributes to the TransitionsAndEffects tag:
- SpecialIconFileID An attribute that is used in an XML file only when including your own custom icons. It should be a unique number from 1 to 8192. This number must be unique for all SpecialIconFileID attributes in all other custom Windows Movie Maker XML files, but otherwise has no meaning.
- SpecialIconResourceID An attribute that is used in an XML file only when including your own custom icons. This is the number assigned to the icon bitmap resource in your custom DLL. You can find this number in your Visual Studio project, in the resource file.
Here is XML code that specifies custom icons:
<TransitionsAndEffects Version="1.0" SpecialIconFileID="22" SpecialIconResourceID="101">
To create custom icons for your effects and transitions
Open Visual Studio and create a new C++ project. If only creating a DLL to hold icons, create a new Win32 project, and when asked for settings choose an empty project that compiles to a DLL.
Add a new resource to the project. When asked what kind of resource, choose "bitmap."
Draw or import a bitmap in the resource editor. The largest icon size is 96 pixels wide and 84 pixels high (including the six-pixel white buffers on top and bottom). Windows Movie Maker measures an image from the bottom left corner: if the image is too high, the extra material will be cropped; if the image is too wide, the extra material will be assigned to the next higher icon. If your image is less than 96 pixels wide, Windows Movie Maker will include part of the next icon. Insert as many icon images as you need in these 96-pixel-wide windows.
Note the ID assigned to the bitmap in the resource.h file. This will be assigned to the SpecialIconResourceID attribute. For example, the following line shows a bitmap that has been assigned 101 as its identifier:
#define IDB_BITMAP1 101
Compile the DLL, and place it in the \AddOnTFX folder with your XML file. The image DLL must have the same name as the XML file that uses the icons. So, for example, if your DLL is called MyIcons.dll, your XML file must be MyIcons.xml.
In your XML file, add a SpecialIconFileID attribute to the TransitionsAndEffects XML tag and assign it a unique integer from 1 to 8192. The value of this number is not important as long as no other XML effect file uses this number to identify itself.
Add a SpecialIconResourceID attribute to the TransitionsAndEffects tag, and assign it the number that Visual Studio assigned to the bitmap: in this example, the 101 shown in step 4.
In each transition or effect XML block, add an iconid attribute to the Transition tag, and choose the offset into your bitmap, starting at zero, where your icon is located. These numbers do not have to be sequential, and regions may be skipped.
The following XML snippet shows two custom transitions using the first and third icons in a bitmap image, with the ID 101 from the DLL, and a unique ID of 22 assigned to the files:
<TransitionsAndEffects Version="1.0" SpecialIconFileID="22" SpecialIconResourceID="101">
<Transitions>
<TransitionDLL guid="{C63344D8-70D3-4032-9B32-7A3CAD5091A5}">
<Transition name="Grow, custom icon 1" iconid="0">
<Param name="InternalName" value="Simple3D" />
<Param name="ScaleA" value="bigger" />
<Param name="ExponentialProgressDuration" value="3.0" />
<Param name="ExponentialProgressScale" value="1.0" />
</Transition>
</TransitionDLL>
<TransitionDLL guid="{C63344D8-70D3-4032-9B32-7A3CAD5091A5}">
<Transition name="Grow, custom icon 3" iconid="2">
<Param name="InternalName" value="Simple3D" />
<Param name="ScaleA" value="bigger" />
<Param name="ExponentialProgressDuration" value="3.0" />
<Param name="ExponentialProgressScale" value="2.0" />
</Transition>
</TransitionDLL>
</Transitions>
</TransitionsAndEffects>
Note The XML file name and the DLL file name must match only when the DLL is used only for holding an image. If the DLL is not holding an image (as when it holds custom effects and transition objects) the names do not need to match.
In addition to modifying the existing transitions and special effects, it is possible to create completely new ones. These objects, called DirectX Transforms (DXTs), require considerable knowledge of COM and DirectX programming, as well as ATL, and is only briefly described in this section. To learn where you can read about DXTs, see For More Information.
This download includes two Visual Studio projects you can use to create new transition and effect objects; one version is for Visual Studio .NET, and the other is for Visual Studio 6.0. If you use the version 6.0 project, you must also install the Microsoft DirectX 7.0 SDK to obtain the necessary headers for this project. You can find this at the location shown in For More Information.
In addition, both projects require you to install the Microsoft DirectX Media SDK, available at the Microsoft Web site.
The downloadable executable file associated with this document is a self-extracting group of files and folders. The downloaded project includes the following files:
- C++ project files containing code for several sample effects
- XML files to load these effects and some additional effects into Windows Movie Maker
- Readme.txt describing the contents of each file
- HowToInstall.txt describing the installation process
- MMSTFX.dll, which is an already compiled sample of the DLL this project will create
Running the self-extraction program creates a top-level MMSTFX folder containing the project and text files, an MMSTFX\Bin folder containing the DLL, and an MMSTFX\XML folder containing the XML files.
The sample C++ code creates a new effect (Blue Adjust) and a new transition (Melt) in a DLL named MMSTFX.dll. Also included are XML files that modify the effects provided with Windows Movie Maker. These "new" effects include "Page Curl, Down Left," "Page Curl, Down Right," "Blur, Super," "Brightness, Super Increase," "Brightness, Super Decrease," and "Whirlwind, Down, Small Blocks." More details on these objects can be found in the ReadMe.txt file included with the download.
To open the project in Visual Studio 6.0, double-click the file MMSTFX.dsp. To open the project in Visual Studio .NET, double-click the file MMSTFX.vcproj.
Note If you receive an error message that you cannot compile DXTrans.idl, be sure that you list the path to the DXMedia\include folder on your computer. This path should be specified in the Tools > Options > Projects > VC++ Directories dialog box.
After you open and compile the sample DLL, you can run the program in debug mode. You will receive a warning dialog box indicating that the project does not include debug symbols for the Windows Movie Maker program; click OK. When asked what program to attach to, navigate to and select the moviemk.exe program file.
The following diagram shows the important classes provided in the sample code.
The following describes classes and objects of the sample code:
CMMSampleEffect and CMMSampleTransition
These are the top-level effect and transition DXT classes of the sample. CMMSampleEffect implements the Blue Adjust sample effect; CMMSampleTransition implements the Melt sample transition. These classes may be modified to change the samples, or copied and modified to create new effects or transitions. Windows Movie Maker creates these classes with COM using the GUID assigned to each. These classes create a helper object to handle video by calling CreateSpecialEffectByName: CMMSampleEffect creates CMMSpecialEffect, and CMMSampleTransition creates CMMSimple3DSpecialEffect. The default number of input buffers is one (the only number permitted for an effect), but CMMSampleTransition increases this to two (the correct number for a transition).
CMMSpecialEffectDXT
Handles communication and buffer manipulation between Windows Movie Maker and the video-handling class (CMMSpecialEffect or its inheriting class).
CVideoPlane
This is a tool class used by 3-D effects to draw an input video onto a single plane.
CMMSpecialEffect
This is the base class for the graphics object used in 2-D effects and transitions. The Blue Adjust sample effect uses this class directly to tint the video blue. The Melt sample transition uses a derived class, CMM3DSpecialEffect, which is suited for 3-D manipulations. When creating a 2-D effect or transition, inherit from this class and override its Execute method.
CMM3DSpecialEffect
This is the base class for 3-D effects or transitions. It creates textures and a rendering surface on the output buffer. To create new effects or transitions, override the following methods: CreateScene, RenderScene, ReleaseScene, CreateSurfaces, RestoreSurfaces, and ReleaseSurfaces. The Execute method overridden from CMMSpecialEffect, handles low-level logic; you should not override it yourself. To modify or create a new effect or transition, you should override RenderScene. CMM3DSpecialEffect does not perform the rendering for 3-D objects; this is done by CSimple3DSpecialEffect.
CSimple3DSpecialEffect
The top level class used for 3-D effect and transition rendering. It performs the rendering for the Melt sample transition. This class overrides several functions from its base class, and creates a helper object based on CVideoPlane. To create a new Direct3D-based effect or transition, you can modify or create a new class inheriting this class.
Starting with the code provided in the sample is a good way to develop your own effect or transition. To replace the Blue Adjust effect with your own, first look at the CMMSpecialEffect.cpp and CMMSpecialEffect.h files. The methods Initialize and Terminate are called once each for the lifetime of the effect, and the Execute method is called each time a new video frame is rendered. To create a new effect, you can implement a class that inherits the CMMSpecialEffect class, and override the Initialize, Execute, and Terminate methods.
The CMMSampleEffect class, which in turn inherits from the CMMSpecialEffectDXT class, calls CreateSpecialEffectByName to create a drawing object, CMMSpecialEffect. If you define a new DXT, you can modify the object by changing the behavior of the CreateSpecialEffectByName function. These classes and objects handle much of the tedious work required to create new effects.
Note The CMMSampleEffect and CMMSampleTransition classes reference a CoClass GUID, which is the same GUID specified in the add-on XML file describing new or amended effects. When developing your own effects or transitions, you should copy and rename the CMMSampleEffect and CMMSampleTransition classes and generate a new GUID to use in this class and XML file, hence ensuring the uniqueness of the GUIDs used. Use the Guidgen tool provided with Visual Studio to generate a new GUID. COM objects reference their GUIDs in the .idl file describing them, the .rgs file that contains their registration information, and the .h file generated from the .idl file. When changing GUIDs, you must search the entire project for references to the old GUID. The XML file required by Windows Movie Maker to display the effect must also be updated to use the new GUID.
Writing a new transition usually requires more work than writing a new effect. The Melt sample used Direct3D to manipulate the image and render the result. Direct3D requires a substantial amount of initialization and execution code, which is provided in the Melt sample by the CSimple3DSpecialEffect class, which inherits from CMM3DSpecialEffect, which in turn inherits from CMMSpecialEffect. Similar to the Blue Adjust code, you should inherit the CMM3DSpecialEffect class and override the CreateScene, ReleaseScene and RenderScene methods to create your own transition. CreateScene and ReleaseScene are called once only; RenderScene is called each time a new frame is rendered.
Three other methods in the CMM3DSpecialEffect class may also be overridden if your transition needs to manage 3D vertex buffers differently than the Melt sample does. The three methods are CreateSurfaces, RestoreSurfaces, and ReleaseSurfaces.
Note The Initialize, Terminate, and Execute methods should not be overridden when you are using the CMM3DSpecialEffect class, as this class overrides these methods itself.
Also, you should copy and rename the CMMSampleTransition class, and provide it with a new GUID.
For drawing graphics, the Melt sample uses CSimple3DSpecialEffect inheriting from CMM3DSpecialEffect to create a transition, but these classes could also be used to create 3-D effects such as Blue Adjust. The only difference between an effect and a transition in Windows Movie Maker is the number of video input sources—one for an effect and two for a transition. The number of inputs is set to one by default, but the FinalConstruct method of CMMSampleTransition sets this value to two.
Note After an object is associated with an effect or transition, it cannot be changed to the other type without removing all references to its GUID from the registry. DirectShow stores the type of the effect or transition in the registry when Windows Movie Maker 2 starts up.
To create a new transition that does not use Direct3D, amend the CreateSpecialEffectByName method of the CMMSpecialEffectDXT class to create a CMMSpecialEffect object (or an object from a class that inherits from CMMSpecialEffect), avoiding any calls to Direct3D interfaces and methods.
The division of methods into the two classes, CMMSpecialEffect and CSimple3DSpecialEffect is to provide clarity to the sample. These could be combined into a single class if code brevity and optimization are important.
Passing in parameters from the XML file to your C++ DLL will enable users of your special effect to modify it to their tastes.
The first step is to add properties for these parameters to the .IDL file. For example, the following code exposes the Blue and MeltIntensity parameters of your object:
interface IMMSampleTFX : IDXEffect
{
[propget] HRESULT Blue([out,retval] float* pfBlue);
[propput] HRESULT Blue([in] float fBlue);
[propget] HRESULT MeltIntensity([out,retval] float* pfMeltIntensity);
[propput] HRESULT MeltIntensity([in] float fMeltIntensity);
};
Note how the IMMSampleTFX interface, which exposes the Blue and MeltIntensity parameters, is inherited by CMMSpecialEffectDXT:
class CMMSpecialEffectDXT :
public CDXBaseNTo1,
public IDispatchImpl<IMMSampleTFX, &IID_IMMSampleTFX, &LIBID_MMFXLib>,
public IObjectSafetyImpl2<CMMSpecialEffectDXT>
The next stage is to write the code for the four methods, for example:
STDMETHODIMP CMMSpecialEffectDXT::put_Blue(float fBlueAmount)
{
m_fBlueAmount = fBlueAmount;
return S_OK;
}
In the XML file, the Blue effect will be made available to Windows Movie Maker with the following statements:
<TransitionsAndEffects Version="1.0">
<Effects>
<EffectDLL guid="{294D0DE1-1B57-408d-A33F-FA708A5A28D6}">
<Effect name="Blue Color Adjust" iconid="12">
<Param name="Blue" value="2.0" />
</Effect>
</EffectDLL>
</Effects>
</TransitionsAndEffects>
Windows Movie Maker then uses the GUID to identify which DLL to search, the effect name to identify the effect, then the parameter name to identify which property to change. The parameter name "Blue" will identify the put_Blue method described earlier.
Debugging a DLL is very similar to debugging any other program; however, you must change the name of the executable file to Windows Movie Maker in the settings for your project. The simplest way to do this is to specify moviemk.exe as the executable you want to debug with. See Debugging: DLLs in the MSDN library for more information.
It is possible to change the provided Blue Adjust effect to a Purple Adjust by simply adding a red parameter to the code that adjusts the amount of red in the rendered image. This effect takes advantage of existing code in the sample that modifies the red color channel. The new red parameter can be set independently in the XML to create purple (or red, or blue, or any combination of the two). This section describes how to modify the C++ and XML files to add the red parameter.
The sample Blue Adjust effect uses the DXLookupTable object (from the DXMedia SDK) to increase the amount of blue in the image. This object is capable of color balancing, altering brightness, contrast, or gamma, and applying thresholding and posterization effects. We will limit our change to increasing the amount of red as well as blue to create purple.
To add the red parameter, you will simply copy the blue parameter code and add similar functions and members to a new red parameter. The following steps show what code must be added.
In the file MMSpecialEffect.cpp, in the function CMMSpecialEffect::InitStandardOperations, find the following lines:
RTN_HR_IF_FAILED(m_pDXT->get_Blue(&fValue));
if (!IsEqual(fValue, 0.0f))
{
m_fBlue = fValue;
}
Add the following snippet to get the red value:
RTN_HR_IF_FAILED(m_pDXT->get_Red(&fValue));
if (!IsEqual(fValue, 0.0f))
{
m_fRed = fValue;
}
In the file MMSpecialEffectDXT.h, find the declaration of the get and put methods for the blue property and add declarations for identical red methods as shown in bold:
STDMETHOD(get_Blue)(float* pfBlue);
STDMETHOD(put_Blue)(float fBlue);
STDMETHOD(get_Red)(float* pfRed);
STDMETHOD(put_Red)(float fRed);
In the file MMSpecialEffectDXT.cpp, copy the definitions of the put_Blue and get_Blue methods, and add two identical methods called put_Red and get_Red, renaming all the ...Blue... values to ...Red....
In the file MMSpecialEffectDXT.h, declare a member variable m_fRedAmount identical to m_fBlueAmount, as shown in bold:
float m_fBlueAmount;
float m_fRedAmount;
In the file MMSpecialEffectDXT.cpp, in CMMSpecialEffectDXT's FinalConstruct method, initialize this new red member variable in the same place you initialize the blue member, as shown in bold:
m_fBlueAmount = 0.0f;
m_fRedAmount = 0.0f;
In the file MMSTFX.idl, find the blue property declarations and add identical red declarations as shown here:
[propget] HRESULT Blue([out,retval] float* pfBlue);
[propput] HRESULT Blue([in] float fBlue);
[propget] HRESULT Red([out,retval] float* pfRed);
[propput] HRESULT Red([in] float fRed);
Finally, to add the new Purple Color Adjust effect to the Windows Movie Maker interface, you must add the XML code to call it. Find the BlueAdjust.xml file included in the sample project. Create a copy of this file in the \AddOnTFX directory next to BlueAdjust.xml and rename the file PurpleAdjust.xml. Open the new file, find the effect named Blue Color Adjust, change the name parameter value to "Purple Color Adjust", and add the Red parameter as shown here:
<Param name="Blue" value="2.0" />
<Param name="Red" value="1.5" />
You can keep the BlueAdjust.xml file, which will call the same TFX but simply not modify the red value, or you can merge both effects into one XML file.
The rest of the necessary code that applies the value of m_fRed to the DXLookupTable object is already provided in the sample code in the CMMSpecialEffect::InitStandardOperations method, which calls the DXMedia SetColorBalance method to modify the red channel value.
Compile your changes. When the project is built, run Windows Movie Maker, open the effects area and scroll down to find the Purple Color Adjust effect. You can try adding a green parameter yourself.
The following terms are used in this document, or more generally when creating effects or transitions for DirectX or Windows Movie Maker.
AddOnTFX
The name of the directory where XML files are placed to extend Movie Maker transitions and effects. For example, C:\Program Files\Movie Maker\Shared\AddOnTFX. You must create this directory.
DXT
DirectX Transform. An object built with the DirectX Media SDK and used to build special effects. Movie Maker uses DXTs that are installed on the system and referenced in an XML file.
output video buffer
The memory buffer that the effect or transition writes to for each frame.
pitch
The distance, in bytes, between two memory addresses that represent the beginning of one bitmap line and the beginning of the next bitmap line.
render
Drawing video output into the output video buffer.
special effect
The generic term for both a transition and an effect for Windows Movie Maker, used to enhance visual content.
video buffer A
The first input buffer for a transition, or the only input buffer for an effect. Effects read each pixel in this buffer for every frame and write the result into the output buffer. For transitions this is video being transitioned FROM. Movie Maker uses 24-bit RGB natively, though 32-bit may be used in a DXT.
video buffer B
The second input buffer in a transition. This is the video image being transitioned TO.
- See the DirectShow SDK documentation for more information on SMPTE wipes.
- The MSDN library at the Microsoft Web site has articles on creating DirectX Transforms, as well as COM and ATL documentation.
- The DirectX Transform SDK contains the documentation and objects used to create the effects and transitions. This SDK is installed as part of the DirectX 6.0 SDK, also called the DirectX Media SDK, or DirectX Media 6.0 SDK, available at the Microsoft Web site. The objects packaged with this SDK enable you to create your own transform or effect objects. The version 7 headers are included with Visual Studio .NET and with the DirectX Transform SDK, but the documentation is available only with the DirectX 7.0 SDK, which is no longer available on the Microsoft Web site.
- Several newsgroups cover Windows Movie Maker and DirectX programming. The following two groups might be useful for different purposes:
- microsoft.public.windowsxp.moviemaker is a newsgroup that covers Windows Movie Maker issues and might be appropriate for XML issues;
- microsoft.public.multimedia.directx.dshow.programming is a newsgroup that covers technical aspects about DirectShow programming, including the DirectX Media SDK.