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
DISP_E_BADVARTYPE or DISP_E_TYPEMISMATCH.
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
enough.
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?
bye
michael
--
Michael Stefaniuc Tel.: +49-711-96437-199
Sr. Network Engineer Fax.: +49-711-96437-111
Red Hat GmbH Email: [EMAIL PROTECTED]
Hauptstaetterstr. 58 http://www.redhat.de/
D-70178 Stuttgart