Alaska Software Inc. - ActiveX Components
Username: Password:
AuthorTopic: 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 LeeRe: 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
>