<?xml version="1.0" ?>
<kc>

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="199" date="05 Dec 2003 00:00:00 -0800" />
<intro> <p>This is the 199th issue of the Wine Weekly News publication.
Its main goal is to become more avy savvy. It also serves to inform you of what's going on around Wine. Wine is an open source implementation of the Windows API on top of X and Unix.  Think of it as a Windows compatibility layer.  Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code, but it can optionally use native system DLLs if they are available.   You can find more info at <a href="http://www.winehq.com">www.winehq.com</a></p> </intro>
<stats posts="280" size="905" contrib="61" multiples="35" lastweek="29">

<person posts="37" size="92" who="Alexandre Julliard" />
<person posts="25" size="68" who="Dimitrie O. Paun" />
<person posts="21" size="51" who="Andrew de Quincey" />
<person posts="16" size="76" who="Steven Edwards" />
<person posts="16" size="64" who="Mike Hearn" />
<person posts="15" size="46" who="Eric Pouech" />
<person posts="11" size="31" who="Shachar Shemesh" />
<person posts="10" size="26" who="Dmitry Timoshkov" />
<person posts="9" size="25" who="Ferenc Wagner" />
<person posts="9" size="25" who="Rein Klazes" />
<person posts="7" size="29" who="Casper Hornstrup" />
<person posts="7" size="25" who="Robert Shearman" />
<person posts="6" size="20" who="Tom" />
<person posts="5" size="18" who="Fabian Cenedese" />
<person posts="5" size="15" who="Gregory M. Turner" />
<person posts="5" size="11" who="Sylvain Petreolle" />
<person posts="4" size="11" who="Peter Berg Larsen" />
<person posts="4" size="9" who="Jonathan Wilson" />
<person posts="4" size="8" who="Thomas Brix Larsen" />
<person posts="4" size="7" who="Chris Morgan" />
<person posts="3" size="10" who="Marcus Meissner" />
<person posts="3" size="6" who="Francois Gouget" />
<person posts="3" size="6" who="Jeremy Newman" />
<person posts="3" size="6" who="Ivan Leo Murray-Smith" />
<person posts="3" size="6" who="Lionel Ulmer" />
<person posts="2" size="11" who="Phil Krylov" />
<person posts="2" size="9" who="Brian Vincent" />
<person posts="2" size="7" who="Boaz Harrosh" />
<person posts="2" size="7" who="Gavriel State" />
<person posts="2" size="6" who="Olaf Leidinger" />
<person posts="2" size="5" who="Juan Lang" />
<person posts="2" size="5" who="Vincent B&#233;ron" />
<person posts="2" size="5" who="J. Grant" />
<person posts="2" size="4" who="Andreas Mohr" />
<person posts="2" size="3" who="Jakob Eriksson" />
<person posts="1" size="62" who="Mike McCormack" />
<person posts="1" size="6" who="Dietrich Teickner" />
<person posts="1" size="5" who="Roderick Colenbrander" />
<person posts="1" size="4" who="Stefan Leichter" />
<person posts="1" size="4" who="Robert Iver" />
<person posts="1" size="4" who="Uwe Bonnes" />
<person posts="1" size="4" who="Dan Kegel" />
<person posts="1" size="3" who="Juan Antonio Bosca Lloret" />
<person posts="1" size="3" who="Hans Leidekker" />
<person posts="1" size="3" who="Raphael Junqueira" />
<person posts="1" size="2" who="Andreas Rosenberg" />
<person posts="1" size="2" who="Mike Jackson" />
<person posts="1" size="2" who="Peter Nunn" />
<person posts="1" size="2" who="Daniel Kegel" />
<person posts="1" size="2" who="Vizzini" />
<person posts="1" size="2" who="Erik Enge" />
<person posts="1" size="2" who="Jeremy White" />
<person posts="1" size="2" who="Vitaliy Margolen" />
<person posts="1" size="2" who="Bill Medland" />
<person posts="1" size="2" who="Michael Stefaniuc" />
<person posts="1" size="2" who="Ciprian Enache" />
<person posts="1" size="2" who="Jakob Eriksson" />
<person posts="1" size="1" who="Lars Segerlund" />
<person posts="1" size="1" who="Kris 'Spike' J" />

</stats>
<section 
	title="News: Captive, CrossOver Review" 
	subject="News"
	archive="http://www.jankratochvil.net/project/captive/"
	posts="2"
	startdate="29 Nov 2003 00:00:00 -0800"
	enddate="05 Dec 2003 00:00:00 -0800"
