winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
April 2006
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
4 participants
512 discussions
Start a n
N
ew thread
Stefan Dösinger : wined3d: Add IWineD3DSurface::Flip.
by Alexandre Julliard
13 Apr '06
13 Apr '06
Module: wine Branch: refs/heads/master Commit: cf27031329b82f1a2f593e527065948e9b34c32f URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=cf27031329b82f1a2f593e5…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Wed Apr 12 22:32:44 2006 +0200 wined3d: Add IWineD3DSurface::Flip. --- dlls/wined3d/surface.c | 6 ++++++ include/wine/wined3d_interface.h | 1 + 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index a02c6ab..e8a38c0 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1445,6 +1445,11 @@ HRESULT WINAPI IWineD3DSurfaceImpl_SetPB return WINED3D_OK; } +HRESULT WINAPI IWineD3DSurfaceImpl_Flip(IWineD3DSurface *iface, IWineD3DSurface *override, DWORD Flags) { + FIXME("This is unimplemented for now(d3d7 merge)\n"); + return WINED3DERR_INVALIDCALL; +} + const IWineD3DSurfaceVtbl IWineD3DSurface_Vtbl = { /* IUnknown */ @@ -1469,6 +1474,7 @@ const IWineD3DSurfaceVtbl IWineD3DSurfac IWineD3DSurfaceImpl_UnlockRect, IWineD3DSurfaceImpl_GetDC, IWineD3DSurfaceImpl_ReleaseDC, + IWineD3DSurfaceImpl_Flip, /* Internal use: */ IWineD3DSurfaceImpl_CleanDirtyRect, IWineD3DSurfaceImpl_AddDirtyRect, diff --git a/include/wine/wined3d_interface.h b/include/wine/wined3d_interface.h index 429a0c6..c163104 100644 --- a/include/wine/wined3d_interface.h +++ b/include/wine/wined3d_interface.h @@ -1100,6 +1100,7 @@ DECLARE_INTERFACE_(IWineD3DSurface,IWine STDMETHOD(UnlockRect)(THIS) PURE; STDMETHOD(GetDC)(THIS_ HDC *pHdc) PURE; STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE; + STDMETHOD(Flip)(THIS_ IWineD3DSurface *Override, DWORD FLAGS) PURE; /* Internally used methods */ STDMETHOD(CleanDirtyRect)(THIS) PURE; STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pRect) PURE;
1
0
0
0
Stefan Dösinger : wined3d: Split device creation and opengl initialization.
by Alexandre Julliard
13 Apr '06
13 Apr '06
Module: wine Branch: refs/heads/master Commit: d2510847b0751a8e4a97645c6bd31a97f890fb5d URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=d2510847b0751a8e4a97645…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Wed Apr 12 21:08:57 2006 +0200 wined3d: Split device creation and opengl initialization. --- dlls/d3d8/device.c | 3 +++ dlls/d3d8/directx.c | 18 ++++++++++++++---- dlls/d3d9/device.c | 3 +++ dlls/d3d9/directx.c | 15 ++++++++++++--- dlls/wined3d/device.c | 12 ++++++++++++ include/wine/wined3d_interface.h | 2 ++ 6 files changed, 46 insertions(+), 7 deletions(-) diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index 2590498..1d4ce68 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -69,6 +69,9 @@ ULONG WINAPI IDirect3DDevice8Impl_Releas if (ref == 0) { TRACE("Releasing wined3d device %p\n", This->WineD3DDevice); + /* Activate this when it's implemented in wined3d(d3d7 merge) + IWineD3DDevice_Uninit3D(This->WineD3DDevice); + */ IWineD3DDevice_Release(This->WineD3DDevice); HeapFree(GetProcessHeap(), 0, This); } diff --git a/dlls/d3d8/directx.c b/dlls/d3d8/directx.c index 3668afa..a0f56c8 100644 --- a/dlls/d3d8/directx.c +++ b/dlls/d3d8/directx.c @@ -324,13 +324,23 @@ HRESULT WINAPI IDirect3D8Impl_CreateDe localParameters.PresentationInterval = &pPresentationParameters->FullScreen_PresentationInterval;/* Renamed in dx9 */ hr =IWineD3D_CreateDevice(This->WineD3D, Adapter, DeviceType, hFocusWindow, BehaviourFlags, &localParameters, &object->WineD3DDevice, (IUnknown *)object, D3D8CB_CreateAdditionalSwapChain); - - if (hr == D3D_OK) { - TRACE("(%p) : Created Device %p\n", This, object); - } else { + + if (hr != D3D_OK) { + HeapFree(GetProcessHeap(), 0, object); + *ppReturnedDeviceInterface = NULL; + return hr; + } + + TRACE("(%p) : Created Device %p\n", This, object); + + /* Activate this when it's implemented in wined3d(d3d7 merge) + hr = IWineD3DDevice_Init3D(object->WineD3DDevice, &localParameters, D3D8CB_CreateAdditionalSwapChain); + if (hr != D3D_OK) { + FIXME("(%p) D3D Initialization failed for WineD3DDevice %p\n", This, object->WineD3DDevice); HeapFree(GetProcessHeap(), 0, object); *ppReturnedDeviceInterface = NULL; } + */ return hr; } diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index cd1a5cd..7aa1337 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -57,6 +57,9 @@ ULONG WINAPI IDirect3DDevice9Impl_Releas TRACE("(%p) : ReleaseRef to %ld\n", This, ref); if (ref == 0) { + /* Activate this when it's implemented in WineD3D(d3d7 merge) + IWineD3DDevice_Uninit3D(This->WineD3DDevice); + */ IWineD3DDevice_Release(This->WineD3DDevice); HeapFree(GetProcessHeap(), 0, This); } diff --git a/dlls/d3d9/directx.c b/dlls/d3d9/directx.c index d948637..fda6bc5 100644 --- a/dlls/d3d9/directx.c +++ b/dlls/d3d9/directx.c @@ -309,13 +309,22 @@ HRESULT WINAPI IDirect3D9Impl_CreateDe hr =IWineD3D_CreateDevice(This->WineD3D, Adapter, DeviceType, hFocusWindow, BehaviourFlags, &localParameters, &object->WineD3DDevice, (IUnknown *)object, D3D9CB_CreateAdditionalSwapChain); - if (hr == D3D_OK) { + if (hr != D3D_OK) { + HeapFree(GetProcessHeap(), 0, object); + *ppReturnedDeviceInterface = NULL; + return hr; + } + + TRACE("(%p) : Created Device %p\n", This, object); - TRACE("(%p) : Created Device %p\n", This, object); - } else { + /* Activate this when it's implemented in wined3d(d3d7 merge) + hr = IWineD3DDevice_Init3D(object->WineD3DDevice, &localParameters, D3D8CB_CreateAdditionalSwapChain); + if (hr != D3D_OK) { + FIXME("(%p) D3D Initialization failed for WineD3DDevice %p\n", This, object->WineD3DDevice); HeapFree(GetProcessHeap(), 0, object); *ppReturnedDeviceInterface = NULL; } + */ return hr; } diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 3626b88..a7362e7 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1668,6 +1668,16 @@ HRESULT WINAPI IWineD3DDeviceImpl_Create return hr; } +HRESULT WINAPI IWineD3DDeviceImpl_Init3D(IWineD3DDevice *iface, WINED3DPRESENT_PARAMETERS* pPresentationParameters, D3DCB_CREATEADDITIONALSWAPCHAIN D3DCB_CreateAdditionalSwapChain) { + FIXME("This call is a d3d7 merge stub. It will be implemented later\n"); + return WINED3DERR_INVALIDCALL; +} + +HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface) { + FIXME("This call is a d3d7 merge stub. It will be implemented later\n"); + return WINED3DERR_INVALIDCALL; +} + HRESULT WINAPI IWineD3DDeviceImpl_GetDirect3D(IWineD3DDevice *iface, IWineD3D **ppD3D) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; *ppD3D= This->wineD3D; @@ -6792,6 +6802,8 @@ const IWineD3DDeviceVtbl IWineD3DDevice_ IWineD3DDeviceImpl_CreateVertexShader, IWineD3DDeviceImpl_CreatePixelShader, /*** Odd functions **/ + IWineD3DDeviceImpl_Init3D, + IWineD3DDeviceImpl_Uninit3D, IWineD3DDeviceImpl_EvictManagedResources, IWineD3DDeviceImpl_GetAvailableTextureMem, IWineD3DDeviceImpl_GetBackBuffer, diff --git a/include/wine/wined3d_interface.h b/include/wine/wined3d_interface.h index 2037fc8..429a0c6 100644 --- a/include/wine/wined3d_interface.h +++ b/include/wine/wined3d_interface.h @@ -362,6 +362,8 @@ DECLARE_INTERFACE_(IWineD3DDevice,IWineD STDMETHOD(CreateVertexDeclaration)(THIS_ CONST VOID* pDeclaration, struct IWineD3DVertexDeclaration** ppDecl, IUnknown* pParent) PURE; STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD *pDeclaration, CONST DWORD* pFunction, struct IWineD3DVertexShader** ppShader, IUnknown *pParent) PURE; STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, struct IWineD3DPixelShader** ppShader, IUnknown *pParent) PURE; + STDMETHOD(Init3D)(THIS_ WINED3DPRESENT_PARAMETERS* pPresentationParameters, D3DCB_CREATEADDITIONALSWAPCHAIN D3DCB_CreateAdditionalSwapChain); + STDMETHOD(Uninit3D)(THIS); STDMETHOD(EvictManagedResources)(THIS) PURE; STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE; STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT BackBuffer, WINED3DBACKBUFFER_TYPE, struct IWineD3DSurface** ppBackBuffer) PURE;
1
0
0
0
Karsten Elfenbein : wined3d: Combined unhandled renderstate cases into one.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: 59189ba75b739ad0e119e2d31186d054ecd780a9 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=59189ba75b739ad0e119e2d…
Author: Karsten Elfenbein <kelfe(a)gmx.de> Date: Wed Apr 12 20:45:45 2006 +0200 wined3d: Combined unhandled renderstate cases into one. --- dlls/wined3d/device.c | 53 ++++++++++++++++++++----------------------------- 1 files changed, 22 insertions(+), 31 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index f51201f..3626b88 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -3745,24 +3745,6 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetRen } break; } - case WINED3DRS_MULTISAMPLEMASK : - case WINED3DRS_PATCHEDGESTYLE : - case WINED3DRS_PATCHSEGMENTS : - case WINED3DRS_DEBUGMONITORTOKEN : - case WINED3DRS_POSITIONORDER : - case WINED3DRS_NORMALORDER : - /* Direct3D9 render states */ - case WINED3DRS_MINTESSELLATIONLEVEL : - case WINED3DRS_MAXTESSELLATIONLEVEL : - case WINED3DRS_ADAPTIVETESS_X : - case WINED3DRS_ADAPTIVETESS_Y : - case WINED3DRS_ADAPTIVETESS_Z : - case WINED3DRS_ADAPTIVETESS_W : - case WINED3DRS_ENABLEADAPTIVETESSELLATION : - { - FIXME("(%p)->(%s,%ld) not handled yet\n", This, debug_d3drenderstate(State), Value); - break; - } case WINED3DRS_TWOSIDEDSTENCILMODE : { if(Value) { @@ -3876,15 +3858,6 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetRen } break; } - case WINED3DRS_COLORWRITEENABLE1 : - case WINED3DRS_COLORWRITEENABLE2 : - case WINED3DRS_COLORWRITEENABLE3 : - case WINED3DRS_BLENDFACTOR : - case WINED3DRS_SRGBWRITEENABLE : - { - FIXME("(%p)->(%s,%ld) not handled yet\n", This, debug_d3drenderstate(State), Value); - break; - } case WINED3DRS_DEPTHBIAS : { if(Value) { @@ -3899,10 +3872,28 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetRen } break; } - case WINED3DRS_SEPARATEALPHABLENDENABLE : - case WINED3DRS_SRCBLENDALPHA : - case WINED3DRS_DESTBLENDALPHA : - case WINED3DRS_BLENDOPALPHA : + case WINED3DRS_SEPARATEALPHABLENDENABLE : + case WINED3DRS_SRCBLENDALPHA : + case WINED3DRS_DESTBLENDALPHA : + case WINED3DRS_BLENDOPALPHA : + case WINED3DRS_MULTISAMPLEMASK : + case WINED3DRS_PATCHEDGESTYLE : + case WINED3DRS_PATCHSEGMENTS : + case WINED3DRS_DEBUGMONITORTOKEN : + case WINED3DRS_POSITIONORDER : + case WINED3DRS_NORMALORDER : + case WINED3DRS_MINTESSELLATIONLEVEL : + case WINED3DRS_MAXTESSELLATIONLEVEL : + case WINED3DRS_ADAPTIVETESS_X : + case WINED3DRS_ADAPTIVETESS_Y : + case WINED3DRS_ADAPTIVETESS_Z : + case WINED3DRS_ADAPTIVETESS_W : + case WINED3DRS_ENABLEADAPTIVETESSELLATION : + case WINED3DRS_COLORWRITEENABLE1 : + case WINED3DRS_COLORWRITEENABLE2 : + case WINED3DRS_COLORWRITEENABLE3 : + case WINED3DRS_BLENDFACTOR : + case WINED3DRS_SRGBWRITEENABLE : FIXME("(%p)->(%s,%ld) not handled yet\n", This, debug_d3drenderstate(State), Value); break; default:
1
0
0
0
Karsten Elfenbein : wined3d: IWineD3DDeviceImpl_Reset cleanup.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: c90c04607ebe0d94864ad8618d8969bf63f36422 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=c90c04607ebe0d94864ad86…
Author: Karsten Elfenbein <kelfe(a)gmx.de> Date: Wed Apr 12 20:22:25 2006 +0200 wined3d: IWineD3DDeviceImpl_Reset cleanup. Joined the functions as it looks like a typo in the function name (IWineD3DDeviceImpl_Rest isn't used anywhere but contains comments). --- dlls/wined3d/device.c | 10 +--------- 1 files changed, 1 insertions(+), 9 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 71147f8..f51201f 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1590,14 +1590,6 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetS return hr; } -HRESULT WINAPI IWineD3DDeviceImpl_Reset(IWineD3DDevice* iface, WINED3DPRESENT_PARAMETERS* pPresentationParameters) { - IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; - - FIXME("(%p) : Stub\n",This); - return WINED3D_OK; - -} - /***** * Vertex Declaration *****/ @@ -6527,7 +6519,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_Evic return WINED3D_OK; } -HRESULT WINAPI IWineD3DDeviceImpl_Rest(IWineD3DDevice* iface, D3DPRESENT_PARAMETERS* pPresentationParameters) { +HRESULT WINAPI IWineD3DDeviceImpl_Reset(IWineD3DDevice* iface, WINED3DPRESENT_PARAMETERS* pPresentationParameters) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; /** FIXME: Resource trascking needs to be done. * in effect this pulls all non only default
1
0
0
0
Jacek Caban : shell32: Allocate wszApplicationName on the heap as it may be longer than MAX_PATH.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: 4b5125a79c4432b8d54f306418b175a51d6190ad URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=4b5125a79c4432b8d54f306…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 12 20:33:31 2006 +0200 shell32: Allocate wszApplicationName on the heap as it may be longer than MAX_PATH. --- dlls/shell32/shlexec.c | 49 +++++++++++++++++++++++++++--------------------- 1 files changed, 28 insertions(+), 21 deletions(-) diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c index 1f4638a..1a30914 100644 --- a/dlls/shell32/shlexec.c +++ b/dlls/shell32/shlexec.c @@ -1216,7 +1216,8 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW SEE_MASK_UNICODE | SEE_MASK_NO_CONSOLE | SEE_MASK_ASYNCOK | SEE_MASK_HMONITOR; - WCHAR wszApplicationName[MAX_PATH+2], wszParameters[1024], wszDir[MAX_PATH]; + WCHAR *wszApplicationName, wszParameters[1024], wszDir[MAX_PATH]; + DWORD dwApplicationNameLen = MAX_PATH+2; SHELLEXECUTEINFOW sei_tmp; /* modifiable copy of SHELLEXECUTEINFO struct */ WCHAR wfileName[MAX_PATH]; WCHAR *env; @@ -1241,18 +1242,25 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW /* make copies of all path/command strings */ if (!sei_tmp.lpFile) + { + wszApplicationName = HeapAlloc(GetProcessHeap(), 0, dwApplicationNameLen*sizeof(WCHAR)); *wszApplicationName = '\0'; + } else if (*sei_tmp.lpFile == '\"') { - UINT l; - strcpyW(wszApplicationName, sei_tmp.lpFile+1); - l=lstrlenW(wszApplicationName); + DWORD l = strlenW(sei_tmp.lpFile+1); + if(l >= dwApplicationNameLen) dwApplicationNameLen = l+1; + wszApplicationName = HeapAlloc(GetProcessHeap(), 0, dwApplicationNameLen*sizeof(WCHAR)); + memcpy(wszApplicationName, sei_tmp.lpFile+1, (l+1)*sizeof(WCHAR)); if (wszApplicationName[l-1] == '\"') wszApplicationName[l-1] = '\0'; TRACE("wszApplicationName=%s\n",debugstr_w(wszApplicationName)); + } else { + DWORD l = strlenW(sei_tmp.lpFile)+1; + if(l > dwApplicationNameLen) dwApplicationNameLen = l+1; + wszApplicationName = HeapAlloc(GetProcessHeap(), 0, dwApplicationNameLen*sizeof(WCHAR)); + memcpy(wszApplicationName, sei_tmp.lpFile, l*sizeof(WCHAR)); } - else - strcpyW(wszApplicationName, sei_tmp.lpFile); if (sei_tmp.lpParameters) strcpyW(wszParameters, sei_tmp.lpParameters); @@ -1287,8 +1295,10 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW IShellExecuteHookW_Release(pSEH); - if (hr == S_OK) + if (hr == S_OK) { + HeapFree(GetProcessHeap(), 0, wszApplicationName); return TRUE; + } } SHGetPathFromIDListW(sei_tmp.lpIDList, wszApplicationName); @@ -1298,6 +1308,7 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW if ( ERROR_SUCCESS == ShellExecute_FromContextMenu( &sei_tmp ) ) { sei->hInstApp = (HINSTANCE) 33; + HeapFree(GetProcessHeap(), 0, wszApplicationName); return TRUE; } @@ -1323,10 +1334,9 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW strcatW(wcmd, wszApplicationName); } retval = execfunc(wcmd, NULL, FALSE, &sei_tmp, sei); - if (retval > 32) - return TRUE; - else - return FALSE; + + HeapFree(GetProcessHeap(), 0, wszApplicationName); + return retval > 32; } /* Has the IDList not yet been translated? */ @@ -1352,8 +1362,7 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW HCR_GetExecuteCommandW(0, wszFolder, sei_tmp.lpVerb?sei_tmp.lpVerb:wszOpen, buffer, sizeof(buffer))) { - SHELL_ArgifyW(wszApplicationName, - sizeof(wszApplicationName)/sizeof(WCHAR), + SHELL_ArgifyW(wszApplicationName, dwApplicationNameLen, buffer, target, sei_tmp.lpIDList, NULL); } sei_tmp.fMask &= ~SEE_MASK_INVOKEIDLIST; @@ -1452,8 +1461,10 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei_tmp.lpVerb = wszOpen; retval = execfunc(wcmd, NULL, FALSE, &sei_tmp, sei); - if (retval > 32) + if (retval > 32) { + HeapFree(GetProcessHeap(), 0, wszApplicationName); return TRUE; + } /* Else, try to find the executable */ wcmd[0] = '\0'; @@ -1520,14 +1531,10 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW TRACE("retval %u\n", retval); - if (retval <= 32) - { - sei->hInstApp = (HINSTANCE)retval; - return FALSE; - } + HeapFree(GetProcessHeap(), 0, wszApplicationName); - sei->hInstApp = (HINSTANCE)33; - return TRUE; + sei->hInstApp = (HINSTANCE)(retval > 32 ? 33 : retval); + return retval > 32; } /*************************************************************************
1
0
0
0
Jacek Caban : shdocvw: Use GetClientRect, not GetWindowRect in create_doc_view_hwnd.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: 51bd5408d4b411924123bde72bae95fa9b00fa55 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=51bd5408d4b411924123bde…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 12 20:29:01 2006 +0200 shdocvw: Use GetClientRect, not GetWindowRect in create_doc_view_hwnd. --- dlls/shdocvw/dochost.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c index 01f7a88..2a679e7 100644 --- a/dlls/shdocvw/dochost.c +++ b/dlls/shdocvw/dochost.c @@ -146,7 +146,7 @@ void create_doc_view_hwnd(WebBrowser *Th doc_view_atom = RegisterClassExW(&wndclass); } - GetWindowRect(This->shell_embedding_hwnd, &rect); + GetClientRect(This->shell_embedding_hwnd, &rect); This->doc_view_hwnd = CreateWindowExW(0, wszShell_DocObject_View, wszShell_DocObject_View, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_TABSTOP | WS_MAXIMIZEBOX,
1
0
0
0
Alexandre Julliard : wineps: Load generic. ppd from the data dir if nothing else is specified.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: 6d2afbcf7ac6b85a22722906f75d7e0af94e4854 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=6d2afbcf7ac6b85a2272290…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Apr 12 20:43:43 2006 +0200 wineps: Load generic.ppd from the data dir if nothing else is specified. --- dlls/wineps/init.c | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-) diff --git a/dlls/wineps/init.c b/dlls/wineps/init.c index 8d8305a..1a39356 100644 --- a/dlls/wineps/init.c +++ b/dlls/wineps/init.c @@ -618,10 +618,21 @@ PRINTERINFO *PSDRV_FindPrinterInfo(LPCST RegCloseKey(hkey); } - if (!ppdFileName) { - res = ERROR_FILE_NOT_FOUND; - ERR ("Error %li getting PPD file name for printer '%s'\n", res, name); - goto closeprinter; + if (!ppdFileName) + { + const char *data_dir, *filename; + + if ((data_dir = wine_get_data_dir())) filename = "/generic.ppd"; + else if ((data_dir = wine_get_build_dir())) filename = "/dlls/wineps/generic.ppd"; + else + { + res = ERROR_FILE_NOT_FOUND; + ERR ("Error %li getting PPD file name for printer '%s'\n", res, name); + goto closeprinter; + } + ppdFileName = HeapAlloc( PSDRV_Heap, 0, strlen(data_dir) + strlen(filename) + 1 ); + strcpy( ppdFileName, data_dir ); + strcat( ppdFileName, filename ); } else { res = ERROR_SUCCESS; if (ppdType==REG_EXPAND_SZ) {
1
0
0
0
Huw Davies : tools: Don' t try to use FT_Load_Sfnt_Table unless FreeType has it.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: 35bca77f47b39ad2c904b1a162613fa8b538ff7f URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=35bca77f47b39ad2c904b1a…
Author: Huw Davies <huw(a)codeweavers.com> Date: Wed Apr 12 12:14:27 2006 +0100 tools: Don't try to use FT_Load_Sfnt_Table unless FreeType has it. --- configure | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 4 ++ include/config.h.in | 3 + tools/sfnt2fnt.c | 9 +++- 4 files changed, 118 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 64413a5..4401819 100755 --- a/configure +++ b/configure @@ -10699,6 +10699,110 @@ _ACEOF fi + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $FREETYPELIBS" + +for ac_func in FT_Load_Sfnt_Table +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + CFLAGS="$ac_save_CFLAGS" CPPFLAGS="$ac_save_CPPFLAGS" if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes" then diff --git a/configure.ac b/configure.ac index d1cc526..2c92dc9 100644 --- a/configure.ac +++ b/configure.ac @@ -657,6 +657,10 @@ else wine_cv_fttrigon=yes], wine_cv_fttrigon=no) AC_CHECK_TYPES(FT_TrueTypeEngineType,,,[#include <freetype/ftmodapi.h>]) + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $FREETYPELIBS" + AC_CHECK_FUNCS(FT_Load_Sfnt_Table) + CFLAGS="$ac_save_CFLAGS" CPPFLAGS="$ac_save_CPPFLAGS" dnl Check that we have at least freetype/freetype.h if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes" diff --git a/include/config.h.in b/include/config.h.in index 91a754f..7c43ee4 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -149,6 +149,9 @@ /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE +/* Define to 1 if you have the `FT_Load_Sfnt_Table' function. */ +#undef HAVE_FT_LOAD_SFNT_TABLE + /* Define to 1 if the system has the type `FT_TrueTypeEngineType'. */ #undef HAVE_FT_TRUETYPEENGINETYPE diff --git a/tools/sfnt2fnt.c b/tools/sfnt2fnt.c index 51a0e41..8f96332 100644 --- a/tools/sfnt2fnt.c +++ b/tools/sfnt2fnt.c @@ -202,10 +202,13 @@ static void fill_fontinfo(FT_Face face, const union cptable *cptable; FT_SfntName sfntname; TT_OS2 *os2; + +#ifdef HAVE_FT_LOAD_SFNT_TABLE FT_ULong needed; eblcHeader_t *eblc; bitmapSizeTable_t *size_table; int num_sizes; +#endif cptable = wine_cp_get_table(enc); if(!cptable) @@ -220,6 +223,7 @@ static void fill_fontinfo(FT_Face face, ppem = face->size->metrics.y_ppem; +#ifdef HAVE_FT_LOAD_SFNT_TABLE needed = 0; if(FT_Load_Sfnt_Table(face, TTAG_EBLC, 0, NULL, &needed)) error("Can't find EBLC table\n"); @@ -241,6 +245,9 @@ static void fill_fontinfo(FT_Face face, size_table++; } + free(eblc); +#endif + /* Versions of fontforge prior to early 2006 have incorrect ascender values in the eblc table, so we won't find the correct bitmapSizeTable. In this case use the height of @@ -253,8 +260,6 @@ static void fill_fontinfo(FT_Face face, descent = ppem - ascent; } - free(eblc); - start = sizeof(FNT_HEADER) + sizeof(FONTINFO16); if(FT_Load_Char(face, 'M', FT_LOAD_DEFAULT))
1
0
0
0
Alexandre Julliard : preloader: Workaround for broken no-exec protections.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: 0216c404dcf9cf610faf66b7bb0e1c07d626261b URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=0216c404dcf9cf610faf66b…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Apr 12 19:53:16 2006 +0200 preloader: Workaround for broken no-exec protections. Add an executable page at the top of the address space to defeat broken no-exec protections that play with the code selector limit. --- loader/preloader.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/loader/preloader.c b/loader/preloader.c index 9480ca9..3439517 100644 --- a/loader/preloader.c +++ b/loader/preloader.c @@ -949,6 +949,10 @@ void* wld_start( void **stack ) wld_mmap( preload_info[i].addr, preload_info[i].size, PROT_NONE, MAP_FIXED | MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, -1, 0 ); + /* add an executable page at the top of the address space to defeat + * broken no-exec protections that play with the code selector limit */ + wld_mprotect( (char *)0x80000000 - page_size, page_size, PROT_EXEC | PROT_READ ); + /* load the main binary */ map_so_lib( argv[1], &main_binary_map );
1
0
0
0
Mikołaj Zalewski : comctl32: Fix listview column resize.
by Alexandre Julliard
12 Apr '06
12 Apr '06
Module: wine Branch: refs/heads/master Commit: e55c44c737d5350319d2179b1de9eded68887a15 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=e55c44c737d5350319d2179…
Author: Mikołaj Zalewski <mikolaj(a)zalewski.pl> Date: Wed Apr 12 17:51:55 2006 +0200 comctl32: Fix listview column resize. Draw a track line after a HDN_TRACK, resize the columns only after a HDN_ITEMCHANGED. Create the header with HDS_FULLDRAG. --- dlls/comctl32/listview.c | 78 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 71 insertions(+), 7 deletions(-) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index 5ee4b2b..23c5802 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -309,6 +309,7 @@ typedef struct tagLISTVIEW_INFO WCHAR szSearchParam[ MAX_PATH ]; BOOL bIsDrawing; INT nMeasureItemHeight; + INT xTrackLine; /* The x coefficient of the track line or -1 if none */ } LISTVIEW_INFO; /* @@ -7521,6 +7522,40 @@ static BOOL LISTVIEW_Update(LISTVIEW_INF return TRUE; } +/*** + * DESCRIPTION: + * Draw the track line at the place defined in the infoPtr structure. + * The line is drawn with a XOR pen so drawing the line for the second time + * in the same place erases the line. + * + * PARAMETER(S): + * [I] infoPtr : valid pointer to the listview structure + * + * RETURN: + * SUCCESS : TRUE + * FAILURE : FALSE + */ +static BOOL LISTVIEW_DrawTrackLine(LISTVIEW_INFO *infoPtr) +{ + HPEN hOldPen; + HDC hdc; + INT oldROP; + + if (infoPtr->xTrackLine == -1) + return FALSE; + + if (!(hdc = GetDC(infoPtr->hwndSelf))) + return FALSE; + hOldPen = SelectObject(hdc, GetStockObject(BLACK_PEN)); + oldROP = SetROP2(hdc, R2_XORPEN); + MoveToEx(hdc, infoPtr->xTrackLine, infoPtr->rcList.top, NULL); + LineTo(hdc, infoPtr->xTrackLine, infoPtr->rcList.bottom); + SetROP2(hdc, oldROP); + SelectObject(hdc, hOldPen); + ReleaseDC(infoPtr->hwndSelf, hdc); + return TRUE; +} + /*** * DESCRIPTION: @@ -7573,6 +7608,7 @@ static LRESULT LISTVIEW_Create(HWND hwnd infoPtr->nEditLabelItem = -1; infoPtr->dwHoverTime = -1; /* default system hover time */ infoPtr->nMeasureItemHeight = 0; + infoPtr->xTrackLine = -1; /* no track line */ /* get default font (icon title) */ SystemParametersInfoW(SPI_GETICONTITLELOGFONT, 0, &logFont, 0); @@ -7582,7 +7618,7 @@ static LRESULT LISTVIEW_Create(HWND hwnd /* create header */ infoPtr->hwndHeader = CreateWindowW(WC_HEADERW, NULL, - WS_CHILD | HDS_HORZ | (DWORD)((LVS_NOSORTHEADER & lpcs->style)?0:HDS_BUTTONS), + WS_CHILD | HDS_HORZ | HDS_FULLDRAG | (DWORD)((LVS_NOSORTHEADER & lpcs->style)?0:HDS_BUTTONS), 0, 0, 0, 0, hwnd, NULL, lpcs->hInstance, NULL); if (!infoPtr->hwndHeader) goto fail; @@ -8365,20 +8401,48 @@ static LRESULT LISTVIEW_HeaderNotificati switch (lpnmh->hdr.code) { + case HDN_TRACKW: + case HDN_TRACKA: + { + COLUMN_INFO *lpColumnInfo; + POINT ptOrigin; + INT x; + + if (!lpnmh->pitem || !(lpnmh->pitem->mask & HDI_WIDTH)) + break; + + /* remove the old line (if any) */ + LISTVIEW_DrawTrackLine(infoPtr); + + /* compute & draw the new line */ + lpColumnInfo = LISTVIEW_GetColumnInfo(infoPtr, lpnmh->iItem); + x = lpColumnInfo->rcHeader.left + lpnmh->pitem->cxy; + LISTVIEW_GetOrigin(infoPtr, &ptOrigin); + infoPtr->xTrackLine = x + ptOrigin.x; + LISTVIEW_DrawTrackLine(infoPtr); + break; + } + + case HDN_ENDTRACKA: + case HDN_ENDTRACKW: + /* remove the track line (if any) */ + LISTVIEW_DrawTrackLine(infoPtr); + infoPtr->xTrackLine = -1; + break; + case HDN_ITEMCHANGINGW: case HDN_ITEMCHANGINGA: return notify_forward_header(infoPtr, lpnmh); + case HDN_ITEMCHANGEDW: case HDN_ITEMCHANGEDA: - notify_forward_header(infoPtr, lpnmh); - if (!IsWindow(hwndSelf)) - break; - /* Fall through */ - case HDN_TRACKW: - case HDN_TRACKA: { COLUMN_INFO *lpColumnInfo; INT dx, cxy; + + notify_forward_header(infoPtr, lpnmh); + if (!IsWindow(hwndSelf)) + break; if (!lpnmh->pitem || !(lpnmh->pitem->mask & HDI_WIDTH)) {
1
0
0
0
← Newer
1
...
22
23
24
25
26
27
28
...
52
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Results per page:
10
25
50
100
200