Legacy File Type Associations

Introduction

Windows manages file type associations primarily through the UserChoice registry mechanism. This modern system defines which program opens a given file type and is stored at:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ext\UserChoice

However, there’s still an older method of defining associations legacy entries under:

HKCU\Software\Classes\.ext (with a (Default) entry which points to a ProgId)

These legacy entries predate the UserChoice system and are still used in very specific scenarios – particularly with older software or for file types that are not strictly controlled by Windows.

ProcMon and 7-Zip use this approach to associate themselves without creating a UserChoice key. This works only because they use file types that are not subject to enforcement by Windows.

When Legacy Associations Apply

Legacy associations can still take effect, but only if:

For example, custom or legacy applications might bypass UserChoice entirely and look only at the legacy path.

Microsoft-Enforced Extensions

For many file types, Windows enforces the use of the UserChoice key, meaning legacy associations will be completely ignored. Here’s a list of such protected extensions:

For these extensions, a valid UserChoice key is always required. Legacy settings under HKCU\Classes are ignored (by Explorer), regardless of their content. The same applies to associations defined under HKLM — they are also overridden by UserChoice and have no effect for enforced file types.

Legacy applications – for example, those that handle embedded files – may query the legacy association key instead of using the modern UserChoice mechanism. In such cases, creating a legacy association can help ensure that the correct program is used to open the file.


SetUserFTA and Legacy Associations

SetUserFTA is designed to manage file type associations correctly – including in environments where Microsoft enforcement applies.


Summary

Legacy file type associations are a remnant of older Windows versions and are still recognized for non-enforced extensions or legacy software. But for anything on Microsoft’s protected list, only a proper UserChoice key – with a valid hash – will work.

SetUserFTA simplifies this by:

For modern Windows systems, especially in managed environments, using SetUserFTA ensures compatibility and correctness – even when legacy paths are still relevant.