Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

dll question restated

Status
Not open for further replies.

MrSethT

Programmer
Jun 11, 2007
4
US
Hey,

I have spent several weeks now trying to find out how to get an activex control i have created to work outside of my testing environment. I am developing a web app and I need it to run this control and it runs great on my development system (VS2005, C#, IE6, Win2000Pro, output is a DLL) because as far as I can tell, VS205 registers the DLL correctly for me. The problem is packaging it so it registers itself on any other computer. I have tried publishing the DLL on the website by itself, packaging it in a CAB by itself, packaging it in in a CAB with a INF file and none of those worked. So then I tried to simply copy the dll to the "environment" PC and register it with regasm. That didn't work either, it showed up in the registry after that but continues to show the error message instead of the control on the page. I also tried dumbing down the control in case it was some other error inside the control and told it to only open and be visible, and that did not work either.

It is not a security issue; I have allowed it to install unsigned controls. This is the object tag I am using.

<object id="ctlDisplay1" classid="CLSID:AB226553-9C20-3DEF-A52B-D264BB802855" codebase="ActiveX.cab#version=1,0,0,0" style="width: 879px; height: 525px" type="application/x-
oleobject">
<param name="ParamMonitorName" value="608" />
<param name="ParamIgnoreMinutes" value="60" />
<param name="ParamUpdateFreq" value="5" />
<param name="ParamSWRequestInterval" value="60" />
<param name="ParamDBAlarmTime" value="7" />
<b>ActiveX Controls are not supported under the current settings.</b>
</object>

The dll that is being created is in vb.NET 2.0 and it contains no references outside of the .NET framework The .NET framework 2.0 is installed on the "environment" PC. It is using IE6 SP2 v6.0.2900.2180.xpsp_sp2_gdr.070227-2254.

So, what am I missing? What would make an activex control from a dll work on one system and not the other? What is VS2005 doing that makes it work at all on the development pc?

Any help you give will be greatly appreciated, anything.

please and thank you,
-Seth
 
This is really a VB6 forum, so you might want to consider also posting to the VB.Net forum. However, it looks like everything is set up as it should be. There are a couple of things to check though. First, you'll want to independently go in the registry and verify that the objectid has the same classid as the one in the object tag. Then, you'll want to make sure that the version is right. If you made any changes to your code, and autoincremented the version, you'll find that the new code doesn't download to your machine with this object tag.

In case you don't know this, the object tag resolves by looking up the clsid in the registry. If it doesn't find it, it downloads and installs the file specified in the Codebase param. If it does find it, it evaluates the version. If the version is lower than the version specified in the Version param, it also downloads from the codebase param.

So you can see that version 1,0,0,0 will never download more than once.

If you've eliminated these as possibilities, then you have to look into the code itself. Perhaps putting a new test control that's so simple as to be bulletproof through your deployment path would be useful. If you can get it working, the problem is with the code in your control.

HTH

Bob
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top