web-dev-qa-db-fra.com

Ajouter la référence «SHDocVw» dans le projet C # à l'aide de Visual C # 2010 Express

Je suis en train de suivre un tutoriel qui crée un BHO en utilisant MS Visual Studio 2010 et C #. Afin d'exécuter le code du tutoriel, je dois ajouter cette référence dans mon projet: -

en utilisant SHDocVw

Mais il n'est pas disponible dans la section .NET ou COM dans Ajouter des références.

Je voulais donc demander si cet espace de noms n'est pas disponible dans Microsoft Visual C # 2010 Express? et s'il est disponible, comment l'ajouter.

Ceci est mon code de projet à mi-chemin

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IEPlugin
{
 [
    ComVisible(true),
    InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
    Guid("FC4801A3-2BA9-11CF-A229-00AA003D7352")
]
public interface IObjectWithSite
{
    [PreserveSig]
    int SetSite([MarshalAs(UnmanagedType.IUnknown)]object site);
    [PreserveSig]
    int GetSite(ref Guid guid, out IntPtr ppvSite);
}
[
    ComVisible(true),
    Guid("2159CB25-EF9A-54C1-B43C-E30D1A4A8277"),
    ClassInterface(ClassInterfaceType.None)
]

public class BHO : IObjectWithSite
{
    private WebBrowser webBrowser;

    public int SetSite(object site)
    {
        if (site != null)
        {
            webBrowser = (WebBrowser)site;
            webBrowser.DocumentComplete +=
              new DWebBrowserEvents2_DocumentCompleteEventHandler(
              this.OnDocumentComplete);
        }
        else
        {
            webBrowser.DocumentComplete -=
              new DWebBrowserEvents2_DocumentCompleteEventHandler(
              this.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;
    }

    public void OnDocumentComplete(object pDisp, ref object URL)
    {
        HTMLDocument document = (HTMLDocument)webBrowser.Document;
    }

}

}

Voici les erreurs jointes: -

Erreur 1 Le type ou le nom d'espace de nom 'SHDocVw' est introuvable (manque-t-il une directive using ou une référence d'assembly?)

Erreur 2 Le type ou le nom d'espace de noms "WebBrowser" est introuvable (manque-t-il une directive using ou une référence d'assembly?)

20
Saad Sarwar

Vous devez ajouter une référence à un composant COM appelé Microsoft Internet Controls.

enter image description here

52
X3074861X