Repackaging Mozilla ActiveX control to include MSVCP60.DLL?

2006-01-14 Thread Dan Kegel
The Mozilla ActiveX control download feature is cool
and all, but until we repackage the sucker to include
MSVCP60.DLL to fix
http://bugs.winehq.org/show_bug.cgi?id=4064
it's going to leave a lot of users scratching their
heads as to why it keeps asking where its files are.

I could have sworn I saw somebody post a note
saying they had done said repackaging, but I
can't find it now...

Can somebody take care of this?  It's kind of important.
I would, but I'm zooming around getting my CS 130 project
going, preparing a couple talks for Scale 4x, chasing after
my two year old, and trying to hold down my day job...

For the curious, my slids for the cs130 kickoff talk are
up at http://kegel.com/wine/sweng/cs130/
I chose "add a feature to riched20.dll " as the
basic task the students will be trying to carry out.
No idea yet how it'll work out.
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv




Re: winetest: Only test d3d9 if it is being built.

2006-01-14 Thread H. Verbeet
On 23/12/05, Yuval Fledel <[EMAIL PROTECTED]> wrote:
> winetest: Only test d3d9 if it is being built.
>
> -- Yuval Fledel
>
> diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in
> index 4208b94..8602f66 100644
> --- a/programs/winetest/Makefile.in
> +++ b/programs/winetest/Makefile.in
> @@ -19,14 +19,15 @@ RC_BINSRC = winetest.rc
>  RC_BINARIES = wine.ico
>
>  XFILES = ddraw_test.exe$(DLLEXT)
> +OPENGLFILES = d3d9_test.exe$(DLLEXT)
>
>  TESTBINS = \
> @XFILES@ \
> +   @OPENGLFILES@ \
> advpack_test.exe$(DLLEXT) \
> advapi32_test.exe$(DLLEXT) \
> comctl32_test.exe$(DLLEXT) \
> crypt32_test.exe$(DLLEXT) \
> -   d3d9_test.exe$(DLLEXT) \
> dinput_test.exe$(DLLEXT) \
> dsound_test.exe$(DLLEXT) \
> gdi32_test.exe$(DLLEXT) \
Would this prevent the tests from getting built on Windows?




Debugging a null pointer dereference

2006-01-14 Thread Christer Palm

Hi!
I'm new to this list, but a long time Wine user and regular WWN reader.

The other day I decided to try out Semiolog, a free as-in-beer piece of 
software to create labels from electric equipment manufacturer Hager, 
under wine. The software can be downloaded from here: 
http://www.hager.se/files/download/0/482_1/0/SemiologSue40a.exe


Unfortunately it doesn't work. So although I haven't been doing any 
Windows programming in the last 15 years I decided to try to do 
something useful and try find out why it doesn't work. I figured that 
this application would be a good thing to try to get to work as it is 
supposedly rather trivial.


So what follows is a description of a newbies attempt at some wine 
debugging:



The application installs and starts up just fine, but when I try to 
create a new document, I get a null pointer dereference in mfc42.dll.


After messing around with with the mfc42 runtime, I managed to get a 
backtrace with debugging information, which looks like this:


===

wine: Unhandled page fault on read access to 0x003c at address 
0x5f4056dd (thread 0009), starting debugger...

WineDbg starting on pid 0x8
Unhandled exception: page fault on read access to 0x003c in 32-bit 
code (0x5f4056dd).

In 32 bit mode.
fixme:dbghelp:sffip_cb NIY on 'E:\8168\vc98\mfc\mfc.bbt\src\mfc42.pdb'
fixme:dbghelp:sffip_cb NIY on 'C:\hager\Semiolog\Apps\MFC42.PDB'
fixme:dbghelp_msc:codeview_parse_type_table Not adding parameters' types 
to function signature

fixme:dbghelp_msc:codeview_parse_type_table Unsupported type-id leaf a
fixme:dbghelp_msc:dump : 06 00 0a 00 01 00 50 f1 
  ..P.

fixme:dbghelp_msc:codeview_get_type Returning NULL symt for type-id 1053

