Async Pluggable Protocol Handler Start () вызывается с повторяющимся путем в URL

У меня есть асинхронный подключаемый обработчик протокола для приложения, которое в основном имитирует протокол file: //, но ограничивает запросы песочницей, настроенной в приложении.

Приложение размещает веб-приложение AngularJS, используя элемент управления WebBrowser в C #. Когда маршрутизатор Angular запрашивает файл шаблона представления, используя протокол, я получаю запрос к моей реализации IInternetProtocolInfo :: CombineUrl () со следующими baseUrl иlativeUrl:

pwzBaseUrl: myProtocol:///webApp/app/index.html#/start
pwzRelativeUrl: views/start.html

для которого мой код:

wchar_t buf[2048] = { 0 };
DWORD ret = 2048;

UrlCombine(pwzBaseUrl, pwzRelativeUrl, buf, &ret, 0);

// pwzResult is myProtocol:///webApp/app/views/start.html here
StringCchCopy(pwzResult, ret + 1, buf);

*pcchResult = ret + 1;
return S_OK;

Это приводит к вызову IInternetProtocol :: Start () со следующим URL:

szUrl: myProtocol:///webApp/app/views/start.html/webApp/app/views/start.html

Как мы видим, путь к файлу дублирован, и я не знаю почему. Похоже, что только файлы шаблонов просмотра для AngularJS страдают от этой проблемы; другие относительные пути работают абсолютно нормально (например, извлечение других файлов скриптов из bower_components / node_modules).

Я хотел бы избежать взломать это, чтобы разделить путь пополам, если это дубликат. Должна быть причина, почему urlmon вызывает мой протокол с этим странным URL …

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]