Generate the authors list for the shell about dialog from AUTHORS at

compile time. Converted the about dialog to Unicode.
This commit is contained in:
Alexandre Julliard 2003-11-18 19:50:24 +00:00
parent f2963aeb86
commit 129f1e6910
6 changed files with 611 additions and 1270 deletions

1107
AUTHORS

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
Makefile Makefile
authors.c
desktop.ico desktop.ico
document.ico document.ico
drive.ico drive.ico

View File

@ -12,6 +12,7 @@ EXTRALIBS = $(LIBUUID) $(LIBUNICODE)
SPEC_SRCS16 = $(ALTNAMES:.dll=.spec) SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
C_SRCS = \ C_SRCS = \
authors.c \
brsfolder.c \ brsfolder.c \
changenotify.c \ changenotify.c \
classes.c \ classes.c \
@ -73,4 +74,12 @@ version16.res: version16.rc
shell.spec.c: shell.spec version16.res shell.spec.c: shell.spec version16.res
$(WINEBUILD) $(DEFS) $(DLLFLAGS) -o $@ --main-module $(MODULE) --res version16.res --spec $(SRCDIR)/shell.spec $(WINEBUILD) $(DEFS) $(DLLFLAGS) -o $@ --main-module $(MODULE) --res version16.res --spec $(SRCDIR)/shell.spec
authors.c: $(TOPSRCDIR)/AUTHORS
sed -e '1,2c const char * const SHELL_Authors[] = {' -e 's/\(.*\)/ \"\1\",/' -e '$$a\ 0 };' $(TOPSRCDIR)/AUTHORS >$@ || ($(RM) $@ && false)
depend: authors.c
clean::
$(RM) authors.c
### Dependencies: ### Dependencies:

View File