[1000's of codeview_parse_type_table messages snipped]

fixme:dbghelp_msc:codeview_snarf No current function for label $L101060

[1000's of codeview_snarf messages snipped]

Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:1007 GS:0033
 EIP:5f4056dd ESP:7fc9d004 EBP:7fc9d0b8 EFLAGS:00010206(   - 00  - 
RIP1)

 EAX: EBX:0001 ECX: EDX:
 ESI:00449180 EDI:
Stack dump:
0x7fc9d004:  004125f2  7ff38140 
0x7fc9d014:  7ff38140 0042bb1f  0001
0x7fc9d024:  004181b3  7ff38140 00030080
0x7fc9d034:  00418130 5f401e5c 0001 7ff38140
0x7fc9d044:   7ff38140 7ff38140 7ff0f300
0x7fc9d054:  201cc2f0 7fc9d728  7fc9d0e8
0200: sel=1007 base=7ffdc000 limit=1fff 32-bit rw-
Backtrace:
=>1 0x5f4056dd CEnumOleVerb::~CEnumOleVerb+0x37 [oleverb.cpp:61] in 
mfc42 (0x5f4056dd)
  2 0x5f401b2c CDC::RectVisible+0x3(lpRect=0x5f401ab5) 
[E:\8168\vc98\mfc\mfc\include\afxwin1.inl:647] in mfc42 (0x5f401b2c)
  3 0x5f401ab5 CGdiObject::~CGdiObject+0x32 
[E:\8168\vc98\mfc\mfc\include\afxwin1.inl:281] in mfc42 (0x5f401ab5)
  4 0x5f401a3d CMDIChildWnd::MDIDestroy+0x8 
[E:\8168\vc98\mfc\mfc\include\afxwin2.inl:938] in mfc42 (0x5f401a3d)
  5 0x5f4019fc AfxGetMainWnd+0x12 
[E:\8168\vc98\mfc\mfc\include\afxwin1.inl:32] in mfc42 (0x5f4019fc)

  6 0x62a6cb2a WINPROC_wrapper+0x1a in user32 (0x62a6cb2a)
  7 0x62a6d419 in user32 (+0x9d419) (0x62a6d419)
  8 0x62a7336e CallWindowProcW+0x122 in user32 (0x62a7336e)
  9 0x62a3ba2e in user32 (+0x6ba2e) (0x62a3ba2e)
  10 0x62a3f8c2 SendMessageTimeoutW+0x186 in user32 (0x62a3f8c2)
  11 0x62a3f91f SendMessageW+0x50 in user32 (0x62a3f91f)
  12 0x62a2d1be in user32 (+0x5d1be) (0x62a2d1be)
  13 0x62a2e4f7 DefMDIChildProcW+0x36e in user32 (0x62a2e4f7)
  14 0x62a2e801 DefMDIChildProcA+0xf2 in user32 (0x62a2e801)
  15 0x5f413511 COleControl::GetMetafileData+0x87(lpFormatEtc=0x22, 
lpStgMedium=0x0, hAttribDC=0x22, cy=0x0, hMF=0x22) [ctlcore.cpp:827] in 
mfc42 (0x5f413511)
  16 0x5f401ab5 CGdiObject::~CGdiObject+0x32 
[E:\8168\vc98\mfc\mfc\include\afxwin1.inl:281] in mfc42 (0x5f401ab5)
  17 0x5f401a3d CMDIChildWnd::MDIDestroy+0x8 
[E:\8168\vc98\mfc\mfc\include\afxwin2.inl:938] in mfc42 (0x5f401a3d)
  18 0x5f4019fc AfxGetMainWnd+0x12 
[E:\8168\vc98\mfc\mfc\include\afxwin1.inl:32] in mfc42 (0x5f4019fc)

  19 0x62a6cb2a WINPROC_wrapper+0x1a in user32 (0x62a6cb2a)
  20 0x62a6d419 in user32 (+0x9d419) (0x62a6d419)
  21 0x62a70f2d CallWindowProcA+0x1b5 in user32 (0x62a70f2d)
  22 0x62a3b99f in user32 (+0x6b99f) (0x62a3b99f)
  23 0x62a3f674 SendMessageTimeoutA+0x226 in user32 (0x62a3f674)
  24 0x62a3f72f SendMessageA+0x50 in user32 (0x62a3f72f)
  25 0x59a9462e X11DRV_SetWindowPos+0xf33 in winex11 (0x59a9462e)
  26 0x62a6bbe3 SetWindowPos+0xb1 in user32 (0x62a6bbe3)
  27 0x62a6c63a BringWindowToTop+0x4d in user32 (0x62a6c63a)
  28 0x5f408ae3 COleControlContainer::CreateControl+0x31(pWndCtrl=0x0, 
clsid=0x0, lpszWindowName=0x0, dwStyle=0x1, ppt=0x0, psize=0x7ff11458, 
nID=0x10026, pPersist=0x0, bStorage=0x0, bstrLicKey=0x62a086dc, 
ppNewSite=0x0) [occcont.cpp:175] in mfc42 (0x5f408ae3)

  29 0x0001 (0x0001)
  30 0x00418d70 in semiolog (+0x18d70) (0x00418d70)
0x5f4056dd CEnumOleVerb

Re: dlls/wined3d/device.c GetCreationParameters

2006-01-14 Thread Al Tobey
Ack, after thinking about it and talking with people on IRC, I think I
did the wrong thing.   New patch attached that just copies the
parameters one-by-one to the passed-in struct.   Both methods work,
though, so this probably needs to be tested on Windows.

In any case, this one is probably safest for now.
-Al Tobey

On 1/14/06, Al Tobey <[EMAIL PROTECTED]> wrote:
> I'd just post to wine-patches, but I think this needs another set of
> eyes.   According to MSDN, this just sets a pointer to the creation
> parameters.The attached patch makes this function work, but I'm
> not sure if returning a pointer to the original parameters is the
> right approach or if they should be copied first.
>
> This patch makes a bunch of the Ogre3d demos work, which are great for
> testing since you can run the same demo in OpenGL, D3D9, and D3D7
> modes.
>
> http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/d3d/interfaces/idirect3ddevice9/GetCreationParameters.asp
>
> http://www.ogre3d.org/index.php?option=com_remository&Itemid=57&func=selectcat&cat=2
> http://easynews.dl.sourceforge.net/sourceforge/ogre/OgreDemos-1.0.4.zip
>
> I'm currently playing with compiling Ogre3d against winelib and
> finding it's shaking out a bunch of missing stuff in d3d9 - patches
> may follow.
>
> -Al Tobey
>
>
>
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index b057a36..8a3e09b 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -6137,13 +6136,13 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetDia
 
 HRESULT  WINAPI  IWineD3DDeviceImpl_GetCreationParameters(IWineD3DDevice *iface, D3DDEVICE_CREATION_PARAMETERS *pParameters) {
 IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
-
-FIXME("(%p) : stub\n", This);
-/* Setup some reasonable defaults */
-pParameters->AdapterOrdinal = 0; /* always for now */
-pParameters->DeviceType = D3DDEVTYPE_HAL; /* always for now */
-pParameters->hFocusWindow = 0;
-pParameters->BehaviorFlags =0;
+pParameters->AdapterOrdinal = This->createParms.AdapterOrdinal;
+pParameters->DeviceType = This->createParms.DeviceType;
+pParameters->hFocusWindow   = This->createParms.hFocusWindow;
+pParameters->BehaviorFlags  = This->createParms.BehaviorFlags;
+// this seems to work too, but probably isn't correct
+// eventually this should be tested out on windows
+// pParameters = &This->createParms;
 return D3D_OK;
 }
 



re: Regression in ntdll/virtual.c

2006-01-14 Thread Dan Kegel
>I mentioned that the setup program of AstroWorld will not work any longer
>since a few days. Regression testing resulted in the change of
>ntdll/virtual.c between 3.1.06 and 4.1.06. I didn't find any related entry
>in wine.patches...

Ah, but did you look in the archives of the wine-cvs mailing list?
A little google search for the longest line of that change turned up:
http://www.winehq.org/pipermail/wine-cvs/2006-January/020072.html
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv




dlls/wined3d/device.c GetCreationParameters

2006-01-14 Thread Al Tobey
I'd just post to wine-patches, but I think this needs another set of
eyes.   According to MSDN, this just sets a pointer to the creation
parameters.The attached patch makes this function work, but I'm
not sure if returning a pointer to the original parameters is the
right approach or if they should be copied first.

This patch makes a bunch of the Ogre3d demos work, which are great for
testing since you can run the same demo in OpenGL, D3D9, and D3D7
modes.

http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/d3d/interfaces/idirect3ddevice9/GetCreationParameters.asp

http://www.ogre3d.org/index.php?option=com_remository&Itemid=57&func=selectcat&cat=2
http://easynews.dl.sourceforge.net/sourceforge/ogre/OgreDemos-1.0.4.zip

I'm currently playing with compiling Ogre3d against winelib and
finding it's shaking out a bunch of missing stuff in d3d9 - patches
may follow.

-Al Tobey
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index b057a36..cad4468 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -6132,23 +6132,18 @@
 FIXME("(%p) Dialogs cannot be disabled yet\n", This);
 }
 return D3D_OK;
 }
 
 
 HRESULT  WINAPI  IWineD3DDeviceImpl_GetCreationParameters(IWineD3DDevice *iface, D3DDEVICE_CREATION_PARAMETERS *pParameters) {
 IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
-
-FIXME("(%p) : stub\n", This);
-/* Setup some reasonable defaults */
-pParameters->AdapterOrdinal = 0; /* always for now */
-pParameters->DeviceType = D3DDEVTYPE_HAL; /* always for now */
-pParameters->hFocusWindow = 0;
-pParameters->BehaviorFlags =0;
+pParameters = &This->createParms;
+FIXME("(%p) : Partially implemented ... probably needs some checks\n", This);
 return D3D_OK;
 }
 
 void WINAPI IWineD3DDeviceImpl_SetGammaRamp(IWineD3DDevice * iface, UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) {
 IWineD3DSwapChain *swapchain;
 HRESULT hrc = D3D_OK;
 
 TRACE("Relaying  to swapchain\n");






Re: Please read: Wine(HQ) needs a reorganization (AppDB, Bugzilla, etc.)

2006-01-14 Thread Joseph Garvin

Tony Lambregts wrote:


It's been there a long time...

http://www.winehq.org/site/forums

look at [Archive 2]

--

Tony Lambregts



That's not very good from a usability standpoint. The gmane link is 
buried as Archive2. It's not at all clear that Archive1 (winehq 
pipermail) doesn't let you post new messages while Archive2 (gmane) 
does. And maybe a more experienced gmane user will correct me, but it 
doesn't look like there's any way to tell what posts are new since your 
last visit.


