Issue 118821

Summary: [RFE] Build Windows Developer Snapshots with ATL enabled
Product: General Reporter: Oliver Brinzing <oliver.brinzing>
Component: scriptingAssignee: Oliver-Rainer Wittmann <orw>
Status: CLOSED FIXED QA Contact:
Severity: Major    
Priority: P5 (lowest) CC: arielch, issues, oliver.brinzing, orw
Version: 3.4.0 Beta (OOo)   
Target Milestone: ---   
Hardware: PC   
OS: Windows, all   
Issue Type: ENHANCEMENT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
error message (german)
none
diffs' in services.rdb
none
Developer Snapshot with ATL enabled - no system integration none

Description Oliver Brinzing 2012-01-21 09:51:51 UTC
i started testing with DevSnapshots-Rev.1231878 from
http://people.apache.org/~orw/DevSnapshots-Rev.1231878/win32

but failed - due to missing system integration(?) my extensions 
report errors like "fatal error - no component manager available".
please have a look at the attachment.

Rev. 1230786 (provided by ariel) worked perfect - no errors at all.

is it possible to provide dev snapshots with system integration?
Comment 1 Oliver Brinzing 2012-01-21 09:53:05 UTC
Created attachment 77152 [details]
error message (german)
Comment 2 Oliver-Rainer Wittmann 2012-01-23 08:25:49 UTC
taking over this issue
Comment 3 Oliver-Rainer Wittmann 2012-01-23 09:53:50 UTC
It is intended that developer snapshots do not have the system integration.

Thus, I think we close this issue as invalid.
Comment 4 Oliver Brinzing 2012-01-23 11:30:16 UTC
Hi Oliver

the issue is that the "oleautobridge.uno.dll" is *missing*
in the installation set. Adding "oleautobridge.uno.dll" 
and registering it solves the problem.

imho this has nothing todo with windows registry system integration.
please add "oleautobridge.uno.dll" and registration into dev builds.

this is what i did:

- copy "oleautobridge.uno.dll" to $BRAND_BASE_DIR/program
  (taken from rev 1230786)

- insert into $BRAND_BASE_DIR/Basis/programm/services.rdb:

<component loader="com.sun.star.loader.SharedLibrary"
 uri="vnd.sun.star.expand:$BRAND_BASE_DIR/program/oleautobridge.uno.dll">
 <implementation name="com.sun.star.comp.ole.OleClient">
  <service name="com.sun.star.bridge.OleObjectFactory"/>
  <service name="com.sun.star.bridge.oleautomation.Factory"/>
 </implementation>
 <implementation name="com.sun.star.comp.ole.OleConverter2">
  <service name="com.sun.star.bridge.OleBridgeSupplier2"/>
  <service name="com.sun.star.bridge.oleautomation.BridgeSupplier"/>
 </implementation>
 <implementation name="com.sun.star.comp.ole.OleConverterVar1">
  <service name="com.sun.star.bridge.OleBridgeSupplierVar1"/>
 </implementation>
 <implementation name="com.sun.star.comp.ole.OleServer">
  <service name="com.sun.star.bridge.OleApplicationRegistration"/>
  <service name="com.sun.star.bridge.oleautomation.ApplicationRegistration"/>
 </implementation>
</component>

- open aoo and check with macro:

  OPTION EXPLICIT
  Sub Test
    Dim oManager as Object
    oManager = CreateObject("com.sun.star.ServiceManager")
    MsgBox isNull(oManager)
  End Sub
