 
            On Mon Oct 13 14:17:30 2025 +0000, Jacek Caban wrote:
How bad is it? How many of these private exports would we need? The details of those private calls don't seem important, but if it’s only a few functions, maybe we should just invent our own. Given the size of the URI parser, it would be nice to avoid duplication.
For example, after moving CreateUri(), CreateUriWithFragment(), and CreateIUriBuilder() to iertutil, we would need to move CoInternetParseIUri() and CoInternetCombineIUri() (to PrivateCoInternetParseIUri(), etc, in iertutil) because they also use the parser. To move CoInternetParseIUri(), we would need to move get_protocol_info() to iertutil as well. get_protocol_info() uses the name_space_list, which is initialized inside urlmon, and it's also used by find_name_space() -> get_protocol_handler() -> BindProtocol_StartEx(). So I am not sure how to move get_protocol_info() to iertutil in a clean way. Dynamically loading get_protocol_info() from urlmon in iertutil may work. But it seems too hacky.