Now actually having looked at gmane, I can say that it's not nearly as 
newb friendly as a real phpBB forum would be -- it wasn't even 
immediately obvious that I could post replies, and the option is labeled 
"Followup" a term which no modern forum/bulletin board uses anymore and 
people won't recognize. That, and the option is in the frame displaying 
the list of posts in the thread, and not in the frame containing the 
message body (the thing the user actually perceives they want to reply to).


That the World of Warcraft thread in the Gentoo Gamer's and Players 
forum has become the center for discussion for running WoW under wine 
for ALL distributions I think says something about the newb friendliness 
of the mailing lists. Not to disparage the mailing lists -- they let 
developers use their preferred interface for writing text. But people 
are going to phpBB forums that aren't even for their own distro before 
they e-mail wine-devel.


Even if the forum didn't get much developer participation there would at 
least be a place for all wine users to go, with some nice sticky posts 
detailing how to submit bugs and test against cvs, something other 
forums aren't doing. Wine could probably pick up a lot of good bug 
reports this way.





Re: Please read: Wine(HQ) needs a reorganization (AppDB, Bugzilla, etc.)

2006-01-14 Thread Tony Lambregts

Joseph Garvin wrote:

Aric Cyr wrote:




I don't have external mail or nntp access at work, so I just use
http://news.gmane.org/gmane.comp.emulators.wine.devel
 

I didn't think of that. What about posting a link to the 'Wine Forums' 
on winehq that goes there?





It's been there a long time...

http://www.winehq.org/site/forums

look at [Archive 2]

--

Tony Lambregts




IWineD3DSurface::GetDC

2006-01-14 Thread Stefan Dösinger
Hello,
I am trying to implement the GetDC method for wine d3d surfaces, as it is used 
by much d3d7 apps to load the textures. I took the code from 
ddraw/surface_dib.c and modified it, but I am stuck with a heap corruption.

Basically, what I am doing is:

1) Lock the surface
2) Create a DIB section with DIB_CreateDIBSection. Use the currentDesc.
{Width / Height} as the dimension and bytesPerPixel * 8 for the bitcount. The 
memory for the DC is the pBits returned from LockRect()
3) Create a DC, and attach it to the dib section
4) Set the palette, if necessary.

In ReleaseDC I release the DC, destroy the DIB section and unlock the surface. 
Looks nice so far, but it doesn't work.

I get a heap corruption eighter when using the DC or when deleting it. An 
example winedbg output:

err:d3d_surface:IWineD3DSurfaceImpl_GetDC (0x7fd8fb08)->(0x7fbafd94): This 
does not work yet
trace:d3d_surface:IWineD3DSurfaceImpl_LockRect (0x7fd8fb08) : rect@(nil) 
flags(), output [EMAIL PROTECTED], memory@(nil)
trace:d3d_surface:IWineD3DSurfaceImpl_LockRect Locked Rect (0x7fd8fb78) = l 0, 
t 0, r 640, b 480
trace:d3d_surface:IWineD3DSurfaceImpl_LockRect Locking non-power 2 texture
trace:d3d_surface:IWineD3DSurfaceImpl_LockRect locking an ordinarary surface
trace:d3d_surface:IWineD3DSurfaceImpl_LockRect (0x7fd8fb08) Locking rect
trace:d3d_surface:IWineD3DSurfaceImpl_AddDirtyRect (0x7fd8fb08) : Dirty?1, 
Rect:(0,0,640,480)
trace:d3d_surface:IWineD3DSurfaceImpl_GetContainer (0x7fd8fb08) : Relaying to 
queryInterface 0x7fbaf3fc (nil)
trace:d3d_surface:IWineD3DSurfaceImpl_GetContainer (0x7fd8fb08) : Relaying to 
queryInterface 0x7fbaf454 0xb7effbda
trace:d3d_surface:IWineD3DSurfaceImpl_LockRect Surface is standalone, no need 
to dirty the container
trace:d3d_surface:IWineD3DSurfaceImpl_LockRect returning [EMAIL PROTECTED], 
pitch(4096) dirtyfied(1)
trace:d3d_surface:IWineD3DSurfaceImpl_GetDC Creating dip section 640x480x32. 
memory at 0x7dfa0020 is 2097152 bytes of size
trace:d3d_surface:IWineD3DSurfaceImpl_GetDC returning 0x278
trace:d3d_surface:IWineD3DSurfaceImpl_ReleaseDC (0x7fd8fb08)->(0x278)
trace:d3d_surface:IWineD3DSurfaceImpl_ReleaseDC Selecting the object DC
First chance exception: page fault on read access to 0x7dfa in 32-bit code 
(0x7ff99374).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
 EIP:7ff99374 ESP:7fbaf714 EBP:7fbaf718 EFLAGS:00010206(   - 00  - RIP1)
 EAX:7fce EBX:7ffd5540 ECX:7e5c0250 EDX:7dfa
 ESI:7e5c0248 EDI:7fce0040
Stack dump:
0x7fbaf714:  0030 7fbaf754 7ff99c0b 7fce
0x7fbaf724:  7e5c0248 7f712cd0  4f4c
0x7fbaf734:  7ff99294 7fd8fee8 7e5c0248 7ff8dffa
0x7fbaf744:  7f6edf2b 7ffd5540 0030 0030
0x7fbaf754:  7fbaf798 7ff9a954 7fce 0030
0x7fbaf764:  7fbaf788 7f70253b 027c 4f4c
Backtrace:
=>1 0x7ff99374 HEAP_FindSubHeap+0x14(heap=0x7fce, ptr=0x7e5c0248) 
[heap.c:375] in ntdll (0x7ff99374)
  2 0x7ff99c0b HEAP_FindFreeBlock+0x7b(heap=0x7fce, size=0x30, 
ppSubHeap=0x7fbaf788) [/usr/src/wine-wined3d/dlls/ntdll/heap.c:390] in ntdll 
(0x7ff99c0b)
  3 0x7ff9a954 RtlAllocateHeap(heap=0x7fce, flags=0x2, size=0x30) 
