I want to handle queries like myscheme://foo in any browser by my application myscheme.exe.
As I understand, solution will depend on version of used operation system. For old OS (until windows 7) it is enough to just save record in registry:
HKEY_CLASSES_ROOT
myscheme
(Default) = "URL:Myscheme Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "myscheme.exe,1"
shell
open
command
(Default) = "C:\Program Files\Myscheme\myscheme.exe" "%1"
Unfortunately Registering an Application to a URI Scheme declares such way as deprecated. And I should not use this API anymore. Recommended version on page goes microsoft-edge (it contains no info about it)!!!
So, I started to research it for windows 8. I came across File type and URI associations model where it says that in Windows 8 applications are no longer able to programmatically set themselves as the default handler for a file type or URI. As I understand new architecture uses notification system, where users control default application via special prompt. But Default Programs says that it will no longer valid for windows 10 (exploration reference is DEAD!).
So, how to properly handle custom protocols in windows 10? Unfortunately Windows has just awful documentation. And what about different versions of OS? I should use different techniques for different versions?
P.S. Please, don't mark this question as duplicate. Other questions like How do I register a custom URL protocol in Windows?, How do I create my own URL protocol? (e.g. so://...) propose deprecated solutions.
sorry for my bad english.