-
-
Save anonymous/fd4459dc65acd7d167b6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Text; | |
using SHDocVw; | |
using mshtml; | |
using System.IO; | |
using Microsoft.Win32; | |
using System.Runtime.InteropServices; | |
namespace bho | |
{ | |
[ | |
ComVisible(true), | |
Guid("8a194578-81ea-4850-9911-13ba2d71efbd"), | |
ClassInterface(ClassInterfaceType.None) | |
] | |
public class BHO:IObjectWithSite | |
{ | |
WebBrowser webBrowser; | |
HTMLDocument document | |
{ | |
get | |
{ | |
return (HTMLDocument)webBrowser.Document; | |
} | |
} | |
String domain | |
{ | |
get | |
{ | |
return document.domain; | |
} | |
} | |
public void OnDocumentComplete(object pDisp, ref object URL) | |
{ | |
// here i want to insert a header to the body | |
} | |
#region BHO Internal Functions | |
public static string BHOKEYNAME = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects"; | |
[ComRegisterFunction] | |
public static void RegisterBHO(Type type) | |
{ | |
RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(BHOKEYNAME, true); | |
if (registryKey == null) | |
registryKey = Registry.LocalMachine.CreateSubKey(BHOKEYNAME); | |
string guid = type.GUID.ToString("B"); | |
RegistryKey ourKey = registryKey.OpenSubKey(guid); | |
if (ourKey == null) | |
ourKey = registryKey.CreateSubKey(guid); | |
ourKey.SetValue("Alright", 1); | |
registryKey.Close(); | |
ourKey.Close(); | |
} | |
[ComUnregisterFunction] | |
public static void UnregisterBHO(Type type) | |
{ | |
RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(BHOKEYNAME, true); | |
string guid = type.GUID.ToString("B"); | |
if (registryKey != null) | |
registryKey.DeleteSubKey(guid, false); | |
} | |
public int SetSite(object site) | |
{ | |
if (site != null) | |
{ | |
webBrowser = (WebBrowser)site; | |
webBrowser.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(OnDocumentComplete); | |
} | |
else | |
{ | |
webBrowser.DocumentComplete -= new DWebBrowserEvents2_DocumentCompleteEventHandler(OnDocumentComplete); | |
webBrowser = null; | |
} | |
return 0; | |
} | |
public int GetSite(ref Guid guid, out IntPtr ppvSite) | |
{ | |
IntPtr punk = Marshal.GetIUnknownForObject(webBrowser); | |
int hr = Marshal.QueryInterface(punk, ref guid, out ppvSite); | |
Marshal.Release(punk); | |
return hr; | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment