Skip to content

Shell namespace extension for showing NTFS alternate data streams

License

Notifications You must be signed in to change notification settings

garlic-os/ads-explorer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ADS Explorer

This is a shell namespace extension that lets you browse the Alternate Data Streams of a file or folder within native Windows Explorer. Windows crucially lacks an easy way to do this. This extension is inspired by Dave Plummer's ZipFolders and how he did the same for ZIP files a few decades ago. Its function is to imbue Windows Explorer with the ability to see and manage the Alternate Data Streams attached to all NTFS file objects that are otherwise invisible by usual means.

If I have seen further, it is by standing on the shoulders of giants. This app would not have been possible without the work of better programmers than me, including Calvin Buckley, Pascal Hurni, Dave Plummer, and Michael Dunn.
This project is most directly a fork of Buckley's OpenWindows namespace extension.

Building

This is a Visual Studio 2022 C++ ATL project made for MSVC v143. It was developed and tested on Windows 10.
In your Visual Studio Installer it requires:

  • MSVC
  • C++ ATL
  • C++ MFC
  • A Windows SDK
  • The C++ 2022 redistributable update too I think I'm not sure

The PowerShell scripts for vscode users also use sudo:

Installation

Copy the DLL and TLB to the same folder somewhere and run regsvr32 ADSExplorer.dll.

To uninstall, run regsvr32 /u ADSExplorer.dll.

This touches everything with a shell view (e.g., Window Explorer and file picker dialogs), so it might cause stability issues. Caveat emptor.

Known issues

  • An installer would be nice.
  • Modern property handling is very, very basic and intended just to appease the tile view subtitles in Vista+. It should probably use fancier behavior, but as it is now it delegates as much as it can except the bare minimum to the "classic" way of doing it.
  • Not feature complete.
  • It would be nice for this to be backwards compatible with the oldest versions of Windows possible.

Attributions

See LICENSE.

This is based off OpenWindows by Calvin Buckley, which is based off a DOpus-style favorites manager by Pascal Hurni, which in turn is based off a namespace shell extension example by Michael Dunn. The MIT License was inherited from Buckley who made it so with Hurni's blessing.

Buckley used some Microsoft code (that is, code from outside the Win32 API itself) as a polyfill for full functionality when built with older SDKs, and as the Cargo Cult goes, this may still be the case but I don't actually know.

I looked up SO many magic numbers on magnumdb.com.

About

Shell namespace extension for showing NTFS alternate data streams

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 94.3%
  • C 2.2%
  • PowerShell 2.1%
  • Other 1.4%