tags:

views:

118

answers:

0

I get a strange exception when a window containing a GeckoWebBrowser is loaded. This is the exception message:

An unhandled exception of type System.Runtime.InteropServices.COMException occurred in Skybound.Gecko.dll Additional information: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

This is the windows code:

public partial class AddContents : Form
{
    String path;

    public AddContents(String path)
    {
        this.path = path;
        InitializeComponent();
    }

    private void exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void AddContents_Load(object sender, EventArgs e)
    {
        geckoWebBrowser1.Navigate(path);
    }

    private int selId = 1;

    private bool updateMode = false;

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (updateMode)
            update();
    }

    private void geckoWebBrowser1_DocumentCompleted(object sender, EventArgs e)
    {
        timer1.Enabled = true;
        updateMode = true;
    }

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        geckoWebBrowser1.Navigate("javascript:scrollToBookmark(" + treeView1.SelectedNode.Tag + ")");
        TreeNode selected = treeView1.SelectedNode;
        TreeNode prev = selected.PrevNode;
        TreeNode next = selected.PrevNode;
        if (prev == null)
            upButton.Enabled = false;
        if (next == null)
            downButton.Enabled = false;
    }

    private void update()
    {
        geckoWebBrowser1.Navigate("javascript:updateSelText()");            
        GeckoElement el = geckoWebBrowser1.Document.GetElementById("sel_result_991231");
        if (el != null) {
            textBox1.Text = el.InnerHtml;
            addButton.Enabled = !textBox1.Text.Trim().Equals(String.Empty);
        }
    }

    private void textBox1_Enter(object sender, EventArgs e)
    {
        updateMode = false;
    }

    private void geckoWebBrowser1_DomMouseDown(object sender, GeckoDomMouseEventArgs e)
    {
        updateMode = true;
        update();
    }

    private void geckoWebBrowser1_DomMouseUp(object sender, GeckoDomMouseEventArgs e)
    {
        updateMode = false;
    }

    private void addButton_Click(object sender, EventArgs e)
    {
        geckoWebBrowser1.Navigate("javascript:addIdToSel()");
        TreeNode t = new TreeNode(textBox1.Text);
        t.Tag = selId;
        treeView1.Nodes.Add(t);
        selId++;
    }
}