See the question and my original answer on StackOverflow

You need to add a ProgId attribute to the class, something like this:

[Guid("some guid that you will never change")]
[ProgId("MyLib.PacketInfo")] // this is arbitrary
public class PacketInfo    
{
    ....
}

The guid is optional, but if you don't set it yourself, it will be something you won't control, so it's better to define it. And of course I did not add the ComVisible because you already defined it at assembly level (I personnally prefer to set it at class level).

Then, once registered, you shall be able to use it like this (use the progid as a string):

var testObj = new ActiveXObject('MyLib.PacketInfo');
testObj.HostName = "Test";