MetadataEditor is a professional Windows system utility for viewing and editing file metadata (Windows Property System) and Alternative Data Streams (ADS). It is designed to bridge the gap between low-level Win32 APIs and a modern, high-performance UI.
- Maintain FIX_LOG.md: Record all critical fixes and technical decisions to prevent regression.
- Version Numbering: Always update the 4-digit version number (
A.B.C.D) inCHANGELOG.mdandMetadataEditor.iss. - Reference Documentation: Consult
guide.mdandREADME.mdfor architectural context. - Mandatory Backups: Use
backup_and_build.ps1to perform CAB-compressed source backups before major changes.
- Target Framework: .NET Framework 4.8 (required for deep shell compatibility).
- Metadata Editor App: WinForms-based main interface.
- Metadata Editor Engine: Class library for low-level resource extraction and metadata/ADS manipulation.
- Metadata Editor Shell Extension: SharpShell-powered library for Explorer integration.
- API: Uses
IPropertyStore(propsys.dll) for native property access. - Discovery: Performed asynchronously (up to 800 fields) and cached at
%AppData%\MetadataEditor\property_cache.txt. - Asynchronous Load: UI should populate instantly from cache and "fill in" discovered fields via the
SchemaUpdatedevent.
- API: Uses
FindFirstStreamWand:streamnamesyntax for NTFS manipulation. - Feature: Supports "Add Custom ADS Field" to attach invisible string data to files.
- Grid Categories: White text on Teal background (
CategorySplitterColor+CategoryForeColor). - Help/Commands: Teal background with White text (
HelpBackColor/CommandsBackColor). - Grid Lines: DimGray (
LineColor). - Form Design: Use OS-native painting for form/control backgrounds.
- Implementation: Maintain surgical updates across the engine, app, and shell extension.
- Verification: Use
TEST_ENVIRONMENT\Test_Registration.ps1to validate shell tab visibility. - Backup and Build: Execute
.\backup_and_build.ps1to compile, backup, and generate the installer.
- Property Sheet:
{6F3A1B2C-4D5E-6F7A-8B9C-0D1E2F3A4B5C} - Context Menu:
{9A8B7C6D-5E4F-3D2C-1B0A-9F8E7D6C5B4A}
© 2026 EliteSoftwareTech Co.
Author: Zachary Whiteman