@ -1,559 +0,0 @@
#ifndef __WINE_AUTHORS_H
#define __WINE_AUTHORS_H
static const char * const SHELL_People[] =
{
"James Abbatiello",
"Michael Abd-El-Malek",
"Howard Abrams",
"Mark G. Adams",
"Bruno Afonso",
"Samir Al-Battran",
"Guy Albertelli",
"Jesse Allen",
"Gustavo Junior Alves",
"Bob Amstadt",
"C. Scott Ananian",
"Dag Asheim",
"Jim Aston",
"Martin Ayotte",
"Viktor Babrian",
"Karl Backström",
"Bradley Baetz",
"Warren Baird",
"Peter Bajusz",
"Tijs van Bakel",
"Nerijus Baliunas",
"Andre Malafaya Baptista",
"Justin Santa Barbara",
"Aaron Barnes",
"Jean-Claude Batista",
"Jacek Bator",
"Marcel Baur",
"Michael Beach",
"Francis Beaudet",
"Tom Bech",
"Matthew Becker",
"Leo van den Berg",
"Joris Beugnies",
"Georg Beyerle",
"Pierre Beyssac",
"Bobby Bingham",
"Ross Biro",
"Marco Bizzarri",
"Dennis Björklund",
"David Black",
"Zygo Blaxell",
"Matthew Bloch",
"Martin Boehme",
"Francois Boisvert",
"Pim Bollen",
"Erik Inge Bolsø",
"Mike Bond",
"Uwe Bonnes",
"Peter Bortas",
"Noel Borthwick",
"Erik Bos",
"Fons Botman",
"Sylvain Bouchard",
"Frederic Boulanger",
"Justin Bradford",
"John Brezak",
"Simon Britnell",
"Philip Brown",
"Przemyslaw Bruski",
"Andrew Bulhak",
"John Burton",
"Jonathan Buzzard",
"Vincent Béron",
"Brad Campbell",
"Jose Marcos López Caravaca",
"Michael Cardenas",
"Eddie Carpenter",
"Niels de Carpentier",
"Mike Castle",
"Ron Cemer",
"Gordon Chaffee",
"Gael de Chalendar",
"Mauro Carvalho Chehab",
"Jau-Horng Chen",
"Tisheng Chen",
"Jimen Ching",
"Hann-huei Chiou",
"Geoff Clare",
"Duane Clark",
"Matthew Clarke",
"Matthew Cline",
"Robert 'Admiral' Coeyman",
"Richard Cohen",
"Phil Cole",
"Ken Coleman",
"Roderick Colenbrander",
"Christian Costa",
"Jean-Claude Cote",
"Chuck Crayne",
"Stephen Crowley",
"Ryan Cumming",
"Pascal Cuoq",
"Bill Currie",
"David A. Cuthbert",
"Brian Joseph Czapiga",
"Ulrich Czekalla",
"Johan Dahlin",
"Wilbur N. Dale",
"Martin Dalecki",
"Huw D. M. Davies",
"Matthew Davison",
"Moses DeJong",
"Raul Dias",
"Petar Djukic",
"Roman Dolejsi",
"Frans van Dorsselaer",
"Josh DuBois",
"Charles Duffy",
"Mark Dufour",
"Zoran Dzelajlija",
"Jason Edmeades",
"Steven Edwards",
"Rikhardur Egilsson",
"John Elliot",
"David Elliott",
"Steven Elliott",
"Dan Engel",
"Morten Eriksen",
"Jakob Eriksson",
"Nicolas Escuder",
"Phillip Ezolt",
"Chris Faherty",
"Carsten Fallesen",
"Paul Falstad",
"Susan Farley",
"Rob Farnum",
"David Faure",
"Matthias Fechner",
"Raul Fernandes",
"Wesley Filardo",
"Claus Fischer",
"Olaf Flebbe",
"Chad Fraleigh",
"Matthew Francis",
"Eric Frias",
"Christoph Frick",
"Todd T. Fries",
"Alexander Frink",
"Philippe Froidevaux",
"Martin Fuchs",
"Satsuki Fujishima",
"Ron Gage",
"Louis Philippe Gagnon",
"Peter Galbavy",
"Peter Ganten",
"Gabriel Garcia",
"Ramon Garcia",
"Jeff Garzik",
"Julio Cesar Gazquez",
"Klaas van Gend",
"Abey George",
"Brian Gerst",
"Matthew Ghio",
"Johan Gill",
"John Gilmore",
"Kristoffer Gleditsch",
"Jody Goldberg",
"David Golding",
"Bob Goodwin",
"Alexander Gottwald",
"François Gouget",
"Hans de Graaff",
"David Grant",
"Jaco Greeff",
"Chris Green",
"Jon Griffiths",
"Gerhard W. Gruber",
"Daniel Gudbjartsson",
"Michael Günnewig",
"Albert den Haan",
"Jess Haas",
"David D. Hagood",
"Robert W Hall",
"Patrick Haller",
"David Hammerton",
"Noomen Hamza",
"Charles M. Hannum",
"Adrian Harvey",
"John Harvey",
"James Hatheway",
"Geoffrey Hausheer",
"Kalevi J Hautaniemi",
"Bill Hawes",
"Dave Hawkes",
"Peter Hawkins",
"Shi Quan He",
"Mike Hearn",
"Waldek Hebisch",
"Lars Heete",
"Cameron Heide",
"Hagen Heiduck",
"Jukka Heinonen",
"Juraj Hercek",
"Bernd Herd",
"Theodore S. Hetke",
"Haithem Hmida",
"Jochen Hoenicke",
"Henning Hoffmann",
"Jens Hoffmann",
"Erik Hofman",
"John K. Hohm",
"Kevin Holbrook",
"Nick Holloway",
"Aaron Hope",
"Enrico Horn",
"Olivier Houchard",
"Onno Hovers",
"David Howells",
"Jeffrey Hsu",
"Andrew John Hughes",
"Peter Hunnisett",
"Miguel de Icaza",
"Jukka Iivonen",
"Kostya Ivanov",
"Serge Ivanov",
"Peter Ivanyi",
"Francois Jacques",
"Lee Jaekil",
"Gautam Jain",
"Jeroen Janssen",
"György 'Nog' Jeney",
"Jerry Jenkins",
"Niels Kristian Bech Jensen",
"Rajeev Jhangiani",
"Bill Jin",
"Jeff Johann",
"Andrew Johnston",
"Alexandre Julliard",
"Jussi Jumppanen",
"Bang Jun-Young",
"Raphael Junqueira",
"James Juran",
"Achim Kaiser",
"Rolf Kalbermatter",
"Maciek Kaliszewski",
"Alexander Kanavin",
"Jukka Kangas",
"Pavel Kankovsky",
"Michael Karcher",
"Niclas Karlsson",
"Jochen Karrer",
"Valery Kartel",
"Tapio Kautto",
"Dan Kegel",
"Don Kelly",
"Andreas Kirschbaum",
"Rafael Kitover",
"Rein Klazes",
"Albrecht Kleine",
"Dietmar Kling",
"Eric Kohl",
"Jon Konrath",
"Ilya Konstantinov",
"Oleg Korda",
"Alex Korobka",
"Zoltan Kovacs",
"Jan Kratochvil",
"Marko Kreen",
"Greg Kreider",
"Junichi Kuchinishi",
"Anand Kumria",
"Gerson Kurz",
"Ove Kåven",
"Dusan Lacko",
"Eric Laforest",
"Scott A. Laird",
"Matthew Lake",
"David Lee Lambert",
"Tony Lambregts",
"Eric Lammerts",
"Stephen Langasek",
"Sean Langley",
"Dan Langlois",
"Alexander Larsson",
"Tommy Schultz Lassen",
"David Lassonde",
"Sander van Leeuwen",
"Stefan Leichter",
"Karl Lessard",
"Pascal Lessard",
"Andrew Lewycky",
"John Li",
"Weisheng Li",
"Xiang Li",
"Per Lindström",
"Brian Litzinger",
"Juergen Lock",
"Charles Loep",
"Martin von Loewis",
"Michiel van Loon",
"Richard A Lough",
"Carlos Lozano",
"Jean-Bruno Luginbühl",
"Alexander V. Lukyanov",
"Robert Lunnon",
"Jiuming Luo",
"Stephane Lussier",
"Steve Lustbader",
"David Luyer",
"José Marcos López",
"Kenneth MacDonald",
"Peter MacDonald",
"Ondrej Macek",
"Pierre Mageau",
"Michael C. Maggio",
"William Magro",
"Rok Mandeljc",
"Juergen Marquardt",
"Alberto Massari",
"Ricardo Massaro",
"Matthew Mastracci",
"Keith Matthews",
"Gregg Mattinson",
"Jason Mawdsley",
"Joerg Mayer",
"Eugene Mayevski",
"Rob McClinton",
"Michael McCormack",
"Alastair McKinstry",
"Jason McMullan",
"Caolan McNamara",
"Patrick J. McNerthney",
"Bill Medland",
"Marcus Meissner",
"Josef Meixner",
"Graham Menhennitt",
"Johann Messner",
"David Metcalfe",
"Francois Methot",
"Travis Michielsen",
"Toufic Milan",
"Paul Millar",
"Donn Miller",
"Bruce Milner",
"Peter Mladek",
"Steffen Moeller",
"Andreas Mohr",
"Slava Monich",
"James Moody",
"Chris Morgan",
"Kai Morich",
"Richard Mortimer",
"Adam D. Moss",
"Vasudev Mulchandani",
"Rick Mutzke",
"Philippe De Muyter",
"Zoltan Nagy",
"Itai Nahshon",
"Dustin Navea",
"Jonathan Naylor",
"Nathan Neulinger",
"Christian Neumair",
"Jeremy Newman",
"Tim Newsome",
"Thuy Nguyen",
"Kristian Nielsen",
"Arjen Nienhuis",
"Nix N. Nix",
"Leonard Norrgård",
"Per Nystrom",
"Robert O'Callahan",
"Damien O'Neill",
"Damyan Ognyanoff",
"Henrik Olsen",
"Knut St. Osmundsen",
"Andriy Palamarchuk",
"Giovanni Pancotti",
"Won Kyu Park",
"Alex Pasadyn",
"Michal Pasternak",
"Gerard Patel",
"Michael Patra",
"Murali Pattathe",
"Dimitrie O. Paun",
"Bernd Paysan",
"Brad Pepers",
"Ori Pessach",
"Nemeth Peter",
"Jim Peterson",
"Sylvain Petreolle",
"Gerald Pfeifer",
"Jason Phillips",
"Dave Pickles",
"Marco Pietrobono",
"Ian Pilcher",
"Simeon Pilgrim",
"Martin Pilka",
"Laurent Pinchart",
"Aviad Pineles",
"Brian Pirie",
"Gracjan Polak",
"Michael Poole",
"Eric Pouech",
"Robert Pouliot",
"Vahid Pourlotfali",
"Chad Powell",
"Joseph Pranevich",
"Alex Priem",
"Roberto Augusto Pungartnik",
"Paul Quinn",
"Pete Ratzlaff",
"Ron Record",
"Petter Reinholdtsen",
"Keith Reynolds",
"Slaven Rezic",
"John Richardson",
"Rick Richardson",
"Douglas Ridgway",
"Konrad Rieck",
"Robert Riggs",
"Matthew Robertson",
"Vedran Rodic",
"Drew Ronneberg",
"Bernhard Rosenkraenzer",
"Pavel Roskin",
"Herbert Rosmanith",
"Lilia Roumiantseva",
"Paul Rupe",
"Johannes Ruscheinski",
"Andy Rysin",
"Daniel Sabo",
"Adam Sacarny",
"Ivan de Saedeleer",
"Thomas Sandford",
"Constantine Sapuntzakis",
"Pablo Saratxaga",
"Carl van Schaik",
"Daniel Schepler",
"Johannes E. Schindelin",
"Christian Schlaile",
"Peter Schlaile",
"Ulrich Schmid",
"Axel Schmidt",
"Bernd Schmidt",
"Ian Schmidt",
"Juergen Schmied",
"Ingo Schneider",
"Victor Schneider",
"Kees Schoenmakers",
"Glenn Schrader",
"Federico Schwindt",
"Wolfgang Schwotzer",
"Dan Scott",
"Stas Sergeev",
"Robert Shearman",
"John Sheets",
"Shachar Shemesh",
"Yngvi Sigurjonsson",
"Gustavo Noronha Silva",
"Stephen Simmons",
"Jesper Skov",
"Rick Sladkey",
"Jeff Smith",
"William Smith",
"Ed Snow",
"Jaroslaw Piotr Sobieszek",
"Carl Sopchak",
"Liu Spider",
"Patrick Spinler",
"Sylvain St-Germain",
"Malte Starostik",
"Gavriel State",
"Sheri Steeves",
"Michael Stefaniuc",
"Nikolay Stefanov",
"Norman Stevens",
"Aric Stewart",
"William Stinson",
"Dominik Strasser",
"Patrik Stridvall",
"Vadim Strizhevsky",
"Bertho Stultiens",
"John F Sturtz",
"Abraham Sudhakar",
"Charles Suprin",
"James Sutherland",
"Erik Svendsen",
"Hidenori Takeshima",
"Tristan Tarrant",
"Andrew Taylor",
"Brian Teague",
"Joshua Thielen",
"Dirk Thierbach",
"Jean-Louis Thirot",
"Ken Thomases",
"Duncan C Thomson",
"Adrian Thurston",
"Goran Thyni",
"Steve Tibbett",
"Dmitry Timoshkov",
"Jimmy Tirtawangsa",
"Petr Tomasek",
"Jon Tombs",
"Linus Torvalds",
"Luc Tourangeau",
"Jeff Tranter",
"Gregory Trubetskoy",
"Petri Tuomola",
"Sergey Turchanov",
"Warren Turkal",
"Greg Turner",
"Lionel Ulmer",
"Moshe Vainer",
"Hleb Valoska",
"Charles Vaughn",
"Michael Veksler",
"Sven Verdoolaege",
"Todd Vierling",
"Vasily I. Volchenko",
"Erez Volk",
"Jerome Vouillon",
"Duc Vuong",
"William Waghorn",
"Ronan Waide",
"Daniel Walker",
"Martin Walker",
"Simon Walton",
"Owen Wang",
"Eric Warnke",
"Leigh Wedding",
"Randy Weems",
"Manfred Weichel",
"Ulrich Weigand",
"Morten Welinder",
"Marcelo Welter",
"Michael Wetherell",
"Jeremy White",
"Len White",
"Lawson Whitney",
"Tom Wickline",
"Martin Wilck",
"Jan Willamowius",
"Carl Williams",
"Eric Williams",
"Philipp Wollermann",
"Cliff Wright",
"Karl Guenter Wuensch",
"Mehmet Yasar",
"Eric Youngdale",
"James Youngman",
"Nikita V. Youshchenko",
"Mikolaj Zalewski",
"Simen Zamecnik",
"John Zero",
"Yuxi Zhang",
"Nikolas Zimmermann",
"Nathan Zorich",
"Luiz Otavio L. Zorzella",
"Rizsanyi Zsolt",
"Per Ångström",
0
};
#endif /* __WINE_AUTHORS_H */

