using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace RomCheater.Core { public interface IWebBrowserProvider { IWebBrowserInterface GetProvider(); } public interface IWebBrowserInterface { //WebBrowser Provider { get; } void Navigate(string urlString); void Navigate(Uri url); //void Navigate(string urlString, bool newWindow); //void Navigate(string urlString, string targetFrameName); //void Navigate(Uri url, bool newWindow); //void Navigate(Uri url, string targetFrameName); //void Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders); //void Navigate(Uri url, string targetFrameName, byte[] postData, string additionalHeaders); } //public class WebBrowserProvider : IWebBrowserProvider //{ // public WebBrowserProvider(IWebBrowserInterface provider) // { // _provider = provider; // } // #region IWebBrowserProvider Members // private IWebBrowserInterface _provider; // public IWebBrowserInterface GetProvider() // { // return _provider; // } // #endregion //} public class EmptyWebBrowserProvider : BaseWebBrowserProvider, IWebBrowserInterface { public EmptyWebBrowserProvider() :base() { } } public class WebBrowserProvider : BaseWebBrowserProvider, IWebBrowserInterface { public WebBrowserProvider() : this(new WebBrowser()) { } public WebBrowserProvider(IWebBrowserInterface provider) { } public WebBrowserProvider(WebBrowser provider) : base(provider) { } } public class BaseWebBrowserProvider : IWebBrowserInterface, IWebBrowserProvider { public BaseWebBrowserProvider() : this(new WebBrowser()) { } protected BaseWebBrowserProvider(WebBrowser provider) { this.Provider = provider; } #region IWebBrowserInterface Members private WebBrowser _Provider; public WebBrowser Provider { get { return _Provider; } protected set { _Provider = value; } } #region Extensions to WebBrowser provider public void Navigate(string urlString) { this.Provider.Navigate(urlString); } public void Navigate(Uri url) { this.Provider.Navigate(url); } //public void Navigate(string urlString, bool newWindow) { this.Provider.Navigate(urlString, newWindow); } //public void Navigate(string urlString, string targetFrameName) { this.Provider.Navigate(urlString, targetFrameName); } //public void Navigate(Uri url, bool newWindow) { this.Provider.Navigate(url, newWindow); } //public void Navigate(Uri url, string targetFrameName) { this.Provider.Navigate(url, targetFrameName); } //public void Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders) { this.Provider.Navigate(urlString, targetFrameName, postData, additionalHeaders); } //public void Navigate(Uri url, string targetFrameName, byte[] postData, string additionalHeaders) { this.Provider.Navigate(url, targetFrameName, postData, additionalHeaders); } #endregion #endregion #region IWebBrowserProvider Members public IWebBrowserInterface GetProvider() { return (IWebBrowserInterface)this; } #endregion } }