{"id":16473175,"url":"https://github.com/binki/customuriprotocolregistrar","last_synced_at":"2025-10-28T18:03:33.480Z","repository":{"id":30589231,"uuid":"34144343","full_name":"binki/CustomUriProtocolRegistrar","owner":"binki","description":"Wraps various platform-specific methods of registering a program as a custom URI protocol handler.","archived":false,"fork":false,"pushed_at":"2016-06-28T21:07:02.000Z","size":14,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-11T02:24:40.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/binki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-17T23:15:12.000Z","updated_at":"2018-11-22T07:53:15.000Z","dependencies_parsed_at":"2022-07-19T23:17:59.593Z","dependency_job_id":null,"html_url":"https://github.com/binki/CustomUriProtocolRegistrar","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binki%2FCustomUriProtocolRegistrar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binki%2FCustomUriProtocolRegistrar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binki%2FCustomUriProtocolRegistrar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binki%2FCustomUriProtocolRegistrar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binki","download_url":"https://codeload.github.com/binki/CustomUriProtocolRegistrar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241111819,"owners_count":19911566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T12:25:37.206Z","updated_at":"2025-10-28T18:03:28.430Z","avatar_url":"https://github.com/binki.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Copyright 2015 Nathan Phillip Brink\n\nLicensed under the license stored in [`LICENSE`](LICENSE).\n\n# Usage\n\n    using (var protocolRegistrar = new OhnoPub.CustomUriProtocolRegistrar.ProtocolRegistrar())\n    {\n        // If you application provides any registrars of its own for platforms\n        // which CustomUriProtocolRegistrar does not know how to support yet,\n        // register them here.\n        //protocolRegistrar.AddProtocolRegistrar(new CustomProtocolRegistrar());\n\n        // Assert that your URI protocol handler is registered.\n        protocolRegistrar.Register(\n            OhNoPub.CustomUriProtocolRegistrar.ProtocolRegistryScope.User,\n            GetType().Name.ToLowerInvariant(),\n            new Uri(Assembly.GetEntryAssembly().GetName().CodeBase).LocalPath);\n    }\n\nMake sure that your application, when forming URI strings, safely\nencodes the string so that its meaning does not change if it passes\nthrough `decodeURIComponent()` an arbitrary number of\ntimes. [Windows’s IE may decode the URI once before passing it to the\napplication](https://msdn.microsoft.com/en-us/library/aa767914%28VS.85%29.aspx). The\nsafest method would be to blanketly base64-encode all data on the\nright hand side of URI. This makes the URI inscrutable but secures it\nagainst most platform-specific pitfalls.\n\nNow when the URI is accessed, and if the user permits the\nconfiguration change to be made (if necessary), the application will\nbe launched with the *full URI including scheme* as its sole\nargument. (Though, again, note that, on Windows, the URI may be parsed\ninto multiple parameters if it decodes to a value that includes\nwhitespace).\n\n# Build\n\nWe’re going to try to target the compact framework. To build, you will\nneed to [obtain the CF2.0SP2 reference\nassemblies](http://www.microsoft.com/en-us/download/details.aspx?id=17981)\nand either install them to a default location or set the NETCF35DIR\nenvironment variable to wherever you put ’em.\n\nBecause buildsystems, I rely on GNU Make. If you use Windows, obtain\nby running\n[mingw-get-setup](http://www.mingw.org/wiki/Getting_Started) (or you\ncan install the “MinGW Installation Manager Setup Tool” via\n[npackd](https://npackd.appspot.com/)). Make sure to install the\n`mingw-developer-toolkit` package via mingw-get. Then [set\n`PATH`](http://rapidee.com/) to include the `bin` and `msys/1.0/bin`\ndirectories.\n\nNow either launch `Developer Command Prompt for VS2015` or temporarily\nput `csc` in your `PATH` (a common place to find csc nowadays is\n`%PROGRAMFILES(X86)%/MSBuild/14.0/Bin`). Your shell should now be all\nready for compilation now! Just run `make`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinki%2Fcustomuriprotocolregistrar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinki%2Fcustomuriprotocolregistrar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinki%2Fcustomuriprotocolregistrar/lists"}