Comment 5 Oliver Brinzing 2012-01-23 11:35:46 UTC
there are some other .uno.dll's missing in 
the dev builds, please see attached diff.xml
Comment 6 Oliver Brinzing 2012-01-23 11:36:11 UTC
Created attachment 77161 [details]
diffs' in services.rdb
Comment 7 Ariel Constenla-Haile 2012-01-23 12:11:55 UTC
(In reply to comment #4)
> Hi Oliver
> 
> the issue is that the "oleautobridge.uno.dll" is *missing*
> in the installation set. Adding "oleautobridge.uno.dll" 
> and registering it solves the problem.

it seems Oliver-Rainer is building with --disable-atl

@Oliver-Rainer: can you confirm?


> imho this has nothing todo with windows registry system integration.
> please add "oleautobridge.uno.dll" and registration into dev builds.

even if the DevSnap is build with ATL support, you cannot click a VB script on the Explorer and execute, because the DevSnap installer does not register any activex component.


> - open aoo and check with macro:
> 
>   OPTION EXPLICIT
>   Sub Test
>     Dim oManager as Object
>     oManager = CreateObject("com.sun.star.ServiceManager")
>     MsgBox isNull(oManager)
>   End Sub

In a DevSnap with ATL enabled, and so with the UNO component, but with all system integration from other OOo standard versions (I removed all of them, I only have the DevSnapshot installed), I can not run this macro, nor execute a VB script outside AOO.

Do you have by chance another OOo/AOO installation with the ActiveX component registered? You can test this by double-clicking on the explorer on any VB script with AOO code.
Comment 8 Ariel Constenla-Haile 2012-01-23 12:13:47 UTC
Created attachment 77162 [details]
Developer Snapshot with ATL enabled - no system integration

Even on a Developer Snapshot with ATL enabled, there is no system integration, it does not register any ActiveX component, etc. So VB Scripts can not be exectued.
Comment 9 Oliver Brinzing 2012-01-23 12:41:55 UTC
> So VB Scripts can not be exectued.

if you start aoo *before* you run the vb script it will work.

for example, i have installed oo32 with systemintegration in 
"c:\program files\openoffice.org\" and i have installed a
aoo dev build in "c:\program files\Ooo-dev3\".

if i start aoo before i run *.vbs, aoo will be used.
if no office is running, *.vbs will start oo32.
Comment 10 Oliver-Rainer Wittmann 2012-01-23 12:46:35 UTC
Yes, I have used configure option --disable--atl.

Here are the configure options (beside the "path"-options) which I am using:
--without-junit
--enable-pch
--disable-directx
--disable-atl --disable-activex
--disable-binfilter
--enable-category-b
--disable-build-mozilla
--with-mozilla-build=c:/mozilla-build
--with-lang="en-US de fr it es ja pt-BR zh-CN nl"
Comment 11 Ariel Constenla-Haile 2012-01-28 14:08:02 UTC
Changed the bug subject to reflect the actual issue.
Comment 12 Ariel Constenla-Haile 2012-01-28 15:02:18 UTC
Building on Windows with ATL enabled and the Visual Studio Express edition is possible, following Mathias's advice:

* download and install the Windows Driver SDK, it comes with the ATL header and libraries for free (as in free beer).

* configure without --disable-atl. configure will set ATL_LIB, ATL_INCLUDE, MFC_LIB, and MFC_INCLUDE to point to the Visual Studio Express Edition directories

* you have to edit winenv.set[.sh] and change these variables to point to the Windows Driver SDK

The only issue I've found, was an undefined reference building activez, I solved it adding in main/extensions/source/activex/main/makefile.mk $(ATL_LIBS)$/atlthunk.lib besides $(ATL_LIBS)$/atls.lib
Comment 13 Oliver-Rainer Wittmann 2012-02-29 14:23:44 UTC
I have applied Ariel's suggested stuff to my local environment with success.
Thus, you can expect that the next Windows developer snapshot in case that I will create it is built with ATL and ActiveX enabled.

Note: I also installed the Microsoft DirectX SDK. Thus, DirectX will also be enabled in my next Windows developer snapshot.
Comment 14 Oliver-Rainer Wittmann 2012-03-06 09:10:10 UTC
In my Windows builds for rev. 1296433 ATL, ActiveX and DirectX are no longer disabled - please check. Thx in advance.
Comment 15 Oliver Brinzing 2012-03-06 14:10:58 UTC
rev. 1296433 looks good - oleautobridge.uno.dll is included and registered.

how can i check ActiveX and DirectX?
Comment 16 Oliver-Rainer Wittmann 2012-03-06 14:13:26 UTC
I do not know DirectX and ActiveX integration into AOO (and former OOo). Thus, I do not know how to test. Sorry.
Comment 17 Ariel Constenla-Haile 2012-03-06 14:31:32 UTC
(In reply to comment #15)
> rev. 1296433 looks good - oleautobridge.uno.dll is included and registered.
> 
> how can i check ActiveX and DirectX?

Opengroking ENABLE_DIRECTX, DirectX is used in avmedia (the avmedia plugin in Windows uses DirectX) and canvas (the directxcanvas). For the first, test that inserting audio and video works. For the later, I've no idea how to test it.

Opengroking DISABLE_ACTIVEX shows that the ActiveX control is a "Component to enable Microsoft Internet Explorer to display %PRODUCTNAME documents." (scp2/source/activex/module_activex.ulf). It seems you should be able to display AOO documents inside the IE browser.
Comment 18 Oliver Brinzing 2012-05-21 16:24:50 UTC
imho this issue can be closed - its fixed
Comment 19 Ariel Constenla-Haile 2012-05-21 22:14:39 UTC
Resolving as FIXED