Windows Property Store integration for non-media file metadata
Historical reference only:
stale-v0.72a-experimental-cleanandanalysis\stale-v0.72a-experimental-cleanare retired reference sources, not active branch targets or current baselines. Use them only as provenance or idea-extraction sources; landed status is determined againstmain. See Historical References.
Summary¶
The current metadata pipeline already uses MediaInfo.dll, but current main
still also carries legacy id3lib paths for MP3 tag extraction. For non-audio/video
files (images, documents,
PDFs, archives), the Windows Property Store (IPropertyStore) can provide
rich metadata (author, title, page count, dimensions, etc.) without an
additional library dependency.
2026-04-18 note: the audio/video path was modernized on main to use a shared
MediaInfo.dll helper first, with built-ins and id3lib retained as fallback.
That change used the stale experimental tree only as a helper-extraction
reference; it did not port the stale dependency policy or reduce the separate
value of Property Store work for non-media files.
Status: Exploratory — not committed to implementation.
Proposed Architecture¶
- First path: try Windows Property Store (
IPropertyStore) viaSHGetPropertyStoreFromParsingName(). - Fallback:
MediaInfo.dllwhere it adds coverage beyond the Windows property system. - Result merge: combine results from both sources, preferring the most specific value.
Why Now¶
MediaInfois being refactored into per-format files anyway.- Windows Property Store is available on all supported OS versions (Windows 10+).
- Current
mainstill keeps bothMediaInfoandid3lib, so Property Store is a Windows-native way to improve non-media metadata coverage without expanding the third-party dependency surface further.
Scope¶
- File types NOT currently handled well by
MediaInfoalone: - Office documents (
.docx,.xlsx,.pptx) - PDF files
- Images (EXIF via Windows Imaging Component / Shell Properties)
- ZIP archives (
.zip,.7z)
Risk¶
Unknown effort — the Windows Property Store API surface is wide and per-format coverage varies. The "exploratory" status reflects this.
Files¶
srchybrid/FileInfoDialog.cpp/.h— metadata displaysrchybrid/MediaInfo*.cpp/.h— existing MediaInfo integration- New:
srchybrid/PropertyStoreMetadata.cpp/.h(if pursued)