View File

@ -30,6 +30,7 @@
#include "winbase.h" #include "winbase.h"
#include "winerror.h" #include "winerror.h"
#include "winreg.h" #include "winreg.h"
#include "winternl.h"
#include "dlgs.h" #include "dlgs.h"
#include "shellapi.h" #include "shellapi.h"
#include "winuser.h" #include "winuser.h"
@ -39,9 +40,6 @@
#include "shlwapi.h" #include "shlwapi.h"
#include "undocshell.h" #include "undocshell.h"
#include "wine/winuser16.h"
#include "authors.h"
#include "heap.h"
#include "pidl.h" #include "pidl.h"
#include "shell32_main.h" #include "shell32_main.h"
@ -50,6 +48,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(shell); WINE_DEFAULT_DEBUG_CHANNEL(shell);
extern const char * const SHELL_Authors[];
#define MORE_DEBUG 1 #define MORE_DEBUG 1
/************************************************************************* /*************************************************************************
* CommandLineToArgvW [SHELL32.@] * CommandLineToArgvW [SHELL32.@]
@ -609,8 +609,9 @@ HICON WINAPI ExtractIconW(HINSTANCE hInstance, LPCWSTR lpszFile, UINT nIconIndex
} }
typedef struct typedef struct
{ LPCSTR szApp; {
LPCSTR szOtherStuff; LPCWSTR szApp;
LPCWSTR szOtherStuff;
HICON hIcon; HICON hIcon;
} ABOUT_INFO; } ABOUT_INFO;
@ -720,36 +721,44 @@ DWORD WINAPI SHLoadInProc (REFCLSID rclsid)
*/ */
INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam, INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam,
LPARAM lParam ) LPARAM lParam )
{ HWND hWndCtl; {
char Template[512], AppTitle[512]; HWND hWndCtl;
TRACE("\n"); TRACE("\n");
switch(msg) switch(msg)
{ case WM_INITDIALOG: {
{ ABOUT_INFO *info = (ABOUT_INFO *)lParam; case WM_INITDIALOG:
{
ABOUT_INFO *info = (ABOUT_INFO *)lParam;
WCHAR Template[512], AppTitle[512];
if (info) if (info)
{ const char* const *pstr = SHELL_People; {
SendDlgItemMessageA(hWnd, stc1, STM_SETICON,(WPARAM)info->hIcon, 0); const char* const *pstr = SHELL_Authors;
GetWindowTextA( hWnd, Template, sizeof(Template) ); SendDlgItemMessageW(hWnd, stc1, STM_SETICON,(WPARAM)info->hIcon, 0);
sprintf( AppTitle, Template, info->szApp ); GetWindowTextW( hWnd, Template, sizeof(Template)/sizeof(WCHAR) );
SetWindowTextA( hWnd, AppTitle ); sprintfW( AppTitle, Template, info->szApp );
SetWindowTextA( GetDlgItem(hWnd, IDC_STATIC_TEXT), SetWindowTextW( hWnd, AppTitle );
info->szOtherStuff ); SetWindowTextW( GetDlgItem(hWnd, IDC_STATIC_TEXT), info->szOtherStuff );
hWndCtl = GetDlgItem(hWnd, IDC_LISTBOX); hWndCtl = GetDlgItem(hWnd, IDC_LISTBOX);
SendMessageA( hWndCtl, WM_SETREDRAW, 0, 0 ); SendMessageW( hWndCtl, WM_SETREDRAW, 0, 0 );
if (!hIconTitleFont) if (!hIconTitleFont)
{ {
LOGFONTA logFont; LOGFONTW logFont;
SystemParametersInfoA( SPI_GETICONTITLELOGFONT, 0, &logFont, 0 ); SystemParametersInfoW( SPI_GETICONTITLELOGFONT, 0, &logFont, 0 );
hIconTitleFont = CreateFontIndirectA( &logFont ); hIconTitleFont = CreateFontIndirectW( &logFont );
} }
SendMessageA( hWndCtl, WM_SETFONT, HICON_16(hIconTitleFont), 0 ); SendMessageW( hWndCtl, WM_SETFONT, (WPARAM)hIconTitleFont, 0 );
while (*pstr) while (*pstr)
{ SendMessageA( hWndCtl, LB_ADDSTRING, (WPARAM)-1, (LPARAM)*pstr ); {
WCHAR name[64];
/* authors list is in iso-8859-1 format */
MultiByteToWideChar( 28591, 0, *pstr, -1, name, sizeof(name)/sizeof(WCHAR) );
SendMessageW( hWndCtl, LB_ADDSTRING, (WPARAM)-1, (LPARAM)name );
pstr++; pstr++;
} }
SendMessageA( hWndCtl, WM_SETREDRAW, 1, 0 ); SendMessageW( hWndCtl, WM_SETREDRAW, 1, 0 );
} }
} }
return 1; return 1;
@ -768,81 +777,6 @@ INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam,
} }
break; break;
#if 0 /* FIXME: should use DoDragDrop */
case WM_LBTRACKPOINT:
hWndCtl = GetDlgItem(hWnd, IDC_LISTBOX);
if( (INT16)GetKeyState( VK_CONTROL ) < 0 )
{ if( DragDetect( hWndCtl, *((LPPOINT)&lParam) ) )
{ INT idx = SendMessageA( hWndCtl, LB_GETCURSEL, 0, 0 );
if( idx != -1 )
{ INT length = SendMessageA( hWndCtl, LB_GETTEXTLEN, (WPARAM)idx, 0 );
HGLOBAL16 hMemObj = GlobalAlloc16( GMEM_MOVEABLE, length + 1 );
char* pstr = (char*)GlobalLock16( hMemObj );
if( pstr )
{ HCURSOR hCursor = LoadCursorA( 0, MAKEINTRESOURCEA(OCR_DRAGOBJECT) );
SendMessageA( hWndCtl, LB_GETTEXT, (WPARAM)idx, (LPARAM)pstr );
SendMessageA( hWndCtl, LB_DELETESTRING, (WPARAM)idx, 0 );
UpdateWindow( hWndCtl );
if( !DragObject16((HWND16)hWnd, (HWND16)hWnd, DRAGOBJ_DATA, 0, (WORD)hMemObj, hCursor) )
SendMessageA( hWndCtl, LB_ADDSTRING, (WPARAM)-1, (LPARAM)pstr );
}
if( hMemObj )
GlobalFree16( hMemObj );
}
}
}
break;
#endif
case WM_QUERYDROPOBJECT:
if( wParam == 0 )
{ LPDRAGINFO16 lpDragInfo = MapSL((SEGPTR)lParam);
if( lpDragInfo && lpDragInfo->wFlags == DRAGOBJ_DATA )
{ RECT rect;
if( __get_dropline( hWnd, &rect ) )
{ POINT pt;
pt.x=lpDragInfo->pt.x;
pt.x=lpDragInfo->pt.y;
rect.bottom += DROP_FIELD_HEIGHT;
if( PtInRect( &rect, pt ) )
{ SetWindowLongA( hWnd, DWL_MSGRESULT, 1 );
return TRUE;
}
}
}
}
break;
case WM_DROPOBJECT:
if( wParam == (WPARAM)hWnd )
{ LPDRAGINFO16 lpDragInfo = MapSL((SEGPTR)lParam);
if( lpDragInfo && lpDragInfo->wFlags == DRAGOBJ_DATA && lpDragInfo->hList )
{ char* pstr = (char*)GlobalLock16( (HGLOBAL16)(lpDragInfo->hList) );
if( pstr )
{ static char __appendix_str[] = " with";
hWndCtl = GetDlgItem( hWnd, IDC_WINE_TEXT );
SendMessageA( hWndCtl, WM_GETTEXT, 512, (LPARAM)Template );
if( !strncmp( Template, "WINE", 4 ) )
SetWindowTextA( GetDlgItem(hWnd, IDC_STATIC_TEXT), Template );
else
{ char* pch = Template + strlen(Template) - strlen(__appendix_str);
*pch = '\0';
SendMessageA( GetDlgItem(hWnd, IDC_LISTBOX), LB_ADDSTRING,
(WPARAM)-1, (LPARAM)Template );
}
strcpy( Template, pstr );
strcat( Template, __appendix_str );
SetWindowTextA( hWndCtl, Template );
SetWindowLongA( hWnd, DWL_MSGRESULT, 1 );
return TRUE;
}
}
}
break;
case WM_COMMAND: case WM_COMMAND:
if (wParam == IDOK || wParam == IDCANCEL) if (wParam == IDOK || wParam == IDCANCEL)
{ {
@ -862,24 +796,17 @@ INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam,
/************************************************************************* /*************************************************************************
* ShellAboutA [SHELL32.288] * ShellAboutA [SHELL32.288]
*/ */
BOOL WINAPI ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, BOOL WINAPI ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon )
HICON hIcon ) {
{ ABOUT_INFO info; UNICODE_STRING appW, otherW;
HRSRC hRes; BOOL ret;
LPVOID template;
TRACE("\n");
if(!(hRes = FindResourceA(shell32_hInstance, "SHELL_ABOUT_MSGBOX", (LPSTR)RT_DIALOG))) RtlCreateUnicodeStringFromAsciiz( &appW, szApp );
return FALSE; RtlCreateUnicodeStringFromAsciiz( &otherW, szOtherStuff );
if(!(template = (LPVOID)LoadResource(shell32_hInstance, hRes))) ret = ShellAboutW( hWnd, appW.Buffer, otherW.Buffer, hIcon );
return FALSE; RtlFreeUnicodeString( &appW );
RtlFreeUnicodeString( &otherW );
info.szApp = szApp; return ret;
info.szOtherStuff = szOtherStuff;
info.hIcon = hIcon;
if (!hIcon) info.hIcon = LoadIconA( 0, (LPSTR)IDI_WINLOGO );
return DialogBoxIndirectParamA( (HINSTANCE)GetWindowLongA( hWnd, GWL_HINSTANCE ),
template, hWnd, AboutDlgProc, (LPARAM)&info );
} }
@ -888,7 +815,7 @@ BOOL WINAPI ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff,
*/ */
BOOL WINAPI ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, BOOL WINAPI ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff,
HICON hIcon ) HICON hIcon )
{ BOOL ret; {
ABOUT_INFO info; ABOUT_INFO info;
HRSRC hRes; HRSRC hRes;
LPVOID template; LPVOID template;
@ -899,16 +826,11 @@ BOOL WINAPI ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff,
return FALSE; return FALSE;
if(!(template = (LPVOID)LoadResource(shell32_hInstance, hRes))) if(!(template = (LPVOID)LoadResource(shell32_hInstance, hRes)))
return FALSE; return FALSE;
info.szApp = szApp;
info.szApp = HEAP_strdupWtoA( GetProcessHeap(), 0, szApp ); info.szOtherStuff = szOtherStuff;
info.szOtherStuff = HEAP_strdupWtoA( GetProcessHeap(), 0, szOtherStuff ); info.hIcon = hIcon ? hIcon : LoadIconW( 0, (LPWSTR)IDI_WINLOGO );
info.hIcon = hIcon; return DialogBoxIndirectParamW((HINSTANCE)GetWindowLongW( hWnd, GWL_HINSTANCE ),
if (!hIcon) info.hIcon = LoadIconA( 0, (LPSTR)IDI_WINLOGO );
ret = DialogBoxIndirectParamA((HINSTANCE)GetWindowLongA( hWnd, GWL_HINSTANCE ),
template, hWnd, AboutDlgProc, (LPARAM)&info ); template, hWnd, AboutDlgProc, (LPARAM)&info );
HeapFree( GetProcessHeap(), 0, (LPSTR)info.szApp );
HeapFree( GetProcessHeap(), 0, (LPSTR)info.szOtherStuff );
return ret;
} }
/************************************************************************* /*************************************************************************

View File

@ -1,6 +1,6 @@
#! /usr/bin/perl #! /usr/bin/perl
# #
# Generate AUTHORS and dlls/shell32/authors.h # Generate AUTHORS
# #
# Copyright 1998 Alexandre Julliard # Copyright 1998 Alexandre Julliard
# #
@ -24,13 +24,11 @@ open(NEWAUTHORS,">AUTHORS.new");
while(<AUTHORS>) while(<AUTHORS>)
{ {
print NEWAUTHORS; print NEWAUTHORS;
last if /^Wine is/; last if /^$/;
} }
while(<AUTHORS>) while(<AUTHORS>)
{ {
chop; chop;
s/^and //;
s/[,.]$//;
push @authors, $_; push @authors, $_;
} }
@ -46,30 +44,5 @@ sub cmpnames
@authors = sort cmpnames @authors; @authors = sort cmpnames @authors;
# Print authors # Print authors
for ($i = 0; $i < $#authors; $i++) print NEWAUTHORS (join "\n", @authors) . "\n";
{
print NEWAUTHORS "$authors[$i],\n";
}
print NEWAUTHORS "and $authors[$#authors].\n";
print "Created AUTHORS.new\n"; print "Created AUTHORS.new\n";
# Build authors.h file
open(NEWAUTHORS_H,">dlls/shell32/authors.h");
print NEWAUTHORS_H <<EOF;
#ifndef __WINE_AUTHORS_H
#define __WINE_AUTHORS_H
static const char * const SHELL_People[] =
{
EOF
# Print authors
for ($i = 0; $i <= $#authors; $i++)
{
print NEWAUTHORS_H " \"$authors[$i]\",\n";
}
print NEWAUTHORS_H " 0\n};\n";
print NEWAUTHORS_H "\n#endif /* __WINE_AUTHORS_H */\n";
print "Created dlls/shell32/authors.h\n";