Incompatible behavior regarding SetCapture/ReleaseCapture & dialogs

Andreas Rosenberg sonix2003 at ctf-z.de
Mon Jul 7 13:59:06 CDT 2008


Hi all!

About 3 years ago, I reported a few incompatiblities in Wine, that caused problems 
with an application called IQ-FMEA, that our company is developing.

Some things I could fix myself and sent them to wine-patches and they were accepted.

One incompatibility between Windows & Wine is still there and causes problems
in our app when operating various dialogs (most important the common file dialog, because
this happens frequently).

To demonstrate the problem, I wrote a small app. It may be included into the 
conformance test library, but it's a little bit tricky, so I'm unsure how to do something
like this.

  Scenario:
    Two windows A and B exist.
    - Window B captures the mouse input.
    - Window A opens the CommonFileDialog (GetOpenFileName,GetSaveFileName, ChooseFont)
    - during the open process of the CommonFileDialog the mouse capture
      is released on Windows (between the 2nd & the 3rd WM_NOTIFY being
      passed to the OFNHookProc).

      The dialog is automatically closed by the hook proc, by posting
      WM_COMMAND with IDCANCEL.

      On Wine the mouse capture is not release, making it impossible
      to operate the dialog with the mouse.

      The same scenario may happen with ChooseFont (and probably
      more dialog windows).

      log output of my test app on Windows XP:
		Testing GetOpenFileName
		Wnd with capture:000201fe
		WM_INITDIALOG:000201fe
		WM_NOTIFY:000201fe - fffffda7 - (0)
		WM_NOTIFY:000201fe - fffffda5 - (1)
		WM_NOTIFY:00000000 - fffffda6 - (2)
		Quitting dialog
		Wnd with capture:00000000
		Testing ChooseFont
		Wnd with capture:000201fe
		WM_INITDIALOG:000201fe
		WM_CTLCOLORDLG:00000000 - (0)
		Quitting dialog
		Wnd with capture:00000000

      log output of my test app on Wine 1.1.0 (for OpenSuse 10.3)
		Testing GetOpenFileName
		Wnd with capture:0001002a
		WM_INITDIALOG:0001002a
		WM_NOTIFY:0001002a - fffffda7 - (0)
		WM_NOTIFY:0001002a - fffffda5 - (1)
		WM_NOTIFY:0001002a - fffffda6 - (2)
		CommonFileDialog - mouse capture should have been released now!
		Quitting dialog
		Wnd with capture:0001002a
		Testing ChooseFont
		Wnd with capture:0001002a
		WM_INITDIALOG:0001002a
		WM_CTLCOLORDLG:0001002a - (0)
		ChooseFontDialog - mouse capture should have been released now!
		Quitting dialog
		Wnd with capture:0001002a

Maybe someone being more familiar with the internal framework can take a look into this problem.

Regards,
  Andreas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/octet-stream
Size: 20230 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20080707/ad9c29c4/attachment-0001.obj 


More information about the wine-devel mailing list