<p>How do you create your own custom moniker (or URL Protocol) on Windows systems?</p>

<p>Examples:</p>

<ul>
<li>http:</li>
<li>mailto:</li>
<li>service:</li>
</ul>

[{'answer_id': 4650, 'author': 'Pat', 'author_id': 238, 'author_profile': 'https://Stackoverflow.com/users/238', 'pm_score': 3, 'selected': True, 'text': '<p>Take a look at <a href="http://msdn.microsoft.com/en-us/library/aa741006(VS.85).aspx" rel="nofollow noreferrer">Creating and Using URL Monikers</a> , <a href="http://msdn.microsoft.com/en-us/library/aa767916(VS.85).aspx" rel="nofollow noreferrer">About Asynchronous Pluggable Protocols</a> and <a href="http://msdn.microsoft.com/en-us/library/aa767914.aspx" rel="nofollow noreferrer">Registering an Application to a URL Protocol</a> from MSDN</p>\n'}, {'answer_id': 4662, 'author': 'Lasse V. Karlsen', 'author_id': 267, 'author_profile': 'https://Stackoverflow.com/users/267', 'pm_score': 2, 'selected': False, 'text': '<p>Here\'s some old Delphi code we used as a way to get shortcuts in a web application to start a windows program locally for the user.</p>\n\n<pre><code>procedure InstallIntoRegistry;\nvar\n  Reg: TRegistry;\nbegin\n  Reg := TRegistry.Create;\n  try\n    Reg.RootKey := HKEY_CLASSES_ROOT;\n    if Reg.OpenKey(\'moniker\', True) then\n    begin\n      Reg.WriteString(\'\', \'URL:Name of moniker\');\n      Reg.WriteString(\'URL Protocol\', \'\');\n      Reg.WriteString(\'Source Filter\', \'{E436EBB6-524F-11CE-9F53-0020AF0BA770}\');\n      Reg.WriteInteger(\'EditFlags\', 2);\n\n      if Reg.OpenKey(\'shell\\open\\command\', True) then\n      begin\n        Reg.WriteString(\'\', \'"\' + ParamStr(0) + \'" "%1"\');\n      end;\n    end else begin\n      MessageBox(0, \'You do not have the necessary access rights to complete this installation!\' + Chr(13) +\n        \'Please make sure you are logged in with a user account with administrative rights!\', \'Access denied\', 0);\n      Exit;\n    end;\n  finally\n    FreeAndNil(Reg);\n  end;\n\n  MessageBox(0, \'Application WebStart has been installed successfully!\', \'Installed\', 0);\nend;\n</code></pre>\n'}, {'answer_id': 38925, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': "<p><em>Inside OLE</em> from Craig Brockschmidt probably has the best coverage on monikers. If you want to dig a little deeper into this topic, I'd recommend getting this book. It is also contained on the MSDN disk that came along with VS 6.0, in case you still have that.</p>\n"}]
['https://Stackoverflow.com/questions/4638', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/307/']