ReactOS.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
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
List overview
Download
Ros-diffs
November 2005
----- 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
ros-diffs@reactos.org
27 participants
875 discussions
Start a n
N
ew thread
[gvg] 19302: Wrong subdirectory
by gvg@svn.reactos.com
Wrong subdirectory Deleted: trunk/reactos/lib/dplay/ Deleted: trunk/reactos/lib/dplayx/
19 years, 1 month
1
0
0
0
[gvg] 19301: Wine-0_9_1 vendor import
by gvg@svn.reactos.com
Wine-0_9_1 vendor import Added: trunk/reactos/lib/dplay/ Added: trunk/reactos/lib/dplay/current/ Added: trunk/reactos/lib/dplayx/ Added: trunk/reactos/lib/dplayx/current/ Property changes on: trunk/reactos/lib/dplay ___________________________________________________________________ Name: svn:ignore + GNUmakefile _____ Copied: trunk/reactos/lib/dplay/current (from rev 19300, vendor/wine/dlls/dplay/current) Property changes on: trunk/reactos/lib/dplayx ___________________________________________________________________ Name: svn:ignore + GNUmakefile _____ Copied: trunk/reactos/lib/dplayx/current (from rev 19300, vendor/wine/dlls/dplayx/current)
19 years, 1 month
1
0
0
0
[gvg] 19300: Remove old dirs in preparation of vendor import
by gvg@svn.reactos.com
Remove old dirs in preparation of vendor import Deleted: trunk/reactos/lib/dplay/ Deleted: trunk/reactos/lib/dplayx/
19 years, 1 month
1
0
0
0
[gvg] 19299: Wine-0_9_1 vendor drop
by gvg@svn.reactos.com
Wine-0_9_1 vendor drop Added: vendor/wine/dlls/dplay/ Added: vendor/wine/dlls/dplay/current/ Added: vendor/wine/dlls/dplay/current/Makefile.in Added: vendor/wine/dlls/dplay/current/dplay.spec Added: vendor/wine/dlls/dplay/current/dplay_main.c Added: vendor/wine/dlls/dplay/current/version.rc Added: vendor/wine/dlls/dplayx/ Added: vendor/wine/dlls/dplayx/current/ Added: vendor/wine/dlls/dplayx/current/Makefile.in Added: vendor/wine/dlls/dplayx/current/dpclassfactory.c Added: vendor/wine/dlls/dplayx/current/dpinit.h Added: vendor/wine/dlls/dplayx/current/dplay.c Added: vendor/wine/dlls/dplayx/current/dplay_global.h Added: vendor/wine/dlls/dplayx/current/dplaysp.c Added: vendor/wine/dlls/dplayx/current/dplaysp.h Added: vendor/wine/dlls/dplayx/current/dplayx.spec Added: vendor/wine/dlls/dplayx/current/dplayx_global.c Added: vendor/wine/dlls/dplayx/current/dplayx_global.h Added: vendor/wine/dlls/dplayx/current/dplayx_main.c Added: vendor/wine/dlls/dplayx/current/dplayx_messages.c Added: vendor/wine/dlls/dplayx/current/dplayx_messages.h Added: vendor/wine/dlls/dplayx/current/dplayx_queue.h Added: vendor/wine/dlls/dplayx/current/dplobby.c Added: vendor/wine/dlls/dplayx/current/lobbysp.c Added: vendor/wine/dlls/dplayx/current/lobbysp.h Added: vendor/wine/dlls/dplayx/current/name_server.c Added: vendor/wine/dlls/dplayx/current/name_server.h Added: vendor/wine/dlls/dplayx/current/regsvr.c Added: vendor/wine/dlls/dplayx/current/version.rc _____ Added: vendor/wine/dlls/dplay/current/Makefile.in --- vendor/wine/dlls/dplay/current/Makefile.in 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplay/current/Makefile.in 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1,15 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = dplay.dll +IMPORTLIB = libdplay.$(IMPLIBEXT) +IMPORTS = dplayx kernel32 + +C_SRCS = dplay_main.c + +RC_SRCS = version.rc + +@MAKE_DLL_RULES@ + +### Dependencies: Property changes on: vendor/wine/dlls/dplay/current/Makefile.in ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native _____ Added: vendor/wine/dlls/dplay/current/dplay.spec --- vendor/wine/dlls/dplay/current/dplay.spec 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplay/current/dplay.spec 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1,4 @@ +# First DirectPlay dll. Replaced by dplayx.dll. + +@ stdcall DirectPlayCreate(ptr ptr ptr) dplayx.DirectPlayCreate +@ stdcall DirectPlayEnumerate(ptr ptr) dplayx.DirectPlayEnumerate _____ Added: vendor/wine/dlls/dplay/current/dplay_main.c --- vendor/wine/dlls/dplay/current/dplay_main.c 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplay/current/dplay_main.c 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1 @@ +/* nothing here yet */ Property changes on: vendor/wine/dlls/dplay/current/dplay_main.c ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native _____ Added: vendor/wine/dlls/dplay/current/version.rc --- vendor/wine/dlls/dplay/current/version.rc 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplay/current/version.rc 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1,27 @@ +/* + * Copyright 2004 Tom Wickline + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#define WINE_OLESELFREGISTER +#define WINE_FILEDESCRIPTION_STR "Wine DirectPlay" +#define WINE_FILENAME_STR "dplay.dll" +#define WINE_FILEVERSION 5,3,0,900 +#define WINE_FILEVERSION_STR "5.3.0.900" +#define WINE_PRODUCTVERSION 5,3,0,900 +#define WINE_PRODUCTVERSION_STR "5.3" + +#include "wine/wine_common_ver.rc" Property changes on: vendor/wine/dlls/dplay/current/version.rc ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native _____ Added: vendor/wine/dlls/dplayx/current/Makefile.in --- vendor/wine/dlls/dplayx/current/Makefile.in 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplayx/current/Makefile.in 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1,27 @@ +EXTRADEFS = -DCOM_NO_WINDOWS_H +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = dplayx.dll +IMPORTLIB = libdplayx.$(IMPLIBEXT) +IMPORTS = winmm ole32 user32 advapi32 kernel32 +EXTRALIBS = -ldxguid -luuid + +C_SRCS = \ + dpclassfactory.c \ + dplay.c \ + dplaysp.c \ + dplayx_global.c \ + dplayx_main.c \ + dplayx_messages.c \ + dplobby.c \ + lobbysp.c \ + name_server.c \ + regsvr.c + +RC_SRCS = version.rc + +@MAKE_DLL_RULES@ + +### Dependencies: Property changes on: vendor/wine/dlls/dplayx/current/Makefile.in ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native _____ Added: vendor/wine/dlls/dplayx/current/dpclassfactory.c --- vendor/wine/dlls/dplayx/current/dpclassfactory.c 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplayx/current/dpclassfactory.c 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1,134 @@ +/* COM class factory for direct play lobby interfaces. + * + * Copyright 1999, 2000 Peter Hunnisett + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <stdarg.h> +#include <string.h> + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "winerror.h" +#include "wine/debug.h" +#include "dpinit.h" + +WINE_DEFAULT_DEBUG_CHANNEL(dplay); + + +/********************************************************************** ********* + * DirectPlayLobby ClassFactory + */ + +typedef struct +{ + /* IUnknown fields */ + const IClassFactoryVtbl *lpVtbl; + LONG ref; +} IClassFactoryImpl; + +static HRESULT WINAPI +DP_and_DPL_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) { + IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + + FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj); + + return E_NOINTERFACE; +} + +static ULONG WINAPI +DP_and_DPL_AddRef(LPCLASSFACTORY iface) { + IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + return InterlockedIncrement(&This->ref); +} + +static ULONG WINAPI DP_and_DPL_Release(LPCLASSFACTORY iface) { + IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + /* static class (reference starts @ 1), won't ever be freed */ + return InterlockedDecrement(&This->ref); +} + +static HRESULT WINAPI DP_and_DPL_CreateInstance( + LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj +) { + IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + + TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj); + + if ( DPL_CreateInterface( riid, ppobj ) == S_OK ) + { + return S_OK; + } + else if ( DP_CreateInterface( riid, ppobj ) == S_OK ) + { + return S_OK; + } + + return E_NOINTERFACE; +} + +static HRESULT WINAPI DP_and_DPL_LockServer(LPCLASSFACTORY iface,BOOL dolock) { + IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + FIXME("(%p)->(%d),stub!\n",This,dolock); + return S_OK; +} + +static const IClassFactoryVtbl DP_and_DPL_Vtbl = { + DP_and_DPL_QueryInterface, + DP_and_DPL_AddRef, + DP_and_DPL_Release, + DP_and_DPL_CreateInstance, + DP_and_DPL_LockServer +}; + +static IClassFactoryImpl DP_and_DPL_CF = {&DP_and_DPL_Vtbl, 1 }; + + +/********************************************************************** ********* + * DllGetClassObject [DPLAYX.@] + * Retrieves DP or DPL class object from a DLL object + * + * NOTES + * Docs say returns STDAPI + * + * PARAMS + * rclsid [I] CLSID for the class object + * riid [I] Reference to identifier of interface for class object + * ppv [O] Address of variable to receive interface pointer for riid + * + * RETURNS + * Success: S_OK + * Failure: CLASS_E_CLASSNOTAVAILABLE, E_OUTOFMEMORY, E_INVALIDARG, + * E_UNEXPECTED + */ +HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) +{ + TRACE("(%p,%p,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv); + + if ( IsEqualCLSID( riid, &IID_IClassFactory ) ) + { + *ppv = (LPVOID)&DP_and_DPL_CF; + IClassFactory_AddRef( (IClassFactory*)*ppv ); + + return S_OK; + } + + ERR("(%p,%p,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv); + return CLASS_E_CLASSNOTAVAILABLE; +} Property changes on: vendor/wine/dlls/dplayx/current/dpclassfactory.c ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native _____ Added: vendor/wine/dlls/dplayx/current/dpinit.h --- vendor/wine/dlls/dplayx/current/dpinit.h 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplayx/current/dpinit.h 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1,37 @@ +/* + * Copyright 1999, 2000 Peter Hunnisett + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_DPINIT_H +#define __WINE_DPINIT_H + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wtypes.h" +#include "dplay_global.h" + +extern HRESULT DP_CreateInterface( REFIID riid, LPVOID* ppvObj ); +extern HRESULT DPL_CreateInterface( REFIID riid, LPVOID* ppvObj ); +extern HRESULT DPSP_CreateInterface( REFIID riid, LPVOID* ppvObj, + IDirectPlay2Impl* dp ); +extern HRESULT DPLSP_CreateInterface( REFIID riid, LPVOID* ppvObj, + IDirectPlay2Impl* dp ); + + +#endif Property changes on: vendor/wine/dlls/dplayx/current/dpinit.h ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native _____ Added: vendor/wine/dlls/dplayx/current/dplay.c --- vendor/wine/dlls/dplayx/current/dplay.c 2005-11-17 19:50:28 UTC (rev 19298) +++ vendor/wine/dlls/dplayx/current/dplay.c 2005-11-17 19:58:10 UTC (rev 19299) @@ -0,0 +1,5451 @@ +/* Direct Play 2,3,4 Implementation + * + * Copyright 1998,1999,2000,2001 - Peter Hunnisett + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "config.h" +#include "wine/port.h" + +#include <stdarg.h> +#include <string.h> + +#define NONAMELESSUNION +#define NONAMELESSSTRUCT +#include "windef.h" +#include "winerror.h" +#include "winbase.h" +#include "winnt.h" +#include "winreg.h" +#include "winnls.h" +#include "wine/unicode.h" +#include "wine/debug.h" + +#include "dpinit.h" +#include "dplayx_global.h" +#include "name_server.h" +#include "dplayx_queue.h" +#include "dplaysp.h" +#include "dplay_global.h" + +WINE_DEFAULT_DEBUG_CHANNEL(dplay); + +/* FIXME: Should this be externed? */ +extern HRESULT DPL_CreateCompoundAddress +( LPCDPCOMPOUNDADDRESSELEMENT lpElements, DWORD dwElementCount, + LPVOID lpAddress, LPDWORD lpdwAddressSize, BOOL bAnsiInterface ); + + +/* Local function prototypes */ +static lpPlayerList DP_FindPlayer( IDirectPlay2AImpl* This, DPID dpid ); +static lpPlayerData DP_CreatePlayer( IDirectPlay2Impl* iface, LPDPID lpid, + LPDPNAME lpName, DWORD dwFlags, + HANDLE hEvent, BOOL bAnsi ); +static BOOL DP_CopyDPNAMEStruct( LPDPNAME lpDst, LPDPNAME lpSrc, BOOL bAnsi ); +static void DP_SetPlayerData( lpPlayerData lpPData, DWORD dwFlags, + LPVOID lpData, DWORD dwDataSize ); + +static lpGroupData DP_CreateGroup( IDirectPlay2AImpl* iface, LPDPID lpid, + LPDPNAME lpName, DWORD dwFlags, + DPID idParent, BOOL bAnsi ); +static void DP_SetGroupData( lpGroupData lpGData, DWORD dwFlags, + LPVOID lpData, DWORD dwDataSize ); +static void DP_DeleteDPNameStruct( LPDPNAME lpDPName ); +static void DP_DeletePlayer( IDirectPlay2Impl* This, DPID dpid ); +static BOOL CALLBACK cbDeletePlayerFromAllGroups( DPID dpId, + DWORD dwPlayerType, + LPCDPNAME lpName, + DWORD dwFlags, + LPVOID lpContext ); +static lpGroupData DP_FindAnyGroup( IDirectPlay2AImpl* This, DPID dpid ); +static BOOL CALLBACK cbRemoveGroupOrPlayer( DPID dpId, DWORD dwPlayerType, + LPCDPNAME lpName, DWORD dwFlags, + LPVOID lpContext ); +static void DP_DeleteGroup( IDirectPlay2Impl* This, DPID dpid ); + +/* Forward declarations of virtual tables */ +static const IDirectPlay2Vtbl directPlay2AVT; +static const IDirectPlay3Vtbl directPlay3AVT; +static const IDirectPlay4Vtbl directPlay4AVT; + +static const IDirectPlay2Vtbl directPlay2WVT; +static const IDirectPlay3Vtbl directPlay3WVT; +static const IDirectPlay4Vtbl directPlay4WVT; + +/* Helper methods for player/group interfaces */ +static HRESULT WINAPI DP_IF_DeletePlayerFromGroup + ( IDirectPlay2Impl* This, LPVOID lpMsgHdr, DPID idGroup, + DPID idPlayer, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_CreatePlayer + ( IDirectPlay2Impl* This, LPVOID lpMsgHdr, LPDPID lpidPlayer, + LPDPNAME lpPlayerName, HANDLE hEvent, LPVOID lpData, + DWORD dwDataSize, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_DestroyGroup + ( IDirectPlay2Impl* This, LPVOID lpMsgHdr, DPID idGroup, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_DestroyPlayer + ( IDirectPlay2Impl* This, LPVOID lpMsgHdr, DPID idPlayer, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_EnumGroupPlayers + ( IDirectPlay2Impl* This, DPID idGroup, LPGUID lpguidInstance, + LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, + LPVOID lpContext, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_EnumGroups + ( IDirectPlay2Impl* This, LPGUID lpguidInstance, + LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, + LPVOID lpContext, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_EnumPlayers + ( IDirectPlay2Impl* This, LPGUID lpguidInstance, + LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, + LPVOID lpContext, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetGroupData + ( IDirectPlay2Impl* This, DPID idGroup, LPVOID lpData, + LPDWORD lpdwDataSize, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetGroupName + ( IDirectPlay2Impl* This, DPID idGroup, LPVOID lpData, + LPDWORD lpdwDataSize, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetPlayerData + ( IDirectPlay2Impl* This, DPID idPlayer, LPVOID lpData, + LPDWORD lpdwDataSize, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetPlayerName + ( IDirectPlay2Impl* This, DPID idPlayer, LPVOID lpData, + LPDWORD lpdwDataSize, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_SetGroupName + ( IDirectPlay2Impl* This, DPID idGroup, LPDPNAME lpGroupName, + DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_SetPlayerData + ( IDirectPlay2Impl* This, DPID idPlayer, LPVOID lpData, + DWORD dwDataSize, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_SetPlayerName + ( IDirectPlay2Impl* This, DPID idPlayer, LPDPNAME lpPlayerName, + DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_AddGroupToGroup + ( IDirectPlay3Impl* This, DPID idParentGroup, DPID idGroup ); +static HRESULT WINAPI DP_IF_CreateGroup + ( IDirectPlay2AImpl* This, LPVOID lpMsgHdr, LPDPID lpidGroup, + LPDPNAME lpGroupName, LPVOID lpData, DWORD dwDataSize, + DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_CreateGroupInGroup + ( IDirectPlay3Impl* This, LPVOID lpMsgHdr, DPID idParentGroup, + LPDPID lpidGroup, LPDPNAME lpGroupName, LPVOID lpData, + DWORD dwDataSize, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_AddPlayerToGroup + ( IDirectPlay2Impl* This, LPVOID lpMsgHdr, DPID idGroup, + DPID idPlayer, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_DeleteGroupFromGroup + ( IDirectPlay3Impl* This, DPID idParentGroup, DPID idGroup ); +static HRESULT WINAPI DP_SetSessionDesc + ( IDirectPlay2Impl* This, LPCDPSESSIONDESC2 lpSessDesc, + DWORD dwFlags, BOOL bInitial, BOOL bAnsi ); +static HRESULT WINAPI DP_SecureOpen + ( IDirectPlay2Impl* This, LPCDPSESSIONDESC2 lpsd, DWORD dwFlags, + LPCDPSECURITYDESC lpSecurity, LPCDPCREDENTIALS lpCredentials, + BOOL bAnsi ); +static HRESULT WINAPI DP_SendEx + ( IDirectPlay2Impl* This, DPID idFrom, DPID idTo, DWORD dwFlags, + LPVOID lpData, DWORD dwDataSize, DWORD dwPriority, DWORD dwTimeout, + LPVOID lpContext, LPDWORD lpdwMsgID, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_Receive + ( IDirectPlay2Impl* This, LPDPID lpidFrom, LPDPID lpidTo, + DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetMessageQueue + ( IDirectPlay4Impl* This, DPID idFrom, DPID idTo, DWORD dwFlags, + LPDWORD lpdwNumMsgs, LPDWORD lpdwNumBytes, BOOL bAnsi ); +static HRESULT WINAPI DP_SP_SendEx + ( IDirectPlay2Impl* This, DWORD dwFlags, + LPVOID lpData, DWORD dwDataSize, DWORD dwPriority, DWORD dwTimeout, + LPVOID lpContext, LPDWORD lpdwMsgID ); +static HRESULT WINAPI DP_IF_SetGroupData + ( IDirectPlay2Impl* This, DPID idGroup, LPVOID lpData, + DWORD dwDataSize, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetPlayerCaps + ( IDirectPlay2Impl* This, DPID idPlayer, LPDPCAPS lpDPCaps, + DWORD dwFlags ); +static HRESULT WINAPI DP_IF_Close( IDirectPlay2Impl* This, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_CancelMessage + ( IDirectPlay4Impl* This, DWORD dwMsgID, DWORD dwFlags, + DWORD dwMinPriority, DWORD dwMaxPriority, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_EnumGroupsInGroup + ( IDirectPlay3AImpl* This, DPID idGroup, LPGUID lpguidInstance, + LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, + LPVOID lpContext, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetGroupParent + ( IDirectPlay3AImpl* This, DPID idGroup, LPDPID lpidGroup, + BOOL bAnsi ); +static HRESULT WINAPI DP_IF_GetCaps + ( IDirectPlay2Impl* This, LPDPCAPS lpDPCaps, DWORD dwFlags ); +static HRESULT WINAPI DP_IF_EnumSessions + ( IDirectPlay2Impl* This, LPDPSESSIONDESC2 lpsd, DWORD dwTimeout, + LPDPENUMSESSIONSCALLBACK2 lpEnumSessionsCallback2, + LPVOID lpContext, DWORD dwFlags, BOOL bAnsi ); +static HRESULT WINAPI DP_IF_InitializeConnection + ( IDirectPlay3Impl* This, LPVOID lpConnection, DWORD dwFlags, BOOL bAnsi ); +static BOOL CALLBACK cbDPCreateEnumConnections( LPCGUID lpguidSP, + LPVOID lpConnection, DWORD dwConnectionSize, LPCDPNAME lpName, + DWORD dwFlags, LPVOID lpContext ); +static BOOL WINAPI DP_BuildSPCompoundAddr( LPGUID lpcSpGuid, LPVOID* lplpAddrBuf, + LPDWORD lpdwBufSize ); + + + +static inline DPID DP_NextObjectId(void); +static DPID DP_GetRemoteNextObjectId(void); + + +static void DP_CopySessionDesc( LPDPSESSIONDESC2 destSessionDesc, + LPCDPSESSIONDESC2 srcSessDesc, BOOL bAnsi ); + + +static HMODULE DP_LoadSP( LPCGUID lpcGuid, LPSPINITDATA lpSpData, LPBOOL lpbIsDpSp ); +static HRESULT DP_InitializeDPSP( IDirectPlay3Impl* This, HMODULE hServiceProvider ); +static HRESULT DP_InitializeDPLSP( IDirectPlay3Impl* This, HMODULE hServiceProvider ); + + + + + + +#define DPID_NOPARENT_GROUP 0 /* Magic number to indicate no parent of group */ +#define DPID_SYSTEM_GROUP DPID_NOPARENT_GROUP /* If system group is supported + we don't have to change much */ +#define DPID_NAME_SERVER 0x19a9d65b /* Don't ask me why */ + +/* Strip out dwFlag values which cannot be sent in the CREATEGROUP msg */ +#define DPMSG_CREATEGROUP_DWFLAGS(x) ( (x) & DPGROUP_HIDDEN ) + +/* Strip out all dwFlags values for CREATEPLAYER msg */ +#define DPMSG_CREATEPLAYER_DWFLAGS(x) 0 + +static LONG kludgePlayerGroupId = 1000; + +/* ------------------------------------------------------------------ */ + + +static BOOL DP_CreateIUnknown( LPVOID lpDP ) +{ + IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP; + + This->unk = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof( *(This->unk) ) ); + if ( This->unk == NULL ) + { + return FALSE; + } + + InitializeCriticalSection( &This->unk->DP_lock ); + + return TRUE; +} + +static BOOL DP_DestroyIUnknown( LPVOID lpDP ) +{ + IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP; + + DeleteCriticalSection( &This->unk->DP_lock ); + HeapFree( GetProcessHeap(), 0, This->unk ); + + return TRUE; +} + +static BOOL DP_CreateDirectPlay2( LPVOID lpDP ) +{ + IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP; + + This->dp2 = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof( *(This->dp2) ) ); + if ( This->dp2 == NULL ) + { + return FALSE; + } + + This->dp2->bConnectionOpen = FALSE; + + This->dp2->hEnumSessionThread = INVALID_HANDLE_VALUE; + + This->dp2->bHostInterface = FALSE; + + DPQ_INIT(This->dp2->receiveMsgs); + DPQ_INIT(This->dp2->sendMsgs); + DPQ_INIT(This->dp2->replysExpected); + + if( !NS_InitializeSessionCache( &This->dp2->lpNameServerData ) ) + { + /* FIXME: Memory leak */ + return FALSE; + } + + /* Provide an initial session desc with nothing in it */ + This->dp2->lpSessionDesc = HeapAlloc( GetProcessHeap(), + HEAP_ZERO_MEMORY, + sizeof( *This->dp2->lpSessionDesc ) ); + if( This->dp2->lpSessionDesc == NULL ) + { + /* FIXME: Memory leak */ + return FALSE; + } + This->dp2->lpSessionDesc->dwSize = sizeof( *This->dp2->lpSessionDesc ); + + /* We are emulating a dp 6 implementation */ + This->dp2->spData.dwSPVersion = DPSP_MAJORVERSION; + + This->dp2->spData.lpCB = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof( *This->dp2->spData.lpCB ) ); + This->dp2->spData.lpCB->dwSize = sizeof( *This->dp2->spData.lpCB ); + This->dp2->spData.lpCB->dwVersion = DPSP_MAJORVERSION; + + /* This is the pointer to the service provider */ + if( FAILED( DPSP_CreateInterface( &IID_IDirectPlaySP, + (LPVOID*)&This->dp2->spData.lpISP, This ) ) + ) + { + /* FIXME: Memory leak */ + return FALSE; + } + + /* Setup lobby provider information */ + This->dp2->dplspData.dwSPVersion = DPSP_MAJORVERSION; + This->dp2->dplspData.lpCB = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof( *This->dp2->dplspData.lpCB ) ); + This->dp2->dplspData.lpCB->dwSize = sizeof( *This->dp2->dplspData.lpCB ); + + if( FAILED( DPLSP_CreateInterface( &IID_IDPLobbySP, + (LPVOID*)&This->dp2->dplspData.lpISP, This ) ) + ) + { + /* FIXME: Memory leak */ + return FALSE; + } + + return TRUE; +} + +/* Definition of the global function in dplayx_queue.h. # + * FIXME: Would it be better to have a dplayx_queue.c for this function? */ +DPQ_DECL_DELETECB( cbDeleteElemFromHeap, LPVOID ) +{ + HeapFree( GetProcessHeap(), 0, elem ); +} + +/* Function to delete the list of groups with this interface. Needs to + * delete the group and player lists associated with this group as well + * as the group data associated with this group. It should not delete + * player data as that is shared with the top player list and will be + * deleted with that. + */ +DPQ_DECL_DELETECB( cbDeleteGroupsElem, lpGroupList ); +DPQ_DECL_DELETECB( cbDeleteGroupsElem, lpGroupList ) +{ + DPQ_DELETEQ( elem->lpGData->groups, groups, + lpGroupList, cbDeleteElemFromHeap ); + DPQ_DELETEQ( elem->lpGData->players, players, + lpPlayerList, cbDeleteElemFromHeap ); + HeapFree( GetProcessHeap(), 0, elem->lpGData ); + HeapFree( GetProcessHeap(), 0, elem ); +} + +/* Function to delete the list of players with this interface. Needs to + * delete the player data for all players as well. + */ +DPQ_DECL_DELETECB( cbDeletePlayerElem, lpPlayerList ); +DPQ_DECL_DELETECB( cbDeletePlayerElem, lpPlayerList ) +{ + HeapFree( GetProcessHeap(), 0, elem->lpPData ); + HeapFree( GetProcessHeap(), 0, elem ); +} + +static BOOL DP_DestroyDirectPlay2( LPVOID lpDP ) +{ + IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP; + + if( This->dp2->hEnumSessionThread != INVALID_HANDLE_VALUE ) + { + TerminateThread( This->dp2->hEnumSessionThread, 0 ); + CloseHandle( This->dp2->hEnumSessionThread ); + } + + /* Finish with the SP - have it shutdown */ + if( This->dp2->spData.lpCB->ShutdownEx ) + { + DPSP_SHUTDOWNDATA data; + + TRACE( "Calling SP ShutdownEx\n" ); + + data.lpISP = This->dp2->spData.lpISP; + + (*This->dp2->spData.lpCB->ShutdownEx)( &data ); + } + else if (This->dp2->spData.lpCB->Shutdown ) /* obsolete interface */ + { + TRACE( "Calling obsolete SP Shutdown\n" ); + (*This->dp2->spData.lpCB->Shutdown)(); + } + + /* Unload the SP (if it exists) */ + if( This->dp2->hServiceProvider != 0 ) + { + FreeLibrary( This->dp2->hServiceProvider ); + } + + /* Unload the Lobby Provider (if it exists) */ + if( This->dp2->hDPLobbyProvider != 0 ) + { + FreeLibrary( This->dp2->hDPLobbyProvider ); + } + +#if 0 + DPQ_DELETEQ( This->dp2->players, players, lpPlayerList, cbDeletePlayerElem ); + DPQ_DELETEQ( This->dp2->groups, groups, lpGroupList, cbDeleteGroupsElem ); +#endif + + /* FIXME: Need to delete receive and send msgs queue contents */ + + NS_DeleteSessionCache( This->dp2->lpNameServerData ); + + HeapFree( GetProcessHeap(), 0, This->dp2->lpSessionDesc ); + + IDirectPlaySP_Release( This->dp2->spData.lpISP ); + + /* Delete the contents */ + HeapFree( GetProcessHeap(), 0, This->dp2 ); + + return TRUE; +} + +static BOOL DP_CreateDirectPlay3( LPVOID lpDP ) +{ + IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)lpDP; + + This->dp3 = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof( *(This->dp3) ) ); + if ( This->dp3 == NULL ) + { + return FALSE; + } + + return TRUE; +} + +static BOOL DP_DestroyDirectPlay3( LPVOID lpDP ) +{ + IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)lpDP; + + /* Delete the contents */ + HeapFree( GetProcessHeap(), 0, This->dp3 ); + + return TRUE; +} + +static BOOL DP_CreateDirectPlay4( LPVOID lpDP ) +{ + IDirectPlay4AImpl *This = (IDirectPlay4AImpl *)lpDP; + + This->dp4 = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof( *(This->dp4) ) ); + if ( This->dp4 == NULL ) + { + return FALSE; + } + + return TRUE; +} + +static BOOL DP_DestroyDirectPlay4( LPVOID lpDP ) +{ + IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)lpDP; + + /* Delete the contents */ + HeapFree( GetProcessHeap(), 0, This->dp4 ); + + return TRUE; +} + + +/* Create a new interface */ +extern +HRESULT DP_CreateInterface + ( REFIID riid, LPVOID* ppvObj ) +{ + TRACE( " for %s\n", debugstr_guid( riid ) ); + + *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof( IDirectPlay2Impl ) ); + + if( *ppvObj == NULL ) + { + return DPERR_OUTOFMEMORY; + } + + if( IsEqualGUID( &IID_IDirectPlay2, riid ) ) + { + IDirectPlay2Impl *This = (IDirectPlay2Impl *)*ppvObj; + This->lpVtbl = &directPlay2WVT; + } + else if( IsEqualGUID( &IID_IDirectPlay2A, riid ) ) + { + IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)*ppvObj; + This->lpVtbl = &directPlay2AVT; + } + else if( IsEqualGUID( &IID_IDirectPlay3, riid ) ) + { + IDirectPlay3Impl *This = (IDirectPlay3Impl *)*ppvObj; + This->lpVtbl = &directPlay3WVT; + } + else if( IsEqualGUID( &IID_IDirectPlay3A, riid ) ) + { + IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)*ppvObj; + This->lpVtbl = &directPlay3AVT; + } + else if( IsEqualGUID( &IID_IDirectPlay4, riid ) ) + { + IDirectPlay4Impl *This = (IDirectPlay4Impl *)*ppvObj; + This->lpVtbl = &directPlay4WVT; + } + else if( IsEqualGUID( &IID_IDirectPlay4A, riid ) ) + { + IDirectPlay4AImpl *This = (IDirectPlay4AImpl *)*ppvObj; + This->lpVtbl = &directPlay4AVT; + } + else + { + /* Unsupported interface */ + HeapFree( GetProcessHeap(), 0, *ppvObj ); + *ppvObj = NULL; + + return E_NOINTERFACE; + } + + /* Initialize it */ + if ( DP_CreateIUnknown( *ppvObj ) && + DP_CreateDirectPlay2( *ppvObj ) && + DP_CreateDirectPlay3( *ppvObj ) && + DP_CreateDirectPlay4( *ppvObj ) + ) + { + IDirectPlayX_AddRef( (LPDIRECTPLAY2A)*ppvObj ); + + return S_OK; + } + + /* Initialize failed, destroy it */ + DP_DestroyDirectPlay4( *ppvObj ); + DP_DestroyDirectPlay3( *ppvObj ); + DP_DestroyDirectPlay2( *ppvObj ); + DP_DestroyIUnknown( *ppvObj ); + + HeapFree( GetProcessHeap(), 0, *ppvObj ); + + *ppvObj = NULL; + return DPERR_NOMEMORY; +} + + +/* Direct Play methods */ + +/* Shared between all dplay types */ +static HRESULT WINAPI DP_QueryInterface + ( LPDIRECTPLAY2 iface, REFIID riid, LPVOID* ppvObj ) +{ + IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface; + TRACE("(%p)->(%s,%p)\n", This, debugstr_guid( riid ), ppvObj ); + + *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof( *This ) ); + + if( *ppvObj == NULL ) + { + return DPERR_OUTOFMEMORY; + } + + CopyMemory( *ppvObj, This, sizeof( *This ) ); + (*(IDirectPlay2Impl**)ppvObj)->ulInterfaceRef = 0; + + if( IsEqualGUID( &IID_IDirectPlay2, riid ) ) + { + IDirectPlay2Impl *This = (IDirectPlay2Impl *)*ppvObj; + This->lpVtbl = &directPlay2WVT; + } + else if( IsEqualGUID( &IID_IDirectPlay2A, riid ) ) + { + IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)*ppvObj; + This->lpVtbl = &directPlay2AVT; + } + else if( IsEqualGUID( &IID_IDirectPlay3, riid ) ) + { + IDirectPlay3Impl *This = (IDirectPlay3Impl *)*ppvObj; + This->lpVtbl = &directPlay3WVT; + } + else if( IsEqualGUID( &IID_IDirectPlay3A, riid ) ) + { + IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)*ppvObj; + This->lpVtbl = &directPlay3AVT; + } + else if( IsEqualGUID( &IID_IDirectPlay4, riid ) ) + { + IDirectPlay4Impl *This = (IDirectPlay4Impl *)*ppvObj; + This->lpVtbl = &directPlay4WVT; + } + else if( IsEqualGUID( &IID_IDirectPlay4A, riid ) ) + { + IDirectPlay4AImpl *This = (IDirectPlay4AImpl *)*ppvObj; + This->lpVtbl = &directPlay4AVT; + } + else + { + /* Unsupported interface */ + HeapFree( GetProcessHeap(), 0, *ppvObj ); + *ppvObj = NULL; + + return E_NOINTERFACE; + } + + IDirectPlayX_AddRef( (LPDIRECTPLAY2)*ppvObj ); + + return S_OK; +} + +/* Shared between all dplay types */ +static ULONG WINAPI DP_AddRef + ( LPDIRECTPLAY3 iface ) +{ + ULONG ulInterfaceRefCount, ulObjRefCount; + IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface; + + ulObjRefCount = InterlockedIncrement( &This->unk->ulObjRef ); + ulInterfaceRefCount = InterlockedIncrement( &This->ulInterfaceRef ); + + TRACE( "ref count incremented to %lu:%lu for %p\n", + ulInterfaceRefCount, ulObjRefCount, This ); + + return ulObjRefCount; +} + +static ULONG WINAPI DP_Release +( LPDIRECTPLAY3 iface ) +{ + ULONG ulInterfaceRefCount, ulObjRefCount; + + IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface; + + ulObjRefCount = InterlockedDecrement( &This->unk->ulObjRef ); + ulInterfaceRefCount = InterlockedDecrement( &This->ulInterfaceRef ); + + TRACE( "ref count decremented to %lu:%lu for %p\n", + ulInterfaceRefCount, ulObjRefCount, This ); + + /* Deallocate if this is the last reference to the object */ + if( ulObjRefCount == 0 ) + { + /* If we're destroying the object, this must be the last ref + of the last interface */ + DP_DestroyDirectPlay4( This ); + DP_DestroyDirectPlay3( This ); + DP_DestroyDirectPlay2( This ); + DP_DestroyIUnknown( This ); + } + + /* Deallocate the interface */ + if( ulInterfaceRefCount == 0 ) + { + HeapFree( GetProcessHeap(), 0, This ); + } + + return ulObjRefCount; +} + +static inline DPID DP_NextObjectId(void) +{ + return (DPID)InterlockedIncrement( &kludgePlayerGroupId ); +} + +/* *lplpReply will be non NULL iff there is something to reply */ +HRESULT DP_HandleMessage( IDirectPlay2Impl* This, LPCVOID lpcMessageBody, + DWORD dwMessageBodySize, LPCVOID lpcMessageHeader, + WORD wCommandId, WORD wVersion, + LPVOID* lplpReply, LPDWORD lpdwMsgSize ) +{ + TRACE( "(%p)->(%p,0x%08lx,%p,%u,%u)\n", + This, lpcMessageBody, dwMessageBodySize, lpcMessageHeader, wCommandId, + wVersion ); + + switch( wCommandId ) + { + /* Name server needs to handle this request */ [truncated at 1000 lines; 13092 more skipped]
19 years, 1 month
1
0
0
0
[gvg] 19298: Sync to Wine-0_9_1:
by gvg@svn.reactos.com
Sync to Wine-0_9_1: Francois Gouget <fgouget(a)free.fr> - Remove spaces before '\n' in traces. Christoph Frick <frick(a)sc-networks.de> - Moved and adopted joystick_linux.c code into the joystick_linuxinput.c. Modified: trunk/reactos/lib/dinput/device.c Modified: trunk/reactos/lib/dinput/joystick_linuxinput.c Modified: trunk/reactos/lib/dinput/mouse.c _____ Modified: trunk/reactos/lib/dinput/device.c --- trunk/reactos/lib/dinput/device.c 2005-11-17 19:44:07 UTC (rev 19297) +++ trunk/reactos/lib/dinput/device.c 2005-11-17 19:50:28 UTC (rev 19298) @@ -279,7 +279,7 @@ void release_DataFormat(DataFormat * format) { - TRACE("Deleting DataTransform : \n"); + TRACE("Deleting DataTransform :\n"); HeapFree(GetProcessHeap(), 0, format->dt); } @@ -300,7 +300,7 @@ dt = HeapAlloc(GetProcessHeap(), 0, asked_format->dwNumObjs * sizeof(DataTransform)); - TRACE("Creating DataTransform : \n"); + TRACE("Creating DataTransform :\n"); for (i = 0; i < wine_format->dwNumObjs; i++) { offset[i] = -1; @@ -328,7 +328,7 @@ done[j] = 1; - TRACE("Matching : \n"); + TRACE("Matching :\n"); TRACE(" - Asked (%d) :\n", j); TRACE(" * GUID: %s ('%s')\n", debugstr_guid(asked_format->rgodf[j].pguid), _____ Modified: trunk/reactos/lib/dinput/joystick_linuxinput.c --- trunk/reactos/lib/dinput/joystick_linuxinput.c 2005-11-17 19:44:07 UTC (rev 19297) +++ trunk/reactos/lib/dinput/joystick_linuxinput.c 2005-11-17 19:50:28 UTC (rev 19298) @@ -145,6 +145,7 @@ }; static void fake_current_js_state(JoystickImpl *ji); +static int find_property_offset(JoystickImpl *This, LPCDIPROPHEADER ph); #define test_bit(arr,bit) (((BYTE*)arr)[bit>>3]&(1<<(bit&7))) @@ -418,15 +419,37 @@ TRACE("(this=%p,%p)\n",This,df); + if (df == NULL) { + WARN("invalid pointer\n"); + return E_POINTER; + } + + if (df->dwSize != sizeof(*df)) { + WARN("invalid argument\n"); + return DIERR_INVALIDPARAM; + } + _dump_DIDATAFORMAT(df); - + + if (This->joyfd!=-1) { + WARN("acquired\n"); + return DIERR_ACQUIRED; + } + /* Store the new data format */ This->df = HeapAlloc(GetProcessHeap(),0,df->dwSize); + if (This->df==NULL) { + return DIERR_OUTOFMEMORY; + } memcpy(This->df, df, df->dwSize); This->df->rgodf = HeapAlloc(GetProcessHeap(),0,df->dwNumObjs*df->dwObjSize); + if (This->df->rgodf==NULL) { + HeapFree(GetProcessHeap(), 0, This->df); + return DIERR_OUTOFMEMORY; + } memcpy(This->df->rgodf,df->rgodf,df->dwNumObjs*df->dwObjSize); - return 0; + return DI_OK; } /*********************************************************************** ******* @@ -593,6 +616,47 @@ ji->js.rglSlider[1] = map_axis(ji, ABS_RUDDER, ji->axes[ABS_RUDDER ][AXE_ABS]); } +static int find_property_offset(JoystickImpl *This, LPCDIPROPHEADER ph) +{ + int i,c; + switch (ph->dwHow) { + case DIPH_BYOFFSET: + for (i=0; i<This->df->dwNumObjs; i++) { + if (This->df->rgodf[i].dwOfs == ph->dwObj) { + return i; + } + } + break; + case DIPH_BYID: + /* XXX: this is a hack - see below */ + c = DIDFT_GETINSTANCE(ph->dwObj)>>WINE_JOYSTICK_AXIS_BASE; + for (i=0; (c&1)==0 && i<0x0F; i++) { + c >>= 1; + } + if (i<0x0F) { + return i; + } + + /* XXX - the following part wont work with LiveForSpeed + * - the game sets the dwTypes to something else then + * the ddoi.dwType set in EnumObjects + */ +#if 0 + for (i=0; i<This->df->dwNumObjs; i++) { + TRACE("dwType='%08x'\n", This->df->rgodf[i].dwType); + if ((This->df->rgodf[i].dwType & 0x00ffffff) == (ph->dwObj & 0x00ffffff)) { + return i; + } + } +#endif + break; + default: + FIXME("Unhandled ph->dwHow=='%04X'\n", (unsigned int)ph->dwHow); + } + + return -1; +} + static void joy_polldev(JoystickImpl *This) { struct timeval tv; fd_set readfds; @@ -769,17 +833,68 @@ DWORD flags ) { JoystickImpl *This = (JoystickImpl *)iface; + DWORD len; + int nqtail; + HRESULT hr = DI_OK; - FIXME("(%p)->(dods=%ld,entries=%ld,fl=0x%08lx),STUB!\n",This,dodsize,*en tries,flags); + TRACE("(%p)->(dods=%ld,entries=%ld,fl=0x%08lx)\n",This,dodsize,*entries, flags); + if (This->joyfd==-!1) { + WARN("not acquired\n"); + return DIERR_NOTACQUIRED; + } + joy_polldev(This); if (flags & DIGDD_PEEK) FIXME("DIGDD_PEEK\n"); + len = ((This->queue_head < This->queue_tail) ? This->queue_len : 0) + + (This->queue_head - This->queue_tail); + if (len > *entries) + len = *entries; + if (dod == NULL) { + if (len) + TRACE("Application discarding %ld event(s).\n", len); + + *entries = len; + nqtail = This->queue_tail + len; + while (nqtail >= This->queue_len) + nqtail -= This->queue_len; } else { + if (dodsize < sizeof(DIDEVICEOBJECTDATA_DX3)) { + ERR("Wrong structure size !\n"); + return DIERR_INVALIDPARAM; } - return 0; + + if (len) + TRACE("Application retrieving %ld event(s).\n", len); + + *entries = 0; + nqtail = This->queue_tail; + while (len) { + /* Copy the buffered data into the application queue */ + memcpy((char *)dod + *entries * dodsize, This->data_queue + nqtail, dodsize); + /* Advance position */ + nqtail++; + if (nqtail >= This->queue_len) + nqtail -= This->queue_len; + (*entries)++; + len--; + } + } + + if (This->overflow) { + hr = DI_BUFFEROVERFLOW; + if (!(flags & DIGDD_PEEK)) { + This->overflow = FALSE; + } + } + + if (!(flags & DIGDD_PEEK)) + This->queue_tail = nqtail; + + return hr; } /*********************************************************************** ******* @@ -791,44 +906,66 @@ { JoystickImpl *This = (JoystickImpl *)iface; - FIXME("(this=%p,%s,%p)\n",This,debugstr_guid(rguid),ph); - FIXME("ph.dwSize = %ld, ph.dwHeaderSize =%ld, ph.dwObj = %ld, ph.dwHow= %ld\n",ph->dwSize, ph->dwHeaderSize,ph->dwObj,ph->dwHow); + if (!ph) { + WARN("invalid argument\n"); + return DIERR_INVALIDPARAM; + } + TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(rguid),ph); + TRACE("ph.dwSize = %ld, ph.dwHeaderSize =%ld, ph.dwObj = %ld, ph.dwHow= %ld\n",ph->dwSize, ph->dwHeaderSize,ph->dwObj,ph->dwHow); + if (!HIWORD(rguid)) { switch (LOWORD(rguid)) { case (DWORD) DIPROP_BUFFERSIZE: { LPCDIPROPDWORD pd = (LPCDIPROPDWORD)ph; - FIXME("buffersize = %ld\n",pd->dwData); + TRACE("buffersize = %ld\n",pd->dwData); + if (This->data_queue) { + This->data_queue = HeapReAlloc(GetProcessHeap(),0, This->data_queue, pd->dwData * sizeof(DIDEVICEOBJECTDATA)); + } else { + This->data_queue = HeapAlloc(GetProcessHeap(),0, pd->dwData * sizeof(DIDEVICEOBJECTDATA)); + } + This->queue_head = 0; + This->queue_tail = 0; + This->queue_len = pd->dwData; break; } case (DWORD)DIPROP_RANGE: { LPCDIPROPRANGE pr = (LPCDIPROPRANGE)ph; - FIXME("proprange(%ld,%ld)\n",pr->lMin,pr->lMax); - switch (ph->dwObj) { - case 0: /* X */ - case 4: /* Y */ - case 8: /* Z */ - case 12: /* Rx */ - case 16: /* Ry */ - case 20: /* Rz */ - case 24: /* Slider 0 -> Throttle */ - case 28: /* Slider 1 -> Rudder */ - This->wantmin[ph->dwObj/4] = pr->lMin; - This->wantmax[ph->dwObj/4] = pr->lMax; - break; - default: - FIXME("setting proprange %ld - %ld for dwObj %ld\n",pr->lMin,pr->lMax,ph->dwObj); + if (ph->dwHow == DIPH_DEVICE) { + int i; + TRACE("proprange(%ld,%ld) all\n",pr->lMin,pr->lMax); + for (i = 0; i < This->df->dwNumObjs; i++) { + This->wantmin[i] = pr->lMin; + This->wantmax[i] = pr->lMax; + } + } else { + int obj = find_property_offset(This, ph); + TRACE("proprange(%ld,%ld) obj=%d\n",pr->lMin,pr->lMax,obj); + if (obj >= 0) { + This->wantmin[obj] = pr->lMin; + This->wantmax[obj] = pr->lMax; + } } - break; + return DI_OK; } case (DWORD)DIPROP_DEADZONE: { LPCDIPROPDWORD pd = (LPCDIPROPDWORD)ph; - - FIXME("setting deadzone(%ld)\n",pd->dwData); - This->deadz[ph->dwObj/4] = pd->dwData; - break; + if (ph->dwHow == DIPH_DEVICE) { + int i; + TRACE("deadzone(%ld) all\n",pd->dwData); + for (i = 0; i < This->df->dwNumObjs; i++) { + This->deadz[i] = pd->dwData; + } + } else { + int obj = find_property_offset(This, ph); + TRACE("deadzone(%ld) obj=%d\n",pd->dwData,obj); + if (obj >= 0) { + This->deadz[obj] = pd->dwData; + } + } + return DI_OK; } default: FIXME("Unknown type %p (%s)\n",rguid,debugstr_guid(rguid)); @@ -859,15 +996,24 @@ JoystickImpl *This = (JoystickImpl *)iface; int xfd = This->joyfd; int i,axes,buttons; - int wasacquired = 1; TRACE("%p->(%p)\n",iface,lpDIDevCaps); + + if (!lpDIDevCaps) { + WARN("invalid pointer\n"); + return E_POINTER; + } + + if (lpDIDevCaps->dwSize != sizeof(DIDEVCAPS)) { + WARN("invalid argument\n"); + return DIERR_INVALIDPARAM; + } + if (xfd==-1) { /* yes, games assume we return something, even if unacquired */ JoystickAImpl_Acquire(iface); - xfd = This->joyfd; - wasacquired = 0; } + lpDIDevCaps->dwFlags = DIDC_ATTACHED; if (This->dinput->dwVersion >= 0x0800) lpDIDevCaps->dwDevType = DI8DEVTYPE_JOYSTICK | (DI8DEVTYPEJOYSTICK_STANDARD << 8); @@ -885,16 +1031,21 @@ lpDIDevCaps->dwAxes = axes; lpDIDevCaps->dwButtons = buttons; - if (!wasacquired) - JoystickAImpl_Unacquire(iface); + if (xfd==-1) { + JoystickAImpl_Unacquire(iface); + } return DI_OK; } static HRESULT WINAPI JoystickAImpl_Poll(LPDIRECTINPUTDEVICE8A iface) { JoystickImpl *This = (JoystickImpl *)iface; - TRACE("(),stub!\n"); + TRACE("(%p)\n",This); + if (This->joyfd==-1) { + return DIERR_NOTACQUIRED; + } + joy_polldev(This); return DI_OK; } _____ Modified: trunk/reactos/lib/dinput/mouse.c --- trunk/reactos/lib/dinput/mouse.c 2005-11-17 19:44:07 UTC (rev 19297) +++ trunk/reactos/lib/dinput/mouse.c 2005-11-17 19:50:28 UTC (rev 19298) @@ -711,7 +711,7 @@ if(This->acquired == 0) return DIERR_NOTACQUIRED; EnterCriticalSection(&(This->crit)); - TRACE("(this=%p,0x%08lx,%p): \n",This,len,ptr); + TRACE("(this=%p,0x%08lx,%p):\n", This, len, ptr); TRACE("(X: %ld - Y: %ld - Z: %ld L: %02x M: %02x R: %02x)\n", This->m_state.lX, This->m_state.lY, This->m_state.lZ, This->m_state.rgbButtons[0], This->m_state.rgbButtons[2], This->m_state.rgbButtons[1]);
19 years, 1 month
1
0
0
0
[gvg] 19297: Sync to Wine-0_9_1:
by gvg@svn.reactos.com
Sync to Wine-0_9_1: Vijay Kiran Kamuju <infyquest(a)gmail.com> - Jonathan Ernst <Jonathan(a)ErnstFamily.ch> Display an error if no printer is installed. Michael Jung <mjung(a)iss.tu-darmstadt.de> - Initialize COM prior to displaying the file dialog. Henning Gerhardt <henning.gerhardt(a)web.de> - Update German resource file. David Kredba <kredba(a)math.cas.cz> - Czech resources update. Deleted: trunk/reactos/lib/comdlg32/Makefile.in Modified: trunk/reactos/lib/comdlg32/cdlg.h Modified: trunk/reactos/lib/comdlg32/cdlg32.c Modified: trunk/reactos/lib/comdlg32/cdlg_Bg.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Cn.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Cs.rc Modified: trunk/reactos/lib/comdlg32/cdlg_De.rc Modified: trunk/reactos/lib/comdlg32/cdlg_En.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Es.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Fi.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Fr.rc Modified: trunk/reactos/lib/comdlg32/cdlg_It.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Nl.rc Modified: trunk/reactos/lib/comdlg32/cdlg_No.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Pl.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Pt.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Ru.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Si.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Sk.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Sv.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Th.rc Modified: trunk/reactos/lib/comdlg32/cdlg_Uk.rc Modified: trunk/reactos/lib/comdlg32/colordlg.c Modified: trunk/reactos/lib/comdlg32/comdlg32.xml Modified: trunk/reactos/lib/comdlg32/filedlg.c Modified: trunk/reactos/lib/comdlg32/filetitle.c Modified: trunk/reactos/lib/comdlg32/finddlg32.c Modified: trunk/reactos/lib/comdlg32/fontdlg.c Modified: trunk/reactos/lib/comdlg32/printdlg.c _____ Deleted: trunk/reactos/lib/comdlg32/Makefile.in --- trunk/reactos/lib/comdlg32/Makefile.in 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/Makefile.in 2005-11-17 19:44:07 UTC (rev 19297) @@ -1,48 +0,0 @@ -TOPSRCDIR = @top_srcdir@ -TOPOBJDIR = ../.. -SRCDIR = @srcdir@ -VPATH = @srcdir@ -MODULE = comdlg32.dll -IMPORTLIB = libcomdlg32.$(IMPLIBEXT) -IMPORTS = shell32 shlwapi comctl32 winspool user32 gdi32 advapi32 kernel32 ntdll -EXTRALIBS = -luuid - -C_SRCS = \ - cdlg32.c \ - colordlg.c \ - filedlg.c \ - filedlg31.c \ - filedlgbrowser.c \ - filetitle.c \ - finddlg32.c \ - fontdlg.c \ - printdlg.c - -C_SRCS16 = \ - colordlg16.c \ - filedlg16.c \ - finddlg.c \ - fontdlg16.c \ - printdlg16.c - -SPEC_SRCS16 = commdlg.spec - -RC_SRCS = rsrc.rc -RC_BINSRC = cdlg_xx.rc -RC_BINARIES = \ - 800.bmp \ - cdrom.ico \ - floppy.ico \ - folder.ico \ - folder2.ico \ - fontpics.bmp \ - hdisk.ico \ - network.ico \ - pd32_collate.ico \ - pd32_landscape.ico \ - pd32_nocollate.ico \ - pd32_portrait.ico - -@MAKE_DLL_RULES@ - -### Dependencies: _____ Modified: trunk/reactos/lib/comdlg32/cdlg.h --- trunk/reactos/lib/comdlg32/cdlg.h 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg.h 2005-11-17 19:44:07 UTC (rev 19297) @@ -63,6 +63,7 @@ #define PD32_OUT_OF_MEMORY 1113 #define PD32_GENERIC_ERROR 1114 #define PD32_DRIVER_UNKNOWN 1115 +#define PD32_NO_DEVICES 1121 #define PD32_PRINTER_STATUS_READY 1536 #define PD32_PRINTER_STATUS_PAUSED 1537 _____ Modified: trunk/reactos/lib/comdlg32/cdlg32.c --- trunk/reactos/lib/comdlg32/cdlg32.c 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg32.c 2005-11-17 19:44:07 UTC (rev 19297) @@ -165,8 +165,8 @@ /*********************************************************************** + * CommDlgExtendedError (COMDLG32.@) * CommDlgExtendedError (COMMDLG.26) - * CommDlgExtendedError (COMDLG32.@) * * Get the thread's local error value if a comdlg32 function fails. * RETURNS _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Bg.rc --- trunk/reactos/lib/comdlg32/cdlg_Bg.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Bg.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -406,6 +406,9 @@ PD32_OUT_OF_MEMORY "?Õõ¯±?ÞÒ ÝÓ ´ÓýÕ?." PD32_GENERIC_ERROR "¤¯ ÔÞ ±Õ ÒÕ°ÛÓ." PD32_DRIVER_UNKNOWN "?Õ´¯þÝÓ? õÓÚÔÕ þÓ ´ÞÝ?Õ Ó." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "¤ÞÝ?Õ ´¯ ´¯õÓþßÞÓÝÕ; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "?ýÓ %d õ¯Û¾ýÕÝ?Ó Ô ¯´Ó°ÛÓ?Ó" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Cn.rc --- trunk/reactos/lib/comdlg32/cdlg_Cn.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Cn.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -405,6 +405,9 @@ PD32_OUT_OF_MEMORY "Out of memory." PD32_GENERIC_ERROR "Some error occurred." PD32_DRIVER_UNKNOWN "Unknown printer driver." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Default Printer; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in the queue" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Cs.rc --- trunk/reactos/lib/comdlg32/cdlg_Cs.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Cs.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -1,5 +1,6 @@ /* * Copyright 1996 Roman Dolejsi + * Copyright 2005 David Kredba (kredba(a)math.cas.cz) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -27,16 +28,16 @@ CAPTION "Otev°enÝ souboru" FONT 8, "MS Shell Dlg" { - LTEXT "&jmÚno souboru:", 1090, 6, 6, 76, 9 - EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP + LTEXT "&JmÚno souboru:", 1090, 6, 6, 76, 9 + EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP LTEXT "&Adresß°e:", -1, 110, 6, 92, 9 LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP LTEXT "&Typ zobrazen²ch soubor¨:", 1089, 6, 104, 90, 9 - COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP + COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP LTEXT "&DiskovÚ jednotky:", 1091, 110, 104, 92, 9 - COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP DEFPUSHBUTTON "Otev°Ýt", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Nßpovýda", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP @@ -46,20 +47,20 @@ SAVE_FILE DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 275, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Ulo× pod jmÚnem..." +CAPTION "Ulo¥ pod jmÚnem..." FONT 8, "MS Shell Dlg" { LTEXT "&JmÚno souboru:", 1090, 6, 6, 76, 9 - EDITTEXT 1152, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP + EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP LISTBOX 1120, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP LTEXT "&Adresß°e:", -1, 110, 6, 92, 9 LTEXT "", 1088, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP LISTBOX 1121, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP LTEXT "&Typ zobrazen²ch soubor¨:", 1089, 6, 104, 90, 9 - COMBOBOX 1136, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP + COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP LTEXT "&DiskovÚ jednotky:", 1091, 110, 104, 92, 9 - COMBOBOX 1137, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Ulo× pod jmÚnem", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Ulo¥ pod jmÚnem", IDOK, 208, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 208, 24, 56, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Nßpovýda", 1038, 208, 46, 56, 14, WS_GROUP | WS_TABSTOP CHECKBOX "&Pouze pro ÞtenÝ", 1040, 208, 68, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP @@ -73,45 +74,45 @@ { LTEXT "Tiskßrna:", 1088, 6, 6, 40, 9 LTEXT "", 1089, 60, 6, 150, 9 - GROUPBOX "Rozsah tisku", 1072, 6, 30, 160, 65, BS_GROUPBOX - RADIOBUTTON "Vytiskni vÜ&e", 1056, 16, 45, 60, 12 - RADIOBUTTON "Vytiskni &v²býr", 1057, 16, 60, 60, 12 - RADIOBUTTON "Vytiskni &zadanÚ strßnky", 1058, 16, 75, 60, 12 - DEFPUSHBUTTON "Tiskni", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Storno", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Nastavit...", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP + GROUPBOX "Rozsah tisku", grp1, 6, 30, 160, 65, BS_GROUPBOX + RADIOBUTTON "V?&e", rad1, 16, 45, 60, 12 + RADIOBUTTON "&V²býr", rad2, 16, 60, 60, 12 + RADIOBUTTON "&ZadanÚ strßnky", 1058, 16, 75, 60, 12 + DEFPUSHBUTTON "Tiskni", 1, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Storno", 2, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Nastavit...", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP LTEXT "&Od:", 1090, 60, 80, 30, 9 LTEXT "&Do:", 1091, 120, 80, 30, 9 LTEXT "Kvalita &tisku:", 1092, 6, 100, 76, 9 - COMBOBOX 1136, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP - CHECKBOX "Tisk do so&uboru", 1040, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - CHECKBOX "KondenzovanÚ", 1041, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + COMBOBOX cmb1, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + CHECKBOX "Tisk do so&uboru", chx1, 20, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "KondenzovanÚ", chx2, 160, 100, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP } PRINT_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 134 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "NastavenÝ zp¨sobu tisku" +CAPTION "NastavenÝ tisku" FONT 8, "MS Shell Dlg" { - GROUPBOX "Tiskßrna", 1072, 6, 10, 180, 65, BS_GROUPBOX - RADIOBUTTON "&P°edvolenß tiskßrna", 1056, 16, 20, 80, 12 + GROUPBOX "Tiskßrna", grp1, 6, 10, 180, 65, BS_GROUPBOX + RADIOBUTTON "&V²chozÝ tiskßrna", rad1, 16, 20, 80, 12 LTEXT "[none]", 1088, 35, 35, 120, 9 - RADIOBUTTON "Specifickß &tiskßrna", 1057, 16, 50, 80, 12 - COMBOBOX 1136, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Ok", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + RADIOBUTTON "Specifickß &tiskßrna", rad2, 16, 50, 80, 12 + COMBOBOX cmb1, 35, 65, 149, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&DalÜÝ volby...", 1024, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP - GROUPBOX "Orientace", 1073, 6, 85, 100, 50, BS_GROUPBOX - RADIOBUTTON "Na &v²Üku", 1058, 50, 100, 40, 12 - RADIOBUTTON "Na ÜÝ°&ku", 1059, 50, 115, 40, 12 - ICON "LANDSCAP", 1097, 10, 95, 32, 32 - ICON "PORTRAIT", 1098, 10, 95, 32, 32 - GROUPBOX "PapÝr", 1074, 120, 85, 180, 50, BS_GROUPBOX + PUSHBUTTON "&DalÜÝ volby...", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP + GROUPBOX "Orientace", grp2, 6, 85, 100, 50, BS_GROUPBOX + RADIOBUTTON "Na &v²?ku", rad3, 50, 100, 40, 12 + RADIOBUTTON "Na ?Ý°&ku", rad4, 50, 115, 40, 12 + ICON "LANDSCAP", stc10, 10, 95, 32, 32 + ICON "PORTRAIT", stc11, 10, 95, 32, 32 + GROUPBOX "PapÝr", grp3, 120, 85, 180, 50, BS_GROUPBOX LTEXT "&Formßt", 1089, 130, 95, 30, 9 - LTEXT "&Odkud", 1090, 130, 110, 30, 9 - COMBOBOX 1137, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP - COMBOBOX 1138, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + LTEXT "&Zdroj", 1090, 130, 110, 30, 9 + COMBOBOX cmb2, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP + COMBOBOX cmb3, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP } @@ -131,16 +132,16 @@ WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE | CBS_SORT DEFPUSHBUTTON "OK",IDOK,218,6,40,14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON PUSHBUTTON "Storno",IDCANCEL,218,23,40,14,WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Pou×Ýt", psh3,218,40,40,14,WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Pou¥Ýt", psh3,218,40,40,14,WS_GROUP | WS_TABSTOP PUSHBUTTON "&Nßpovýda" , pshHelp,218,57,40,14,WS_GROUP | WS_TABSTOP GROUPBOX "Efekty",grp1,6,72,84,34,WS_GROUP - CHECKBOX "P°eÜ&krtnutÝ", chx1, 10,82,50,10, BS_AUTOCHECKBOX | WS_TABSTOP - CHECKBOX "&Podtr×enÝ", chx2, 10,94,50,10, BS_AUTOCHECKBOX + CHECKBOX "P°e?&krtnutÝ", chx1, 10,82,50,10, BS_AUTOCHECKBOX | WS_TABSTOP + CHECKBOX "&Podtr¥enÝ", chx2, 10,94,50,10, BS_AUTOCHECKBOX LTEXT "&Barva:", stc4 ,6,110,30,9 COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP GROUPBOX "Ukßzka",grp2,98,72,120,36,WS_GROUP - CTEXT "P°ÝliÜ ×luØouÞk² k¨? ·pýl ´ßbelskÚ k¾dy",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + CTEXT "P°Ýli? ¥lu?ouÞk² k¨? ·pýl ´ßbelskÚ ¾dy",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE LTEXT "Skr&ipt:",stc7 ,98,114,40,9 COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP @@ -152,19 +153,32 @@ CAPTION "Barvy" FONT 8, "MS Shell Dlg" { - LTEXT "&ZßkladnÝ barvy:", 1088, 6, 6, 40, 9 - LTEXT "&Barvy na zakßzku:", 1089, 6, 126, 40, 9 - LTEXT "Barva|Spoj&itß", 1090, 100, 146, 40, 9 - LTEXT "&OdstÝn:", 1091, 150, 126, 40, 9 - LTEXT "&Sytost:", 1092, 150, 146, 40, 9 - LTEXT "&Jas:", 1093, 150, 166, 40, 9 - LTEXT "?e&rvenß:", 1094, 150, 126, 40, 9 - LTEXT "&Zelenß:", 1095, 150, 146, 40, 9 + LTEXT "&ZßkladnÝ barvy:", 1088, 4, 4, 140, 10 + LTEXT "&Barvy na zakßzku:",1089, 4, 106, 140, 10 + LTEXT "Barva|Spoj&itß", 1090, 150, 151, 48, 10 + LTEXT "?e&rvenß:", 726 /*1094*/, 249,126,24,10 + EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Zelenß:",727/*1095*/,249,140,24,10 + EDITTEXT 707, 275,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP LTEXT "&Modrß:", 1096, 150, 166, 40, 9 - DEFPUSHBUTTON "Ok", IDOK, 6, 182, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP - PUSHBUTTON "&P°idat barvu", 1024, 120, 182, 100, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Vy°adit barvu", 1025, 6, 164, 56, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Storno", IDCANCEL, 76, 182, 56, 14, WS_GROUP | WS_TABSTOP + EDITTEXT 708, 275,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&OdstÝn:" , 723 /*1091*/,202,126,22,10 + EDITTEXT 703, 226,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Sytost:" , 1092, 150, 146, 40, 9 + EDITTEXT 704, 226,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + LTEXT "&Jas:" , 725 /*1093*/,202,154,22,10 + EDITTEXT 705, 226,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP + CONTROL "" ,720,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,14,140,86 + CONTROL "" ,721,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,116,140,28 + CONTROL "" ,710,"STATIC",WS_BORDER|SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,4,118,116 + CONTROL "" ,702,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 278,4,8,116 + CONTROL "" ,709,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,124,40,26 + DEFPUSHBUTTON "OK", 1, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Storno", 2, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Nßpovýda", pshHelp,100,166, 44, 14 + PUSHBUTTON "&P°idat k vlastnÝm barvßm", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Definovat vlastnÝ barvu >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */ } @@ -174,32 +188,284 @@ FONT 8, "MS Shell Dlg" { LTEXT "&Vyhledat:", -1, 4, 8, 42, 8 - EDITTEXT 1152, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP - CHECKBOX "Pouze &celß slova", 1040, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - CHECKBOX "&RozliÜovat malß a velkß pÝsmena", 1041, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP - GROUPBOX "Smýr", 1072, 107, 26, 68, 28 - CONTROL "N&ahoru", 1056, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 20, 12 - CONTROL "&Dolu", 1057, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12 - DEFPUSHBUTTON "Vyhledat d&alÜÝ", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Zav°Ýt", IDCANCEL, 182, 23, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Nßpovýda", 1038, 182, 45, 50, 14, WS_GROUP | WS_TABSTOP + EDITTEXT edt1, 47, 7, 128, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + CHECKBOX "Pouze &celß slova", chx1, 4, 26, 100, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Rozli?ovat velikost", chx2, 4, 42, 64, 12, BS_AUTOCHECKBOX | WS_TABSTOP + GROUPBOX "Smýr", grp1, 107, 26, 68, 28 + CONTROL "N&ahoru", rad1, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 111, 38, 20, 12 + CONTROL "&Dol¨", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 38, 30, 12 + + DEFPUSHBUTTON "NajÝt d&al?Ý", IDOK, 182, 5, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Zru?it", IDCANCEL, 182, 23, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Nßpovýda", pshHelp, 182, 45, 50, 14, WS_GROUP | WS_TABSTOP } REPLACEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 230, 94 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Zßmýna" +CAPTION "NahrazenÝ" FONT 8, "MS Shell Dlg" { LTEXT "&Vyhledat:", -1, 4, 9, 48, 8 - EDITTEXT 1152, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + EDITTEXT edt1, 54, 7, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP LTEXT "&Zamýnit za:", -1, 4, 26, 48, 8 - EDITTEXT 1153, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP - CHECKBOX "Pouze &celß slova", 1040, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP - CHECKBOX "&RozliÜovat malß a velkß pÝsmena", 1041, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP - DEFPUSHBUTTON "Vyhledat d&alÜÝ", 1, 174, 4, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Za&mýnit", 1024, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Zamýnit ve v²&býru", 1025, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Zav°Ýt", 2, 174, 55, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Nßpovýda", 1038, 174, 75, 50, 14, WS_GROUP | WS_TABSTOP + EDITTEXT edt2, 54, 24, 114, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + CHECKBOX "Pouze &celß slova", chx1, 5, 46, 104, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Rozli?ovat velikost", chx2, 5, 62, 59, 12, BS_AUTOCHECKBOX | WS_TABSTOP + DEFPUSHBUTTON "Vyhledat d&al?Ý", IDOK, 174, 4, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Za&mýnit", psh1, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Zamýni&t v?e", psh2, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Zru?it", IDCANCEL, 174, 55, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Nßpovýda", pshHelp, 174, 75, 50, 14, WS_GROUP | WS_TABSTOP } + + +PRINT32 DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 186 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | + DS_CONTEXTHELP | DS_3DLOOK +CAPTION "Tisk" +FONT 8, "MS Shell Dlg" +{ + DEFPUSHBUTTON "OK", IDOK, 180,164, 48,14, WS_GROUP | BS_DEFPUSHBUTTON + PUSHBUTTON "Zru?it", IDCANCEL, 232,164, 48,14, WS_GROUP + PUSHBUTTON "&Nßpovýda", pshHelp, 50, 161, 48,14, WS_GROUP + + GROUPBOX "Tiskßrna", grp4, 8, 4, 272,84, WS_GROUP + CONTROL "Tisk do so&uboru", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12 + PUSHBUTTON "&Vlastnosti", psh2, 212, 17, 60,14, WS_GROUP + LTEXT "&Nßzev:", stc6, 16, 20, 36,8 + COMBOBOX cmb4, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + LTEXT "Status:", stc8, 16, 36, 36,10, SS_NOPREFIX + LTEXT "?ekß", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Typ:", stc7, 16, 48, 36,10, SS_NOPREFIX + LTEXT "Neuveden", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "UmÝstýnÝ:", stc10, 16, 60, 36,10, SS_NOPREFIX + LTEXT "Neuvedeno", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Komentß°:", stc9, 16, 72, 36,10, SS_NOPREFIX + LTEXT "Dummy Remark", stc13, 52, 72, 152,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + + GROUPBOX "Kopie", grp2, 160, 92, 120,64, WS_GROUP + LTEXT "PoÞet &kopiÝ:",stc5,168,108,68,8 + ICON "", ico3, 162,124, 76,24, WS_GROUP | SS_CENTERIMAGE + CONTROL "K&ompletovat", chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,240,130,36,12 + EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER + + GROUPBOX "Rozsah tisku", grp1, 8,92, 144,64, WS_GROUP + CONTROL "&V?e", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12 + CONTROL "St&rßnky", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12 + CONTROL "V²&býr", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12 + EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER + EDITTEXT edt2, 118,122, 26,12, WS_GROUP | ES_NUMBER + RTEXT "&od:", stc2, 52,124, 20,8 + RTEXT "&do:", stc3, 100,124, 16,8 +} + +PRINT32_SETUP DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 288, 178 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | + DS_CONTEXTHELP | DS_3DLOOK +CAPTION "NastavenÝ tisku" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,180,156,48,14,WS_GROUP + PUSHBUTTON "Zru?it",IDCANCEL,232,156,48,14 +/* PUSHBUTTON "SÝ?...", psh5, 284,156,48,14 */ + + GROUPBOX "Tiskßrna", grp4, 8, 4, 272,84, WS_GROUP + PUSHBUTTON "&Vlastnosti", psh2, 212, 17, 60,14, WS_GROUP + LTEXT "&Nßzev:", stc6, 16, 20, 36,8 + COMBOBOX cmb1, 52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + LTEXT "Status:", stc8, 16, 36, 36,10, SS_NOPREFIX + LTEXT "Neznßm²", stc12, 52, 36, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Typ:", stc7, 16, 48, 36,10, SS_NOPREFIX + LTEXT "Neznßm²", stc11, 52, 48, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "UmÝstýnÝ:", stc10, 16, 60, 36,10, SS_NOPREFIX + LTEXT "NeznßmÚ", stc14, 52, 60, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + LTEXT "Popis:", stc9, 16, 72, 36,10, SS_NOPREFIX + LTEXT "Dummy Remark", stc13, 52, 72, 224,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP + + GROUPBOX "PapÝr", grp2, 8, 92, 164,56, WS_GROUP + LTEXT "Veli&kost:", stc2, 16,108, 36, 8 + COMBOBOX cmb2, 52,106, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + LTEXT "Z&droj:", stc3, 16,128, 36, 8 + COMBOBOX cmb3, 52,126, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP + + GROUPBOX "Orientace", grp1, 180, 92, 100,56, WS_GROUP + ICON "", ico1, 195,112, 18,20, WS_GROUP + CONTROL "Na v²?k&u", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12 + CONTROL "N&a ?Ý°ku", rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12 +END + +PAGESETUPDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 32, 32, 240, 240 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "NastavenÝ strßnky" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80 + CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80 + CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4 + GROUPBOX "PapÝr", grp2, 8, 96, 224, 56, BS_GROUPBOX + LTEXT "Veli&kost:", stc2, 16, 112, 36, 8 + COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL + LTEXT "&Tray:", stc3, 16, 132, 36, 8 + COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL + GROUPBOX "Orientace", grp1, 8, 156, 64, 56, BS_GROUPBOX + AUTORADIOBUTTON "Na v²?k&u", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON + AUTORADIOBUTTON "N&a ?Ý°ku", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON + GROUPBOX "Okraje", grp4, 80, 156, 152, 56, BS_GROUPBOX + LTEXT "L&ev²:", stc15, 88, 172, 21, 8 + EDITTEXT edt4, 111, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER|ES_NUMBER + LTEXT "P&rav²:", stc16, 159, 172, 27, 8 + EDITTEXT edt6, 187, 170, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER|ES_NUMBER + LTEXT "H&ornÝ:", stc17, 88, 192, 21, 8 + EDITTEXT edt5, 111, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER|ES_NUMBER + LTEXT "&DolnÝ:", stc18, 159, 192, 23, 8 + EDITTEXT edt7, 187, 190, 39, 12, WS_TABSTOP|WS_GROUP|WS_BORDER|ES_NUMBER + DEFPUSHBUTTON "OK", IDOK, 71, 220, 50, 14, BS_PUSHBUTTON + PUSHBUTTON "Zru?it", IDCANCEL, 126, 220, 50, 14 + PUSHBUTTON "Tiskß&rna...", psh3, 184, 220, 48, 14 +END + +NEWFILEOPENORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 280, 164 +STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN +CAPTION "Otev°Ýt" +FONT 8, "MS Shell Dlg" +{ + LTEXT "Nßh&led:",IDC_LOOKINSTATIC,4,6,43,8, SS_NOTIFY + COMBOBOX IDC_LOOKIN,49,3,132,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + + LTEXT "" , IDC_TOOLBARSTATIC, 181, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE + LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE + + LTEXT "&Nßzev souboru:",IDC_FILENAMESTATIC,5,112,46,8, SS_NOTIFY + EDITTEXT IDC_FILENAME,54,110,155,12,ES_AUTOHSCROLL + + LTEXT "Soubory &typu:",IDC_FILETYPESTATIC,5,128,42,8, SS_NOTIFY + COMBOBOX IDC_FILETYPE,54,126,155,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + CONTROL "Jen ke Þt&enÝ",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,54,145,100,10 + + DEFPUSHBUTTON "&Otev°Ýt", IDOK,222,110,50,14 + PUSHBUTTON "Zru?it", IDCANCEL,222,128,50,14 + PUSHBUTTON "&Nßpovýda", pshHelp,222,145,50,14 +} + +STRINGTABLE DISCARDABLE +{ + IDS_ABOUTBOX "&O FolderPicker testu" + IDS_DOCUMENTFOLDERS "Slo¥ky dokument¨" + IDS_PERSONAL "Dokumenty" + IDS_FAVORITES "OblÝbenÚ" + IDS_PATH "SystÚmov² adresß°" + IDS_DESKTOP "Plocha" + IDS_FONTS "PÝsma" + IDS_MYCOMPUTER "M¨j poÞÝtaÞ" +} + +STRINGTABLE DISCARDABLE +{ + IDS_SYSTEMFOLDERS "SystÚmovÚ slo¥ky" + IDS_LOCALHARDRIVES "MÝstnÝ jednotky pevn²ch disk¨" + IDS_FILENOTFOUND "Soubor nebyl nalezen" + IDS_VERIFYFILE "Ový°te prosÝm, ¥e nßzev souboru byl zadßn sprßvný." + IDS_CREATEFILE "Soubor neexistuje.\nChcete ho vytvo°it ?" + IDS_OVERWRITEFILE "Soubor ji¥ existuje.\nChcete ho p°epsat nov²m ?" + IDS_INVALID_FILENAME_TITLE "Nedovolen²(Ú) znak(y) v cestý k souboru." + IDS_INVALID_FILENAME "Nßzev souboru nesmÝ obsahovat ¥ßdn² z nßsledujÝcÝch znak¨: \n / : < > |" + IDS_PATHNOTEXISTING "Adresß° neexistuje" + IDS_FILENOTEXISTING "Soubor neexistuje" +} + +STRINGTABLE DISCARDABLE +{ + IDS_UPFOLDER "O jednu ·rove? v²?e" + IDS_NEWFOLDER "Vytvo°it novou slo¥ku" + IDS_LISTVIEW "V²pis" + IDS_REPORTVIEW "Podrobnosti" + IDS_TODESKTOP "ProhlÝ¥et plochu" +} + +STRINGTABLE DISCARDABLE +{ + PD32_PRINT_TITLE "Tisk" + + PD32_VALUE_UREADABLE "NeÞiteln² vstup" + PD32_INVALID_PAGE_RANGE "Tato hodnota p°esahuje mo¥nosti strßnky.\n\ +Zadejte prosÝm hodnotu mezi %d a %d." + PD32_FROM_NOT_ABOVE_TO "Hodnota 'Od' nem¨¥e p°ekroÞit \ +hodnotu 'Do'." + PD32_MARGINS_OVERLAP "Dosa¥enÝ nebo p°esah okraj¨ \ +tisknutelnÚ oblasti.\nZadejte prosÝm jinÚ okraje." + PD32_NR_OF_COPIES_EMPTY "PoÞet kopiÝ musÝ b²t' \ +zadßn." + PD32_TOO_LARGE_COPIES "Tak velkÚ mno¥stvÝ kopiÝ nenÝ \ +podporovßno Va?Ý tiskßrnou.\nZadejte prosÝm hodnotu mezi 1 and %d." + PD32_PRINT_ERROR "Nastala chyba tisku." + PD32_NO_DEFAULT_PRINTER "V²chozÝ tiskßrna neexistuje." + PD32_CANT_FIND_PRINTER "Nemohu najÝt tiskßrnu." + PD32_OUT_OF_MEMORY "Dostupnß pamý? byla vyÞerpßna." + PD32_GENERIC_ERROR "Vyskytla se chyba." + PD32_DRIVER_UNKNOWN "Neznßm² ovladaÞ tiskßrny." + + PD32_DEFAULT_PRINTER "V²chozÝ tiskßrna; " + PD32_NR_OF_DOCUMENTS_IN_QUEUE "Ve frontý je %d dokument¨" + PD32_MARGINS_IN_INCHES "Okraje [palce]" + PD32_MARGINS_IN_MILIMETERS "Okraje [mm]" + PD32_MILIMETERS "mm" + + PD32_PRINTER_STATUS_READY "P°ipraven" + PD32_PRINTER_STATUS_PAUSED "Pozastaven; " + PD32_PRINTER_STATUS_ERROR "Chyba; " + PD32_PRINTER_STATUS_PENDING_DELETION "ProbÝhß mazßnÝ; " + PD32_PRINTER_STATUS_PAPER_JAM "Zaseknut² papÝr; " + PD32_PRINTER_STATUS_PAPER_OUT "Do?el papÝr; " + PD32_PRINTER_STATUS_MANUAL_FEED "RuÞnÝ zaklßdßnÝ papÝru; " + PD32_PRINTER_STATUS_PAPER_PROBLEM "ProblÚm s papÝrem; " + PD32_PRINTER_STATUS_OFFLINE "Tiskßrna je nedostupnß; " + PD32_PRINTER_STATUS_IO_ACTIVE "P°enos dat; " + PD32_PRINTER_STATUS_BUSY "Pracuji; " + PD32_PRINTER_STATUS_PRINTING "Tiskne se; " + PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "V²stupnÝ zßsobnÝk je pln²; " + PD32_PRINTER_STATUS_NOT_AVAILABLE "NenÝ k dispozici; " + PD32_PRINTER_STATUS_WAITING "?ekß se; " + PD32_PRINTER_STATUS_PROCESSING "Zpracovßvß se; " + PD32_PRINTER_STATUS_INITIALIZING "Inicializuje se; " + PD32_PRINTER_STATUS_WARMING_UP "Zah°Ývß se; " + PD32_PRINTER_STATUS_TONER_LOW "DochßzÝ toner; " + PD32_PRINTER_STATUS_NO_TONER "Do?el toner; " + PD32_PRINTER_STATUS_PAGE_PUNT "Za°azovßnÝ; " + PD32_PRINTER_STATUS_USER_INTERVENTION "P°eru?eno u¥ivatelem; " + PD32_PRINTER_STATUS_OUT_OF_MEMORY "Dostupnß pamý? byla vyÞerpßna; " + PD32_PRINTER_STATUS_DOOR_OPEN "Kryt tiskßrny je otev°en; " + PD32_PRINTER_STATUS_SERVER_UNKNOWN "Neznßm² tiskov² server; " + PD32_PRINTER_STATUS_POWER_SAVE "?sporn² re¥im; " +} + +STRINGTABLE DISCARDABLE /* Color names */ +{ + IDS_COLOR_BLACK "Þernß" + IDS_COLOR_MAROON "hnýdß" + IDS_COLOR_GREEN "zelenß" + IDS_COLOR_OLIVE "olivovß" + IDS_COLOR_NAVY "nßmo°nÝ" + IDS_COLOR_PURPLE "nachovß" + IDS_COLOR_TEAL "sivß" + IDS_COLOR_GRAY "?edß" + IDS_COLOR_SILVER "st°Ýbrnß" + IDS_COLOR_RED "Þervenß" + IDS_COLOR_LIME "citronovß" + IDS_COLOR_YELLOW "¥lutß" + IDS_COLOR_BLUE "modrß" + IDS_COLOR_FUCHSIA "fuchsiovß" + IDS_COLOR_AQUA "vodovß" + IDS_COLOR_WHITE "bÝlß" +} + +STRINGTABLE DISCARDABLE +{ + IDS_FONT_SIZE "UrÞete velikost fontu mezi %d a %d body." + IDS_SAVE_BUTTON "&Ulo¥it" + IDS_SAVE_IN "Ulo¥&it v:" + IDS_SAVE "Ulo¥it" + IDS_SAVE_AS "Ulo¥it jako" + IDS_OPEN_FILE "Otev°Ýt soubor" +} _____ Modified: trunk/reactos/lib/comdlg32/cdlg_De.rc --- trunk/reactos/lib/comdlg32/cdlg_De.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_De.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -399,6 +399,9 @@ PD32_OUT_OF_MEMORY "Kein freier Speicher mehr." PD32_GENERIC_ERROR "Ein unbekannter Fehler ist aufgetreten." PD32_DRIVER_UNKNOWN "Unbekannter Druckertreiber." + PD32_NO_DEVICES "Bevor Sie drucker-relevante Aufgaben ausf³hren k÷nnen, \ + wie die Seiteneinrichtung oder ein Dokument zu drucken,\ + m³ssen Sie einen Drucker installieren. Bitte f³hren Sie dies zuerst aus und versuchen Sie es erneut." PD32_DEFAULT_PRINTER "Standard Drucker; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Es sind %d Dokumente in der Queue" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_En.rc --- trunk/reactos/lib/comdlg32/cdlg_En.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_En.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -405,6 +405,9 @@ PD32_OUT_OF_MEMORY "Out of memory." PD32_GENERIC_ERROR "An error occurred." PD32_DRIVER_UNKNOWN "Unknown printer driver." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Default Printer; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in the queue" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Es.rc --- trunk/reactos/lib/comdlg32/cdlg_Es.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Es.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -406,6 +406,9 @@ PD32_GENERIC_ERROR "Ocurri¾ un error." PD32_DRIVER_UNKNOWN "Manejador de la impresora \ desconocido." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Impresora por defecto; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Hay %d documentos en la cola" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Fi.rc --- trunk/reactos/lib/comdlg32/cdlg_Fi.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Fi.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -400,6 +400,9 @@ PD32_OUT_OF_MEMORY "Muisti loppu." PD32_GENERIC_ERROR "Virhe." PD32_DRIVER_UNKNOWN "Tuntematon tulostinajuri." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Oletustulostin; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Jonossa on %d dokumenttia" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Fr.rc --- trunk/reactos/lib/comdlg32/cdlg_Fr.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Fr.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -409,6 +409,9 @@ PD32_OUT_OF_MEMORY "Pas assez de mÚmoire." PD32_GENERIC_ERROR "Une erreur est intervenue." PD32_DRIVER_UNKNOWN "Pilote d'imprimante inconnu." + PD32_NO_DEVICES "Avant de pouvoir effectuer des opÚrations en relation avec l'impression \ +comme la configuration de l'imprimante ou l'impression d'un document, vous devez installer une imprimante. \ +Veuillez en installer une et rÚessayez." PD32_DEFAULT_PRINTER "Imprimante par dÚfaut; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Il y a %d documents dans la file d'attente" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_It.rc --- trunk/reactos/lib/comdlg32/cdlg_It.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_It.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -404,6 +404,9 @@ PD32_OUT_OF_MEMORY "Memoria esaurita." PD32_GENERIC_ERROR "Si Þ verificato un errore." PD32_DRIVER_UNKNOWN "Driver della stampante sconosciuto." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Stampante predefinita; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Ci sono %d documenti nella coda di stampa" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Nl.rc --- trunk/reactos/lib/comdlg32/cdlg_Nl.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Nl.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -285,6 +285,9 @@ PD32_GENERIC_ERROR "Er onstond een niet nader \ gespecifieerde fout" PD32_DRIVER_UNKNOWN "De printer driver is onbekend" + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Default Printer, " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Er staan %d documenten in de \ _____ Modified: trunk/reactos/lib/comdlg32/cdlg_No.rc --- trunk/reactos/lib/comdlg32/cdlg_No.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_No.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -401,6 +401,9 @@ PD32_OUT_OF_MEMORY "Ikke mer minne." PD32_GENERIC_ERROR "En feil har oppstÕtt." PD32_DRIVER_UNKNOWN "Ukjent skriverdriver." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Standardskriver; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Det er %d dokumenter i k°en" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Pl.rc --- trunk/reactos/lib/comdlg32/cdlg_Pl.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Pl.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -402,6 +402,9 @@ PD32_OUT_OF_MEMORY "Za ma?o pamiÛci dla tej operacji." PD32_GENERIC_ERROR "Podczas tej operacji wyst?pi? b??d." PD32_DRIVER_UNKNOWN "Nieznany sterownik drukarki." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Domy£lna Drukarka; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "W kolejce znajduj? siÛ %d dokumenty" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Pt.rc --- trunk/reactos/lib/comdlg32/cdlg_Pt.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Pt.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -404,6 +404,9 @@ PD32_OUT_OF_MEMORY "Mem¾ria insuficiente." PD32_GENERIC_ERROR "Ocorreu algum erro." PD32_DRIVER_UNKNOWN "Driver de impressora desconhecido." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Impressora PadrÒo; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Existem %d documentos na fila" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Ru.rc --- trunk/reactos/lib/comdlg32/cdlg_Ru.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Ru.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -404,6 +404,9 @@ PD32_OUT_OF_MEMORY "?ÓÙ¯ ´Óý ?Þ" PD32_GENERIC_ERROR "¤¯Þþ¯°ÙÓ(Þ) ¯°ÞßÛÓ(Þ)" PD32_DRIVER_UNKNOWN "?ÕÞþÔÕ±?Ý¹Ú õÓÚÔÕ ´ÞÝ?Õ Ó" + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "¤ÞÝ?Õ ´¯ ¾ý¯Ù¸ÓÝÞ?; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d õ¯Û¾ýÕÝ?¯Ô Ô ¯¸ÕÕõÞ" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Si.rc --- trunk/reactos/lib/comdlg32/cdlg_Si.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Si.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -402,6 +402,9 @@ PD32_OUT_OF_MEMORY "Na voljo ni dovolj pomnilnika, da bi bilo mogoÞe dokonÞati operacijo." PD32_GENERIC_ERROR "Med operacijo je priÜlo do napake." PD32_DRIVER_UNKNOWN "Neznan gonilnik tiskalnika." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Privzeti tiskalnik; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d ÞakajoÞih dok." _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Sk.rc --- trunk/reactos/lib/comdlg32/cdlg_Sk.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Sk.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -375,6 +375,9 @@ PD32_OUT_OF_MEMORY "Nedostatok pamõte" PD32_GENERIC_ERROR "Vyskytla sa chyba" PD32_DRIVER_UNKNOWN "Neznßmy ovlßdaÞ tlaÞiarne" + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Implicitnß tlaÞiare?; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in queue" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Sv.rc --- trunk/reactos/lib/comdlg32/cdlg_Sv.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Sv.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -395,6 +395,9 @@ PD32_OUT_OF_MEMORY "Slut pÕ minne." PD32_GENERIC_ERROR "Ett fel uppstog." PD32_DRIVER_UNKNOWN "Okõnd skrivardrivrutin." + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Standardskrivare; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Det õr %d dokument i k÷n" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Th.rc --- trunk/reactos/lib/comdlg32/cdlg_Th.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Th.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -399,6 +399,9 @@ PD32_OUT_OF_MEMORY "ñÃÊ?¿ÝÊý???" PD32_GENERIC_ERROR "ÓíÈ?ñÃÊ??È?¥?Ê?" PD32_DRIVER_UNKNOWN "õ?Þ??Ú¿Ðí?õ?ýÓÃ??ýýÓñ?ÎÞ?º¥È ?¥ý" + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "Óñ?ÎÞ?º¥È?¥ý?íÁÈ; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "?i %d ß?Ú??????Þ" _____ Modified: trunk/reactos/lib/comdlg32/cdlg_Uk.rc --- trunk/reactos/lib/comdlg32/cdlg_Uk.rc 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/cdlg_Uk.rc 2005-11-17 19:44:07 UTC (rev 19297) @@ -373,6 +373,9 @@ PD32_OUT_OF_MEMORY "?ÓÙ¯ ´Óý' ??" PD32_GENERIC_ERROR "?ÞÝÞÛÙÓ(Þ) ´¯ýÞÙÛÓ(Þ)" PD32_DRIVER_UNKNOWN "?ÕÔ?õ¯ýÞÚ õÓÚÔÕ ´ÞÝ?ÕÓ" + PD32_NO_DEVICES "Before you can perform printer-related tasks \ +such as page setup or printing a document, you need to install a printer. \ +Please install one and retry." PD32_DEFAULT_PRINTER "¤ÞÝ?Õ þÓ ¯ß¾ý¯ÔÙÕÝÝ ý; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d õ¯Û¾ýÕÝ??Ô ¾ ¸Õþ?" _____ Modified: trunk/reactos/lib/comdlg32/colordlg.c --- trunk/reactos/lib/comdlg32/colordlg.c 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/colordlg.c 2005-11-17 19:44:07 UTC (rev 19297) @@ -1249,6 +1249,16 @@ /*********************************************************************** * ChooseColorW (COMDLG32.@) + * + * Create a color dialog box. + * + * PARAMS + * lpChCol [I/O] in: information to initialize the dialog box. + * out: User's color selection + * + * RETURNS + * TRUE: Ok button clicked. + * FALSE: Cancel button clicked, or error. */ BOOL WINAPI ChooseColorW( LPCHOOSECOLORW lpChCol ) { @@ -1309,6 +1319,8 @@ /*********************************************************************** * ChooseColorA (COMDLG32.@) + * + * See ChooseColorW. */ BOOL WINAPI ChooseColorA( LPCHOOSECOLORA lpChCol ) _____ Modified: trunk/reactos/lib/comdlg32/comdlg32.xml --- trunk/reactos/lib/comdlg32/comdlg32.xml 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/comdlg32.xml 2005-11-17 19:44:07 UTC (rev 19297) @@ -18,6 +18,7 @@ <library>shell32</library> <library>shlwapi</library> <library>winspool</library> + <library>ole32</library> <file>cdlg32.c</file> <file>colordlg.c</file> <file>filedlg.c</file> _____ Modified: trunk/reactos/lib/comdlg32/filedlg.c --- trunk/reactos/lib/comdlg32/filedlg.c 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/filedlg.c 2005-11-17 19:44:07 UTC (rev 19297) @@ -250,6 +250,7 @@ LPCVOID template; HRSRC hRes; HANDLE hDlgTmpl = 0; + HRESULT hr; /* test for missing functionality */ if (fodInfos->ofnInfos->Flags & UNIMPLEMENTED_FLAGS) @@ -281,11 +282,16 @@ fodInfos->HookMsg.sharevistring = RegisterWindowMessageA(SHAREVISTRINGA); } + /* Some shell namespace extensions depend on COM being initialized. */ + hr = CoInitialize(NULL); + lRes = DialogBoxIndirectParamA(COMDLG32_hInstance, (LPDLGTEMPLATEA) template, fodInfos->ofnInfos->hwndOwner, FileOpenDlgProc95, (LPARAM) fodInfos); + if (SUCCEEDED(hr)) + CoUninitialize(); /* Unable to create the dialog */ if( lRes == -1) _____ Modified: trunk/reactos/lib/comdlg32/filetitle.c --- trunk/reactos/lib/comdlg32/filetitle.c 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/filetitle.c 2005-11-17 19:44:07 UTC (rev 19297) @@ -40,6 +40,7 @@ /*********************************************************************** * GetFileTitleA (COMDLG32.@) * + * See GetFileTitleW. */ short WINAPI GetFileTitleA(LPCSTR lpFile, LPSTR lpTitle, WORD cbBuf) { @@ -60,12 +61,22 @@ /*********************************************************************** * GetFileTitleW (COMDLG32.@) * + * Get the name of a file. + * + * PARAMS + * lpFile [I] name and location of file + * lpTitle [O] returned file name + * cbBuf [I] buffer size of lpTitle + * + * RETURNS + * Success: zero + * Failure: negative number. */ short WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, WORD cbBuf) { int i, len; static const WCHAR brkpoint[] = {'*','[',']',0}; - TRACE("(%p %p %d); \n", lpFile, lpTitle, cbBuf); + TRACE("(%p %p %d);\n", lpFile, lpTitle, cbBuf); if(lpFile == NULL || lpTitle == NULL) return -1; @@ -95,7 +106,7 @@ if(i == -1) i++; - TRACE("---> '%s' \n", debugstr_w(&lpFile[i])); + TRACE("---> '%s'\n", debugstr_w(&lpFile[i])); len = strlenW(lpFile+i)+1; if(cbBuf < len) _____ Modified: trunk/reactos/lib/comdlg32/finddlg32.c --- trunk/reactos/lib/comdlg32/finddlg32.c 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/finddlg32.c 2005-11-17 19:44:07 UTC (rev 19297) @@ -440,9 +440,8 @@ /*********************************************************************** * FindTextA [COMDLG32.@] - * RETURNS - * Window handle to created dialog: Success - * NULL: Failure + * + * See FindTextW. */ HWND WINAPI FindTextA( LPFINDREPLACEA pfr /* [in] Find/replace structure*/ @@ -464,9 +463,8 @@ /*********************************************************************** * ReplaceTextA [COMDLG32.@] - * RETURNS - * Window handle to created dialog: Success - * NULL: Failure + * + * See ReplaceTextW. */ HWND WINAPI ReplaceTextA( LPFINDREPLACEA pfr /* [in] Find/replace structure*/ @@ -489,6 +487,9 @@ /*********************************************************************** * FindTextW [COMDLG32.@] + * + * Create a modeless find-text dialog box. + * * RETURNS * Window handle to created dialog: Success * NULL: Failure @@ -520,6 +521,9 @@ /*********************************************************************** * ReplaceTextW [COMDLG32.@] + * + * Create a modeless replace-text dialog box. + * * RETURNS * Window handle to created dialog: Success * NULL: Failure _____ Modified: trunk/reactos/lib/comdlg32/fontdlg.c --- trunk/reactos/lib/comdlg32/fontdlg.c 2005-11-17 19:36:54 UTC (rev 19296) +++ trunk/reactos/lib/comdlg32/fontdlg.c 2005-11-17 19:44:07 UTC (rev 19297) @@ -160,6 +160,16 @@ [truncated at 1000 lines; 141 more skipped]
19 years, 1 month
1
0
0
0
[gvg] 19296: Sync to Wine-0_9_1:
by gvg@svn.reactos.com
Sync to Wine-0_9_1: Vitaliy Margolen <wine-patch(a)kievinfo.com> - Unify HEADER_GetItem[A/W] into one function. - Unify HEADER_InsertItem[A/W] into one function. - Unify HEADER_SetItem[A/W] into one function. Michael Kaufmann <hallo(a)michael-kaufmann.ch> - Handle WM_PRINTCLIENT. Don't use SelectClipRgn in WM_PRINTCLIENT. Dimi Paun <dimi(a)lattica.com> - Validate the column index passed in by the caller. Alex Villacís Lasso <a_villacis(a)palosanto.com> - Do not issue a GetUpdateRect() to query an update region for WM_PAINT(wParam=HDC) case. Instead, use GetClientRect() for a bounding rect. Vincent Béron <vberon(a)mecano.gme.usherb.ca> - Move functions in comctl32/string.c to remove function declaration. Dmitry Timoshkov <dmitry(a)codeweavers.com> - Use Win32 APIs for string comparison. - Avoid printing out a possibly uninitialized variable. Ulrich Czekalla <ulrich(a)codeweavers.com> - Clear bLButtonDown flags if mouse is not down. Martin Fuchs <martin-fuchs(a)gmx.net> - Include config.h and port.h for strncasecmp() in MSVC port. Modified: trunk/reactos/lib/comctl32/animate.c Modified: trunk/reactos/lib/comctl32/comboex.c Modified: trunk/reactos/lib/comctl32/datetime.c Modified: trunk/reactos/lib/comctl32/header.c Modified: trunk/reactos/lib/comctl32/hotkey.c Modified: trunk/reactos/lib/comctl32/imagelist.c Modified: trunk/reactos/lib/comctl32/listview.c Modified: trunk/reactos/lib/comctl32/monthcal.c Modified: trunk/reactos/lib/comctl32/pager.c Modified: trunk/reactos/lib/comctl32/progress.c Modified: trunk/reactos/lib/comctl32/propsheet.c Modified: trunk/reactos/lib/comctl32/rebar.c Modified: trunk/reactos/lib/comctl32/status.c Modified: trunk/reactos/lib/comctl32/string.c Modified: trunk/reactos/lib/comctl32/syslink.c Modified: trunk/reactos/lib/comctl32/tab.c Modified: trunk/reactos/lib/comctl32/toolbar.c Modified: trunk/reactos/lib/comctl32/tooltips.c Modified: trunk/reactos/lib/comctl32/trackbar.c Modified: trunk/reactos/lib/comctl32/treeview.c Modified: trunk/reactos/lib/comctl32/updown.c _____ Modified: trunk/reactos/lib/comctl32/animate.c --- trunk/reactos/lib/comctl32/animate.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/animate.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -899,6 +899,7 @@ case WM_TIMER: return ANIMATE_Timer(infoPtr); + case WM_PRINTCLIENT: case WM_PAINT: { /* the animation isn't playing, or has not decompressed _____ Modified: trunk/reactos/lib/comctl32/comboex.c --- trunk/reactos/lib/comctl32/comboex.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/comboex.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -1395,7 +1395,7 @@ if (!item) { item = get_item_data(infoPtr, dis->itemID); if (item == (CBE_ITEMDATA *)CB_ERR) { - ERR("invalid item for id %d \n", dis->itemID); + ERR("invalid item for id %d\n", dis->itemID); return 0; } } _____ Modified: trunk/reactos/lib/comctl32/datetime.c --- trunk/reactos/lib/comctl32/datetime.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/datetime.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -1284,6 +1284,7 @@ case WM_GETDLGCODE: return DLGC_WANTARROWS | DLGC_WANTCHARS; + case WM_PRINTCLIENT: case WM_PAINT: return DATETIME_Paint (infoPtr, (HDC)wParam); _____ Modified: trunk/reactos/lib/comctl32/header.c --- trunk/reactos/lib/comctl32/header.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/header.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -598,10 +598,99 @@ nmitem.iImage = infoPtr->items[iItem].iImage; return (BOOL)SendMessageW (infoPtr->hwndNotify, WM_NOTIFY, - (WPARAM)nmhdr.hdr.idFrom, (LPARAM)&nmhdr); + (WPARAM)nmhdr.hdr.idFrom, (LPARAM)&nmhdr); } +/** + * Send Disp Info notification. + * depends on NMHDDISPINFOW having same structure as NMHDDISPINFOA + * (so we handle the two cases only doing a specific cast for pszText). + * + * @param hwnd : hwnd header container handler + * @param mask : notification mask (usually HDI_TEXT or HDI_IMAGE) + * @param pDispInfo : NMHDDISPINFO structure (can be unicode or ansi) + * @param isW : TRUE if dispinfo is Unicode + */ +static BOOL +HEADER_SendHeaderDispInfoNotify(HWND hwnd, INT iItem, INT mask, LPHDITEMW phdi, HEADER_ITEM* lpItem, BOOL isW) +{ + HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); + BOOL ret; + BOOL convertToAnsi = FALSE; + BOOL convertToUnicode = FALSE; + BOOL isUnicodeNotify = FALSE; + NMHDDISPINFOW dispInfo; + if (mask & HDI_TEXT) + { + convertToAnsi = (isW && infoPtr->nNotifyFormat == NFR_ANSI); + convertToUnicode = (!isW && infoPtr->nNotifyFormat == NFR_UNICODE); + } + isUnicodeNotify = (isW && !convertToAnsi); + + memset(&dispInfo, 0, sizeof(NMHDDISPINFOW)); + dispInfo.hdr.hwndFrom = hwnd; + dispInfo.hdr.idFrom = GetWindowLongPtrW (hwnd, GWLP_ID); + if (isUnicodeNotify || convertToUnicode) + { + dispInfo.hdr.code = HDN_GETDISPINFOW; + } + else + { + dispInfo.hdr.code = HDN_GETDISPINFOA; + } + dispInfo.iItem = iItem; + dispInfo.mask = mask; + /* + dispInfo.pszText = Alloc(sizeof(WCHAR) * 260); + dispInfo.cchTextMax = 260; + */ + ret = (BOOL) SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, + (WPARAM) dispInfo.hdr.idFrom, + (LPARAM) &dispInfo); + + TRACE("SendMessage returns(mask:0x%x,str:%s,lParam:%p)\n", + dispInfo.mask, + (isUnicodeNotify ? debugstr_w(dispInfo.pszText) : (LPSTR) dispInfo.pszText), + (void*) dispInfo.lParam); + + if (dispInfo.mask & HDI_DI_SETITEM) + { + if (dispInfo.mask & HDI_IMAGE) + { + lpItem->iImage = dispInfo.iImage; + } + if (dispInfo.mask & HDI_TEXT) + { + if (isUnicodeNotify || convertToUnicode) + Str_SetPtrW(&lpItem->pszText, (LPCWSTR)dispInfo.pszText); + else /*if (convertToAnsi || !isW)*/ + Str_SetPtrAtoW(&lpItem->pszText, (LPCSTR)dispInfo.pszText); + } + + FIXME("NMHDDISPINFO returns with flags HDI_DI_SETITEM\n"); + } + + if (NULL != phdi) + { + if ((phdi->mask & mask) & HDI_IMAGE) + { + phdi->iImage = dispInfo.iImage; + } + if ((phdi->mask & mask) & HDI_TEXT) + { + if (isUnicodeNotify) + Str_GetPtrW ((LPCWSTR)dispInfo.pszText, phdi->pszText, phdi->cchTextMax); + else if (convertToUnicode) + Str_GetPtrWtoA ((LPCWSTR)dispInfo.pszText, (LPSTR)phdi->pszText, phdi->cchTextMax); + else /*if (!isW) */ + Str_GetPtrA ((LPCSTR)dispInfo.pszText, (LPSTR)phdi->pszText, phdi->cchTextMax); + } + } + return ret; +} + + static BOOL HEADER_SendClickNotify (HWND hwnd, UINT code, INT iItem) { @@ -712,11 +801,9 @@ static LRESULT -HEADER_GetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam) +HEADER_GetItemT (HWND hwnd, INT nItem, LPHDITEMW phdi, BOOL bUnicode) { HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HDITEMA *phdi = (HDITEMA*)lParam; - INT nItem = (INT)wParam; HEADER_ITEM *lpItem; if (!phdi) @@ -727,12 +814,10 @@ if (phdi->mask == 0) return TRUE; - if ((nItem < 0) || (nItem >= (INT)infoPtr->uNumItem)) { + if ((nItem < 0) || (nItem >= (INT)infoPtr->uNumItem)) lpItem = NULL; - } - else { + else lpItem = &infoPtr->items[nItem]; - } if (phdi->mask & HDI_BITMAP) phdi->hbm = (lpItem != NULL) ? lpItem->hbm : 0; @@ -746,86 +831,34 @@ if (phdi->mask & HDI_LPARAM) phdi->lParam = (lpItem != NULL) ? lpItem->lParam : 0; - if (phdi->mask & HDI_TEXT) { - if (lpItem == NULL) { - *phdi->pszText = 0; - } - else if (lpItem->pszText != LPSTR_TEXTCALLBACKW) { - if (lpItem->pszText) - WideCharToMultiByte (CP_ACP, 0, lpItem->pszText, -1, - phdi->pszText, phdi->cchTextMax, NULL, NULL); - else - *phdi->pszText = 0; - } - else - phdi->pszText = LPSTR_TEXTCALLBACKA; + if (phdi->mask & HDI_IMAGE) + { + phdi->iImage = (lpItem != NULL) ? lpItem->iImage : 0; + if (lpItem->iImage == I_IMAGECALLBACK) + { + HEADER_SendHeaderDispInfoNotify(hwnd, nItem, HDI_IMAGE, phdi, lpItem, bUnicode); + } } - if (phdi->mask & HDI_IMAGE) - phdi->iImage = (lpItem != NULL) ? lpItem->iImage : 0; - if (phdi->mask & HDI_ORDER) phdi->iOrder = (lpItem != NULL) ? lpItem->iOrder : 0; - return TRUE; -} - - -static LRESULT -HEADER_GetItemW (HWND hwnd, WPARAM wParam, LPARAM lParam) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HDITEMW *phdi = (HDITEMW*)lParam; - INT nItem = (INT)wParam; - HEADER_ITEM *lpItem; - - if (!phdi) - return FALSE; - - TRACE("[nItem=%d]\n", nItem); - - if (phdi->mask == 0) - return TRUE; - - if ((nItem < 0) || (nItem >= (INT)infoPtr->uNumItem)) { - lpItem = NULL; + if (phdi->mask & HDI_TEXT) + { + if (lpItem == NULL) *phdi->pszText = 0; /* null pointer check */ + else if (lpItem->pszText == LPSTR_TEXTCALLBACKW) /* covers == TEXTCALLBACKA too */ + { + HEADER_SendHeaderDispInfoNotify(hwnd, nItem, HDI_TEXT, phdi, lpItem, bUnicode); + } + else + { + if (bUnicode) + Str_GetPtrW (lpItem->pszText, phdi->pszText, phdi->cchTextMax); + else + Str_GetPtrWtoA (lpItem->pszText, (LPSTR)phdi->pszText, phdi->cchTextMax); + } } - else { - lpItem = &infoPtr->items[nItem]; - } - if (phdi->mask & HDI_BITMAP) - phdi->hbm = (lpItem != NULL) ? lpItem->hbm : 0; - - if (phdi->mask & HDI_FORMAT) - phdi->fmt = (lpItem != NULL) ? lpItem->fmt : 0; - - if (phdi->mask & HDI_WIDTH) - phdi->cxy = (lpItem != NULL) ? lpItem->cxy : 0; - - if (phdi->mask & HDI_LPARAM) - phdi->lParam = (lpItem != NULL) ? lpItem->lParam : 0; - - if (phdi->mask & HDI_TEXT) { - if (lpItem == NULL) { - *phdi->pszText = 0; - } - else if (lpItem->pszText != LPSTR_TEXTCALLBACKW) { - if (lpItem->pszText) - lstrcpynW (phdi->pszText, lpItem->pszText, phdi->cchTextMax); - else - *phdi->pszText = 0; - } - else - phdi->pszText = LPSTR_TEXTCALLBACKW; - } - - if (phdi->mask & HDI_IMAGE) - phdi->iImage = (lpItem != NULL) ? lpItem->iImage : 0; - - if (phdi->mask & HDI_ORDER) - phdi->iOrder = (lpItem != NULL) ? lpItem->iOrder : 0; - return TRUE; } @@ -914,13 +947,11 @@ static LRESULT -HEADER_InsertItemA (HWND hwnd, WPARAM wParam, LPARAM lParam) +HEADER_InsertItemT (HWND hwnd, INT nItem, LPHDITEMW phdi, BOOL bUnicode) { HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HDITEMA *phdi = (HDITEMA*)lParam; - INT nItem = (INT)wParam; HEADER_ITEM *lpItem; - INT len, iOrder; + INT iOrder; UINT i; if ((phdi == NULL) || (nItem < 0)) @@ -988,150 +1019,49 @@ if (phdi->mask & HDI_WIDTH) lpItem->cxy = phdi->cxy; - if (phdi->mask & HDI_TEXT) { - if (!phdi->pszText) /* null pointer check */ - phdi->pszText = ""; - if (phdi->pszText != LPSTR_TEXTCALLBACKA) { - len = MultiByteToWideChar(CP_ACP, 0, phdi->pszText, -1, NULL, 0); - lpItem->pszText = Alloc( len*sizeof(WCHAR) ); - MultiByteToWideChar(CP_ACP, 0, phdi->pszText, -1, lpItem->pszText, len); - } - else - lpItem->pszText = LPSTR_TEXTCALLBACKW; - } - if (phdi->mask & HDI_FORMAT) lpItem->fmt = phdi->fmt; if (lpItem->fmt == 0) lpItem->fmt = HDF_LEFT; - if (!(lpItem->fmt & HDF_STRING) && (phdi->mask & HDI_TEXT)) - { - lpItem->fmt |= HDF_STRING; - } if (phdi->mask & HDI_BITMAP) lpItem->hbm = phdi->hbm; if (phdi->mask & HDI_LPARAM) lpItem->lParam = phdi->lParam; - if (phdi->mask & HDI_IMAGE) - lpItem->iImage = phdi->iImage; - - lpItem->iOrder = iOrder; - - HEADER_SetItemBounds (hwnd); - - InvalidateRect(hwnd, NULL, FALSE); - - return nItem; -} - - -static LRESULT -HEADER_InsertItemW (HWND hwnd, WPARAM wParam, LPARAM lParam) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HDITEMW *phdi = (HDITEMW*)lParam; - INT nItem = (INT)wParam; - HEADER_ITEM *lpItem; - INT len, iOrder; - UINT i; - - if ((phdi == NULL) || (nItem < 0)) - return -1; - - if (nItem > infoPtr->uNumItem) - nItem = infoPtr->uNumItem; - - iOrder = (phdi->mask & HDI_ORDER) ? phdi->iOrder : nItem; - - if (infoPtr->uNumItem == 0) { - infoPtr->items = Alloc (sizeof (HEADER_ITEM)); - infoPtr->order = Alloc(sizeof(INT)); - infoPtr->uNumItem++; + if (phdi->mask & HDI_IMAGE) + { + if (phdi->iImage != I_IMAGECALLBACK) + { + lpItem->iImage = phdi->iImage; + } + else + { + lpItem->iImage = phdi->iImage; + HEADER_SendHeaderDispInfoNotify(hwnd, nItem, HDI_IMAGE, NULL, lpItem, bUnicode); + } } - else { - HEADER_ITEM *oldItems = infoPtr->items; - INT *oldOrder = infoPtr->order; - infoPtr->uNumItem++; - infoPtr->items = Alloc (sizeof (HEADER_ITEM) * infoPtr->uNumItem); - if (nItem == 0) { - memcpy (&infoPtr->items[1], &oldItems[0], - (infoPtr->uNumItem-1) * sizeof(HEADER_ITEM)); + if (phdi->mask & HDI_TEXT) + { + if (!phdi->pszText) phdi->pszText = '\0'; /* null pointer check */ + if (phdi->pszText != LPSTR_TEXTCALLBACKW) /* covers != TEXTCALLBACKA too */ + { + if (bUnicode) + Str_SetPtrW(&lpItem->pszText, phdi->pszText); + else + Str_SetPtrAtoW(&lpItem->pszText, (LPSTR)phdi->pszText); } - else + else { - /* pre insert copy */ - if (nItem > 0) { - memcpy (&infoPtr->items[0], &oldItems[0], - nItem * sizeof(HEADER_ITEM)); - } - - /* post insert copy */ - if (nItem < infoPtr->uNumItem - 1) { - memcpy (&infoPtr->items[nItem+1], &oldItems[nItem], - (infoPtr->uNumItem - nItem - 1) * sizeof(HEADER_ITEM)); - } + lpItem->pszText = phdi->pszText; + HEADER_SendHeaderDispInfoNotify(hwnd, nItem, HDI_TEXT, NULL, lpItem, bUnicode); } - - infoPtr->order = Alloc(infoPtr->uNumItem * sizeof(INT)); - memcpy(infoPtr->order, oldOrder, iOrder * sizeof(INT)); - infoPtr->order[iOrder] = nItem; - memcpy(&infoPtr->order[iOrder + 1], &oldOrder[iOrder], - (infoPtr->uNumItem - iOrder - 1) * sizeof(INT)); - - Free (oldItems); - Free(oldOrder); + lpItem->fmt |= HDF_STRING; } - for (i = 0; i < infoPtr->uNumItem; i++) - { - if (i != iOrder && infoPtr->order[i] >= nItem) - infoPtr->order[i]++; - infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i]; - } - - lpItem = &infoPtr->items[nItem]; - lpItem->bDown = FALSE; - - if (phdi->mask & HDI_WIDTH) - lpItem->cxy = phdi->cxy; - - if (phdi->mask & HDI_TEXT) { - WCHAR wide_null_char = 0; - if (!phdi->pszText) /* null pointer check */ - phdi->pszText = &wide_null_char; - if (phdi->pszText != LPSTR_TEXTCALLBACKW) { - len = strlenW (phdi->pszText); - lpItem->pszText = Alloc ((len+1)*sizeof(WCHAR)); - strcpyW (lpItem->pszText, phdi->pszText); - } - else - lpItem->pszText = LPSTR_TEXTCALLBACKW; - } - - if (phdi->mask & HDI_FORMAT) - lpItem->fmt = phdi->fmt; - - if (lpItem->fmt == 0) - lpItem->fmt = HDF_LEFT; - - if (!(lpItem->fmt &HDF_STRING) && (phdi->mask & HDI_TEXT)) - { - lpItem->fmt |= HDF_STRING; - } - if (phdi->mask & HDI_BITMAP) - lpItem->hbm = phdi->hbm; - - if (phdi->mask & HDI_LPARAM) - lpItem->lParam = phdi->lParam; - - if (phdi->mask & HDI_IMAGE) - lpItem->iImage = phdi->iImage; - lpItem->iOrder = iOrder; HEADER_SetItemBounds (hwnd); @@ -1207,11 +1137,9 @@ } static LRESULT -HEADER_SetItemA (HWND hwnd, WPARAM wParam, LPARAM lParam) +HEADER_SetItemT (HWND hwnd, INT nItem, LPHDITEMW phdi, BOOL bUnicode) { HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HDITEMA *phdi = (HDITEMA*)lParam; - INT nItem = (INT)wParam; HEADER_ITEM *lpItem; if (phdi == NULL) @@ -1221,7 +1149,8 @@ TRACE("[nItem=%d]\n", nItem); - if (HEADER_SendHeaderNotify (hwnd, HDN_ITEMCHANGINGA, nItem, phdi->mask)) + if (HEADER_SendHeaderNotify (hwnd, bUnicode ? HDN_ITEMCHANGINGW : HDN_ITEMCHANGINGA, + nItem, phdi->mask)) return FALSE; lpItem = &infoPtr->items[nItem]; @@ -1234,113 +1163,46 @@ if (phdi->mask & HDI_LPARAM) lpItem->lParam = phdi->lParam; - if (phdi->mask & HDI_TEXT) { - if (phdi->pszText != LPSTR_TEXTCALLBACKA) { - if (lpItem->pszText) { - Free (lpItem->pszText); - lpItem->pszText = NULL; - } - if (phdi->pszText) { - INT len = MultiByteToWideChar (CP_ACP,0,phdi->pszText,-1,NULL,0); - lpItem->pszText = Alloc( len*sizeof(WCHAR) ); - MultiByteToWideChar (CP_ACP,0,phdi->pszText,-1,lpItem->pszText,len); - } - } - else - lpItem->pszText = LPSTR_TEXTCALLBACKW; - } - if (phdi->mask & HDI_WIDTH) lpItem->cxy = phdi->cxy; - if (phdi->mask & HDI_IMAGE) - lpItem->iImage = phdi->iImage; - - if (phdi->mask & HDI_ORDER) - { - INT i, nMin, nMax; - - if (lpItem->iOrder < phdi->iOrder) + if (phdi->mask & HDI_IMAGE) + { + if (phdi->iImage != I_IMAGECALLBACK) { - memmove(&infoPtr->order[lpItem->iOrder], - &infoPtr->order[lpItem->iOrder + 1], - (phdi->iOrder - lpItem->iOrder) * sizeof(INT)); - } - if (phdi->iOrder < lpItem->iOrder) + lpItem->iImage = phdi->iImage; + } + else { - memmove(&infoPtr->order[phdi->iOrder + 1], - &infoPtr->order[phdi->iOrder], - (lpItem->iOrder - phdi->iOrder) * sizeof(INT)); + lpItem->iImage = phdi->iImage; + HEADER_SendHeaderDispInfoNotify(hwnd, nItem, HDI_IMAGE, NULL, lpItem, bUnicode); } - infoPtr->order[phdi->iOrder] = nItem; - nMin = min(lpItem->iOrder, phdi->iOrder); - nMax = max(lpItem->iOrder, phdi->iOrder); - for (i = nMin; i <= nMax; i++) - { - infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i]; - } - } + } - HEADER_SendHeaderNotify (hwnd, HDN_ITEMCHANGEDA, nItem, phdi->mask); - - HEADER_SetItemBounds (hwnd); - - InvalidateRect(hwnd, NULL, FALSE); - - return TRUE; -} - - -static LRESULT -HEADER_SetItemW (HWND hwnd, WPARAM wParam, LPARAM lParam) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HDITEMW *phdi = (HDITEMW*)lParam; - INT nItem = (INT)wParam; - HEADER_ITEM *lpItem; - - if (phdi == NULL) - return FALSE; - if ((nItem < 0) || (nItem >= (INT)infoPtr->uNumItem)) - return FALSE; - - TRACE("[nItem=%d]\n", nItem); - - if (HEADER_SendHeaderNotify (hwnd, HDN_ITEMCHANGINGW, nItem, phdi->mask)) - return FALSE; - - lpItem = &infoPtr->items[nItem]; - if (phdi->mask & HDI_BITMAP) - lpItem->hbm = phdi->hbm; - - if (phdi->mask & HDI_FORMAT) - lpItem->fmt = phdi->fmt; - - if (phdi->mask & HDI_LPARAM) - lpItem->lParam = phdi->lParam; - - if (phdi->mask & HDI_TEXT) { - if (phdi->pszText != LPSTR_TEXTCALLBACKW) { - if (lpItem->pszText) { - Free (lpItem->pszText); - lpItem->pszText = NULL; - } - if (phdi->pszText) { - INT len = strlenW (phdi->pszText); - lpItem->pszText = Alloc ((len+1)*sizeof(WCHAR)); - strcpyW (lpItem->pszText, phdi->pszText); - } + if (phdi->mask & HDI_TEXT) + { + if (phdi->pszText != LPSTR_TEXTCALLBACKW) /* covers != TEXTCALLBACKA too */ + { + if (lpItem->pszText) + { + Free(lpItem->pszText); + lpItem->pszText = NULL; + } + if (phdi->pszText) + { + if (bUnicode) + Str_SetPtrW(&lpItem->pszText, phdi->pszText); + else + Str_SetPtrAtoW(&lpItem->pszText, (LPSTR)phdi->pszText); + } } - else - lpItem->pszText = LPSTR_TEXTCALLBACKW; + else + { + lpItem->pszText = phdi->pszText; + HEADER_SendHeaderDispInfoNotify(hwnd, nItem, HDI_TEXT, NULL, lpItem, bUnicode); + } } - if (phdi->mask & HDI_WIDTH) - lpItem->cxy = phdi->cxy; - - if (phdi->mask & HDI_IMAGE) - lpItem->iImage = phdi->iImage; - if (phdi->mask & HDI_ORDER) { INT i, nMin, nMax; @@ -1366,7 +1228,8 @@ } } - HEADER_SendHeaderNotify(hwnd, HDN_ITEMCHANGEDW, nItem, phdi->mask); + HEADER_SendHeaderNotify (hwnd, bUnicode ? HDN_ITEMCHANGEDW : HDN_ITEMCHANGEDA, + nItem, phdi->mask); HEADER_SetItemBounds (hwnd); @@ -1889,10 +1752,8 @@ return HEADER_GetImageList (hwnd); case HDM_GETITEMA: - return HEADER_GetItemA (hwnd, wParam, lParam); - case HDM_GETITEMW: - return HEADER_GetItemW (hwnd, wParam, lParam); + return HEADER_GetItemT (hwnd, (INT)wParam, (LPHDITEMW)lParam, msg == HDM_GETITEMW); case HDM_GETITEMCOUNT: return HEADER_GetItemCount (hwnd); @@ -1910,10 +1771,8 @@ return HEADER_HitTest (hwnd, wParam, lParam); case HDM_INSERTITEMA: - return HEADER_InsertItemA (hwnd, wParam, lParam); - case HDM_INSERTITEMW: - return HEADER_InsertItemW (hwnd, wParam, lParam); + return HEADER_InsertItemT (hwnd, (INT)wParam, (LPHDITEMW)lParam, msg == HDM_INSERTITEMW); case HDM_LAYOUT: return HEADER_Layout (hwnd, wParam, lParam); @@ -1932,10 +1791,8 @@ return HEADER_SetImageList (hwnd, (HIMAGELIST)lParam); case HDM_SETITEMA: - return HEADER_SetItemA (hwnd, wParam, lParam); - case HDM_SETITEMW: - return HEADER_SetItemW (hwnd, wParam, lParam); + return HEADER_SetItemT (hwnd, (INT)wParam, (LPHDITEMW)lParam, msg == HDM_SETITEMW); case HDM_SETORDERARRAY: return HEADER_SetOrderArray(hwnd, wParam, lParam); @@ -1982,6 +1839,7 @@ case WM_THEMECHANGED: return HEADER_ThemeChanged (hwnd); + case WM_PRINTCLIENT: case WM_PAINT: return HEADER_Paint (hwnd, wParam); _____ Modified: trunk/reactos/lib/comctl32/hotkey.c --- trunk/reactos/lib/comctl32/hotkey.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/hotkey.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -516,6 +516,7 @@ case WM_NCCREATE: return HOTKEY_NCCreate (hwnd, (LPCREATESTRUCTW)lParam); + case WM_PRINTCLIENT: case WM_PAINT: HOTKEY_Paint(infoPtr, (HDC)wParam); return 0; _____ Modified: trunk/reactos/lib/comctl32/imagelist.c --- trunk/reactos/lib/comctl32/imagelist.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/imagelist.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -1581,8 +1581,7 @@ * * Creates an image list from a bitmap, icon or cursor. * - * SEE - * ImageList_LoadImageW () + * See ImageList_LoadImageW. */ HIMAGELIST WINAPI _____ Modified: trunk/reactos/lib/comctl32/listview.c --- trunk/reactos/lib/comctl32/listview.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/listview.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -3274,6 +3274,9 @@ { TRACKMOUSEEVENT trackinfo; + if (!(fwKeys & MK_LBUTTON)) + infoPtr->bLButtonDown = FALSE; + if (infoPtr->bLButtonDown && DragDetect(infoPtr->hwndSelf, infoPtr->ptClickPos)) { LVHITTESTINFO lvHitTestInfo; @@ -4189,7 +4192,7 @@ HDC hdc, hdcOrig; HBITMAP hbmp, hOldbmp; HIMAGELIST dragList = 0; - TRACE("iItem=%d Count=%d \n", iItem, infoPtr->nItemCount); + TRACE("iItem=%d Count=%d\n", iItem, infoPtr->nItemCount); if (iItem < 0 || iItem >= infoPtr->nItemCount) return 0; @@ -5137,7 +5140,7 @@ * * NOTE: * This is the internal 'GetItem' interface -- it tries to - * be smart, and avoids text copies, if possible, by modifing + * be smart and avoid text copies, if possible, by modifying * lpLVItem->pszText to point to the text string. Please note * that this is not always possible (e.g. OWNERDATA), so on * entry you *must* supply valid values for pszText, and cchTextMax. @@ -5612,6 +5615,7 @@ { POINT Position; LVITEMW lvItem; + INT nColumn = lprc->top; if (!lprc) return FALSE; @@ -5624,9 +5628,11 @@ if (!LISTVIEW_GetItemPosition(infoPtr, nItem, &Position)) return FALSE; + if (nColumn < 0 || nColumn >= DPA_GetPtrCount(infoPtr->hdpaColumns)) return FALSE; + lvItem.mask = 0; lvItem.iItem = nItem; - lvItem.iSubItem = lprc->top; + lvItem.iSubItem = nColumn; if (lvItem.mask && !LISTVIEW_GetItemW(infoPtr, &lvItem)) return FALSE; switch(lprc->left) _____ Modified: trunk/reactos/lib/comctl32/monthcal.c --- trunk/reactos/lib/comctl32/monthcal.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/monthcal.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -2007,6 +2007,7 @@ case WM_LBUTTONUP: return MONTHCAL_LButtonUp(infoPtr, lParam); + case WM_PRINTCLIENT: case WM_PAINT: return MONTHCAL_Paint(infoPtr, wParam); _____ Modified: trunk/reactos/lib/comctl32/pager.c --- trunk/reactos/lib/comctl32/pager.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/pager.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -34,6 +34,8 @@ * PGS_DRAGNDROP * Notifications: * PGN_HOTITEMCHANGE + * Messages: + * WM_PRINT and/or WM_PRINTCLIENT * * TESTING: * Tested primarily with the controlspy Pager application. _____ Modified: trunk/reactos/lib/comctl32/progress.c --- trunk/reactos/lib/comctl32/progress.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/progress.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -627,6 +627,7 @@ case WM_SETFONT: return (LRESULT)PROGRESS_SetFont(infoPtr, (HFONT)wParam, (BOOL)lParam); + case WM_PRINTCLIENT: case WM_PAINT: return PROGRESS_Paint (infoPtr, (HDC)wParam); _____ Modified: trunk/reactos/lib/comctl32/propsheet.c --- trunk/reactos/lib/comctl32/propsheet.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/propsheet.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -3455,6 +3455,7 @@ return TRUE; } + case WM_PRINTCLIENT: case WM_PAINT: PROPSHEET_Paint(hwnd, (HDC)wParam); return TRUE; _____ Modified: trunk/reactos/lib/comctl32/rebar.c --- trunk/reactos/lib/comctl32/rebar.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/rebar.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -50,7 +50,6 @@ * - WM_LBUTTONDBLCLK * - WM_MEASUREITEM * - WM_PALETTECHANGED - * - WM_PRINTCLIENT * - WM_QUERYNEWPALETTE * - WM_RBUTTONDOWN * - WM_RBUTTONUP @@ -4768,11 +4767,11 @@ case WM_NOTIFYFORMAT: return REBAR_NotifyFormat (infoPtr, wParam, lParam); + case WM_PRINTCLIENT: case WM_PAINT: return REBAR_Paint (infoPtr, wParam, lParam); /* case WM_PALETTECHANGED: supported according to ControlSpy */ -/* case WM_PRINTCLIENT: supported according to ControlSpy */ /* case WM_QUERYNEWPALETTE:supported according to ControlSpy */ /* case WM_RBUTTONDOWN: supported according to ControlSpy */ /* case WM_RBUTTONUP: supported according to ControlSpy */ _____ Modified: trunk/reactos/lib/comctl32/status.c --- trunk/reactos/lib/comctl32/status.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/status.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -1342,6 +1342,7 @@ case WM_NOTIFYFORMAT: return STATUSBAR_NotifyFormat(infoPtr, (HWND)wParam, (INT)lParam); + case WM_PRINTCLIENT: case WM_PAINT: return STATUSBAR_WMPaint (infoPtr, (HDC)wParam); _____ Modified: trunk/reactos/lib/comctl32/string.c --- trunk/reactos/lib/comctl32/string.c 2005-11-17 17:34:22 UTC (rev 19295) +++ trunk/reactos/lib/comctl32/string.c 2005-11-17 19:36:54 UTC (rev 19296) @@ -22,6 +22,9 @@ * */ +#include "config.h" +#include "wine/port.h" + #include <stdarg.h> #include <string.h> #include <stdlib.h> /* atoi */ @@ -171,13 +174,52 @@ return NULL; } +/********************************************************************** **** + * StrCmpNIA [COMCTL32.353] + * + * Compare two strings, up to a maximum length, ignoring case. + * + * PARAMS + * lpszStr [I] First string to compare + * lpszComp [I] Second string to compare + * iLen [I] Maximum number of chars to compare. + * + * RETURNS + * An integer less than, equal to or greater than 0, indicating that + * lpszStr is less than, the same, or greater than lpszComp. + */ +INT WINAPI StrCmpNIA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen) +{ + INT iRet; + + TRACE("(%s,%s,%i)\n", debugstr_a(lpszStr), debugstr_a(lpszComp), iLen); + + iRet = CompareStringA(GetThreadLocale(), NORM_IGNORECASE, lpszStr, iLen, lpszComp, iLen); + return iRet == CSTR_LESS_THAN ? -1 : iRet == CSTR_GREATER_THAN ? 1 : 0; +} + /*********************************************************************** ** + * StrCmpNIW [COMCTL32.361] + * + * See StrCmpNIA. + */ +INT WINAPI StrCmpNIW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen) +{ + INT iRet; + + TRACE("(%s,%s,%i)\n", debugstr_w(lpszStr), debugstr_w(lpszComp), iLen); + + iRet = CompareStringW(GetThreadLocale(), NORM_IGNORECASE, lpszStr, iLen, lpszComp, iLen); + return iRet == CSTR_LESS_THAN ? -1 : iRet == CSTR_GREATER_THAN ? 1 : 0; +} + +/********************************************************************** *** * COMCTL32_StrStrHelperA * * Internal implementation of StrStrA/StrStrIA */ static LPSTR COMCTL32_StrStrHelperA(LPCSTR lpszStr, LPCSTR lpszSearch, - int (*pStrCmpFn)(LPCSTR,LPCSTR,size_t)) + INT (WINAPI *pStrCmpFn)(LPCSTR,LPCSTR,INT)) { size_t iLen; @@ -201,7 +243,7 @@ * Internal implementation of StrStrW/StrStrIW */ static LPWSTR COMCTL32_StrStrHelperW(LPCWSTR lpszStr, LPCWSTR lpszSearch, - int (*pStrCmpFn)(LPCWSTR,LPCWSTR,int)) + INT (WINAPI *pStrCmpFn)(LPCWSTR,LPCWSTR,INT)) { int iLen; @@ -235,7 +277,7 @@ { TRACE("(%s,%s)\n", debugstr_a(lpszStr), debugstr_a(lpszSearch)); - return COMCTL32_StrStrHelperA(lpszStr, lpszSearch, strncasecmp); + return COMCTL32_StrStrHelperA(lpszStr, lpszSearch, StrCmpNIA); } /*********************************************************************** *** @@ -264,7 +306,7 @@ { TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSearch)); - return COMCTL32_StrStrHelperW(lpszStr, lpszSearch, (int (*)(LPCWSTR,LPCWSTR,int)) wcsnicmp); + return COMCTL32_StrStrHelperW(lpszStr, lpszSearch, StrCmpNIW); } /*********************************************************************** *** @@ -365,45 +407,6 @@ } /*********************************************************************** *** - * StrCmpNIA [COMCTL32.353] - * - * Compare two strings, up to a maximum length, ignoring case. - * - * PARAMS - * lpszStr [I] First string to compare - * lpszComp [I] Second string to compare - * iLen [I] Maximum number of chars to compare. - * - * RETURNS - * An integer less than, equal to or greater than 0, indicating that - * lpszStr is less than, the same, or greater than lpszComp. - */ -int WINAPI StrCmpNIA(LPCSTR lpszStr, LPCSTR lpszComp, int iLen) -{ - INT iRet; - - TRACE("(%s,%s,%i)\n", debugstr_a(lpszStr), debugstr_a(lpszComp), iLen); - - iRet = CompareStringA(GetThreadLocale(), NORM_IGNORECASE, lpszStr, iLen, lpszComp, iLen); - return iRet == CSTR_LESS_THAN ? -1 : iRet == CSTR_GREATER_THAN ? 1 : 0; -} - -/********************************************************************** *** - * StrCmpNIW [COMCTL32.361] - * - * See StrCmpNIA. - */ -INT WINAPI StrCmpNIW(LPCWSTR lpszStr, LPCWSTR lpszComp, int iLen) -{ - INT iRet; - - TRACE("(%s,%s,%i)\n", debugstr_w(lpszStr), debugstr_w(lpszComp), iLen); - - iRet = CompareStringW(GetThreadLocale(), NORM_IGNORECASE, lpszStr, iLen, lpszComp, iLen); - return iRet == CSTR_LESS_THAN ? -1 : iRet == CSTR_GREATER_THAN ? 1 : 0; -} - -/********************************************************************** **** * StrCmpNW [COMCTL32.360] * * See StrCmpNA. @@ -501,7 +504,7 @@ { TRACE("(%s,%s)\n", debugstr_a(lpszStr), debugstr_a(lpszSearch)); [truncated at 1000 lines; 157 more skipped]
19 years, 1 month
1
0
0
0
[hbirr] 19295: Set the value/data cell to dirty, if an existing value is overwritten.
by hbirr@svn.reactos.com
Set the value/data cell to dirty, if an existing value is overwritten. Modified: trunk/reactos/ntoskrnl/cm/ntfunc.c _____ Modified: trunk/reactos/ntoskrnl/cm/ntfunc.c --- trunk/reactos/ntoskrnl/cm/ntfunc.c 2005-11-17 17:29:36 UTC (rev 19294) +++ trunk/reactos/ntoskrnl/cm/ntfunc.c 2005-11-17 17:34:22 UTC (rev 19295) @@ -1993,7 +1993,6 @@ RtlCopyMemory(&ValueCell->DataOffset, Data, DataSize); ValueCell->DataSize = DataSize | REG_DATA_IN_OFFSET; ValueCell->DataType = Type; - RtlMoveMemory(&ValueCell->DataOffset, Data, DataSize); CmiMarkBlockDirty(RegistryHive, ValueCellOffset); } else if (!(ValueCell->DataSize & REG_DATA_IN_OFFSET) && @@ -2005,6 +2004,8 @@ RtlCopyMemory(DataCell->Data, Data, DataSize); ValueCell->DataSize = DataSize; ValueCell->DataType = Type; + CmiMarkBlockDirty(RegistryHive, ValueCell->DataOffset); + CmiMarkBlockDirty(RegistryHive, ValueCellOffset); } else {
19 years, 1 month
1
0
0
0
[hbirr] 19294: - Fixed the test for the dirty bitmap size.
by hbirr@svn.reactos.com
- Fixed the test for the dirty bitmap size. - Fixed the length to copy the old dirty bitmap. Modified: trunk/reactos/ntoskrnl/cm/regfile.c _____ Modified: trunk/reactos/ntoskrnl/cm/regfile.c --- trunk/reactos/ntoskrnl/cm/regfile.c 2005-11-17 13:46:07 UTC (rev 19293) +++ trunk/reactos/ntoskrnl/cm/regfile.c 2005-11-17 17:29:36 UTC (rev 19294) @@ -3293,7 +3293,7 @@ /* Grow bitmap if necessary */ if (!IsNoFileHive(RegistryHive) && - BitmapSize > RegistryHive->DirtyBitMap.SizeOfBitMap) + BitmapSize > RegistryHive->DirtyBitMap.SizeOfBitMap / 8) { PULONG BitmapBuffer; @@ -3306,7 +3306,7 @@ RtlZeroMemory(BitmapBuffer, BitmapSize); RtlCopyMemory(BitmapBuffer, RegistryHive->DirtyBitMap.Buffer, - RegistryHive->DirtyBitMap.SizeOfBitMap); + RegistryHive->DirtyBitMap.SizeOfBitMap / 8); ExFreePool(RegistryHive->BitmapBuffer); RegistryHive->BitmapBuffer = BitmapBuffer; RtlInitializeBitMap(&RegistryHive->DirtyBitMap,
19 years, 1 month
1
0
0
0
[cwittich] 19293: sorry, forgot to change one var
by cwittich@svn.reactos.com
sorry, forgot to change one var Modified: trunk/reactos/lib/advapi32/service/scm.c _____ Modified: trunk/reactos/lib/advapi32/service/scm.c --- trunk/reactos/lib/advapi32/service/scm.c 2005-11-17 13:45:02 UTC (rev 19292) +++ trunk/reactos/lib/advapi32/service/scm.c 2005-11-17 13:46:07 UTC (rev 19293) @@ -343,7 +343,7 @@ SetLastError(ERROR_NOT_ENOUGH_MEMORY); goto cleanup; } - MultiByteToWideChar(CP_ACP, 0, lpDependencies, -1, lpDependenciesW, len); + MultiByteToWideChar(CP_ACP, 0, lpDependencies, -1, lpDependenciesW, dwDependenciesLength); len = MultiByteToWideChar(CP_ACP, 0, lpServiceStartName, -1, NULL, 0); lpServiceStartName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
19 years, 1 month
1
0
0
0
← Newer
1
...
47
48
49
50
51
52
53
...
88
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
77
78
79
80
81
82
83
84
85
86
87
88
Results per page:
10
25
50
100
200