Wine Developer's Guide
Table of Contents
I.
Developing Wine
1.
Debugging Wine
Introduction
WineDbg's modes of invocation
Using the Wine Debugger
Useful memory addresses
Configuration
WineDbg Expressions and Variables
WineDbg Command Reference
Other debuggers
Limitations
2.
Debug Logging
Debugging classes
Debugging channels
Are we debugging?
Helper functions
Controlling the debugging output
Compiling Out Debugging Messages
A Few Notes on Style
3.
Other debugging techniques
Doing A Hardware Trace
Understanding undocumented APIs
How to do regression testing using CVS
4.
Coding Practice
Patch Format
Some notes about style
Quality Assurance
Porting Wine to new Platforms
Adding New Languages
5.
Writing Conformance tests
Introduction
What to test for?
Running the tests in Wine
Cross-compiling the tests with MinGW
Building and running the tests on Windows
Inside a test
Writing good error messages
Handling platform issues
6.
Documenting Wine
An Overview Of Wine Documentation
Writing Wine API Documentation
The Wine DocBook System
II.
Wine Architecture
7.
Overview
Wine Overview
Standard Windows Architectures
Wine architecture
8.
Kernel modules
NTDLL
KERNEL Module
The Wine initialization process
Structured Exception Handling
9.
Graphical modules
GDI Module
10.
Windowing system
USER Module
X Windows System interface
11.
COM in Wine
Writing COM Components for Wine
A brief introduction to DCOM in Wine
12.
Wine and OpenGL
What is needed to have OpenGL support in Wine
How it all works
Known problems
13.
Outline of DirectDraw Architecture
DirectDraw inheritance tree
DirectDrawSurface inheritance tree
Interface Thunks
Logical Object Layout
Creating Objects
14.
Wine and Multimedia
Overview
Multimedia architecture
Low level layers
Mid level drivers (MCI)
High level layers
MS ACM Dlls
MS Video Dlls
Multimedia configuration
List of Tables
1-1.
WineDbg's misc. commands
1-2.
WineDbg's flow control commands
1-3.
WineDbg's break & watch points
1-4.
WineDbg's stack manipulation
1-5.
WineDbg's directory & source file manipulation
1-6.
WineDbg's list command examples
1-7.
WineDbg's displays
1-8.
WineDbg's dissassembly
1-9.
WineDbg's memory management
1-10.
WineDbg's Win32 objects management
1-11.
WineDbg's debug channels' management
1-12.
WineDbg's debug channels' management
1-13.
Debuggers comparison
7-1.
Wine executables
7-2.
Memory layout (Windows and Wine)
8-1.
Function consoles implementation comparison
14-1.
Wine multimedia drivers' functionalities
14-2.
Wine MCI drivers
14-3.
Wine ACM drivers
14-4.
Wine VIDC drivers
14-5.
Wine multimedia configuration scheme
Next
Developing Wine