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
November 2007
----- 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
3 participants
757 discussions
Start a n
N
ew thread
Stefan Dösinger : wined3d: Free the shader function when freeing the shader.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: 7a97d4e2ec0ee9a77217203cd8b94fd162ebc0bc URL:
http://source.winehq.org/git/wine.git/?a=commit;h=7a97d4e2ec0ee9a77217203cd…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Fri Nov 16 21:02:29 2007 +0100 wined3d: Free the shader function when freeing the shader. --- dlls/wined3d/baseshader.c | 1 + dlls/wined3d/wined3d_private.h | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-) diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index ff78a49..35d8d32 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -1119,6 +1119,7 @@ ULONG WINAPI IWineD3DBaseShaderImpl_Release(IWineD3DBaseShader *iface) { TRACE("(%p) : Releasing from %d\n", This, This->baseShader.ref); ref = InterlockedDecrement(&This->baseShader.ref); if (ref == 0) { + HeapFree(GetProcessHeap(), 0, This->baseShader.function); shader_delete_constant_list(&This->baseShader.constantsF); shader_delete_constant_list(&This->baseShader.constantsB); shader_delete_constant_list(&This->baseShader.constantsI); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 62fb834..dbcff48 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1884,7 +1884,7 @@ typedef struct IWineD3DBaseShaderClass SHADER_LIMITS limits; SHADER_PARSE_STATE parse_state; CONST SHADER_OPCODE *shader_ins; - CONST DWORD *function; + DWORD *function; UINT functionLength; GLuint prgId; BOOL is_compiled;
1
0
0
0
Stefan Dösinger : wined3d: Move IUnknown functions to IWineD3DBaseShader.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: bd9758068345da7b6de0cfc871ed488a4578aadf URL:
http://source.winehq.org/git/wine.git/?a=commit;h=bd9758068345da7b6de0cfc87…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Fri Nov 16 21:01:33 2007 +0100 wined3d: Move IUnknown functions to IWineD3DBaseShader. --- dlls/wined3d/baseshader.c | 40 +++++++++++++++++++++++++++++++++++++++- dlls/wined3d/device.c | 4 ++-- dlls/wined3d/pixelshader.c | 34 ++++++++-------------------------- dlls/wined3d/vertexshader.c | 30 ++++++------------------------ dlls/wined3d/wined3d_private.h | 11 +++++------ 5 files changed, 60 insertions(+), 59 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=bd9758068345da7b6de0c…
1
0
0
0
Stefan Dösinger : d3d8: Release the vertex declarations array when destroying the device.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: 6cecaa9852197de869af11a232e3a2699065f33a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=6cecaa9852197de869af11a23…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Fri Nov 16 17:25:12 2007 +0100 d3d8: Release the vertex declarations array when destroying the device. --- dlls/d3d8/device.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index 205120e..55ebe83 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -106,6 +106,7 @@ static ULONG WINAPI IDirect3DDevice8Impl_Release(LPDIRECT3DDEVICE8 iface) { for(i = 0; i < This->numConvertedDecls; i++) { IWineD3DVertexDeclaration_Release(This->decls[i].decl); } + HeapFree(GetProcessHeap(), 0, This->decls); IWineD3DDevice_Uninit3D(This->WineD3DDevice, D3D8CB_DestroyDepthStencilSurface, D3D8CB_DestroySwapChain); IWineD3DDevice_Release(This->WineD3DDevice);
1
0
0
0
Jacek Caban : shdocvw: Return correct error from WebBrowser::Quit.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: e37ca6f927b6daeeb0470a0b35f3fa6373485df7 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e37ca6f927b6daeeb0470a0b3…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Tue Nov 20 01:49:20 2007 +0100 shdocvw: Return correct error from WebBrowser::Quit. --- dlls/shdocvw/tests/webbrowser.c | 5 +++++ dlls/shdocvw/webbrowser.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c index bd56fe4..2659bc4 100644 --- a/dlls/shdocvw/tests/webbrowser.c +++ b/dlls/shdocvw/tests/webbrowser.c @@ -1147,6 +1147,11 @@ static void test_ie_funcs(IUnknown *unk) hres = IWebBrowser2_get_Application(wb, NULL); ok(hres == E_POINTER, "get_Application failed: %08x, expected E_POINTER\n", hres); + /* Quit */ + + hres = IWebBrowser2_Quit(wb); + ok(hres == E_FAIL, "Quit failed: %08x, expected E_FAIL\n", hres); + IWebBrowser2_Release(wb); } diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index 3e80f0f..79ae4a1 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -457,8 +457,11 @@ static HRESULT WINAPI WebBrowser_get_Busy(IWebBrowser2 *iface, VARIANT_BOOL *pBo static HRESULT WINAPI WebBrowser_Quit(IWebBrowser2 *iface) { WebBrowser *This = WEBBROWSER_THIS(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + + TRACE("(%p)\n", This); + + /* It's a InternetExplorer specific method, we have nothing to do here. */ + return E_FAIL; } static HRESULT WINAPI WebBrowser_ClientToWindow(IWebBrowser2 *iface, int *pcx, int *pcy)
1
0
0
0
Jacek Caban : shdocvw: Added WebBrowser::get_Application implementation.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: a8a1a2da5a22753c295f6bd5616f230fa42f77c4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a8a1a2da5a22753c295f6bd56…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Tue Nov 20 01:49:05 2007 +0100 shdocvw: Added WebBrowser::get_Application implementation. --- dlls/shdocvw/tests/webbrowser.c | 13 +++++++++++++ dlls/shdocvw/webbrowser.c | 11 +++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c index 796c47c..bd56fe4 100644 --- a/dlls/shdocvw/tests/webbrowser.c +++ b/dlls/shdocvw/tests/webbrowser.c @@ -984,6 +984,7 @@ static void test_ClassInfo(IUnknown *unk) static void test_ie_funcs(IUnknown *unk) { IWebBrowser2 *wb; + IDispatch *disp; VARIANT_BOOL b; int i; long hwnd; @@ -1134,6 +1135,18 @@ static void test_ie_funcs(IUnknown *unk) ok(hres == E_NOTIMPL, "get_Resizable failed: %08x\n", hres); ok(b == 0x100, "b=%x\n", b); + /* Application */ + + disp = NULL; + hres = IWebBrowser2_get_Application(wb, &disp); + ok(hres == S_OK, "get_Application failed: %08x\n", hres); + ok(disp == (void*)wb, "disp=%p, expected %p\n", disp, wb); + if(disp) + IDispatch_Release(disp); + + hres = IWebBrowser2_get_Application(wb, NULL); + ok(hres == E_POINTER, "get_Application failed: %08x, expected E_POINTER\n", hres); + IWebBrowser2_Release(wb); } diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index 49914f7..3e80f0f 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -260,8 +260,15 @@ static HRESULT WINAPI WebBrowser_Stop(IWebBrowser2 *iface) static HRESULT WINAPI WebBrowser_get_Application(IWebBrowser2 *iface, IDispatch **ppDisp) { WebBrowser *This = WEBBROWSER_THIS(iface); - FIXME("(%p)->(%p)\n", This, ppDisp); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, ppDisp); + + if(!ppDisp) + return E_POINTER; + + *ppDisp = (IDispatch*)WEBBROWSER2(This); + IDispatch_AddRef(*ppDisp); + return S_OK; } static HRESULT WINAPI WebBrowser_get_Parent(IWebBrowser2 *iface, IDispatch **ppDisp)
1
0
0
0
James Hawkins : msi: Check the cabinet's full path for existence, not just the cabinet name.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: 075e84bd90bc5dae9cb050d110281ce8ea1b7256 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=075e84bd90bc5dae9cb050d11…
Author: James Hawkins <truiken(a)gmail.com> Date: Mon Nov 19 12:51:34 2007 -0600 msi: Check the cabinet's full path for existence, not just the cabinet name. --- dlls/msi/files.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/msi/files.c b/dlls/msi/files.c index 94510c5..c50e420 100644 --- a/dlls/msi/files.c +++ b/dlls/msi/files.c @@ -639,9 +639,9 @@ static UINT ready_media(MSIPACKAGE *package, MSIFILE *file, struct media_info *m if (file->IsCompressed && mi->cabinet && mi->cabinet[0] != '#' && - GetFileAttributesW(mi->cabinet) == INVALID_FILE_ATTRIBUTES) + GetFileAttributesW(mi->source) == INVALID_FILE_ATTRIBUTES) { - ERR("Cabinet not found: %s\n", debugstr_w(mi->cabinet)); + ERR("Cabinet not found: %s\n", debugstr_w(mi->source)); return ERROR_INSTALL_FAILURE; }
1
0
0
0
Andrew Talbot : user32: Constify some variables.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: 49c0bd5dd5b8108ed98827595d1407a62dd208ea URL:
http://source.winehq.org/git/wine.git/?a=commit;h=49c0bd5dd5b8108ed98827595…
Author: Andrew Talbot <andrew.talbot(a)talbotville.com> Date: Mon Nov 19 15:46:20 2007 +0000 user32: Constify some variables. --- dlls/user32/edit.c | 38 +++++++++++++++++++------------------- 1 files changed, 19 insertions(+), 19 deletions(-) diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c index 958f4fe..d7c6499 100644 --- a/dlls/user32/edit.c +++ b/dlls/user32/edit.c @@ -184,7 +184,7 @@ typedef struct * We still like to call them internally * "static inline" makes them more like macro's */ -static inline BOOL EDIT_EM_CanUndo(EDITSTATE *es); +static inline BOOL EDIT_EM_CanUndo(const EDITSTATE *es); static inline void EDIT_EM_EmptyUndoBuffer(EDITSTATE *es); static inline void EDIT_WM_Clear(EDITSTATE *es); static inline void EDIT_WM_Cut(EDITSTATE *es); @@ -204,7 +204,7 @@ static void EDIT_MoveUp_ML(EDITSTATE *es, BOOL extend); */ static INT EDIT_CallWordBreakProc(EDITSTATE *es, INT start, INT index, INT count, INT action); static INT EDIT_CharFromPos(EDITSTATE *es, INT x, INT y, LPBOOL after_wrap); -static void EDIT_ConfinePoint(EDITSTATE *es, LPINT x, LPINT y); +static void EDIT_ConfinePoint(const EDITSTATE *es, LPINT x, LPINT y); static void EDIT_GetLineRect(EDITSTATE *es, INT line, INT scol, INT ecol, LPRECT rc); static void EDIT_InvalidateText(EDITSTATE *es, INT start, INT end); static void EDIT_LockBuffer(EDITSTATE *es); @@ -220,7 +220,7 @@ static void EDIT_PaintLine(EDITSTATE *es, HDC hdc, INT line, BOOL rev); static INT EDIT_PaintText(EDITSTATE *es, HDC hdc, INT x, INT y, INT line, INT col, INT count, BOOL rev); static void EDIT_SetCaretPos(EDITSTATE *es, INT pos, BOOL after_wrap); static void EDIT_AdjustFormatRect(EDITSTATE *es); -static void EDIT_SetRectNP(EDITSTATE *es, LPRECT lprc); +static void EDIT_SetRectNP(EDITSTATE *es, const RECT *lprc); static void EDIT_UnlockBuffer(EDITSTATE *es, BOOL force); static void EDIT_UpdateScrollInfo(EDITSTATE *es); static INT CALLBACK EDIT_WordBreakProc(LPWSTR s, INT index, INT count, INT action); @@ -232,10 +232,10 @@ static BOOL EDIT_EM_FmtLines(EDITSTATE *es, BOOL add_eol); static HLOCAL EDIT_EM_GetHandle(EDITSTATE *es); static HLOCAL16 EDIT_EM_GetHandle16(EDITSTATE *es); static INT EDIT_EM_GetLine(EDITSTATE *es, INT line, LPWSTR dst, BOOL unicode); -static LRESULT EDIT_EM_GetSel(EDITSTATE *es, PUINT start, PUINT end); +static LRESULT EDIT_EM_GetSel(const EDITSTATE *es, PUINT start, PUINT end); static LRESULT EDIT_EM_GetThumb(EDITSTATE *es); static INT EDIT_EM_LineFromChar(EDITSTATE *es, INT index); -static INT EDIT_EM_LineIndex(EDITSTATE *es, INT line); +static INT EDIT_EM_LineIndex(const EDITSTATE *es, INT line); static INT EDIT_EM_LineLength(EDITSTATE *es, INT index); static BOOL EDIT_EM_LineScroll(EDITSTATE *es, INT dx, INT dy); static BOOL EDIT_EM_LineScroll_internal(EDITSTATE *es, INT dx, INT dy); @@ -249,8 +249,8 @@ static void EDIT_EM_SetLimitText(EDITSTATE *es, UINT limit); static void EDIT_EM_SetMargins(EDITSTATE *es, INT action, WORD left, WORD right, BOOL repaint); static void EDIT_EM_SetPasswordChar(EDITSTATE *es, WCHAR c); static void EDIT_EM_SetSel(EDITSTATE *es, UINT start, UINT end, BOOL after_wrap); -static BOOL EDIT_EM_SetTabStops(EDITSTATE *es, INT count, LPINT tabs); -static BOOL EDIT_EM_SetTabStops16(EDITSTATE *es, INT count, LPINT16 tabs); +static BOOL EDIT_EM_SetTabStops(EDITSTATE *es, INT count, const INT *tabs); +static BOOL EDIT_EM_SetTabStops16(EDITSTATE *es, INT count, const INT16 *tabs); static void EDIT_EM_SetWordBreakProc(EDITSTATE *es, void *wbp); static void EDIT_EM_SetWordBreakProc16(EDITSTATE *es, EDITWORDBREAKPROC16 wbp); static BOOL EDIT_EM_Undo(EDITSTATE *es); @@ -264,7 +264,7 @@ static void EDIT_WM_Copy(EDITSTATE *es); static LRESULT EDIT_WM_Create(EDITSTATE *es, LPCWSTR name); static LRESULT EDIT_WM_Destroy(EDITSTATE *es); static LRESULT EDIT_WM_EraseBkGnd(EDITSTATE *es, HDC dc); -static INT EDIT_WM_GetText(EDITSTATE *es, INT count, LPWSTR dst, BOOL unicode); +static INT EDIT_WM_GetText(const EDITSTATE *es, INT count, LPWSTR dst, BOOL unicode); static LRESULT EDIT_WM_HScroll(EDITSTATE *es, INT action, INT pos); static LRESULT EDIT_WM_KeyDown(EDITSTATE *es, INT key); static LRESULT EDIT_WM_KillFocus(EDITSTATE *es); @@ -284,7 +284,7 @@ static LRESULT EDIT_WM_StyleChanged(EDITSTATE *es, WPARAM which, const STYLESTR static LRESULT EDIT_WM_SysKeyDown(EDITSTATE *es, INT key, DWORD key_data); static void EDIT_WM_Timer(EDITSTATE *es); static LRESULT EDIT_WM_VScroll(EDITSTATE *es, INT action, INT pos); -static void EDIT_UpdateText(EDITSTATE *es, LPRECT rc, BOOL bErase); +static void EDIT_UpdateText(EDITSTATE *es, const RECT *rc, BOOL bErase); static void EDIT_UpdateTextRegion(EDITSTATE *es, HRGN hrgn, BOOL bErase); static void EDIT_ImeComposition(HWND hwnd, LPARAM CompFlag, EDITSTATE *es); @@ -312,7 +312,7 @@ const struct builtin_class_descr EDIT_builtin_class = * EM_CANUNDO * */ -static inline BOOL EDIT_EM_CanUndo(EDITSTATE *es) +static inline BOOL EDIT_EM_CanUndo(const EDITSTATE *es) { return (es->undo_insert_count || strlenW(es->undo_text)); } @@ -1622,7 +1622,7 @@ static INT EDIT_CharFromPos(EDITSTATE *es, INT x, INT y, LPBOOL after_wrap) * (so CharFromPos returns the nearest _visible_ character) * */ -static void EDIT_ConfinePoint(EDITSTATE *es, LPINT x, LPINT y) +static void EDIT_ConfinePoint(const EDITSTATE *es, LPINT x, LPINT y) { *x = min(max(*x, es->format_rect.left), es->format_rect.right - 1); *y = min(max(*y, es->format_rect.top), es->format_rect.bottom - 1); @@ -2390,7 +2390,7 @@ static void EDIT_AdjustFormatRect(EDITSTATE *es) * it is also used to set the rect of a single line control * */ -static void EDIT_SetRectNP(EDITSTATE *es, LPRECT rc) +static void EDIT_SetRectNP(EDITSTATE *es, const RECT *rc) { LONG_PTR ExStyle; INT bw, bh; @@ -2855,7 +2855,7 @@ static INT EDIT_EM_GetLine(EDITSTATE *es, INT line, LPWSTR dst, BOOL unicode) * EM_GETSEL * */ -static LRESULT EDIT_EM_GetSel(EDITSTATE *es, PUINT start, PUINT end) +static LRESULT EDIT_EM_GetSel(const EDITSTATE *es, PUINT start, PUINT end) { UINT s = es->selection_start; UINT e = es->selection_end; @@ -2920,10 +2920,10 @@ static INT EDIT_EM_LineFromChar(EDITSTATE *es, INT index) * EM_LINEINDEX * */ -static INT EDIT_EM_LineIndex(EDITSTATE *es, INT line) +static INT EDIT_EM_LineIndex(const EDITSTATE *es, INT line) { INT line_index; - LINEDEF *line_def; + const LINEDEF *line_def; if (!(es->style & ES_MULTILINE)) return 0; @@ -3851,7 +3851,7 @@ static void EDIT_EM_SetSel(EDITSTATE *es, UINT start, UINT end, BOOL after_wrap) * EM_SETTABSTOPS * */ -static BOOL EDIT_EM_SetTabStops(EDITSTATE *es, INT count, LPINT tabs) +static BOOL EDIT_EM_SetTabStops(EDITSTATE *es, INT count, const INT *tabs) { if (!(es->style & ES_MULTILINE)) return FALSE; @@ -3872,7 +3872,7 @@ static BOOL EDIT_EM_SetTabStops(EDITSTATE *es, INT count, LPINT tabs) * EM_SETTABSTOPS16 * */ -static BOOL EDIT_EM_SetTabStops16(EDITSTATE *es, INT count, LPINT16 tabs) +static BOOL EDIT_EM_SetTabStops16(EDITSTATE *es, INT count, const INT16 *tabs) { if (!(es->style & ES_MULTILINE)) return FALSE; @@ -4275,7 +4275,7 @@ static LRESULT EDIT_WM_EraseBkGnd(EDITSTATE *es, HDC dc) * WM_GETTEXT * */ -static INT EDIT_WM_GetText(EDITSTATE *es, INT count, LPWSTR dst, BOOL unicode) +static INT EDIT_WM_GetText(const EDITSTATE *es, INT count, LPWSTR dst, BOOL unicode) { if(!count) return 0; @@ -5344,7 +5344,7 @@ static void EDIT_UpdateTextRegion(EDITSTATE *es, HRGN hrgn, BOOL bErase) * EDIT_UpdateText * */ -static void EDIT_UpdateText(EDITSTATE *es, LPRECT rc, BOOL bErase) +static void EDIT_UpdateText(EDITSTATE *es, const RECT *rc, BOOL bErase) { if (es->flags & EF_UPDATE) { es->flags &= ~EF_UPDATE;
1
0
0
0
Rob Shearman : credui: Display a warning balloon if the user has Caps Lock on.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: e35665fc47bb2c8cf8aba94331437248fe7d7d21 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e35665fc47bb2c8cf8aba9433…
Author: Rob Shearman <rob(a)codeweavers.com> Date: Mon Nov 19 18:31:44 2007 +0000 credui: Display a warning balloon if the user has Caps Lock on. --- dlls/credui/credui_En.rc | 2 + dlls/credui/credui_main.c | 191 +++++++++++++++++++++++++++++++++++----- dlls/credui/credui_resources.h | 2 + 3 files changed, 172 insertions(+), 23 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=e35665fc47bb2c8cf8aba…
1
0
0
0
Rob Shearman : credui: Show a balloon tip in the credential dialog if CREDUI_FLAGS_INCORRECT_PASSWORD was specified .
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: 110f6e99e7cf6131d3848ee1c7ace799cf04e49c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=110f6e99e7cf6131d3848ee1c…
Author: Rob Shearman <rob(a)codeweavers.com> Date: Mon Nov 19 18:20:52 2007 +0000 credui: Show a balloon tip in the credential dialog if CREDUI_FLAGS_INCORRECT_PASSWORD was specified. --- dlls/credui/credui_En.rc | 2 + dlls/credui/credui_main.c | 88 +++++++++++++++++++++++++++++++++++++++- dlls/credui/credui_resources.h | 2 + 3 files changed, 91 insertions(+), 1 deletions(-) diff --git a/dlls/credui/credui_En.rc b/dlls/credui/credui_En.rc index e049cc8..ed90196 100644 --- a/dlls/credui/credui_En.rc +++ b/dlls/credui/credui_En.rc @@ -43,4 +43,6 @@ STRINGTABLE DISCARDABLE { IDS_TITLEFORMAT "Connect to %s" IDS_MESSAGEFORMAT "Connecting to %s" + IDS_INCORRECTPASSWORDTITLE "Logon unsuccessful" + IDS_INCORRECTPASSWORD "Make sure that your user name\nand password are correct." } diff --git a/dlls/credui/credui_main.c b/dlls/credui/credui_main.c index 15da5f0..a2ef5ed 100644 --- a/dlls/credui/credui_main.c +++ b/dlls/credui/credui_main.c @@ -129,6 +129,7 @@ struct cred_dialog_params ULONG ulPasswordMaxChars; BOOL fSave; DWORD dwFlags; + HWND hwndBalloonTip; }; static void CredDialogFillUsernameCombo(HWND hwndUsername, struct cred_dialog_params *params) @@ -177,6 +178,68 @@ static void CredDialogFillUsernameCombo(HWND hwndUsername, struct cred_dialog_pa CredFree(credentials); } +static void CredDialogShowIncorrectPasswordBalloon(HWND hwndDlg, struct cred_dialog_params *params) +{ + TTTOOLINFOW toolinfo; + RECT rcPassword; + INT x; + INT y; + WCHAR wszTitle[256]; + WCHAR wszText[256]; + + /* user name likely wrong so balloon would be confusing. focus is also + * not set to the password edit box, so more notification would need to be + * handled */ + if (!params->pszUsername[0]) + return; + + if (!LoadStringW(hinstCredUI, IDS_INCORRECTPASSWORDTITLE, wszTitle, sizeof(wszTitle)/sizeof(wszTitle[0]))) + { + ERR("failed to load IDS_INCORRECTPASSWORDTITLE\n"); + return; + } + if (!LoadStringW(hinstCredUI, IDS_INCORRECTPASSWORD, wszText, sizeof(wszText)/sizeof(wszText[0]))) + { + ERR("failed to load IDS_INCORRECTPASSWORD\n"); + return; + } + + params->hwndBalloonTip = CreateWindowExW(WS_EX_TOOLWINDOW, TOOLTIPS_CLASSW, + NULL, WS_POPUP | TTS_NOPREFIX | TTS_BALLOON, CW_USEDEFAULT, + CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hwndDlg, NULL, + hinstCredUI, NULL); + SetWindowPos(params->hwndBalloonTip, HWND_TOPMOST, 0, 0, 0, 0, + SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); + + toolinfo.cbSize = sizeof(toolinfo); + toolinfo.uFlags = TTF_TRACK; + toolinfo.hwnd = hwndDlg; + toolinfo.uId = 0; + memset(&toolinfo.rect, 0, sizeof(toolinfo.rect)); + toolinfo.hinst = NULL; + toolinfo.lpszText = wszText; + toolinfo.lParam = 0; + toolinfo.lpReserved = NULL; + SendMessageW(params->hwndBalloonTip, TTM_ADDTOOLW, 0, (LPARAM)&toolinfo); + + SendMessageW(params->hwndBalloonTip, TTM_SETTITLEW, TTI_ERROR, (LPARAM)wszTitle); + + GetWindowRect(GetDlgItem(hwndDlg, IDC_PASSWORD), &rcPassword); + /* centred vertically and in the right side of the password edit control */ + x = rcPassword.right - 12; + y = (rcPassword.top + rcPassword.bottom) / 2; + SendMessageW(params->hwndBalloonTip, TTM_TRACKPOSITION, 0, MAKELONG(x, y)); + + SendMessageW(params->hwndBalloonTip, TTM_TRACKACTIVATE, TRUE, (LPARAM)&toolinfo); +} + +static void CredDialogHideBalloonTip(HWND hwndDlg, struct cred_dialog_params *params) +{ + /* we don't need the balloon tip again, so destroy it */ + DestroyWindow(params->hwndBalloonTip); + params->hwndBalloonTip = NULL; +} + static BOOL CredDialogInit(HWND hwndDlg, struct cred_dialog_params *params) { HWND hwndUsername = GetDlgItem(hwndDlg, IDC_USERNAME); @@ -224,6 +287,9 @@ static BOOL CredDialogInit(HWND hwndDlg, struct cred_dialog_params *params) else if (params->fSave) CheckDlgButton(hwndDlg, IDC_SAVE, BST_CHECKED); + if (params->dwFlags & CREDUI_FLAGS_INCORRECT_PASSWORD) + CredDialogShowIncorrectPasswordBalloon(hwndDlg, params); + return FALSE; } @@ -300,12 +366,31 @@ static INT_PTR CALLBACK CredDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LockSetForegroundWindow(LSFW_LOCK); return TRUE; case MAKELONG(IDC_PASSWORD, EN_KILLFOCUS): + { + struct cred_dialog_params *params = + (struct cred_dialog_params *)GetWindowLongPtrW(hwndDlg, DWLP_USER); /* the user is no longer typing their password, so allow * other windows to become foreground ones */ LockSetForegroundWindow(LSFW_UNLOCK); + CredDialogHideBalloonTip(hwndDlg, params); + return TRUE; + } + case MAKELONG(IDC_PASSWORD, EN_CHANGE): + { + struct cred_dialog_params *params = + (struct cred_dialog_params *)GetWindowLongPtrW(hwndDlg, DWLP_USER); + CredDialogHideBalloonTip(hwndDlg, params); return TRUE; + } } - /* fall through */ + return FALSE; + case WM_DESTROY: + { + struct cred_dialog_params *params = + (struct cred_dialog_params *)GetWindowLongPtrW(hwndDlg, DWLP_USER); + if (params->hwndBalloonTip) DestroyWindow(params->hwndBalloonTip); + return TRUE; + } default: return FALSE; } @@ -360,6 +445,7 @@ DWORD WINAPI CredUIPromptForCredentialsW(PCREDUI_INFOW pUIInfo, params.ulPasswordMaxChars = ulPasswordMaxChars; params.fSave = pfSave ? *pfSave : FALSE; params.dwFlags = dwFlags; + params.hwndBalloonTip = NULL; ret = DialogBoxParamW(hinstCredUI, MAKEINTRESOURCEW(IDD_CREDDIALOG), pUIInfo ? pUIInfo->hwndParent : NULL, diff --git a/dlls/credui/credui_resources.h b/dlls/credui/credui_resources.h index d7acae5..6070cda 100644 --- a/dlls/credui/credui_resources.h +++ b/dlls/credui/credui_resources.h @@ -27,3 +27,5 @@ #define IDS_TITLEFORMAT 300 #define IDS_MESSAGEFORMAT 301 +#define IDS_INCORRECTPASSWORDTITLE 302 +#define IDS_INCORRECTPASSWORD 303
1
0
0
0
Rob Shearman : urlmon: Fix a reference count leak in RegisterBindStatusCallback.
by Alexandre Julliard
20 Nov '07
20 Nov '07
Module: wine Branch: master Commit: 862aaaba5836737617d3cf3a561664f992ab0da4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=862aaaba5836737617d3cf3a5…
Author: Rob Shearman <rob(a)codeweavers.com> Date: Mon Nov 19 15:33:33 2007 +0000 urlmon: Fix a reference count leak in RegisterBindStatusCallback. --- dlls/urlmon/bindctx.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/dlls/urlmon/bindctx.c b/dlls/urlmon/bindctx.c index 9d24707..13dd987 100644 --- a/dlls/urlmon/bindctx.c +++ b/dlls/urlmon/bindctx.c @@ -520,7 +520,9 @@ HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pb IBindCtx_RevokeObjectParam(pbc, BSCBHolder); } - hres = IBindCtx_RegisterObjectParam(pbc, BSCBHolder, (IUnknown*)create_bsc(pbsc)); + bsc = create_bsc(pbsc); + hres = IBindCtx_RegisterObjectParam(pbc, BSCBHolder, (IUnknown*)bsc); + IBindStatusCallback_Release(bsc); if(FAILED(hres)) { IBindStatusCallback_Release(prev); return hres;
1
0
0
0
← Newer
1
...
19
20
21
22
23
24
25
...
76
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Results per page:
10
25
50
100
200