>
<topic>News</topic>
<mention></mention>
<mention>Microsoft</mention>
<mention>ReactOS</mention>
<mention>News</mention>

<p><a href="http://www.jankratochvil.net/project/captive/">Captive</a>
 appeared on Slashdot this week.  For those of you not familiar, Jan
 Kratochvil made the original Microsoft ntfs.sys driver work under Linux 
 providing full read and write access to NTFS filesystems.  The compatibility 
 comes from a piecemeal of Wine and ReactOS parts.</p>

<p>OSNews published a really nice writeup about the 
<a href="http://www.osnews.com/story.php?news_id=5262">combination of
SuSE 9.0 and CrossOver Office 2.1.0</a>.  The author installed SuSE 9.0
on a colleagues machine when Windows became unstable.  Various Windows
apps, including the genetic sequencer "Sequencher", were required:</p>
<quote who="OSNew"><p>
 On the other hand, while the barrier to Linux usage by employees is arguably 
 quite low, the real barrier is more likely that management and system 
 administrators in many organizations may not yet have a clue about how to 
 deploy Linux effectively. A clear prerequisite is having sysadmins who 
 understand Linux or other *nix operating systems. For example, while this 
 desktop installation of SuSE 9.0 proceeded flawlessly --and indeed much 
 better than I anticipated would be the case with some failing hardware in the 
 mix-- the installation of Crossover Office required a trivial bit of 
 additional manual setup that certainly could have stumped Windows sysadmins 
 who were new to Linux (Crossover installs without issue on SuSE 9.0, but 
 application icons do not show up on the user's desktop). Solving the nuts and 
 bolts of minor installation issues is however just a small part of the 
 equation. A more important aspect is the realization that tools like 
 Crossover Office exist and may have a number of advantages (speed, cost, ...) 
 over alternative solutions like VMWare for organizations that are looking 
 for practical ways to deploy Linux on a wider scale than they have 
 previously. </p></quote>

<p>The author, Ed Trager, <quote who="Ed Trager">is a bioinformatics 
programmer at the W. K. Kellogg Eye Center at the University of Michigan, 
Ann Arbor</quote>
which happens to be my alma mater.  At the time I graduated Linux was just
starting to see some use outside of the geek community.  Shortly after I
left I heard a rumor that the engineering college had put together their
own Linux distribution that integrated with the rest of the campus.  It's 
good to see Linux is alive and well in A^2. 

</p>
</section>
<section 
	title="Wine on a 64-Bit Opteron"
	subject="64bit Wine?"
	archive="http://www.winehq.com/hypermail/wine-devel/2003/12/0029.html" 
	posts="4"
	startdate="01 Dec 2003 00:00:00 -0800"
	enddate="02 Dec 2003 00:00:00 -0800"
>
<topic>Ports</topic>
<mention></mention>

<p>I guess the title I gave this thread is a bit redundant since
Opteron implies 64 bit processor.  Oh well.
Jonathon Grant wondered the feasibility of buying one:</p>
<quote who="Jonathon Grant"><p>
I'm considering getting an Opteron.  With this being a 64bit CPU I 
wondered if there would be any issues with using WINE to make use of 
win32 software on this 64bit CPU.</p></quote>

<p>Marcus Meissner gave a thumbs up:</p>
<quote who="Marcus Meissner"><p>
There are no issues.
</p><p>
SUSE LINUX 9.0 for AMD64 is capable of running all WINE products,
including regular WINE, CrossOver Office, CrossOver Plugin and WineX
in the 32bit compat mode.
</p></quote>

<p>Jeremy White went a bit further:</p>
<quote who="Jeremy White"><p>
Okay, I read that to mean that you can run already built
32 bit binary versions of Wine.
</p><p>
What about compiling?  Would compiling Wine on an Opteron
work?  Hmm.  I suppose you could cross compile to 32 bit,
couldn't you.
</p></quote>

<p>Marcus described how to do it:</p>
<quote who="Marcus Meissner"><p>
Well, I do ;)</p><p>

SUSE 9.0 comes with full biarch toolchain support on AMD64.</p><p>

Before you start, install additionaly to the default packages:
<ul>
	<li>glibc-devel-32bit</li>
	<li>freetype2-devel-32bit</li>
	<li>XFree86-devel-32bit</li>
	<li>XFree86-Mesa-devel-32bit</li>
	<li>fontconfig-devel-32bit</li>
	<li>openssl-devel-32bit</li>
	<li>ncurses-devel-32bit</li>
	<li>alsa-32bit</li>
	<li>and any dependend rpms.</li></ul></p><p>

