Author | Topic: ActiveX Components | |
---|---|---|
Carlos A Beling | ActiveX Components on Tue, 09 Jun 2020 13:30:58 -0300 Hi. Good day. I have MS Office 365 installed in this computer and all MS Office components are working fine. Please what is going wrong? I started to test some Xbase++ samples and: XbpDatePIcker(), XbpMonthView() and XbpRtf() work fine ..\Xbase++\source\samples\activex\olimport\Olimport.exe and ..\Xbase++\source\samples\activex\spellchecker\SpellChk.exe work fine ..\Xbase++\source\samples\activex\comchart\Chart.exe says that it is needed MS Office Web Components and when I try to install it and is said that there not products installed in the system affected by OWC. ..\Xbase++\source\samples\activex\editor\Editor.exe and ..\Xbase++\source\samples\activex\webbrowser\WebBrowser.exe say MS Common Control 6.0 is not installed ..\Xbase++\source\samples\activex\msexcel\Excell1.exe opens and when finishes it gives the error -2147417848 (object disconnected) ..\Xbase++\source\samples\activex\msexcel\Excell2.exe opens and in its final it gives the message _... automation 6500..._ and indicates the error -2146777998 ("") ..\Xbase++\source\samples\activex\msword\Feed.exe opens the file _Saved.doc_ and shows the attached message and exit. ==> DocLoaded.png shows that the document was loaded and a partial message. ==> Complete.png shows the comnplete message after something is typed and closes Fraternally Beling DocLoaded.png Complete.png | |
Andreas Gehrs-Pahl | Re: ActiveX Components on Wed, 10 Jun 2020 16:48:21 -0400 Carlos, >I have MS Office 365 installed in this computer and all MS Office >components are working fine. >XbpDatePIcker(), XbpMonthView() and XbpRtf() work fine The first two use MS Common Controls-2 (Version 6.0) in: MSComCt2.ocx the third uses the Microsoft Rich Textbox Control 6.0 in: RichTX32.ocx >..\Xbase++\source\samples\activex\olimport\Olimport.exe and This uses MS Outlook (32bit), which must be installed. > ..\Xbase++\source\samples\activex\spellchecker\SpellChk.exe work fine This uses MS Office Word (32bit), which must be installed. >..\Xbase++\source\samples\activex\comchart\Chart.exe says that it is >needed MS Office Web Components and when I try to install it and is said >that there not products installed in the system affected by OWC. This uses the MS Office Web Components which were part of Office 2000, XP, and 2003. For later versions of MS Office, OWC must be installed separately. Office 365 isn't the same as MS Office Home & Business/Professional, though! I have no idea if there is a version of OWC that is compatible with 365. >..\Xbase++\source\samples\activex\editor\Editor.exe and >..\Xbase++\source\samples\activex\webbrowser\WebBrowser.exe say MS >Common Control 6.0 is not installed MS Common Control 6.0 are in a different ActiveX OCX file: MSComCtl.ocx >..\Xbase++\source\samples\activex\msexcel\Excell1.exe opens and when >finishes it gives the error -2147417848 (object disconnected) This uses MS Office Excel (32bit), which must be installed. Google "Runtime Error 80010108" for some info on how to prevent this error. >..\Xbase++\source\samples\activex\msexcel\Excell2.exe opens and in its >final it gives the message _... automation 6500..._ and indicates the >error -2146777998 ("") This uses MS Office Excel (32bit), which must be installed. Google "Runtime Error 800AC472" for some info on how to prevent this error. > ..\Xbase++\source\samples\activex\msword\Feed.exe opens the file > _Saved.doc_ and shows the attached message and exit. > ==> DocLoaded.png shows that the document was loaded and a partial message. > ==> Complete.png shows the comnplete message after something is typed > and closes This uses MS Office Word (32bit), which must be installed. The above is exactly what this demo program is supposed to do, with the exception of the fact that it opens the file "fax.dot" and fills in the place holder fields and then saves (creates/overwrites) the file "Saved.doc" with the changes. In summary, you need to install MSComCtl.ocx and -- if you want to use any of the MS Office Web Components -- a version of OWC that is compatible with your Office 365 installation. And to prevent the excel errors, try to add a Sleep(200) before you close or quit Excel, and it might work without the errors. Hope that helps, Andreas Andreas Gehrs-Pahl Absolute Software, LLC phone: (989) 723-9927 email: Andreas@AbsoluteSoftwareLLC.com web: http://www.AbsoluteSoftwareLLC.com [F]: https://www.facebook.com/AbsoluteSoftwareLLC | |
Carlos A Beling | Re: ActiveX Components on Fri, 12 Jun 2020 18:01:42 -0300 Hello Andreas. Good evening. Many thanks again. I desinstalled MS Office 365 and reinstalled it completly. Also I could to install the OWC 11 that is deprecated and it does not exists for Office 365. After I updated it (Windows Update). Almost everything is running ok, except: ..\Xbase++\source\samples\activex\comchart\Chart.exe The function CreateObject( "OWC.Chart" ) returns NIL with a message asking for to have sure that Office Web Components is installed. ..\Xbase++\source\samples\activex\olimport\Olimport.exe runs ok but their data can not to be changed (it is not so important right now) I observed that the date and size of the file MSComCtl.ocx that exists in the System folder are older and differents from the file c:\Program Files\Microsoft Office\root\vfs\SystemX86. Does it matter? Fraternally Beling On 10/06/2020 17:48, Andreas Gehrs-Pahl wrote: > Carlos, > >> I have MS Office 365 installed in this computer and all MS Office >> components are working fine. > >> XbpDatePIcker(), XbpMonthView() and XbpRtf() work fine > > The first two use MS Common Controls-2 (Version 6.0) in: MSComCt2.ocx > the third uses the Microsoft Rich Textbox Control 6.0 in: RichTX32.ocx > >> ..\Xbase++\source\samples\activex\olimport\Olimport.exe and > > This uses MS Outlook (32bit), which must be installed. > >> ..\Xbase++\source\samples\activex\spellchecker\SpellChk.exe work fine > > This uses MS Office Word (32bit), which must be installed. > >> ..\Xbase++\source\samples\activex\comchart\Chart.exe says that it is >> needed MS Office Web Components and when I try to install it and is said >> that there not products installed in the system affected by OWC. > > This uses the MS Office Web Components which were part of Office 2000, XP, > and 2003. For later versions of MS Office, OWC must be installed separately. > Office 365 isn't the same as MS Office Home & Business/Professional, though! > I have no idea if there is a version of OWC that is compatible with 365. > >> ..\Xbase++\source\samples\activex\editor\Editor.exe and >> ..\Xbase++\source\samples\activex\webbrowser\WebBrowser.exe say MS >> Common Control 6.0 is not installed > > MS Common Control 6.0 are in a different ActiveX OCX file: MSComCtl.ocx > >> ..\Xbase++\source\samples\activex\msexcel\Excell1.exe opens and when >> finishes it gives the error -2147417848 (object disconnected) > > This uses MS Office Excel (32bit), which must be installed. > > Google "Runtime Error 80010108" for some info on how to prevent this error. > >> ..\Xbase++\source\samples\activex\msexcel\Excell2.exe opens and in its >> final it gives the message _... automation 6500..._ and indicates the >> error -2146777998 ("") > > This uses MS Office Excel (32bit), which must be installed. > > Google "Runtime Error 800AC472" for some info on how to prevent this error. > >> ..\Xbase++\source\samples\activex\msword\Feed.exe opens the file >> _Saved.doc_ and shows the attached message and exit. >> ==> DocLoaded.png shows that the document was loaded and a partial message. >> ==> Complete.png shows the comnplete message after something is typed >> and closes > > This uses MS Office Word (32bit), which must be installed. > > The above is exactly what this demo program is supposed to do, with the > exception of the fact that it opens the file "fax.dot" and fills in the > place holder fields and then saves (creates/overwrites) the file "Saved.doc" > with the changes. > > In summary, you need to install MSComCtl.ocx and -- if you want to use any > of the MS Office Web Components -- a version of OWC that is compatible with > your Office 365 installation. > > And to prevent the excel errors, try to add a Sleep(200) before you close or > quit Excel, and it might work without the errors. > > Hope that helps, > > Andreas > | |
Andreas Gehrs-Pahl | Re: ActiveX Components on Sat, 13 Jun 2020 16:36:29 -0400 Carlos, >I observed that the date and size of the file MSComCtl.ocx that exists >in the System folder are older and differents from the file c:\Program >Files\Microsoft Office\root\vfs\SystemX86. Does it matter? As long as it works, it shouldn't make any difference. Active-X components are black boxes and you should never have to care about anything but if they work as advertised. And because they are self-reflective, you can use the OLEView.exe program to determine all their interfaces, methods, properties and constants (enumerations). Andreas Andreas Gehrs-Pahl Absolute Software, LLC phone: (989) 723-9927 email: Andreas@AbsoluteSoftwareLLC.com web: http://www.AbsoluteSoftwareLLC.com [L]: https://www.LinkedIn.com/in/AndreasGehrsPahl [F]: https://www.FaceBook.com/AbsoluteSoftwareLLC | |
Carlos A Beling | Re: ActiveX Components on Tue, 16 Jun 2020 12:23:04 -0300 Hello Andreas. Good day. Many thanks. Please, do you know why the function CreateObject("OWC.Chart") does not work? Fraternally Beling On 13/06/2020 17:36, Andreas Gehrs-Pahl wrote: > Carlos, > >> I observed that the date and size of the file MSComCtl.ocx that exists >> in the System folder are older and differents from the file c:\Program >> Files\Microsoft Office\root\vfs\SystemX86. Does it matter? > > As long as it works, it shouldn't make any difference. Active-X components > are black boxes and you should never have to care about anything but if they > work as advertised. And because they are self-reflective, you can use the > OLEView.exe program to determine all their interfaces, methods, properties > and constants (enumerations). > > Andreas > | |
Andreas Gehrs-Pahl | Re: ActiveX Components on Tue, 16 Jun 2020 15:31:33 -0400 Carlos, >Also I could to install the OWC 11 that is deprecated and it does not >exists for Office 365. >Please, do you know why the function CreateObject("OWC.Chart") does not >work? If you installed OWC Version 11 (for MS Office 2003), you need to use the Program ID "OWC11.ChartSpace" (instead of "OWC.Chart"). For more details, see: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa207545(v=office.11) Hope that helps, Andreas Andreas Gehrs-Pahl Absolute Software, LLC phone: (989) 723-9927 email: Andreas@AbsoluteSoftwareLLC.com web: http://www.AbsoluteSoftwareLLC.com [L]: https://www.LinkedIn.com/in/AndreasGehrsPahl [F]: https://www.FaceBook.com/AbsoluteSoftwareLLC | |
Carlos A Beling | Re: ActiveX Components on Tue, 16 Jun 2020 17:38:56 -0300 Hello Andreas. Good evening. Many thanks. The program that uses it is an example inf Xbase++ (..\Xbase++\Source\Samples\ActiveX\ComChart\Chart.exe) and stopped to run. Fraternally Beling On 16/06/2020 16:31, Andreas Gehrs-Pahl wrote: > Carlos, > >> Also I could to install the OWC 11 that is deprecated and it does not >> exists for Office 365. > >> Please, do you know why the function CreateObject("OWC.Chart") does not >> work? > > If you installed OWC Version 11 (for MS Office 2003), you need to use the > Program ID "OWC11.ChartSpace" (instead of "OWC.Chart"). > > For more details, see: > > https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa207545(v=office.11) > > Hope that helps, > > Andreas > | |
Andreas Gehrs-Pahl | Re: ActiveX Components on Tue, 16 Jun 2020 19:05:21 -0400 Carlos, >The program that uses it is an example inf Xbase++ Yes, and it was first published in 2004, which is 16 years ago. It's a demo for using a specific ActiveX component. It probably works with an older OWC version as it is written, but only if that specific, older, component is installed. I'm actually surprised that this particular demo program hasn't been removed, yet, considering how old it is and the fact that OWC has long since been discontinued by MS. I'm really not sure what the disconnect here is. All the ActiveX demo programs depend on external components that might or might not be available on any particular computer. There is no express or implied guarantee on Alaska's side that those (ActiveX) demo programs will work (as they are) on any given system. The only thing Alaska could do a little bit better, is to mention which particular version(s) of the mentioned ActiveX component is required for (or compatible with) each demo. Andreas Andreas Gehrs-Pahl Absolute Software, LLC phone: (989) 723-9927 email: Andreas@AbsoluteSoftwareLLC.com web: http://www.AbsoluteSoftwareLLC.com [L]: https://www.LinkedIn.com/in/AndreasGehrsPahl [F]: https://www.FaceBook.com/AbsoluteSoftwareLLC | |
Carlos A Beling | Re: ActiveX Components on Wed, 17 Jun 2020 09:21:32 -0300 Hello Andreas. Good day. Many thanks. Excluding OWC.CHART all other ActiveX controls that I tested are working fine (ie.: XbpToolBar()) Fraternally Beling On 16/06/2020 20:05, Andreas Gehrs-Pahl wrote: > Carlos, > >> The program that uses it is an example inf Xbase++ > > Yes, and it was first published in 2004, which is 16 years ago. It's a demo > for using a specific ActiveX component. It probably works with an older OWC > version as it is written, but only if that specific, older, component is > installed. > > I'm actually surprised that this particular demo program hasn't been > removed, yet, considering how old it is and the fact that OWC has long since > been discontinued by MS. > > I'm really not sure what the disconnect here is. All the ActiveX demo > programs depend on external components that might or might not be available > on any particular computer. There is no express or implied guarantee on > Alaska's side that those (ActiveX) demo programs will work (as they are) on > any given system. The only thing Alaska could do a little bit better, is to > mention which particular version(s) of the mentioned ActiveX component is > required for (or compatible with) each demo. > > Andreas > | |
Andreas Gehrs-Pahl | Re: ActiveX Components on Wed, 17 Jun 2020 09:49:34 -0400 Carlos, >Excluding OWC.CHART all other ActiveX controls that I tested are working >fine (ie.: XbpToolBar()) Even if you change "OWC.Chart" to "OWC11.ChartSpace" in line 279 in file "...\Source\Samples\ActiveX\ComChart\ChartClasses.prg" (and recompile)? That change should make it work! Andreas Andreas Gehrs-Pahl Absolute Software, LLC phone: (989) 723-9927 email: Andreas@AbsoluteSoftwareLLC.com web: http://www.AbsoluteSoftwareLLC.com [L]: https://www.LinkedIn.com/in/AndreasGehrsPahl [F]: https://www.FaceBook.com/AbsoluteSoftwareLLC | |
Carlos A Beling | Re: ActiveX Components on Wed, 17 Jun 2020 17:49:40 -0300 Hello Andreas. Good night. Yes it worked fine. Another thing: the docs says that the needed ActiveX are in the Distribution CD(???) Fraternally Beling On 17/06/2020 10:49, Andreas Gehrs-Pahl wrote: > Carlos, > >> Excluding OWC.CHART all other ActiveX controls that I tested are working >> fine (ie.: XbpToolBar()) > > Even if you change "OWC.Chart" to "OWC11.ChartSpace" in line 279 in file > "...\Source\Samples\ActiveX\ComChart\ChartClasses.prg" (and recompile)? > > That change should make it work! > > Andreas > | |
Andreas Gehrs-Pahl | Re: ActiveX Components on Wed, 17 Jun 2020 19:35:29 -0400 Carlos, >Yes it worked fine. Great. >Another thing: the docs says that the needed ActiveX are in the >Distribution CD(???) Yes, the three basic components: MSComCtl.ocx, MSComCt2.ocx, and RichTx32.ocx can be installed by the Xbase++ installation program. That option ("ActiveX Redistributables") is by default not selected, and I would strongly recommend against selecting it. This installation option will install and register the Alaska-supplied versions of those files, even if newer versions of those files are already installed. This feature can also be installed or removed using msiexec.exe with command line parameters (ADDLOCAL or REMOVE) and the "comctrls" feature name. Andreas Andreas Gehrs-Pahl Absolute Software, LLC phone: (989) 723-9927 email: Andreas@AbsoluteSoftwareLLC.com web: http://www.AbsoluteSoftwareLLC.com [L]: https://www.LinkedIn.com/in/AndreasGehrsPahl [F]: https://www.FaceBook.com/AbsoluteSoftwareLLC | |
Carlos A Beling | Re: ActiveX Components on Thu, 18 Jun 2020 11:37:50 -0300 Hello Andreas. Good day. Many thanks again. It seems that it does not exist Installation CD and if an user does not have ActiveX installed neither we do have they for installing nor we have a way to tell him which one is needed for the app works fine. Fraternally Beling On 17/06/2020 20:35, Andreas Gehrs-Pahl wrote: > This feature can also be installed or removed using msiexec.exe with command > line parameters (ADDLOCAL or REMOVE) and the "comctrls" feature name. | |
Andreas Gehrs-Pahl | Re: ActiveX Components on Thu, 18 Jun 2020 17:39:36 -0400 Carlos, >It seems that it does not exist Installation CD and if an user does not >have ActiveX installed neither we do have they for installing nor we >have a way to tell him which one is needed for the app works fine. That is completely untrue. There are many ways to find those 3 *.ocx files, including installing them from the Xbase++ *.MSI file. You can also easily test if those files are installed (and registered) on any computer, by simply trying to create a corresponding ActiveX object in Xbase++ and if one isn't available, you can copy and register the file yourself. All of this can be done with professional installation packages or a simple Xbase++ program. I have done this for nearly 20 years using Xbase++ only. Here is some pseudo code: #include "Activex.ch" Procedure Update_Environment() LOCAL oX if (oX := CreateObject("MSComctlLib.SBarCtrl")) == NIL Install_OCX("MSComCtl.ocx", .t., .f.) else oX:Destroy() endif if (oX := CreateObject("MSComCtl2.MonthView")) == NIL Install_OCX("MSComCt2.ocx", .t., .f.) else oX:Destroy() endif if (oX := CreateObject("RichText.RichtextCtrl")) == NIL Install_OCX("RichTx32.ocx", .t., .f.) else oX:Destroy() endif return Procedure Install_OCX(cFile, lRegister, lInteractive) LOCAL cParams := iif(lInteractive, '', '/s ') + iif(lRegister, '', '/u ') LOCAL cProgName := 'RegSvr32.exe' if FExists(cFile) Copy_File_to_Program_Directory(cFile) RunShell(cParams + '"' + cFile + '"', cProgName, .f., lInteractive) endif return You can easily distribute those three OCX files in a Zip file archive and install them using XbZLib, for example. Andreas Andreas Gehrs-Pahl Absolute Software, LLC phone: (989) 723-9927 email: Andreas@AbsoluteSoftwareLLC.com web: http://www.AbsoluteSoftwareLLC.com [L]: https://www.LinkedIn.com/in/AndreasGehrsPahl [F]: https://www.FaceBook.com/AbsoluteSoftwareLLC | |
Jim Lee | Re: ActiveX Components on Fri, 19 Jun 2020 21:58:09 +0200 hi, i wonder that Alaska still use XbPart which need OCX ... those XbParts like XbpStatusbar, XbpToolbar, XbpRTF, Date/Month-View can easy build as native Control. have a look on DXE LIB at www.xbwin.com | |
Carlos A Beling | Re: ActiveX Components on Sat, 20 Jun 2020 11:31:19 -0300 Hello Jim. Good day. Many thanks. Yes, Alaska do use Xbase parts that needs OCX and OWC. The worst thing is: 1) Xbase++ neither informs wich Object needs to be createe nor what OCX file must to be loaded 2) in my case it was impossible to find what was needed. Kindly Mr Andreas helped showing they to me. 3) I could not to find the OCX files in the Xbase's folders 4) after known everything necessary, it is hard to install the files in users remote because it is need to execute the app with Administrator Right. Fraternally Beling On 19/06/2020 16:58, Jim Lee wrote: > hi, > > i wonder that Alaska still use XbPart which need OCX ... > > those XbParts like XbpStatusbar, XbpToolbar, XbpRTF, Date/Month-View can > easy build as native Control. > have a look on DXE LIB at www.xbwin.com > > > | |
Carlos A Beling | Re: ActiveX Components on Fri, 19 Jun 2020 18:46:15 -0300 Hello Andreas. Good night. Many thanks. You shed a light to me because neither I could not discover the name of the Control file that was needed nor wich one object should to be used for testing. Many thanks again. fraternally Beling On 18/06/2020 18:39, Andreas Gehrs-Pahl wrote: > Carlos, > >> It seems that it does not exist Installation CD and if an user does not >> have ActiveX installed neither we do have they for installing nor we >> have a way to tell him which one is needed for the app works fine. > > That is completely untrue. There are many ways to find those 3 *.ocx files, > including installing them from the Xbase++ *.MSI file. You can also easily > test if those files are installed (and registered) on any computer, by > simply trying to create a corresponding ActiveX object in Xbase++ and if one > isn't available, you can copy and register the file yourself. > > All of this can be done with professional installation packages or a simple > Xbase++ program. I have done this for nearly 20 years using Xbase++ only. > > Here is some pseudo code: > > #include "Activex.ch" > Procedure Update_Environment() > LOCAL oX > if (oX := CreateObject("MSComctlLib.SBarCtrl")) == NIL > Install_OCX("MSComCtl.ocx", .t., .f.) > else > oX:Destroy() > endif > > if (oX := CreateObject("MSComCtl2.MonthView")) == NIL > Install_OCX("MSComCt2.ocx", .t., .f.) > else > oX:Destroy() > endif > > if (oX := CreateObject("RichText.RichtextCtrl")) == NIL > Install_OCX("RichTx32.ocx", .t., .f.) > else > oX:Destroy() > endif > return > > Procedure Install_OCX(cFile, lRegister, lInteractive) > LOCAL cParams := iif(lInteractive, '', '/s ') + iif(lRegister, '', '/u ') > LOCAL cProgName := 'RegSvr32.exe' > if FExists(cFile) > Copy_File_to_Program_Directory(cFile) > RunShell(cParams + '"' + cFile + '"', cProgName, .f., lInteractive) > endif > return > > You can easily distribute those three OCX files in a Zip file archive and > install them using XbZLib, for example. > > Andreas > |