[/usr/src/wine-wined3d/dlls/ntdll/heap.c:1163] in ntdll (0x7ff9a954)
q
  4 0x7f263905 X11DRV_GetRegionData+0x55(hrgn=0x27c, hdc_lptodp=0x0) 
[/usr/src/wine-wined3d/dlls/x11drv/../../include/winbase.h:2250] in winex11 
(0x7f263905)
  5 0x7f263aa6 X11DRV_SetDeviceClipping+0x56(physDev=0x7fd8fe68, 
vis_rgn=0x280, clip_rgn=0x0) 
[/usr/src/wine-wined3d/dlls/x11drv/clipping.c:118] in winex11 (0x7f263aa6)
  6 0x7f6c6a1e CLIPPING_UpdateGCRegion+0xae(dc=0x7e1a0028) [clipping.c:80] in 
gdi32 (0x7f6c6a1e)
  7 0x7f6c84fa DC_InitDC+0x9a(dc=0x7e1a0028) 
[/usr/src/wine-wined3d/dlls/gdi/dc.c:205] in gdi32 (0x7f6c84fa)
  8 0x7f6c5c06 BITMAP_SelectObject(handle=0x6c, obj=0x7fce5d20, hdc=0x278) 
[/usr/src/wine-wined3d/dlls/gdi/bitmap.c:568] in gdi32 (0x7f6c5c06)
  9 0x7f6eea05 SelectObject(hdc=0x278, hObj=0x6c) 
[/usr/src/wine-wined3d/dlls/gdi/gdiobj.c:1164] in gdi32 (0x7f6eea05)
  10 0x7f5ecd10 IWineD3DSurfaceImpl_ReleaseDC+0x50(iface=0x7fd8fb08, 
hDC=0x278) [/usr/src/wine-wined3d/dlls/wined3d/surface.c:1068] in wined3d 
(0x7f5ecd10)
q
  11 0x7fa7e0e8 IDirectDrawSurfaceImpl_ReleaseDC+0x38(iface=0x7fd8fa48, 
hdc=0x278) [/usr/src/wine-wined3d/dlls/ddraw/surface.c:472] in ddraw 
(0x7fa7e0e8)
  12 0x7fbd5fe6 main in ddrawex (0x7fbd5fe6)
  13 0x7fbd63a7 __wine_spec_exe_entry(peb=0x7ffdf540) [exe_entry.c:37] in 
ddrawex (0x7fbd63a7)
  14 0x7fc490a0 start_process(arg=0x0) 
[/usr/src/wine-wined3d/dlls/kernel/process.c:1027] in kernel32 (0x7fc490a0)
  15 0xb7f020fb wine_switch_to_stack+0x17 in libwine.so.1 (0xb7f020fb)
0x7ff99374 HEAP_FindSubHeap+0x14 [heap.c:375] in ntdll: movl0x0(%edx),%ecx
Unable to open file 'heap.c'
Wine-dbg>