Then:
<ul><code>
	export LD="ld -m elf_i386"<br />

	CC="gcc -m32" AS="gcc -c -m32" \<br />
	./configure --prefix=/usr --x-libraries=/usr/X11R6/lib<br />
	make depend all<br /></code></ul></p><p>

The -m32 switches gcc to 32bit mode.
</p><p>
If you have arts-devel installed, you might need to patch
dlls/winmm/winearts/Makefile and replace lib64 by lib.
</p><p>
You will also need attached winebuild patch that uses "LD" from the environment.

</p></quote>
</section>
<section 
	title="DirectShow / Quartz Status"
	subject="Status : Multimedia section"
	archive="http://www.winehq.com/hypermail/wine-devel/2003/12/0044.html" 
	posts="9"
	startdate="01 Dec 2003 00:00:00 -0800"
	enddate="05 Dec 2003 00:00:00 -0800"
>
<topic>Multimedia</topic>
<mention></mention>

<p>Tom Wickline revamped the Multimedia status page and 
asked for comments.  You can view that work in 
<a href="http://www.winehq.com/hypermail/wine-devel/2003/12/0044.html">his 
original post</a>.  Boaz Harrosh thought something was missing:</p>
<quote who="Boaz Harrosh"><p>
What about the DirectShow and DMO side of things. Should they not be 
listed to complete the Multimedia picture?
</p><p>
Mainly the filters in Quartz.dll and other basic filters that come with 
the OS.
</p><p>
if you want me to, I can make a list of the Basic filters and Interfaces 
that are needed (and the dlls they are implemented in. but that is not 
Important in DS) . I'm not sure which of them get Installed when you 
download a new Media player from MS, and which ones are strictly OS. I 
do know that the status must be good if CrossOver is able to run 
Windows-Media-Player.
</p></quote>

<p>Tom had those on his radar screen:</p>
<quote who="Tom Wickline"><p>
DirectShow = Quartz.dll
And DirectShow is listed under the DirectX section of the status page
as Quartz.dll is a part of DirectX.<ul>

<a href="http://www.winehq.com/site/status_dlls">
http://www.winehq.com/site/status_dlls</a></ul></p><p>

But have no fear, I plan to expand the DirectX section next
and list msdmo, devenum, d3d9 and so on. :-)
But in the future im going to just go with Quartz.dll and not DirectShow
as people ask me to also list quartz......
</p></quote>

<p>Tom asked if Boaz would be willing to help in the effort.  Robert
Shearman dropped a note to find out if <i>anyone</i> would be willing to get
involved, 
 <quote who="Robert Shearman">
If anyone would like to help with this please get in contact
with me so I can help explain how I've implemented certain things so far,
about locking, etc. The main things that are left to do to play 90% of media
files out there are implementing the filter graph manager, the reference
clock and the audio and video renderers (I have a hacky version of the video
renderer in my local tree but it is not ready for submitting as a patch).
Anyone that likes COM and graph algorithms should love the filter manager!
</quote></p> 

