So you need to create a Registry Key to under HKEY_CLASSES_ROOT as due to Win32 OLE, URL's are objects too:
[HKEY_CLASSES_ROOT\sftp]
@="URL:Secure File Transfer Protocol"
"URL Protocol"=""
Then it helps to attribute the URL to an application or action to "do" something. Such as:
[HKEY_CLASSES_ROOT\sftp\DefaultIcon]
@="C:\\Program Files\\FileZilla FTP Client\\filezilla.exe,0"
[HKEY_CLASSES_ROOT\sftp\shell\open\command]
@="\"C:\\Program Files\\FileZilla FTP Client\\filezilla.exe\" \"%1\""
Of course, it can also work in reverse to describe the powers an application can do so that it's "suggested" when trying to open a particular URL or file type:
[HKEY_LOCAL_MACHINE\Software\FileZilla\Capabilities\URLAssociations]
"sftp"="FileZillaURL"
But make sure the application is fully registered into the Windows Registry because as you can see, it's not just enough to add the URL association for an application, it actually must be registered and linked for the OS to be considered the application "embedded" (OLE).
[HKEY_CLASSES_ROOT\sftp]
@="URL:FTP Secure"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\sftp\DefaultIcon]
@="C:\Program Files\FileZilla FTP Client\filezilla.exe,0"
[HKEY_CLASSES_ROOT\sftp\shell\open\command]
@=""C:\Program Files\FileZilla FTP Client\filezilla.exe" "%1""
[HKEY_LOCAL_MACHINE\Software\FileZilla]
@="FileZilla FTP Client"
[HKEY_LOCAL_MACHINE\Software\FileZilla]
"ApplicationDescription"="FileZilla is open source software distributed free of charge under the terms of the GNU General Public License."
"ApplicationIcon"="C:\Program Files\FileZilla FTP Client\filezilla.exe,0"
"ApplicationName"="FileZilla FTP Client"
[HKEY_LOCAL_MACHINE\Software\FileZilla\Capabilities\URLAssociations]
"sftp"="FileZillaURL"
[HKEY_LOCAL_MACHINE\Software\FileZilla\DefaultIcon]
@="C:\Program Files\FileZilla FTP Client\filezilla.exe,0"
[HKEY_LOCAL_MACHINE\Software\RegisteredApplications]
"FileZillaFTPClient"="SOFTWARE\FileZilla\Capabilities"