I am lost here, can someone help me? Can this code work at all? I've attached 
my copy of dlls/wined3d/surface.c, so you can see the code(Watch out, it 
won't compile as such in the CVS tree).

The dib mem

Re: x11drv: Allow WM to manage more windows.

2006-01-14 Thread Vitaliy Margolen
Saturday, January 14, 2006, 6:37:28 AM, Dmitry Timoshkov wrote:
> "Vitaliy Margolen" <[EMAIL PROTECTED]> wrote:

>> @@ -67,6 +67,8 @@ static const char visual_id_prop[]= 
>>  inline static BOOL is_window_managed( HWND hwnd )
>>  {
>>  DWORD style, ex_style;
>> +char class_name[7];
>> +static const char menu_class[] = "#32768";

>> +/* menu windows are not managed */
>> +if (GetClassNameA(hwnd, class_name, sizeof(class_name)) &&
>> +!memcmp(class_name, menu_class, sizeof(menu_class)))
>> +return FALSE;

> This won't work for subclassed or custom (OfficeXP like) menus.

Yeah you are correct. And it looks like it's redundant anyway. I forgot
that all menus are WS_POPUP without WS_SYSMENU. And I already have a case
for this.

New patch sent.

Vitaliy








Re: [wined3d] Status update: Converting Wined3d to use WGL instead of GLX

2006-01-14 Thread Jesse Allen
On 1/14/06, Aric Cyr <[EMAIL PROTECTED]> wrote:
>
> > How about creating a temponary fork of the whole tree, so we can submit all
> > our patches there without breaking wine. There's no need for this tree to
> > work for any game at first, so broken patches are no problem. Once our
> > patches coexist nicely, we can introduce them to main cvs.
> > (The danger is, of course, that the differences take overhand and the 
> > forking
> > can't be undone any more)
> >
> > What do you think about this?
>
> It's a lot of extra work for nothing really.  There should be minimal 
> conflicts
> with my patches and whatever you guys are working on.  The only exception 
> would
> be if you added or changes glX code.  Even in the case of a conflict, it 
> should
> be a trivial merge since wgl and glX are so similar.
>
> I'm willing to do the merge myself if you expect the ddraw and d3d8 code to be
> submitted soon, otherwise I'll just submit my wgl stuff and leave it up to you
> and Olvier to merge your patches.
>
> Anyways, I'm still bug hunting so I won't be submitting very soon.  So hurry 
> up
> with ddraw and d3d8! ;)
>
> Regards,
>   Aric
>
>
>
>


I'm certainly in favor of having a temporary git fork for directx
changes.  So I can just pull the patch from there anytime instead of
waiting for periodic test patches.  The periodic patches haven't
always applied cleanly either.  These improvements are big changes and
it would be nice if doing this would speed it up, since everyone could
now work together.




Fwd: Valgrind and wine (was: re: Bug 4289: Debugging and dissasembly)

2006-01-14 Thread James Trotter
On 1/14/06, Robert Shearman <[EMAIL PROTECTED]
> wrote:

Dan Kegel wrote:>Rob wrote:This very much looks like a use-after-free bug. The first two>>instructions are probably a COM *_Release call. Judging by the fact that>>this is a regression I would also guess that it is a Wine object.
>>This sounds like a job for valgrind!>>But, er, does valgrind still work with wine?  Rob said it did in March:>

http://www.winehq.com/hypermail/wine-devel/2005/03/0397.html>It was too hard for one guy back in July:>
http://www.winehq.com/hypermail/wine-devel/2005/07/0401.html
>but that was probably because he didn't see Rob's message from March.>Maybe we need to put better instructions on how to use>Valgrind with Wine on winehq.org... or, dare I suggest it,>bundle valgrind with Wine so anybody could easily use it
>be setting WINEDEBUG=+valgrind or something like that...>Valgrind 3.1.0 works with Wine with no Wine modifications needed.However, one patch to valgrind is required to generate meaningfulbacktraces and I've attached it to this message - I guess I should
report this to the valgrind developers.--Rob Shearman
I was really just considering using valgrind! I already have it
installed, but I wasn't sure it would work very nicely, though. I was
afraid there would be too much pointless output to wade through, but
I'll try it tomorrow sometime.

Cheers,
James





Re: Please read: Wine(HQ) needs a reorganization (AppDB, Bugzilla, etc.)

2006-01-14 Thread Joseph Garvin

Aric Cyr wrote:




I don't have external mail or nntp access at work, so I just use
http://news.gmane.org/gmane.comp.emulators.wine.devel
 

I didn't think of that. What about posting a link to the 'Wine Forums' 
on winehq that goes there?





Re: Valgrind and wine (was: re: Bug 4289: Debugging and dissasembly)

2006-01-14 Thread Robert Shearman

Dan Kegel wrote:


Rob wrote:
 


This very much looks like a use-after-free bug. The first two
instructions are probably a COM *_Release call. Judging by the fact that
this is a regression I would also guess that it is a Wine object.
   



This sounds like a job for valgrind!

But, er, does valgrind still work with wine?  Rob said it did in March:
http://www.winehq.com/hypermail/wine-devel/2005/03/0397.html
It was too hard for one guy back in July:
http://www.winehq.com/hypermail/wine-devel/2005/07/0401.html
but that was probably because he didn't see Rob's message from March.
Maybe we need to put better instructions on how to use
Valgrind with Wine on winehq.org... or, dare I suggest it,
bundle valgrind with Wine so anybody could easily use it
be setting WINEDEBUG=+valgrind or something like that...



Valgrind 3.1.0 works with Wine with no Wine modifications needed. 
However, one patch to valgrind is required to generate meaningful 
backtraces and I've attached it to this message - I guess I should 
report this to the valgrind developers.


--
Rob Shearman

--- m_stacktrace.c.orig	2005-11-25 12:36:21.0 +
+++ m_stacktrace.c	2006-01-14 17:25:27.0 +
@@ -88,6 +88,7 @@
 * offending stack traces only have one item.  --njn, 2002-aug-16 */
/* vg_assert(fp_min <= fp_max);*/
 
+#if 0
if (fp_min + VG_(clo_max_stackframe) <= fp_max) {
   /* If the stack is ridiculously big, don't poke around ... but
  don't bomb out either.  Needed to make John Regehr's
@@ -95,7 +96,8 @@
   ips[0] = ip;
   VGP_POPCC(VgpExeContext);
   return 1;
-   } 
+   }
+#endif
 
/* Otherwise unwind the stack in a platform-specific way.  Trying
   to merge the x86, amd64 and ppc32 logic into a single piece of



Re: Please read: Wine(HQ) needs a reorganization (AppDB, Bugzilla, etc.)

2006-01-14 Thread Aric Cyr
Joseph Garvin  kzoo.edu> writes:

> 
> I actually prefer forums because there's less of a barrier to get 
> started. I can continue working through my browser, and I don't have to 
> setup a message filter.

I don't have external mail or nntp access at work, so I just use
http://news.gmane.org/gmane.comp.emulators.wine.devel

For the most part this operates very similar to any of the forums I regularly
visit.  There are a couple of qwerks, but all in all very easy to use for the
non-NNTP users out there.  If it wasn't for this site I'd never be able to
procrastinate in the office ;)

> Even if there's not a forum where developers participate, but just a 
> forum on winehq for users to help each other, I think that would be much 
> better than no forum. More users have experience with forums than 
> mailing lists, so it's much more likely they'll sign up.

A user forum might be useful.  I'd have to admit there are a lot of new users
who seem to easily manage to find Linux forums.  I see this often on Rage3D's
Linux forums as well as Ubuntu and Gentoo forums.

The problem is that there are already well-established wine forums, currently in
mailing list format, and they will never go away.  So the most likely solution
would be a web-nntp gateway, which is exactly what news.gmane.org is.  Whether
wine decides to host's its own gateway software or not I would leave up to the
winehq admins.

- Aric





Re: [wined3d] Status update: Converting Wined3d to use WGL instead of GLX

2006-01-14 Thread Aric Cyr
Stefan Dösinger  gmx.at> writes:

> The problem is that we are doing a lot of redundant work here. Oliver is 
> working in d3d8, I'm working on ddraw, and you are working on moving all of 
> them to wgl. At least your work on ddraw and d3d8 would be for nothing in the 
> long term, and could be avoided with a better cooperation.

I'm fine with my ddraw and d3d8 stuff being thrown away in the future.  I
personally see it as a temporary fix to prevent regressions while ddraw and d3d8
are ported to wined3d.  The real majority of work was in wined3d anyways, so it
was just a matter of wash-rinse-repeat with dddraw and d3d8.  It's just the
testing that is a pain :)

> One way would be to remove all WineD3D dependancy from today's ddraw and 
> d3d8, 
> so they remain untouched until Oliver and I replace them. But if ddraw is 
> really affected by changes to WineD3D, allthough it shouldn't to my 
> knowledge, this might be a more subtile problem.

As I sent you off-list, 3DMark2001SE makes initial capability queries with
ddraw, then uses d3d8 for everything else.  I assume a similar thing could occur
for d3d9 apps, so there really is no way we can guarantee a separation between
ddraw/d3d8 and wined3d as far as I can tell.  So it's gonna be all wgl or
nothing if we don't want a lot of regressions.

> How about creating a temponary fork of the whole tree, so we can submit all 
> our patches there without breaking wine. There's no need for this tree to 
> work for any game at first, so broken patches are no problem. Once our 
> patches coexist nicely, we can introduce them to main cvs.
> (The danger is, of course, that the differences take overhand and the forking 
> can't be undone any more)
> 
> What do you think about this?

It's a lot of extra work for nothing really.  There should be minimal conflicts
with my patches and whatever you guys are working on.  The only exception would
be if you added or changes glX code.  Even in the case of a conflict, it should
be a trivial merge since wgl and glX are so similar.

I'm willing to do the merge myself if you expect the ddraw and d3d8 code to be
submitted soon, otherwise I'll just submit my wgl stuff and leave it up to you
and Olvier to merge your patches.

Anyways, I'm still bug hunting so I won't be submitting very soon.  So hurry up
with ddraw and d3d8! ;)

Regards,
  Aric





Valgrind and wine (was: re: Bug 4289: Debugging and dissasembly)

2006-01-14 Thread Dan Kegel
Rob wrote:
>This very much looks like a use-after-free bug. The first two
>instructions are probably a COM *_Release call. Judging by the fact that
>this is a regression I would also guess that it is a Wine object.

This sounds like a job for valgrind!

But, er, does valgrind still work with wine?  Rob said it did in March:
http://www.winehq.com/hypermail/wine-devel/2005/03/0397.html
It was too hard for one guy back in July:
http://www.winehq.com/hypermail/wine-devel/2005/07/0401.html
but that was probably because he didn't see Rob's message from March.
Maybe we need to put better instructions on how to use
Valgrind with Wine on winehq.org... or, dare I suggest it,
bundle valgrind with Wine so anybody could easily use it
be setting WINEDEBUG=+valgrind or something like that...
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv




Re: Problem with older wgl patch

2006-01-14 Thread Aric Cyr
Tim Savannah  gmail.com> writes:

> +  DWORD type = GetObjectType(hdc);where that patch placed it in the file 
> allows opengl to work again.

I think this is fixed in CVS already.  Which version of wine are you trying 
with?
Try out the latest CVS if you can.

- Aric





Re: Bug 4289: Debugging and dissasembly

2006-01-14 Thread Robert Shearman

James Trotter wrote:


0x007ab8e6: pushl   %eax
0x007ab8e7: call*0x8(%edx)
0x007ab8ea: movl%ebp,0x8(%esi)
0x007ab8ed: movl0x4(%esi),%eax
0x007ab8f0: pushl   %eax
0x007ab8f1: movl0x0(%eax),%ecx



This very much looks like a use-after-free bug. The first two 
instructions are probably a COM *_Release call. Judging by the fact that 
this is a regression I would also guess that it is a Wine object. Also, 
by knowing that it is a game it is probably a DirectDraw, Direct3D or 
DirectSound object. Try turning on tracing for these and seeing what it 
turns up. If you see a decrement to 0 just before the crash then the 
theory is probably correct.


--
Rob Shearman





Re: Bug 4289: Debugging and dissasembly

2006-01-14 Thread James Trotter
On 1/14/06, James Trotter <[EMAIL PROTECTED]> wrote:
-- Forwarded message --From: James Trotter <
[EMAIL PROTECTED]>Date: Jan 14, 2006 3:22 PM
Subject: Re: Bug 4289: Debugging and dissasemblyTo: Eric Pouech <[EMAIL PROTECTED]>
On 1/14/06, 
Eric Pouech <[EMAIL PROTECTED]> wrote:


James Trotter wrote:> Hi!>> A few days ago I filed this bug: http://bugs.winehq.org/show_bug.cgi?id=4289
>> Alexandre commented that there most likely was some stack corruption,
> and that I should try and disassemble a few instructions before the> crash and look for API calls.>> Now, I haven't used gdb or winedbg that much before, and I'm a bit> uncertain what to do. I understand that using the disassemble
> [][,] command, the debugger will disassemble that address> space. Given the stack trace as in the bug report, which addresses,> exactly, should I disassemble?before 0x007ab8f1
A+--Eric Pouech
Sure, but how much before 0x007ab8f1?

For instance, Is this helpful?

WineDbg starting on pid 0xa
In 32 bit mode.
0x7fcfba16 start_process+0xb6
[/home/james/development/wine/regression_testing/2005-07-18/wine/dlls/kernel/process.c:996]
in kernel32: pushl    %edi
996 ExitProcess( entry( peb ) );
Wine-dbg>cont
First chance exception: page fault on read access to 0x20202020 in 32-bit code (0x007ab8f1).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:1007 GS:0033
 EIP:007ab8f1 ESP:7facaba4 EBP: EFLAGS:00210246(   - 00  -RIZP1)
 EAX:20202020 EBX:0001 ECX:7facb450 EDX:
 ESI:7facb328 EDI:7beb4460
Stack dump:
0x7facaba4:  20202020 2711  7facb328
0x7facabb4:  7facabe0 007aaf30 7facb218 7facaf60
0x7facabc4:   2711 40c38800 7facb328
0x7facabd4:  7facac90 0084566a 0007 7fd0e900
0x7facabe4:  0078e3ca  7facaf60 0040
0x7facabf4:  7fd39206 7facaf60  7fd39206
0200: sel=1007 base=b7f81000 limit=1f97 32-bit rw-
Backtrace:
=>1 0x007ab8f1 in iwd2 (+0x3ab8f1) (0x)
0x007ab8f1: movl    0x0(%eax),%ecx
Wine-dbg>disassemble 0x007ab800, 0x007ab8f1
0x007ab800: addb    %bh,0x0(%ebx)
0x007ab802: int $0x74
0x007ab804: pop %ss
0x007ab805: cmpl    %ebx,0x390(%ecx)
0x007ab80b: jz  0x007ab81c
0x007ab80d: addl    $0x394,%ecx
0x007ab813: pushl   %ecx
0x007ab814: call    *%edi
0x007ab816: movl    0x008cf6d8,%ecx
0x007ab81c: movl    0x13c(%esi),%eax
0x007ab822: cmpl    %ebp,%eax
0x007ab824: jz  0x007ab838
0x007ab826: movl    0x0(%eax),%ecx
0x007ab828: pushl   %eax
0x007ab829: call    *0x8(%ecx)
0x007ab82c: movl    %ebp,0x13c(%esi)
0x007ab832: movl    0x008cf6d8,%ecx
0x007ab838: cmpl    %ebp,%ecx
0x007ab83a: jz  0x007ab84d
0x007ab83c: cmpl    %ebx,0x390(%ecx)
0x007ab842: jz  0x007ab84d
0x007ab844: addl    $0x394,%ecx
0x007ab84a: pushl   %ecx
0x007ab84b: call    *%edi
0x007ab84d: leal    0x128(%esi),%ecx
0x007ab853: call    0x007c22d0
0x007ab858: movl    %ebp,0x140(%esi)
0x007ab85e: movl    0x008cf6d8,%eax
0x007ab863: cmpl    %ebp,%eax
0x007ab865: jz  0x007ab87b
0x007ab867: cmpl    %ebx,0x390(%eax)
0x007ab86d: jz  0x007ab87b
0x007ab86f: addl    $916,%eax
0x007ab874: pushl   %eax
0x007ab875: call    *0x8472c8
-> 0x7beb4180 RtlLeaveCriticalSection
[/home/james/development/wine/regression_testing/2005-07-18/wine/dlls/ntdll/critsection.c:407]
in ntdll
0x007ab87b: cmpl    %ebp,0x90(%esi)
0x007ab881: jz  0x007ab8a4
0x007ab883: leal    0x84(%esi),%edi
0x007ab889: movl    %edi,%ecx
0x007ab88b: call    0x007fbe77
0x007ab890: cmpl    %ebp,%eax
0x007ab892: jz  0x007ab89c
0x007ab894: movl    0x0(%eax),%edx
0x007ab896: pushl   %ebx
0x007ab897: movl    %eax,%ecx
0x007ab899: call    *0x4(%edx)
0x007ab89c: cmpl    %ebp,0x90(%esi)
0x007ab8a2: jnz 0x007ab889
0x007ab8a4: cmpl    %ebp,0xac(%esi)
0x007ab8aa: jz  0x007ab8d8
0x007ab8ac: leal    0xa0(%esi),%ebx
0x007ab8b2: movl    %ebx,%ecx
0x007ab8b4: call    0x007fbe77
0x007ab8b9: movl    %eax,%edi
0x007ab8bb: movl    0x58(%edi),%eax
0x007ab8be: cmpl    %ebp,%eax
0x007ab8c0: jz  0x007ab8cb
0x007ab8c2: movl    0x0(%eax),%ecx
0x007ab8c4: pushl   %eax
0x007ab8c5: call    *0x8(%ecx)
0x007ab8c8: movl    %ebp,0x58(%edi)
0x007ab8cb: cmpl    %ebp,0xac(%esi)
0x007ab8d1: jnz 0x007ab8b2
0x007ab8d3: movl    $0x1,%ebx
0x007ab8d8: cmpl    %ebp,0x4(%esi)
0x007ab8db: jz  0x007ab8f9
0x007ab8dd: movl    0x8(%esi),%eax
0x007ab8e0: cmpl    %ebp,%eax
0x007ab8e2: jz  0x007ab8ed
0x007ab8e4: movl    0x0(%eax),%edx
0x007ab8e6: pushl   %eax
0x007ab8e7: call    *0x8(%edx)
0x007ab8ea: movl    %ebp,0x8(%esi)
0x007ab8ed: movl    0x4(%esi),%eax
0x007ab8f0: pushl   %eax
0x007ab8f1: movl    0x0(%eax),%ecx
Wine-dbg>

Thanks,
James




Alright, here is a disassembly of 0x007a to 0x007ab8f1. There are a
lot of calls to RtlEnterCriticalSection and RtlLeaveCriticalSection,
but also some other calls, e.g. SendMessageA, SetRect, Sle

Fwd: Bug 4289: Debugging and dissasembly

2006-01-14 Thread James Trotter
-- Forwarded message --From: James Trotter <[EMAIL PROTECTED]>Date: Jan 14, 2006 3:22 PM
Subject: Re: Bug 4289: Debugging and dissasemblyTo: Eric Pouech <[EMAIL PROTECTED]>On 1/14/06, 
Eric Pouech <[EMAIL PROTECTED]> wrote:

James Trotter wrote:> Hi!>> A few days ago I filed this bug: http://bugs.winehq.org/show_bug.cgi?id=4289
>> Alexandre commented that there most likely was some stack corruption,
> and that I should try and disassemble a few instructions before the> crash and look for API calls.>> Now, I haven't used gdb or winedbg that much before, and I'm a bit> uncertain what to do. I understand that using the disassemble
> [][,] command, the debugger will disassemble that address> space. Given the stack trace as in the bug report, which addresses,> exactly, should I disassemble?before 0x007ab8f1
A+--Eric Pouech
Sure, but how much before 0x007ab8f1?

For instance, Is this helpful?

WineDbg starting on pid 0xa
In 32 bit mode.
0x7fcfba16 start_process+0xb6
[/home/james/development/wine/regression_testing/2005-07-18/wine/dlls/kernel/process.c:996]
in kernel32: pushl    %edi
996 ExitProcess( entry( peb ) );
Wine-dbg>cont
First chance exception: page fault on read access to 0x20202020 in 32-bit code (0x007ab8f1).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:1007 GS:0033
 EIP:007ab8f1 ESP:7facaba4 EBP: EFLAGS:00210246(   - 00  -RIZP1)
 EAX:20202020 EBX:0001 ECX:7facb450 EDX:
 ESI:7facb328 EDI:7beb4460
Stack dump:
0x7facaba4:  20202020 2711  7facb328
0x7facabb4:  7facabe0 007aaf30 7facb218 7facaf60
0x7facabc4:   2711 40c38800 7facb328
0x7facabd4:  7facac90 0084566a 0007 7fd0e900
0x7facabe4:  0078e3ca  7facaf60 0040
0x7facabf4:  7fd39206 7facaf60  7fd39206
0200: sel=1007 base=b7f81000 limit=1f97 32-bit rw-
Backtrace:
=>1 0x007ab8f1 in iwd2 (+0x3ab8f1) (0x)
0x007ab8f1: movl    0x0(%eax),%ecx
Wine-dbg>disassemble 0x007ab800, 0x007ab8f1
0x007ab800: addb    %bh,0x0(%ebx)
0x007ab802: int $0x74
0x007ab804: pop %ss
0x007ab805: cmpl    %ebx,0x390(%ecx)
0x007ab80b: jz  0x007ab81c
0x007ab80d: addl    $0x394,%ecx
0x007ab813: pushl   %ecx
0x007ab814: call    *%edi
0x007ab816: movl    0x008cf6d8,%ecx
0x007ab81c: movl    0x13c(%esi),%eax
0x007ab822: cmpl    %ebp,%eax
0x007ab824: jz  0x007ab838
0x007ab826: movl    0x0(%eax),%ecx
0x007ab828: pushl   %eax
0x007ab829: call    *0x8(%ecx)
0x007ab82c: movl    %ebp,0x13c(%esi)
0x007ab832: movl    0x008cf6d8,%ecx
0x007ab838: cmpl    %ebp,%ecx
0x007ab83a: jz  0x007ab84d
0x007ab83c: cmpl    %ebx,0x390(%ecx)
0x007ab842: jz  0x007ab84d
0x007ab844: addl    $0x394,%ecx
0x007ab84a: pushl   %ecx
0x007ab84b: call    *%edi
0x007ab84d: leal    0x128(%esi),%ecx
0x007ab853: call    0x007c22d0
0x007ab858: movl    %ebp,0x140(%esi)
0x007ab85e: movl    0x008cf6d8,%eax
0x007ab863: cmpl    %ebp,%eax
0x007ab865: jz  0x007ab87b
0x007ab867: cmpl    %ebx,0x390(%eax)
0x007ab86d: jz  0x007ab87b
0x007ab86f: addl    $916,%eax
0x007ab874: pushl   %eax
0x007ab875: call    *0x8472c8
-> 0x7beb4180 RtlLeaveCriticalSection
[/home/james/development/wine/regression_testing/2005-07-18/wine/dlls/ntdll/critsection.c:407]
in ntdll
0x007ab87b: cmpl    %ebp,0x90(%esi)
0x007ab881: jz  0x007ab8a4
0x007ab883: leal    0x84(%esi),%edi
0x007ab889: movl    %edi,%ecx
0x007ab88b: call    0x007fbe77
0x007ab890: cmpl    %ebp,%eax
0x007ab892: jz  0x007ab89c
0x007ab894: movl    0x0(%eax),%edx
0x007ab896: pushl   %ebx
0x007ab897: movl    %eax,%ecx
0x007ab899: call    *0x4(%edx)
0x007ab89c: cmpl    %ebp,0x90(%esi)
0x007ab8a2: jnz 0x007ab889
0x007ab8a4: cmpl    %ebp,0xac(%esi)
0x007ab8aa: jz  0x007ab8d8
0x007ab8ac: leal    0xa0(%esi),%ebx
0x007ab8b2: movl    %ebx,%ecx
0x007ab8b4: call    0x007fbe77
0x007ab8b9: movl    %eax,%edi
0x007ab8bb: movl    0x58(%edi),%eax
0x007ab8be: cmpl    %ebp,%eax
0x007ab8c0: jz  0x007ab8cb
0x007ab8c2: movl    0x0(%eax),%ecx
0x007ab8c4: pushl   %eax
0x007ab8c5: call    *0x8(%ecx)
0x007ab8c8: movl    %ebp,0x58(%edi)
0x007ab8cb: cmpl    %ebp,0xac(%esi)
0x007ab8d1: jnz 0x007ab8b2
0x007ab8d3: movl    $0x1,%ebx
0x007ab8d8: cmpl    %ebp,0x4(%esi)
0x007ab8db: jz  0x007ab8f9
0x007ab8dd: movl    0x8(%esi),%eax
0x007ab8e0: cmpl    %ebp,%eax
0x007ab8e2: jz  0x007ab8ed
0x007ab8e4: movl    0x0(%eax),%edx
0x007ab8e6: pushl   %eax
0x007ab8e7: call    *0x8(%edx)
0x007ab8ea: movl    %ebp,0x8(%esi)
0x007ab8ed: movl    0x4(%esi),%eax
0x007ab8f0: pushl   %eax
0x007ab8f1: movl    0x0(%eax),%ecx
Wine-dbg>

Thanks,
James





Re: RFC: implementation of driver functionality in msacm (RESEND)

2006-01-14 Thread Eric Pouech

... then I need new glasses :-)

[snip]
I examined the DRVCONFIGINFO structure prepared by native msacm32.dll to 
codecs, in particular the dwDCISize field. Even when the sum of all 
fields in the structure declaration yields 12 bytes, dwDCISize holds a 
value of 16 when supplied by native msacm32.dll. So, I used the same 
value in order to mimic native as close as possible.

lend me your glasses, please
but, it means then than msacm32 sends a 16 bit structure, likely by 
extending DRVCONFIGINFO and adding a new field
it's a bad thing IMO to pass 16 for the size, and not store a good value 
at offset 16.

A+
--
Eric Pouech





Re: x11drv: Allow WM to manage more windows.

2006-01-14 Thread Dmitry Timoshkov

"Vitaliy Margolen" <[EMAIL PROTECTED]> wrote:

@@ -67,6 +67,8 @@ static const char visual_id_prop[]= 
 inline static BOOL is_window_managed( HWND hwnd )

 {
 DWORD style, ex_style;
+char class_name[7];
+static const char menu_class[] = "#32768";



+/* menu windows are not managed */
+if (GetClassNameA(hwnd, class_name, sizeof(class_name)) &&
+!memcmp(class_name, menu_class, sizeof(menu_class)))
+return FALSE;


This won't work for subclassed or custom (OfficeXP like) menus.

--
Dmitry.




Problem with older wgl patch

2006-01-14 Thread Tim Savannah
On the newest wine, trying to start opengl programs such as World of Warcraft yields an error such as this:trace:opengl:wine_glCullFace (1029)trace:opengl:wine_glMatrixMode (5889)trace:opengl:wine_glLoadMatrixf (0x7fbafbb8)
trace:opengl:wglMakeCurrent (0x368,0x7fd7b7d0)trace:opengl:create_glxpixmap return 1800054trace:opengl:wglMakeCurrent  make current for dis 0x7c01baf8, drawable 0x1800054, ctx 0x7c1c01d8X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  144 (GLX)  Minor opcode of failed request:  13 (X_GLXCreateGLXPixmap)  Serial number of failed request:  412  Current serial number in output stream:  413I don't know enough about wgl to offer any suggestions to the problem, other than the source seems to be this patch:
http://cvs.winehq.org/cvsweb/wine/dlls/opengl32/wgl.c.diff?r1=1.71&r2=1.72&sortby=dateReverting that patch and adding
+  DWORD type = GetObjectType(hdc);where that patch placed it in the file allows opengl to work again.



Bug 4289: Debugging and dissasembly

2006-01-14 Thread James Trotter
Hi!

A few days ago I filed this bug: http://bugs.winehq.org/show_bug.cgi?id=4289

Alexandre commented that there most likely was some stack corruption,
and that I should try and disassemble a few instructions before the
crash and look for API calls.



Now, I haven't used gdb or winedbg that much before, and I'm a bit
uncertain what to do. I understand that using the disassemble
[][,] command, the debugger will disassemble
that address space. Given the stack trace as in the bug report, which
addresses, exactly, should I disassemble?

Thanks,
James



RE: pch support

2006-01-14 Thread Casper Hornstrup
Just FYI here are some tests I made in November:

http://www.reactos.org/archives/public/ros-dev/2005-November/006273.html

Casper

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Steven Edwards
Sent: 13. januar 2006 17:01
To: Rolf Kalbermatter
Cc: wine-devel@winehq.org; Marcus Meissner
Subject: Re: pch support

Hi,

On 1/13/06, Rolf Kalbermatter <[EMAIL PROTECTED]> wrote:
> This solution has been starting to form in my mind as well. It is even
> portable to MSVC it seems with a few small modifications to
winapi/msvcmaker.

I came up with a much more generic solution that will work on all
compilers and does not cause a dependancy issue. It requires some
minor code adjustments and there is a slight issue if you have errors
in linking. The error location is wrong so you need to have a way to
disable this if you have a real error to track the problem down, but
once I fixed ReactOS shell32.dll to use my hack my compile times on
gcc4 went from 30+ secs down to 9sec. MSVC went from 22 to less than 1
secound.

In short each module would have its own autogenerated master C file
that would include all of the others like the one I have attached.
Minus the #define hacks. I personally think its more of a nasty hack
but a configure switch could be added like

--enable-compilation-units

Because each header is only processed once, it give the same effect as PCH.


--
Steven Edwards - ReactOS and Wine developer

"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo