示例#1
0
            public object?GetService(Type service)
            {
                if (service == typeof(HtmlDocument))
                {
                    if (_clientSite.GetContainer() is Mshtml.IHTMLDocument document)
                    {
                        _shimManager ??= new HtmlShimManager();
                        return(new HtmlDocument(_shimManager, document));
                    }
                }
                else if (_clientSite.GetType().IsAssignableFrom(service))
                {
                    return(_clientSite);
                }

                return(null);
            }
示例#2
0
            public object GetService(Type service)
            {
                if (service == typeof(HtmlDocument))
                {
                    HRESULT hr = _clientSite.GetContainer(out Ole32.IOleContainer iOlecontainer);
                    if (hr.Succeeded() && iOlecontainer is Mshtml.IHTMLDocument)
                    {
                        _shimManager ??= new HtmlShimManager();
                        return(new HtmlDocument(_shimManager, iOlecontainer as Mshtml.IHTMLDocument));
                    }
                }
                else if (_clientSite.GetType().IsAssignableFrom(service))
                {
                    return(_clientSite);
                }

                return(null);
            }