Hi, There is a very nice article in MSDN: "Internet First Steps: Upgrading an Existing ActiveX Control". It describes all needed steps like packaging, making control "safe", licensing and so on. Read it... I think you will be able to find all the answers... Regards, Alex Gorev, Dundas Software.
Alex Gorev
Posts
-
Active X Controls in IE -
Would you find this acceptable (or class it as SpyWare)?You can solve the firewall problem by using the standard protocol like HTTP(S). In this case your software will get the HTML page with the latest version information inside and if it requires an update, it can be downloaded using HTTP too... Alex.
-
Tooltip for ActiveX - controlsHi, Check this article in MSDN: "HOWTO: Add Tooltips to ActiveX Controls" Article ID: Q141871. Regards, Alex Gorev, Dundas Software.
-
VersionIndependentProgIDHi, That's the only way the ProgIdFromCLSID function should work... You can find the version independent ProgID in the registry by object's CLSID. \\HKEY_CLASSES_ROOT\CLSID\{51DBD0C1-77D7-11d2-94A2-006008939020}\VersionIndependentProgId Regards, Alex Gorev, Dundas Software.
-
RegistryHi, Probably your control links dynamically to one of the DLLs from VC++ (like MFC libraries)... You have to distribute all the DLLs you are using in your control or use static linking. Regards, Alex Gorev, Dundas Software.
-
Implementing ActiveX EXE in a Web PageHi Chris, There is a very nive article in MSDN called "Internet First Steps: Upgrading an Existing ActiveX Control". I think it exactly what you are looking for... Regards, Alex Gorev, Dundas Software
-
Modem functions in C++Hi Doron, C++ language does not have any communication functions... If you are programming in Windows environment, then you can use the communication functions of WIN32. You can find their desciption in MSDN. Here is a couple functions that you'll definitely need: BuildCommDCB, EscapeCommFunction, WaitCommEvent, ... Regards, Alex Gorev, Dundas Software.
-
Accessing a non-registered VB ActiveX DLLHi, Get the IClassFactory inerface using DllGetClassObject function. Then you can create objects even if they are not registered... Regards, Alex Gorev, Dundas Software.
-
Safe for scripting/initializationHi, A safe control must not perform disk IO or access the memory or registers of a machine directly. As I know DirectX is using direct memory access. But it's up to you to make a final decision... Regards, Alex Gorev, Dundas Software.
-
CORBA.. (I know it's a COM forum)Hi, I think custom TCP/IP protocol is the best solution! You will never achieve the same performance using COBRA or DCOM. And it's not very hard to do... Regards, Alex Gorev, Dundas Software.
-
Memory leak detection toolHi, I've never heard about free tools like this... BoundsChecker is a good staff and it worth spending money. Regards, Alex Gorev, Dundas Software.
-
text filesHi, You can use the Win32 file functions like CreateFile, ReadFile and WriteFile. You can find more information about it in MSDN. Regards, Alex Gorev, Dundas Software.
-
Drawing on a dialogHi, The easiest thing to do is to clear the background and redraw all the lines again. Regards, Alex Gorev, Dundas Software.
-
comHi, Information about registered COM objects is stored in the registry. You can try the CLSIDFromProgID function to check if specified ProgID is registered. You can also create an instance of the object and then release it, to be 100% sure that all pieces in place. Regards, Alex Gorev, Dundas Software.
-
comHi, COM object can be stored in the DLL or EXE file. When a COM object is stored in the DLL the only difference with the usual DLL file, is that the COM DLL must have several COM related methods: DllGetClassObject DllRegisterServer DllUnregisterServer DllCanUnloadNow See description of these functions in MSDN for more details... Regards, Alex Gorev, Dundas Software.
-
comHi, COM object can be stored in the DLL or EXE file. When a COM object is stored in the DLL the only difference with the usual DLL file, is that the COM DLL must have several COM related methods: DllGetClassObject DllRegisterServer DllUnregisterServer DllCanUnloadNow See description of these functions in MSDN for more details... Regards, Alex Gorev, Dundas Software.
-
c++ class relationshipsHi, In C++ you can use inheritance, which is 'kind-of' relationship, or composition, which is 'has-a' relationship. You also can use the private inheritance, which is just a syntactic variant of composition. Aggregation and containment are related to the COM. Aggregation is exposing a binary sub-object to the client as is using the QueryInterface. Not all classes are aggregatable and you may want to expose only part of the object's functionality, in this case you can use containment. The best source of information on this topic is the Don Box's book "Essential COM". Regards, Alex Gorev, Dundas Software.
-
polymorphismHi, If you want to use your object with late binding, there is no way the GetIDsOfNames method of the IDispatch will know which ID to return, if it has two methods with the same names. So the problem is that the clients like VB or ASP do not know what to do with that kind of the objects. As I heard this problem will be fixed in the new version of VB and C#. Regards, Alex Gorev, Dundas Software.
-
cannot receiving eventsHi, You have to implement the sink in the client to be able to advise for the events. Check the arctile from MSDN ID:Q181277 "SAMPLE: AtlSink Uses ATL to Create a Dispinterface Sink" for more details... Regards, Alex Gorev, Dundas Software.
-
VC++ ATL Server, VB Client, VARIANTs and SAFEARRAYs ??Hi Keith, You absolutely right... You have an option of passing 29 parameters to the method or you can use safearray. But safearrays are difficult to work with if you have different type of data like integers and strings... The third option you have, which is the best if you have very complicated data that you need to pass/return to/from the method, is to use a COM object. You create a COM object with the different type of properties and pass/return it by interface pointer. The big advantage is that you can access the properties by names and even associate help strings with each property. The only issue is the performance... if you need to make many calls to such a method, it will take a lot of time to create and initialize the parameters object. Regards, Alex Gorev, Dundas Software.