Я не могу понять, как передать свою реализацию IHttpSecurity :: OnSecurityProblem моему объекту IWebBrowser2.
Я знаю, что мне нужно реализовать класс примерно так:
class CServiceProvider : public IServiceProvider
{
public:
CServiceProvider();
~CServiceProvider();
// IUnknown
ULONG STDMETHODCALLTYPE AddRef();
ULONG STDMETHODCALLTYPE Release();
STDMETHODIMP QueryInterface(REFIID iid, void ** ppvObject);
//QueryService
STDMETHODIMP QueryService(REFGUID guidService,REFIID riid,void **ppv);
private:
ULONG m_ulRefCnt;
};
И в функции QueryService, когда она запрашивает IID_IHttpSecurity, я возвращаю свою реализацию интерфейса IHttpSecurity.
Но моя проблема в том, как настроить реализацию поставщика услуг для объекта IWebBrowser2 и когда?
Мой код выглядит примерно так:
IWebBrowser2 * _Browser;
IServiceProvider* pServiceProvider = NULL;
_Browser->QueryInterface(
IID_IServiceProvider,
(void**)&pServiceProvider);
IHttpSecurity* pi;
pServiceProvider->QueryService(IID_IHttpSecurity, &pi);
_Browser->Navigate(url.AllocSysString(),
&flags,
&target_frame_name,
&post_data,
&headers);
Вопрос, который работает так, будто я думаю: если да, то как мне это сделать, а если нет, то можете ли вы объяснить, как это работает и может быть установлено?
PS: я только хочу реализовать интерфейс IID_IHttpSecurity, все остальные интерфейсы, запрашиваемые в QueryService, должны выполнять реализацию по умолчанию, предоставляемую системой ...
Спасибо