Time to get serious about supporting VB database apps?

Michael Stefaniuc mstefani at redhat.com
Wed Nov 23 08:57:16 CST 2005

Dan Kegel wrote:
> What would it take to really support MS database client apps
> in Wine?  The situation is not copacetic; everywhere you
> turn, it's easy to find enough problems to stop the average VB
> database app.
I do not know what special needs the VB database apps have but for sure 
they need a good oleaut32.dll. At least the variant arithmetic functions 
aren't good enough for your requirements. With good enough i mean is 
that they do not handle all the input variants that native oleaut32 are 
handling. That isn't hard to implement but requires a lot of tests as 
this functions are very poorly documented and are designed specificaly 
to support only the variants they get passed down by the VB runtime. 
Good examples of such tests and implementation are VarMul, VarAdd and 
1-2 other functions (from which i adapted the tests for VarMul and 
VarAdd). A sign for a not "fully" implemented variant arithmetic 
function is a fixme which says something like "VarXxx partial 
implementation, doesn't support vt ..." (if you get this it is the 
source of the automation error you more than probably got too) or if the 
function returns E_FAIL. From my experience so far with variant 
arithmetic functions those return in the native oleaut32 

> I tried installing a real world small government app.
> It used VBSQL.OCX, and required a file from
> the SQL 7.0 Client redistributables.
> Here's the script I used to install it (yikes):
> http://www.kegel.com/wine/initvbapp.sh.txt
> I lost touch with the guy who needed this app,
> presumably he gave up because it was so hard to install under Wine.
> Here are all the bugs related to mdac installation:
> http://bugs.winehq.org/buglist.cgi?product=Wine&long_desc_type=substring&long_desc=mdac_typ 
> Another VB database app installed (after some effort),
> but failed with an "automation error".
> http://bugs.winehq.org/buglist.cgi?long_desc_type=substring&long_desc=automation+error 
Automation errors are of different kinds: easy to fix and hard to fix. 
#2480 would be an easier one to fix: The problem is in the VarCmp 
(variant arithmetic) function and the function would need to be changed 
to accept that combination of variant types the fixme is complaining 
about. No need to do it here as i resumed my work on VarCmp to make it 
accept the same input variants as native function in WinXP does.
#1713 is a hard to fix bug as the OLE object functionality isn't 
implemented yet for richedit. Nor will it be according to the last 
comment in the bug report.

> Other VB apps use "dbgrid32", and a small sample app that
> uses that currently fails.  See
> http://bugs.winehq.org/buglist.cgi?short_desc_type=allwordssubstr&short_desc=dbgrid32.ocx 
> Perhaps it's time to create an open source torture test in VB 6 that
> exhibits as many of these problems as possible, and
> use that as a regression test in Wine.
At least for oleaut32 it isn't needed, the normal wine tests are good 

> Anyone willing/able to take that on?  Roderick Colenbrander
> wrote the DBGRID32.OCX test; perhaps he'd be willing to
> write an expanded set of tests?

Michael Stefaniuc               Tel.: +49-711-96437-199
Sr. Network Engineer            Fax.: +49-711-96437-111
Red Hat GmbH                    Email: mstefani at redhat.com
Hauptstaetterstr. 58            http://www.redhat.de/
D-70178 Stuttgart

More information about the wine-devel mailing list