Skip to main content

Module Map

Target inventory​

The root CMakeLists.txt adds 28 module subdirectories. Targets are added in dependency order (foundation first, engine last):

#CMake targetSource dirTypeFamily
1WLXPhotoBasesrc/WLXPhotoBase/DLLPlatform
2WLXMovieLibrarysrc/WLXMovieLibrary/DLLPipeline & effects
3WLXVideoTrimsrc/WLXVideoTrim/DLLPipeline & effects
4WLXPipelinesrc/WLXPipeline/DLLPipeline & effects
5WLXPipetransrc/WLXPipetran/DLLPipeline & effects
6WLXMediaPublishSubscribesrc/WLXMediaPublishSubscribe/DLLPlatform
7WLXSlideshowsrc/WLXSlideshow/DLLPipeline & effects
8WLXPhotoCinematicsrc/WLXPhotoCinematic/DLLPipeline & effects
9WLXFaceRecognitionsrc/WLXFaceRecognition/DLLPlatform
10WLXCodecHostsrc/WLXCodecHost/EXEMedia Foundation
11WLXTranscodesrc/WLXTranscode/EXEMedia Foundation
12WLXMP4Parsersrc/WLXMP4Parser/DLLMedia Foundation
13WLMFReadWritesrc/WLMFReadWrite/DLLMedia Foundation
14WLMFDSsrc/WLMFDS/DLLMedia Foundation
15MovieMakerCoresrc/MovieMakerCore/DLLApplication
16MovieMakerLangsrc/MovieMakerLang/DLL (resource-only)Application
17MovieMakerPreviewClientsrc/MovieMakerPreviewClient/DLLApplication
18MovieMakersrc/MovieMaker/EXE (launcher)Application
19DmxBicisrc/DmxBici/DLLPlatform
20MetadataSyssrc/MetadataSys/DLLPlatform
21UXCoresrc/UXCore/DLLDirectUI engine layer
23uxctlsrc/uxctl/DLLDirectUI engine layer
24wlidclisrc/wlidcli/DLLPlatform
25MediaCatalogsrc/Media/static libDirectUI engine layer
26WLXPhotoSqmsrc/WLXPhotoSqm/DLLPlatform
27TimelineEnginesrc/Timeline/static libDirectUI engine layer
28GPURenderersrc/Renderer/DLLDirectUI engine layer
29PlaybackEnginesrc/Playback/static libDirectUI engine layer

(src/WTL/ is the vendored WTL 10 header set — not a build target.)

Dependency layers​

Dashed edges are delay-loaded and optional — the engine must survive their absence on modern Windows (Quirk #11).

Each module's CMakeLists.txt declares its system import libraries explicitly. The common system set (root CMakeLists.txt) is:

kernel32 user32 gdi32 shell32 ole32 oleaut32 advapi32 shlwapi gdiplus
d3d11 d3d9 d3dcompiler dxva2 mfplat mf dwmapi uxtheme version winmm
XmlLite windowscodecs oleacc propsys esent d2d1 dwrite

Notable per-module additions:

  • MovieMakerCore — D3D11/D2D/DWrite/MF plus crypt32 (DPAPI for the PSA auth store) and XmlLite (project serialization).
  • WLXVideoTrim — DirectShow-era interfaces (strmiids, quartz) for its DirectShow-based trimming pipelines.
  • MovieMaker (launcher) — links the static CRT and delay-loads MovieMakerCore.dll.

Full per-module detail: see each page in the Module Reference.

Source directory conventions​

Every module follows the same micro-layout:

src/<Module>/
CMakeLists.txt # project() + add_library/add_executable + def file
<Module>.def # export table (Name @ordinal) — most modules
dllmain.cpp # DLL entry (COM registration entries where applicable)
<Module>.cpp/.h # implementation + public header
README.md # module-specific notes (most modules)

MovieMakerCore is the exception — a full subsystem tree of 349 files described in Architecture Overview.

The disconnected DirectUI preview scaffolding is not constructed or linked by MovieMakerCore (#25); application playback uses MF PlaybackController. The unused standalone ProjectManager target was removed (#21).