I used Visual Basic 6 to create an ActiveX control (student.ocx), which the client downloads, and an ActiveX DLL (Math.DLL), which I want to remain on the server. Student.ocx has a couple of picture boxes and several command buttons. The DLL has a function (questions), which randomly creates a problem (problem$) and solution (answer$). I want to call the function in the DLL and print the problem in a picture box in the OCX. I can call the DLL from the OCX with the DLL on my computer and print the problem in the picture box using this code.
Private objM As MATH911.questionsSet objM = New MATH911.questions'use the functionCall objM.a101(level, TOPlevel, tipe, problem, ans, cpt, INSTRUCTIONS, AMT, LEAST, x(), g$(), k())pbox.print problem
However, this only works if the DLL is on the client’s computer. I want to keep the DLL on the server and make the same call and print the problem in the control’s picture box.
An OCX must always be present on the system on which it is to run. If you want your OCX to run on a Web page, it will have to be on the machine where the Web browser is running. All is not lost, however. Because an OCX is just a step away from being a COM DLL, you can compile the programmatic functionality of your OCX as a COM DLL, then make calls to that COM DLL, via Active Server Pages (ASP). ASP will generate HTML at run time and return the newly generated page to the user’s browser. You can use HTML to display text boxes, data, and so forth to the user. This is a very common practice. I do it all the time.