mirror of
https://github.com/reactos/reactos.git
synced 2025-04-19 20:19:26 +00:00
[WELCOME]: Port all the extra features that we usually need for our custom releases for FOSDEM, CLT, etc... See r62439, r66116 and r66121 (in particular keep the <msg> feature, it can be useful for some cases. It's not because you remove it that you'll gain 100 MB in the CD-ROM!).
svn path=/trunk/; revision=66567
This commit is contained in:
parent
96bb81fb65
commit
974e7aafa1
2 changed files with 43 additions and 6 deletions
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
add_executable(welcome welcome.c welcome.rc)
|
add_executable(welcome welcome.c welcome.rc)
|
||||||
set_module_type(welcome win32gui UNICODE)
|
set_module_type(welcome win32gui UNICODE)
|
||||||
add_importlibs(welcome gdi32 user32 msvcrt kernel32 ntdll)
|
add_importlibs(welcome gdi32 user32 shell32 msvcrt kernel32 ntdll)
|
||||||
add_cd_file(TARGET welcome DESTINATION reactos NO_CAB FOR bootcd)
|
add_cd_file(TARGET welcome DESTINATION reactos NO_CAB FOR bootcd)
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
* This utility can be customized by modifying the resources.
|
* This utility can be customized by modifying the resources.
|
||||||
* Please do NOT change the source code in order to customize this
|
* Please do NOT change the source code in order to customize this
|
||||||
* utility but change the resources!
|
* utility but change the resources!
|
||||||
|
*
|
||||||
|
* TODO: Use instead a XML file!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
@ -34,6 +36,7 @@
|
||||||
#include <winbase.h>
|
#include <winbase.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
|
#include <shellapi.h>
|
||||||
#include <reactos/version.h>
|
#include <reactos/version.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
|
@ -47,7 +50,13 @@
|
||||||
#define TITLE_HEIGHT 93
|
#define TITLE_HEIGHT 93
|
||||||
|
|
||||||
#define MAX_NUMBER_TOPICS 10
|
#define MAX_NUMBER_TOPICS 10
|
||||||
|
#define TOPIC_DESC_LENGTH 1024
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disable this define if you want to revert back to the old behaviour, i.e.
|
||||||
|
* opening files with CreateProcess. This defines uses ShellExecute instead.
|
||||||
|
*/
|
||||||
|
#define USE_SHELL_EXECUTE
|
||||||
|
|
||||||
/* GLOBALS ******************************************************************/
|
/* GLOBALS ******************************************************************/
|
||||||
|
|
||||||
|
@ -97,6 +106,7 @@ MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||||
|
|
||||||
/* FUNCTIONS ****************************************************************/
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
#ifndef USE_SHELL_EXECUTE
|
||||||
static VOID
|
static VOID
|
||||||
ShowLastWin32Error(HWND hWnd)
|
ShowLastWin32Error(HWND hWnd)
|
||||||
{
|
{
|
||||||
|
@ -118,6 +128,7 @@ ShowLastWin32Error(HWND hWnd)
|
||||||
LocalFree(lpMessageBuffer);
|
LocalFree(lpMessageBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int WINAPI
|
int WINAPI
|
||||||
_tWinMain(HINSTANCE hInst,
|
_tWinMain(HINSTANCE hInst,
|
||||||
|
@ -269,15 +280,21 @@ ButtonSubclassWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
static BOOL
|
static BOOL
|
||||||
RunApplication(int nTopic)
|
RunApplication(int nTopic)
|
||||||
{
|
{
|
||||||
|
#ifndef USE_SHELL_EXECUTE
|
||||||
PROCESS_INFORMATION ProcessInfo;
|
PROCESS_INFORMATION ProcessInfo;
|
||||||
STARTUPINFO StartupInfo;
|
STARTUPINFO StartupInfo;
|
||||||
TCHAR AppName[256];
|
|
||||||
TCHAR CurrentDir[256];
|
TCHAR CurrentDir[256];
|
||||||
|
#else
|
||||||
|
TCHAR Parameters[2];
|
||||||
|
#endif
|
||||||
|
TCHAR AppName[512];
|
||||||
int nLength;
|
int nLength;
|
||||||
|
|
||||||
InvalidateRect(hWndMain, NULL, TRUE);
|
InvalidateRect(hWndMain, NULL, TRUE);
|
||||||
|
|
||||||
|
#ifndef USE_SHELL_EXECUTE
|
||||||
GetCurrentDirectory(ARRAYSIZE(CurrentDir), CurrentDir);
|
GetCurrentDirectory(ARRAYSIZE(CurrentDir), CurrentDir);
|
||||||
|
#endif
|
||||||
|
|
||||||
nLength = LoadString(hInstance, IDS_TOPICACTION0 + nTopic, AppName, ARRAYSIZE(AppName));
|
nLength = LoadString(hInstance, IDS_TOPICACTION0 + nTopic, AppName, ARRAYSIZE(AppName));
|
||||||
if (nLength == 0)
|
if (nLength == 0)
|
||||||
|
@ -286,12 +303,29 @@ RunApplication(int nTopic)
|
||||||
if (!_tcsicmp(AppName, TEXT("<exit>")))
|
if (!_tcsicmp(AppName, TEXT("<exit>")))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (_tcsicmp(AppName, TEXT("explorer.exe")) == 0)
|
if (!_tcsnicmp(AppName, TEXT("<msg>"), 5))
|
||||||
{
|
{
|
||||||
_tcscat(AppName, TEXT(" "));
|
MessageBox(hWndMain, AppName + 5, TEXT("ReactOS"), MB_OK | MB_TASKMODAL);
|
||||||
_tcscat(AppName, CurrentDir);
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_tcsicmp(AppName, TEXT("explorer.exe")) == 0)
|
||||||
|
{
|
||||||
|
#ifndef USE_SHELL_EXECUTE
|
||||||
|
_tcscat(AppName, TEXT(" "));
|
||||||
|
_tcscat(AppName, CurrentDir);
|
||||||
|
#else
|
||||||
|
_tcscpy(Parameters, TEXT("\\"));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#ifdef USE_SHELL_EXECUTE
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*Parameters = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef USE_SHELL_EXECUTE
|
||||||
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
|
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
|
||||||
StartupInfo.cb = sizeof(StartupInfo);
|
StartupInfo.cb = sizeof(StartupInfo);
|
||||||
StartupInfo.lpTitle = TEXT("Test");
|
StartupInfo.lpTitle = TEXT("Test");
|
||||||
|
@ -307,6 +341,9 @@ RunApplication(int nTopic)
|
||||||
|
|
||||||
CloseHandle(ProcessInfo.hProcess);
|
CloseHandle(ProcessInfo.hProcess);
|
||||||
CloseHandle(ProcessInfo.hThread);
|
CloseHandle(ProcessInfo.hThread);
|
||||||
|
#else
|
||||||
|
ShellExecute(NULL, NULL, AppName, Parameters, NULL, SW_SHOWDEFAULT);
|
||||||
|
#endif
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -557,7 +594,7 @@ OnPaint(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
HFONT hOldFont;
|
HFONT hOldFont;
|
||||||
RECT rcTitle, rcDescription;
|
RECT rcTitle, rcDescription;
|
||||||
TCHAR szTopicTitle[80];
|
TCHAR szTopicTitle[80];
|
||||||
TCHAR szTopicDesc[256];
|
TCHAR szTopicDesc[TOPIC_DESC_LENGTH];
|
||||||
int nLength;
|
int nLength;
|
||||||
BITMAP bmpInfo;
|
BITMAP bmpInfo;
|
||||||
TCHAR version[50];
|
TCHAR version[50];
|
||||||
|
|
Loading…
Reference in a new issue