By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
428,659 Members | 940 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 428,659 IT Pros & Developers. It's quick & easy.

Using an ActiveX ocx control on a Webform

P: n/a
I have been working on this for several days and am still have had no
success in achieving this. Pleae help. It seems that documentation for this
is very limited. I have looked in several books and they all seem to say
either nothing about this or that this is "out of the scope of this book",
even "Professional ASP.NET".

I have a ActiveX component that I'd like to expose through a .NET wrapper so
in the case that a client browses to my aspx page and does not choose to
download the ActiveX I can Automate the ActiveX object through the .NET
Wrapper on the Server and then stream the result of the ActiveX object
output to the client as a JPG.

Here is all I've done so far:

I've used the AxImp utility to create a new dll, called AxMyActiveX.dll.
I've also asked for it to give me the source code for this type library and
it has and it is called Interop.AxMyActiveX.cs.
I have added this line of code
[System.ComponentModel.ToolboxItemAttribute(true)]
in order to be able to view the "UI" of this ActiveX control to my .cs file
and then used the command line csc to recompile and build the new
Interop.AxMyActiveX.dll.

I create a new ASP.NET webApplication. I have one ASPX page. I browse to my
Interop.AxMyActiveX.dll and set my reference to this dll.
Since .NET is free threated by default and I am attempting to use a COM
component I have set the following attribute
AspCompat="TRUE" (which forces the page to execute in STA mode) in my ASPX
file ( the file into which I am attempting to add my Interop.AxMyActiveX
object).

I switch into Design mode and go to my toolbox and select Add/Remove Items.
I browse to my Interop.AxMyActiveX.dll. The item "AxMyActiveX" appears in
the toolbox but it is GRAYED OUT!

If I try to create the control programmatically from within my page load
event such as below

private void Page_Load(object sender, System.EventArgs e)
{

AxMyActiveXControl AxMyActiveX= new AxMyActiveXControl.AxMyActiveX();

AxMyActiveX.SetSomeProperty = true;

}

and then set an exposed property which takes a bool value I get an exception
thrown such as :

Server Error in '/AFRWS' Application.
----------------------------------------------------------------------------
----

Exception of type InvalidActiveXStateException was thrown.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.

Exception Details: System.Windows.Forms.AxHost+InvalidActiveXStateExc eption:
Exception of type InvalidActiveXStateException was thrown.

Source Error:

Line 62:
Line 63:
Line 64: AxMyActiveX.SetSomeProperty = true;
Line 65:
Line 66:

Source File: c:\pathtomyfile.aspx Line: 64

Stack Trace:

[InvalidActiveXStateException: Exception of type
InvalidActiveXStateException was thrown.]
AxMyActiveXControl.AxMyActiveX.set_SetSomeProperty (Boolean value)
PathtoMyFile.Page_Load(Object sender, EventArgs e) in
c:\Pathtomyfile\MyPage.aspx.cs:64
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()

I have no idea what I'm doing improperly but I can't get this to work. I
tried using the item in the design mode of a regular .NET Windows Control
Library and I was able to add the item into the toolbox and it was available
(not grayed out). I was able to drag it onto the design window and compile
it as a usercontrol. Then I created a windows application and I was able to
drag this new usercontrol onto the form and everything ran and worked just
fine. Please help!
Thanks so much,
Mehrh


Nov 17 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Did you ever meet your needs as described below?
I would be very anxious to do the same thing.
Do you have any sample project you can share ?

* * Please include a copy of this message with your reply

Jeff Bennett
Je**@Bennet-Tec.Com

=================== ===================

Mehr H wrote:
I have been working on this for several days and am still have had no
success in achieving this. Pleae help. It seems that documentation for this is very limited. I have looked in several books and they all seem to say either nothing about this or that this is "out of the scope of this book", even "Professional ASP.NET".

I have a ActiveX component that I'd like to expose through a .NET wrapper so in the case that a client browses to my aspx page and does not choose to download the ActiveX I can Automate the ActiveX object through the ..NET Wrapper on the Server and then stream the result of the ActiveX object output to the client as a JPG.

Here is all I've done so far:

I've used the AxImp utility to create a new dll, called AxMyActiveX.dll. I've also asked for it to give me the source code for this type library and it has and it is called Interop.AxMyActiveX.cs.
I have added this line of code
[System.ComponentModel.ToolboxItemAttribute(true)]
in order to be able to view the "UI" of this ActiveX control to my ..cs file and then used the command line csc to recompile and build the new
Interop.AxMyActiveX.dll.

I create a new ASP.NET webApplication. I have one ASPX page. I browse to my Interop.AxMyActiveX.dll and set my reference to this dll.
Since .NET is free threated by default and I am attempting to use a COM component I have set the following attribute
AspCompat="TRUE" (which forces the page to execute in STA mode) in my ASPX file ( the file into which I am attempting to add my Interop.AxMyActiveX object).

I switch into Design mode and go to my toolbox and select Add/Remove Items. I browse to my Interop.AxMyActiveX.dll. The item "AxMyActiveX" appears in the toolbox but it is GRAYED OUT!

If I try to create the control programmatically from within my page load event such as below

private void Page_Load(object sender, System.EventArgs e)
{

AxMyActiveXControl AxMyActiveX= new AxMyActiveXControl.AxMyActiveX();

AxMyActiveX.SetSomeProperty = true;

}

and then set an exposed property which takes a bool value I get an exception thrown such as :

Server Error in '/AFRWS' Application.
---------------------------------------------------------------------------- ----

Exception of type InvalidActiveXStateException was thrown.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Windows.Forms.AxHost+InvalidActiveXStateExc eption: Exception of type InvalidActiveXStateException was thrown.

Source Error:

Line 62:
Line 63:
Line 64: AxMyActiveX.SetSomeProperty = true;
Line 65:
Line 66:

Source File: c:\pathtomyfile.aspx Line: 64

Stack Trace:

[InvalidActiveXStateException: Exception of type
InvalidActiveXStateException was thrown.]
AxMyActiveXControl.AxMyActiveX.set_SetSomeProperty (Boolean value)
PathtoMyFile.Page_Load(Object sender, EventArgs e) in
c:\Pathtomyfile\MyPage.aspx.cs:64
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()

I have no idea what I'm doing improperly but I can't get this to work. I tried using the item in the design mode of a regular .NET Windows Control Library and I was able to add the item into the toolbox and it was available (not grayed out). I was able to drag it onto the design window and compile it as a usercontrol. Then I created a windows application and I was able to drag this new usercontrol onto the form and everything ran and worked just fine. Please help!
Thanks so much,
Mehrh


Nov 19 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.