<p>Boaz then made the mistake of admitting he knew a little about this
and shared his ideas:</p>
<quote who="Boaz Harrosh"><p>
I meant to drop you a note, ask what is the status. But you beat me to it.
</p><p>
I have 7 years experience in writing DS filters. I am currently working 
on enhancing C++ on wine. I have ATL/WTL/MFC compiling and working under 
winelib. I have compiled COM controls generated by ATL VC++ wizards. I 
have some problems with the typelibs and so. But this is beside the 
subject. I would be happy to help in any way I can. I have lots of code 
that is not MS's. Also I have MS Direct Show Classes compiling and 
linking under Winelib (again some problems with the typelibs.)
</p><p> 
I have my own copyrighted DirectShow video render that is implemented on 
top of DirectDraw. It uses the Overlay Surfaces YUV or RGB what ever is 
available/requested. It will also fall back to HW (HardWare) memory 
surfaces that are not overlay. I did not yet implement the Memory 
surfaces support. (didn't need to but it should be easy to add them). I 
could release that code under wine I guess. If so I would also release 
the windows version of it. But before I do that, there are some issues 
to resolve (in order of importance):<ol>

<li> C++ code must be accepted - This is not an area that C is good 
enough, and in any way I don't know C I am only good in C++</li>
<li> What is the status of the DDraw lib. Will it support HW and Overlay 
2D surfaces? (does it support HW BOB)</li>
<li> I am some what dependent on MS DirectShow Classes. (Derivation) I 
have a lot, self implemented, but some of the basic stuff I used. I 
guess I could reimplement them but it will take time. Do you know what 
is the license issues with this code. I know that I have delivered them 
to many paying clients, and it was checked by the legal department. I 
all ways thought that, that code is: Do what you like no liability what 
so ever.</li></ol>
</p><p>
About the Graph manager: I'll think about it. I can certainly do it. But 
It is a big project. Do you know of a Company that would like to finance 
such a thing to some extent. ( condition 1 above applies C++ only). I'll 
think about it any way. Maybe it is not as big as I think. (Usually 
projects are much bigger then I think they are)</p></quote>


<p>The problem here may be with C++.  In order to use it in Wine you'd
need a really good reason.. and so far no one has been able to convince
Alexandre of one.</p>

</section>
<section 
	title="Winetest Integrated &amp; Future Steps" 
	subject="winetest WineHQ integration"
	archive="http://www.winehq.com/hypermail/wine-devel/2003/12/0139.html" 
	posts="4"
	startdate="04 Dec 2003 00:00:00 -0800"
	enddate="05 Dec 2003 00:00:00 -0800"
>
<topic>Testing</topic>
<mention></mention>
<mention>Jakob Eriksson</mention>
<mention>Dimi Paun</mention>

<p>Winetest is a new utility we've discussed in past issues.  In 
<a href="http://www.winehq.com/?issue=186#Collecting%20Test%20Statistics">issue
#186</a> we covered Jakob Eriksson's initial work of getting Wine's
test suite to compile and run on Windows.  That was back in August, since
then more work has been done (see issues 
<a href="http://www.winehq.com/?issue=189#New%20Tests%20For%20Windows">#189</a>
and
<a href="http://www.winehq.com/?issue=194#Updated%20Winetests">#194</a>).  
Dimi Paun decided that the few remaining issues preventing it from being
integrated into CVS needed to be taken care.  After a little discussion and
some minor patches, Alexandre committed it.  </p>

<p>However, that's only one piece of the puzzle.  When you run it it
packages up all the test results and sends them to a mailing list.  Something
is still required to parse those emails and create a nice table of information.
Ferenc Wagner has worked on that side and dropped a note this week to start
discussion again:</p>

<quote who="Ferenc Wagner"><p>
so we should start working out this one, too.  First let me
sketch the present picture.  I've got a directory structure
like this: <ul>
 <table border="0" cellpadding="0" cellspacing="0">
  
	  <tr><td>|</td><td> </td><td> </td></tr>
          <tr><td>+</td><td> 20030829</td><td> + 95</td></tr>
          <tr><td>|</td><td> </td><td>         + 95_michael</td></tr>
          <tr><td>|</td><td> </td><td>         + 98</td></tr>
          <tr><td>|</td><td> </td><td>         + 98_joel</td></tr>
          <tr><td>|</td><td> </td><td>         + 98_kevin</td></tr>
          <tr><td>|</td><td> </td><td>         + etc.</td></tr>
          <tr><td>|</td><td> </td><td>	      ` 2003s</td></tr>
          <tr><td>|</td><td> </td><td> </td></tr>
          <tr><td>+</td><td> 20030916</td><td> (similar)</td></tr>
          <tr><td>`</td><td> 20031127</td><td> (similar)</td></tr>
 </table></ul></p><p>
That is, one directory for each test collection and one
subdirectory for each submission of it.  For a new
submission I create a directory, copy the results.txt into
it, create a reporter.txt next to it, add it to archs in the
Makefile, and make.  For a new test collection I create
missing.dll.txt's (presently dsound), Makefile and tests.zip
in a new directory.
</p><p>
Changes needed at least:<ol>
<li> Windows version detected automatically.</li>
<li> Tester name and contact (?) included in the results.</li>
<li> Automatically generated tags, probably simple incremental
   numbers.</li>
<li> Which submission should be the principal one?  The first?</li>
<li> Makefile at one level higher, archs variable autodetected.</li>
</ol></p><p>
But before doing anything, we definitely need the opinion of
the website maintainer.  We need a very simple CGI to handle
the file uploads.  Presently it is
&lt;<a href="http://afavant.elte.hu/~wferi/wine/winetest.pl">
http://afavant.elte.hu/~wferi/wine/winetest.pl</a>&gt;.  All of
the present machinery is available in that directory:
Makefile, dissect, gather and the other ingredients.  I
don't know much about web design or anything about WineHQ's
inner workings.  What sort of output should we produce?</p><p>

I think the above is enough for a start...</p></quote>

<p>Dimi had some thoughts, but the key seemed to be getting
something completed that worked.  
</p>

</section>
<section 
	title="Proposed Wineconf 2004 Agenda" 
	subject="Agenda for Wineconf"
	archive="http://www.winehq.com/hypermail/wineconf/2003/12/0002.html" 
	posts="1"
	startdate="05 Dec 2003 00:00:00 -0800"
>
<topic>WineConf 2004</topic>
<mention></mention>

<p>Plans are underway for planning Wineconf 2004.  Not much
has been discussed, but there is a new mailing list for those
planning on participating.  It's going to happen the weekend
of January 31st / February 1st (coincidentally it's Superbowl
weekend.)  For those planning on attending you'll probably want
to get in contact with Jeremy White - group rates are available
at the Best Western.  Jeremy dropped a note this week about
the format:</p>
<quote who="Jeremy White"><p>
 I've started mulling over an agenda for Wineconf, and
 I wanted to bounce some ideas off of everyone.
</p><p>
 First, at the last Wineconf, while it was great fun,
 I think there was a strong sense that there were
 too many 'presentations' and not enough time for
 simple discussions.
</p><p>
 So, to that end, I'd like to propose an agenda
 that has a fairly modest number of 'presentations',
 but then also includes slots for structured discussions,
 and lots of time for unstructured conversations.
</p><p>
 And, of course, I think a nice chunk of the unstructured
 portions should be done over a meal and/or libations.
</p><p>
 I've asked Alexandre to do a keynote, and I've asked a few
 of you to give targetted talks.  If anyone has something
 they'd like to present on, please let me know.
</p><p>
 For discussions, I'd like to suggest the following
 structured topics:
 <ol>
   <li>  Wine 1.0.</li>
   <li>  In search of the magic bullet -
         Can we transform our processes in any way
         to make Wine go faster?</li>
   <li>  Game hack fest (this could be all night Saturday,
         with beers)</li></ol></p><p>

 Thoughts?  Suggestions?  All feedback is welcome. 
</p></quote>

</section>

<section 
	title="InstallShield Problems" 
	subject="Status of InstallShield-Setup Engine"
	archive="http://www.winehq.com/hypermail/wine-devel/2003/12/0118.html" 
	posts="6"
	startdate="04 Dec 2003 00:00:00 -0800"
	enddate="05 Dec 2003 00:00:00 -0800"
>
<topic>RPC / COM / OLE</topic>
<mention></mention>
<mention>Suse</mention>
<mention>Microsoft</mention>
<mention>Mike McCormack</mention>
<mention>Ove K&#229;ven</mention>
<mention>TransGaming</mention>

<p>Andy Rosenburg touched on a subject that hasn't been discussed
in a while - InstallShield installers.  You may remember that new
versions of InstallShield began to break last year.  We've
talked about various things you can do to work around it.  Andy 
reported decent success but still had problems:</p>
<quote who="Andreas Rosenburg"><p>
I'm new to this list. The company I'm working for, is developing
software for Windows and as a personal Linux fan I was testing
our software with Wine from time to time. The last tries (several
month ago) were still pretting bad, but with the Wine from Suse 9.0
(snapshot from August 2003)
there were only "trivial" errors (mostly conformance) which we were
able to circumwent in our software. I tracked all problems and reported
them als bugs: (1844, 1845, 1847, 1848) together with a patch for two of
them.
</p><p>
We have a customer, who already asked for a version of our software 
being able to run on Linux. 
What's seems to be a big problem, is the InstallShield Setup Engine
we are using (like many others). 
A played around with it and it crashed in different ways. I looked
into the bug list and found the rather old "meta bug" #170. 
Unfortunately the link inside is broken.
</p><p>
Perhaps we can contribute in making the InstallShield Setup Engine
work. Has anybody tracked what's causing the problem? I read
about "global window handles", but this didn't gave me the right
clue. Is it related with the API call FindWindow? Is the IS Setup Engine
using multiple processes and trying to communicate via window messages or DDE?
</p><p>
If anybody could point me in the right direction, this would be great.
Otherwise it would be a waste of resources to debug/search stuff others 
already did. </p></quote>

<p>Mike Hearn's suggestion was to ditch InstallShield,
<quote who="Mike Hearn">
 One obvious solution then is to not use InstallShield. NSIS works quite
 well in Wine. If you are shipping a Linux version for a customer, simply
 using native installers (like RPM or Loki Setup) would work much better.
</quote></p>

<p>The real problem with InstallShield is its use of OLE and DCOM.  
Running with native versions of those DLL's helps, but obviously it's
not the desired solution.  Rob Shearman mentioned some of the problems
with native OLE/DCOM:</p>
<quote who="Robert Shearman"><p>
I belive that it is our lack of proper ThreadingModel support in COM. We
currently ignore the registry parameter
<tt>HKCU\CLSID\{GUID}\InprocServer32\ThreadingModel</tt>. I believe we do that right
thing in the case of that value being Apartment and the application calling
<tt>CoInitializeEx(NULL,COINIT_APARTMENTTHREADED)</tt>. However, we don't do the
right thing in any of the other combination of flags. I belive the right
course of action is to use stubless proxies to marshal the interface across
boundaries in certain cases. These cases are listed in the books "Inside
OLE" and "Inside DCOM" by Microsoft Press.
Our Local Server COM also leaves a lot to be desired but that may or may not
be needed for InstallShield.</p></quote>

<p>Ove K&#229;ven as done a ton of COM work for TransGaming and the ReWind tree.
Over the summer Mike Hearn got a hold of it and began reworking it for 
inclusion in Wine.  He described a little of that:</p>
<quote who="Mike Hearn"><p>
 This mostly affects visuals I think - the last "known good" point of
 InstallShield on Wine was that it did work, and installed without
 crashing, however it looked ugly because repainting didn't work well
 (due to the lack of proper interthread marshalling). There have been
 regressions since then though, Marcus fixed one bad one lately (in-place
 coercion of arguments to IDispatch::Invoke).
</p><p>
 Oves work on interthread marshalling has been X11 licensed and I
 produced a patch that merged it with WineHQ (and fixed a minor bugs and
 such). I think Mike McCormack has a copy I sent him, but I never
 submitted it. I need to do that sometime really.
</p><p>
 "Essential COM" by Don Box is another good book, but a lot of the
 knowledge required is available on MSDN and MSJ articles, it's just
 scattered all over the net (the DCOM spec is a good reference too). 
</p></quote>

</section>

<section 
	title="OpenOffice 1.1 Under Wine" 
	subject="Nice work - OpenOffice 1.1 under WINE"
	archive="http://www.winehq.com/hypermail/wine-devel/2003/11/0724.html" 
	posts="3"
	startdate="29 Nov 2003 00:00:00 -0800"
	enddate="30 Nov 2003 00:00:00 -0800"
>
<topic></topic>
<mention></mention>
<mention>ReactOS</mention>
<mention>Dimi Paun</mention>

<p>Steven Edwards reported that the Windows version of OpenOffice
worked with Wine:</p>
<quote who="Steven Edwards"><p>
I have just compleated a full install of OO 1.1 under WINE. No outsite
packages are required to install and configure OpenOffice for Win32
under Wine. There are a few minor bugs with some of the strings in
menus but I would rate it at 99%. If anyone is interested in a good
hobby project a Winelib port of this would be nice to see.
</p><p>
With a little luck we may be able to have this running for WineConf
under ReactOS.
</p></quote>

<p>The obvious question most people ask is, why bother since a native
Linux version is available?  Quite simply, it stresses both Wine and
OpenOffice.  The chance of running an application under Wine is directly
proportional to its size and complexity.  Years ago people were happy
when Solitaire worked, so this is a dramatic improvement.  Dimi Paun
thought it might be difficult to demo it under ReactOS because of the
build system,
<quote who="Dimitrie Paun">
before we can attempt that, we need MinGW support in
OO, and AFAIK, that's not supported just yet. Does anyone know
of any (current) effort to remedy that?
</quote></p>
</section>
<section 
	title="Implementing Imagehlp Functions" 
	subject="Who maintains the imagehlp dll?"
	archive="http://www.winehq.com/hypermail/wine-devel/2003/12/0138.html" 
	posts="5"
	startdate="04 Dec 2003 00:00:00 -0800"
	enddate="05 Dec 2003 00:00:00 -0800"
>
<topic>Debugging</topic>
<mention></mention>
<mention>Ulrich Weigand</mention>
<mention>ReactOS</mention>
<mention>Steven Edwards</mention>

<p>Imagehlp.DLL is one of those odd system DLL's that live on the periphery
of implementation.  It's purpose is to analyze the structure of a PE file,
such as another DLL.  This library contains a slew of functions for working
with and manipulating that structure.  It's critical for debugging and
error handling on Windows.
If you're on Linux then you're probably more interested in using
Wine's tools, such as winedbg.  Andrew de Quincy wrote to wine-devel 
wondering about the status of the imagehlp library:</p>
<quote who="Andrew de Quincy"><p>
 Now that I have IDA nearly sorted, I was wondering.. who maintains the 
 imagehlp dll? It seems kinda empty, and I'm sure it was at one point more 
 complete (I looked into wine some time ago).
</p></quote>

<p>Andrew has been in the news recently for another project - the new driver
for the ethernet interface of the Nvidia nForce chipset.  Alexandre replied,
<quote who="Alexandre Julliard">
No, it has always been fairly empty, and nobody has been working on it
recently. It's all yours...</quote></p>

<p>Rob Shearman provided more insight into Wine's capabilities,
<quote who="Robert Shearman">

However, most of it is implemented already in winedbg. It has been a
long-term plan to gradually move code from winedbg to imagehlp (or the new
and similar debugging DLL, dbghelp). PDB files are also supported in winedbg
(so no investigation of the format should be needed). However, I'm not sure
whether .dbg files are supported. They could be quite useful when a crash
occurs in a native DLL (that doesn't have an associated PDB file) and Wine
is the cause.</quote></p>

<p>Steven Edwards hoped that it could be moved so ReactOS could take advantage
of imagehlp and debughlp.  Debughlp is the newer cousin of imagehlp.  Imagehlp
in Windows 2000+ systems still export the API but forward the calls to debughlp. 
Eric Pouech, the Wine debugger guru, noted that .dbg files are supported,
<quote who="Eric Pouech">but it also depends on the MS debugging format used.
Ulrich  Weigand wrote some support for some formats (NB09, NB10 and N11), but 
latest formats are not supported.</quote>.  </p>

<p>Concerning moving code out of winedbg, he added,
<quote who="Eric Pouech">
I started some time ago porting the winedbg stuff inside dbghelp (I have 
a skeleton from this later DLL). If someone is interested to spend some 
time on this, I can provide what I have.</quote></p>

</section>

<section 
	title="List of Debug Channels"
	subject="Debugging"
	archive="http://www.winehq.com/hypermail/wine-devel/2003/11/0651.html"
	posts="1"
	startdate="27 Nov 2003 00:00:00 -0800"
>
<topic>Debugging</topic>

<mention></mention>

<p>Mike Hearn compiled a list of debug channels that are
available in Wine.  Debug channels let you see messages
pertaining to a certain subsystem of Wine and can be turned
on and off.  For more information, see the
<a href="http://www.winehq.com/site/docs/wine-devel/debugging">debugging</a>
section of the Wine Developer's Guide.  It's quite probable
some of these channels aren't useful for anything any more:</p>
<quote who="Mike Hearn"><p>
There are quite a few, aren't there? Full marks to anybody who can
actually describe what they all monitor :)
<ul>
<li>accel</li> 
<li>adpcm</li> 
<li>advapi</li> 
<li>animate</li> 
<li>aspi</li> 
<li>atom</li> 
<li>avicap</li> 
<li>avifile</li> 
<li>bidi</li> 
<li>bitblt</li> 
<li>bitmap</li> 
<li>cabinet</li> 
<li>capi</li> 
<li>caret</li> 
<li>cdrom</li> 
<li>cfgmgr32</li> 
<li>class</li> 
<li>clipboard</li> 
<li>clipping</li> 
<li>combo</li> 
<li>comboex</li> 
<li>comm</li> 
<li>commctrl</li> 
<li>commdlg</li> 
<li>computername</li> 
<li>console</li> 
<li>crtdll</li> 
<li>crypt</li> 
<li>curses</li> 
<li>cursor</li> 
<li>d3d</li> 
<li>d3d_shader</li> 
<li>d3d_surface</li> 
<li>datetime</li> 
<li>dc</li> 
<li>ddeml</li> 
<li>ddraw</li> 
<li>ddraw_fps</li> 
<li>ddraw_geom</li> 
<li>ddraw_tex</li> 
<li>debugstr</li> 
<li>devenum</li> 
<li>dialog</li> 
<li>dinput</li> 
<li>dll</li> 
<li>dma</li> 
<li>dmband</li> 
<li>dmcompos</li> 
<li>dmfile</li> 
<li>dmfiledat</li> 
<li>dmime</li> 
<li>dmloader</li> 
<li>dmscript</li> 
<li>dmstyle</li> 
<li>dmsynth</li> 
<li>dmusic</li> 
<li>dosfs</li> 
<li>dosmem</li> 
<li>dplay</li> 
<li>dplayx</li> 
<li>dpnhpast</li> 
<li>driver</li> 
<li>dsound</li> 
<li>dsound3d</li> 
<li>edit</li> 
<li>enhmetafile</li> 
<li>environ</li> 
<li>event</li> 
<li>eventlog</li> 
<li>exec</li> 
<li>file</li> 
<li>fixup</li> 
<li>font</li> 
<li>fps</li> 
<li>g711</li> 
<li>gdi</li> 
<li>global</li> 
<li>glu</li> 
<li>graphics</li> 
<li>header</li> 
<li>heap</li> 
<li>hook</li> 
<li>hotkey</li> 
<li>icmp</li> 
<li>icon</li> 
<li>imagehlp</li> 
<li>imagelist</li> 
<li>imm</li> 
<li>int</li> 
<li>int21</li> 
<li>int31</li> 
<li>io</li> 
<li>ipaddress</li> 
<li>iphlpapi</li> 
<li>jack</li> 
<li>joystick</li> 
<li>key</li> 
<li>keyboard</li> 
<li>listbox</li> 
<li>listview</li> 
<li>loaddll</li> 
<li>local</li> 
<li>mapi</li> 
<li>mci</li> 
<li>mcianim</li> 
<li>mciavi</li> 
<li>mcicda</li> 
<li>mcimidi</li> 
<li>mciwave</li> 
<li>mdi</li> 
<li>menu</li> 
<li>menubuilder</li> 
<li>message</li> 
<li>metafile</li> 
<li>midi</li> 
<li>mmaux</li> 
<li>mmio</li> 
<li>mmsys</li> 
<li>mmtime</li> 
<li>module</li> 
<li>monthcal</li> 
<li>mpeg3</li> 
<li>mpr</li> 
<li>msacm</li> 
<li>msdmo</li> 
<li>msg</li> 
<li>mshtml</li> 
<li>msi</li> 
<li>msimg32</li> 
<li>msisys</li> 
<li>msrle32</li> 
<li>msvcrt</li> 
<li>msvideo</li> 
<li>mswsock</li> 
<li>nativefont</li> 
<li>netapi32</li> 
<li>netbios</li> 
<li>nls</li> 
<li>nonclient</li> 
<li>ntdll</li> 
<li>odbc</li> 
<li>ole</li> 
<li>oledlg</li> 
<li>olerelay</li> 
<li>opengl</li> 
<li>pager</li> 
<li>palette</li> 
<li>pidl</li> 
<li>powermgnt</li> 
<li>print</li> 
<li>process</li> 
<li>profile</li> 
<li>progress</li> 
<li>propsheet</li> 
<li>psapi</li> 
<li>psdrv</li> 
<li>qcap</li> 
<li>quartz</li> 
<li>ras</li> 
<li>rebar</li> 
<li>reg</li> 
<li>region</li> 
<li>relay</li> 
<li>resource</li> 
<li>richedit</li> 
<li>rundll32</li> 
<li>sblaster</li> 
<li>scroll</li> 
<li>seh</li> 
<li>selector</li> 
<li>server</li> 
<li>setupapi</li> 
<li>shdocvw</li> 
<li>shell</li> 
<li>shlctrl</li> 
<li>snmpapi</li> 
<li>snoop</li> 
<li>sound</li> 
<li>static</li> 
<li>statusbar</li> 
<li>storage</li> 
<li>stress</li> 
<li>string</li> 
<li>syscolor</li> 
<li>system</li> 
<li>tab</li> 
<li>tape</li> 
<li>tapi</li> 
<li>task</li> 
<li>text</li> 
<li>thread</li> 
<li>thunk</li> 
<li>tid</li> 
<li>timer</li> 
<li>toolbar</li> 
<li>toolhelp</li> 
<li>tooltips</li> 
<li>trackbar</li> 
<li>treeview</li> 
<li>ttydrv</li> 
<li>twain</li> 
<li>typelib</li> 
<li>uninstaller</li> 
<li>updown</li> 
<li>urlmon</li> 
<li>uxtheme</li> 
<li>ver</li> 
<li>virtual</li> 
<li>vxd</li> 
<li>wave</li> 
<li>wc_font</li> 
<li>win</li> 
<li>win32</li> 
<li>wineboot</li> 
<li>winecfg</li> 
<li>wineconsole</li> 
<li>wine_d3d</li> 
<li>winevdm</li> 
<li>wing</li> 
<li>winhelp</li> 
<li>wininet</li> 
<li>winmm</li> 
<li>winsock</li> 
<li>winspool</li> 
<li>wintab</li> 
<li>wintab32</li> 
<li>wnet</li> 
<li>x11drv</li> 
<li>x11settings</li> 
<li>xdnd</li> 
<li>xrandr</li> 
<li>xrender</li> 
<li>xvidmode</li> 
</ul></p></quote>

</section>
</kc>
