mirror of
https://github.com/reactos/reactos.git
synced 2025-05-17 16:27:00 +00:00
- Remove much Win9x-specific stuff from the scrnsave library and make it more compatible to the MS version of the library
- Change the 3dtext screensaver to use the library - Reduce the amount of code in the blankscr screensaver to a minimum - Remove unneeded resources from both screensavers - Indentation fixes, MSVC build and warning fixes, small translation fixes, etc. for both screensavers and the library See issue #2966 for more details. svn path=/trunk/; revision=32437
This commit is contained in:
parent
793ebfdd18
commit
cfe2ae5fcf
35 changed files with 311 additions and 731 deletions
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <scrnsave.h>
|
||||
#include <math.h>
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
|
@ -27,11 +28,11 @@
|
|||
#include "resource.h"
|
||||
#include "3dtext.h"
|
||||
|
||||
static HGLRC hRC; // Permanent Rendering Context
|
||||
static HDC hDC; // Private GDI Device Context
|
||||
static HGLRC hRC; // Permanent Rendering Context
|
||||
static HDC hDC; // Private GDI Device Context
|
||||
|
||||
GLuint base; // Base Display List For The Font Set
|
||||
GLfloat rot; // Used To Rotate The Text
|
||||
GLuint base; // Base Display List For The Font Set
|
||||
GLfloat rot; // Used To Rotate The Text
|
||||
GLfloat extentX = 0.0f;
|
||||
GLfloat extentY = 0.0f;
|
||||
|
||||
|
@ -47,7 +48,7 @@ GLvoid BuildFont(GLvoid)
|
|||
GLYPHMETRICSFLOAT gmf[256];
|
||||
// Windows Font Handle
|
||||
HFONT font;
|
||||
int i;
|
||||
size_t i;
|
||||
TCHAR c;
|
||||
GLfloat cellOriginX = 0.0f;
|
||||
GLfloat stringOriginX;
|
||||
|
@ -58,31 +59,31 @@ GLvoid BuildFont(GLvoid)
|
|||
base = glGenLists(256);
|
||||
|
||||
font = CreateFont(-12,
|
||||
0, // Width Of Font
|
||||
0, // Angle Of Escapement
|
||||
0, // Orientation Angle
|
||||
FW_BOLD, // Font Weight
|
||||
FALSE, // Italic
|
||||
FALSE, // Underline
|
||||
FALSE, // Strikeout
|
||||
DEFAULT_CHARSET, // Character Set Identifier
|
||||
OUT_TT_PRECIS, // Output Precision
|
||||
CLIP_DEFAULT_PRECIS, // Clipping Precision
|
||||
ANTIALIASED_QUALITY, // Output Quality
|
||||
FF_DONTCARE|DEFAULT_PITCH, // Family And Pitch
|
||||
_T("Tahoma")); // Font Name
|
||||
0, // Width Of Font
|
||||
0, // Angle Of Escapement
|
||||
0, // Orientation Angle
|
||||
FW_BOLD, // Font Weight
|
||||
FALSE, // Italic
|
||||
FALSE, // Underline
|
||||
FALSE, // Strikeout
|
||||
DEFAULT_CHARSET, // Character Set Identifier
|
||||
OUT_TT_PRECIS, // Output Precision
|
||||
CLIP_DEFAULT_PRECIS, // Clipping Precision
|
||||
ANTIALIASED_QUALITY, // Output Quality
|
||||
FF_DONTCARE|DEFAULT_PITCH, // Family And Pitch
|
||||
_T("Tahoma")); // Font Name
|
||||
|
||||
// Selects The Font We Created
|
||||
SelectObject(hDC, font);
|
||||
|
||||
wglUseFontOutlines(hDC, // Select The Current DC
|
||||
0, // Starting Character
|
||||
255, // Number Of Display Lists To Build
|
||||
base, // Starting Display Lists
|
||||
0.0f, // Deviation From The True Outlines
|
||||
0.2f, // Font Thickness In The Z Direction
|
||||
WGL_FONT_POLYGONS, // Use Polygons, Not Lines
|
||||
gmf); // Address Of Buffer To Recieve Data
|
||||
wglUseFontOutlines(hDC, // Select The Current DC
|
||||
0, // Starting Character
|
||||
255, // Number Of Display Lists To Build
|
||||
base, // Starting Display Lists
|
||||
0.0f, // Deviation From The True Outlines
|
||||
0.2f, // Font Thickness In The Z Direction
|
||||
WGL_FONT_POLYGONS, // Use Polygons, Not Lines
|
||||
gmf); // Address Of Buffer To Recieve Data
|
||||
|
||||
// Calculate the string extent
|
||||
for (i = 0; i < _tcslen(m_Text); i++)
|
||||
|
@ -231,9 +232,9 @@ GLvoid DrawGLScene(GLvoid)
|
|||
0.0f);
|
||||
|
||||
// Pulsing Colors Based On The Rotation
|
||||
glColor3f((1.0f * (cos(rot / 20.0f))),
|
||||
(1.0f * (sin(rot / 25.0f))),
|
||||
(1.0f - 0.5f * (cos(rot / 17.0f))));
|
||||
glColor3f((1.0f * (GLfloat)(cos(rot / 20.0f))),
|
||||
(1.0f * (GLfloat)(sin(rot / 25.0f))),
|
||||
(1.0f - 0.5f * (GLfloat)(cos(rot / 17.0f))));
|
||||
|
||||
// Print GL Text To The Screen
|
||||
glPrint(m_Text);
|
||||
|
@ -246,41 +247,37 @@ GLvoid DrawGLScene(GLvoid)
|
|||
}
|
||||
|
||||
LRESULT CALLBACK
|
||||
WndProc(HWND hWnd,
|
||||
UINT message,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
static POINT ptLast;
|
||||
static POINT ptCursor;
|
||||
static BOOL fFirstTime = TRUE;
|
||||
RECT Screen; // Used Later On To Get The Size Of The Window
|
||||
GLuint PixelFormat; // Pixel Format Storage
|
||||
static PIXELFORMATDESCRIPTOR pfd= // Pixel Format Descriptor
|
||||
RECT Screen; // Used Later On To Get The Size Of The Window
|
||||
GLuint PixelFormat; // Pixel Format Storage
|
||||
static PIXELFORMATDESCRIPTOR pfd= // Pixel Format Descriptor
|
||||
{
|
||||
sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor
|
||||
1, // Version Number (?)
|
||||
PFD_DRAW_TO_WINDOW | // Format Must Support Window
|
||||
PFD_SUPPORT_OPENGL | // Format Must Support OpenGL
|
||||
PFD_DOUBLEBUFFER, // Must Support Double Buffering
|
||||
PFD_TYPE_RGBA, // Request An RGBA Format
|
||||
16, // Select A 16Bit Color Depth
|
||||
0, 0, 0, 0, 0, 0, // Color Bits Ignored (?)
|
||||
0, // No Alpha Buffer
|
||||
0, // Shift Bit Ignored (?)
|
||||
0, // No Accumulation Buffer
|
||||
0, 0, 0, 0, // Accumulation Bits Ignored (?)
|
||||
16, // 16Bit Z-Buffer (Depth Buffer)
|
||||
0, // No Stencil Buffer
|
||||
0, // No Auxiliary Buffer (?)
|
||||
PFD_MAIN_PLANE, // Main Drawing Layer
|
||||
0, // Reserved (?)
|
||||
0, 0, 0 // Layer Masks Ignored (?)
|
||||
sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor
|
||||
1, // Version Number (?)
|
||||
PFD_DRAW_TO_WINDOW | // Format Must Support Window
|
||||
PFD_SUPPORT_OPENGL | // Format Must Support OpenGL
|
||||
PFD_DOUBLEBUFFER, // Must Support Double Buffering
|
||||
PFD_TYPE_RGBA, // Request An RGBA Format
|
||||
16, // Select A 16Bit Color Depth
|
||||
0, 0, 0, 0, 0, 0, // Color Bits Ignored (?)
|
||||
0, // No Alpha Buffer
|
||||
0, // Shift Bit Ignored (?)
|
||||
0, // No Accumulation Buffer
|
||||
0, 0, 0, 0, // Accumulation Bits Ignored (?)
|
||||
16, // 16Bit Z-Buffer (Depth Buffer)
|
||||
0, // No Stencil Buffer
|
||||
0, // No Auxiliary Buffer (?)
|
||||
PFD_MAIN_PLANE, // Main Drawing Layer
|
||||
0, // Reserved (?)
|
||||
0, 0, 0 // Layer Masks Ignored (?)
|
||||
};
|
||||
|
||||
switch (message)
|
||||
{
|
||||
case WM_CREATE:
|
||||
LoadSettings();
|
||||
|
||||
// Gets A Device Context For The Window
|
||||
hDC = GetDC(hWnd);
|
||||
|
||||
|
@ -338,7 +335,6 @@ WndProc(HWND hWnd,
|
|||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
case WM_CLOSE:
|
||||
// Disable Fullscreen Mode
|
||||
ChangeDisplaySettings(NULL, 0);
|
||||
|
||||
|
@ -353,9 +349,6 @@ WndProc(HWND hWnd,
|
|||
|
||||
// Free The DC
|
||||
ReleaseDC(hWnd, hDC);
|
||||
|
||||
// Quit The Program
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_PAINT:
|
||||
|
@ -363,157 +356,48 @@ WndProc(HWND hWnd,
|
|||
SwapBuffers(hDC);
|
||||
break;
|
||||
|
||||
case WM_NOTIFY:
|
||||
case WM_SYSKEYDOWN:
|
||||
PostMessage(hWnd, WM_CLOSE, 0, 0);
|
||||
break;
|
||||
|
||||
case WM_LBUTTONDOWN:
|
||||
case WM_LBUTTONUP:
|
||||
case WM_RBUTTONDOWN:
|
||||
case WM_RBUTTONUP:
|
||||
case WM_MBUTTONDOWN:
|
||||
case WM_MBUTTONUP:
|
||||
case WM_MOUSEMOVE:
|
||||
// If we've got a parent then we must be a preview
|
||||
if (GetParent(hWnd) != 0)
|
||||
return 0;
|
||||
|
||||
if (fFirstTime)
|
||||
{
|
||||
GetCursorPos(&ptLast);
|
||||
fFirstTime = FALSE;
|
||||
}
|
||||
|
||||
GetCursorPos(&ptCursor);
|
||||
|
||||
// if the mouse has moved more than 3 pixels then exit
|
||||
if (abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3)
|
||||
PostMessage(hWnd, WM_CLOSE, 0, 0);
|
||||
|
||||
ptLast = ptCursor;
|
||||
return 0;
|
||||
|
||||
case WM_SIZE: // Resizing The Screen
|
||||
// Resize To The New Window Size
|
||||
ReSizeGLScene(LOWORD(lParam), HIWORD(lParam));
|
||||
break;
|
||||
|
||||
default:
|
||||
// Pass Windows Messages
|
||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
||||
// Pass Windows Messages to the default screensaver window procedure
|
||||
return DefScreenSaverProc(hWnd, message, wParam, lParam);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
VOID InitSaver(HWND hwndParent)
|
||||
{
|
||||
WNDCLASS wc;
|
||||
|
||||
ZeroMemory(&wc, sizeof(wc));
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW;
|
||||
wc.lpfnWndProc = WndProc;
|
||||
wc.lpszClassName = APPNAME;
|
||||
RegisterClass(&wc);
|
||||
|
||||
if (hwndParent != 0)
|
||||
{
|
||||
RECT rect;
|
||||
|
||||
GetClientRect(hwndParent, &rect);
|
||||
CreateWindow(APPNAME, APPNAME,
|
||||
WS_VISIBLE | WS_CHILD,
|
||||
0, 0,
|
||||
rect.right,
|
||||
rect.bottom,
|
||||
hwndParent, 0,
|
||||
hInstance, NULL);
|
||||
fullscreen = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
HWND hwnd;
|
||||
hwnd = CreateWindow(APPNAME, APPNAME,
|
||||
WS_VISIBLE | WS_POPUP | WS_EX_TOPMOST,
|
||||
0, 0,
|
||||
GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
|
||||
HWND_DESKTOP, 0,
|
||||
hInstance, NULL);
|
||||
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
|
||||
ShowCursor(FALSE);
|
||||
fullscreen = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Look for any options Windows has passed to us:
|
||||
//
|
||||
// -a <hwnd> (set password)
|
||||
// -s (screensave)
|
||||
// -p <hwnd> (preview)
|
||||
// -c <hwnd> (configure)
|
||||
//
|
||||
VOID ParseCommandLine(LPTSTR szCmdLine, UCHAR *chOption, HWND *hwndParent)
|
||||
{
|
||||
TCHAR ch = *szCmdLine++;
|
||||
|
||||
if (ch == _T('-') || ch == _T('/'))
|
||||
ch = *szCmdLine++;
|
||||
|
||||
//convert to lower case
|
||||
if (ch >= _T('A') && ch <= _T('Z'))
|
||||
ch += _T('a') - _T('A');
|
||||
|
||||
*chOption = ch;
|
||||
ch = *szCmdLine++;
|
||||
|
||||
if (ch == _T(':'))
|
||||
ch = *szCmdLine++;
|
||||
|
||||
while (ch == _T(' ') || ch == _T('\t'))
|
||||
ch = *szCmdLine++;
|
||||
|
||||
if (_istdigit(ch))
|
||||
{
|
||||
unsigned int i = _ttoi(szCmdLine - 1);
|
||||
*hwndParent = (HWND)i;
|
||||
}
|
||||
else
|
||||
{
|
||||
*hwndParent = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Dialogbox procedure for Configuration window
|
||||
//
|
||||
BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
BOOL CALLBACK ScreenSaverConfigureDialog(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
SetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text);
|
||||
LoadSettings();
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE_TEXT, m_Text);
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDOK:
|
||||
GetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_MESSAGE_TEXT, m_Text, MAX_PATH);
|
||||
SaveSettings();
|
||||
EndDialog(hwnd, IDOK);
|
||||
break;
|
||||
|
||||
/* Fall through */
|
||||
|
||||
case IDCANCEL:
|
||||
EndDialog(hwnd, IDCANCEL);
|
||||
EndDialog(hDlg, IDCANCEL);
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
case WM_CLOSE:
|
||||
EndDialog(hwnd, 0);
|
||||
EndDialog(hDlg, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -523,46 +407,7 @@ BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
VOID Configure(VOID)
|
||||
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
|
||||
{
|
||||
DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONFIG), NULL , (DLGPROC)ConfigDlgProc);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
INT CALLBACK
|
||||
_tWinMain(HINSTANCE hInst,
|
||||
HINSTANCE hPrev,
|
||||
LPTSTR lpCmdLine,
|
||||
INT iCmdShow)
|
||||
{
|
||||
HWND hwndParent = 0;
|
||||
UCHAR chOption;
|
||||
MSG Message;
|
||||
|
||||
hInstance = hInst;
|
||||
|
||||
ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
|
||||
|
||||
LoadSettings();
|
||||
|
||||
switch (chOption)
|
||||
{
|
||||
case _T('s'):
|
||||
InitSaver(0);
|
||||
break;
|
||||
|
||||
case _T('p'):
|
||||
InitSaver(hwndParent);
|
||||
break;
|
||||
|
||||
case _T('c'):
|
||||
default:
|
||||
Configure();
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (GetMessage(&Message, 0, 0, 0))
|
||||
DispatchMessage(&Message);
|
||||
|
||||
return Message.wParam;
|
||||
}
|
||||
|
||||
|
|
5
reactos/base/applications/screensavers/3dtext/3dtext.def
Normal file
5
reactos/base/applications/screensavers/3dtext/3dtext.def
Normal file
|
@ -0,0 +1,5 @@
|
|||
NAME 3dtext.scr
|
||||
|
||||
EXPORTS
|
||||
ScreenSaverProc
|
||||
ScreenSaverConfigureDialog
|
|
@ -1,7 +1,8 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
|
||||
<module name="3dtext" type="win32scr" installbase="system32" installname="3dtext.scr" unicode="true">
|
||||
<define name="__USE_W32API" />
|
||||
<module name="3dtext" type="win32scr" installbase="system32" installname="3dtext.scr" unicode="yes">
|
||||
<importlibrary definition="3dtext.def" />
|
||||
<library>scrnsave</library>
|
||||
<library>kernel32</library>
|
||||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME| DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Íàñòðîéêè íà åêðàííèÿ ïðåäïàçèòåë ""Òðèìåðåí òåêñò""."
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -8,12 +8,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "Äîáðå",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Îòêàç",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Ñîáñòâåí òåêñò",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Ñîáñòâåí òåêñò",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Åêðàíåí ïðåäïàçèòåë ""Òðèìåðåí òåêñò""."
|
||||
IDS_TITLE "Çà"
|
||||
IDS_TEXT "Íÿìà íóæäà îò íàñòðîéêè."
|
||||
END
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "3D Text Bildschirmschoner Einstellungen"
|
||||
CAPTION "3D-Text Bildschirmschoner-Einstellungen"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Abbrechen",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Eigener Text",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Eigener Text:",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "3D Text Bildschirmschoner"
|
||||
IDS_TITLE "Über"
|
||||
IDS_TEXT "Keine Einstellungen nötig."
|
||||
END
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ñõèìßóåéò ÊåéìÝíïõ 3Ä"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -8,12 +8,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "¢êõñï",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Προσαρμοσμένο κείμενο:",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "ÐñïóáñìïóìÝíï êåßìåíï:",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Ðñïöýëáîç ïèüíçò ìå êåßìåíï 3Ä"
|
||||
IDS_TITLE "Περί"
|
||||
IDS_TEXT "Αυτή η προφύλαξη οθόνης δε διαθέτει επιλογές τις οποίες μπορείτε να ορίσετε."
|
||||
END
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "3D Text Screensaver Settings"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -8,12 +8,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Custom text",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Custom text",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "3D Text ScreenSaver"
|
||||
IDS_TITLE "About"
|
||||
IDS_TEXT "No options need to be set."
|
||||
END
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configuración del Salvapantallas Texto en 3D"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -8,12 +8,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "Aceptar",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Cancelar",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Texto personalizado",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Texto personalizado",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Salvapantallas Texto en 3D"
|
||||
IDS_TITLE "Acerca de.."
|
||||
IDS_TEXT "Ninguna opción necesita ser configurada."
|
||||
END
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Paramètres de l'écran de veille Texte 3D"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -8,12 +8,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Annuler",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Texte personnalisé",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Texte personnalisé",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Écran de veille Texte 3D"
|
||||
IDS_TITLE "À propos de"
|
||||
IDS_TEXT "Il n'y a aucune option à définir."
|
||||
END
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Impostazioni del salvaschermo 'Testo 3D'"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -8,12 +8,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Annulla",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Testo personalizzato",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Testo personalizzato",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Salvaschermo 'Testo 3D'"
|
||||
IDS_TITLE "Informazioni"
|
||||
IDS_TEXT "Nessuna impostazione da effettuare."
|
||||
END
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 136, 58
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 136, 58
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ekrano uþsklandos nustatymai"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -17,12 +17,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,14,38,50,14
|
||||
PUSHBUTTON "Atðaukti",IDCANCEL,72,38,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,6,18,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Pasirinktas tekstas",IDC_STATIC_TEXT,7,7,65,8
|
||||
LTEXT "Pasirinktas tekstas",IDC_STATIC,7,7,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "3D tekstas"
|
||||
IDS_TITLE "Apie"
|
||||
IDS_TEXT "Nëra keièiamø parametrø."
|
||||
END
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "3D Text Screensaver Settings"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -15,12 +15,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Anuluj",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "W³asny tekst",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "W³asny tekst",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Wygaszacz ekranu Tekst 3d"
|
||||
IDS_TITLE "O programie"
|
||||
IDS_TEXT "Brak opcji."
|
||||
END
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ïàðàìåòðû çàñòàâêè"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -8,12 +8,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Îòìåíà",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Другой текст",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Äðóãîé òåêñò",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Çàñòàâêà 3D-òåêñò"
|
||||
IDS_TITLE "О программе"
|
||||
IDS_TEXT "Эта заставка не имеет настраиваемых параметров."
|
||||
END
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Nastavenie šetrièa obrazovky 3D text"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -12,12 +12,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Zruši<C5A1>",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Ľubovoľný text",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "¼ubovo¾ný text",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "3D text - šetriè obrazovky"
|
||||
IDS_TITLE "Čo je ..."
|
||||
IDS_TEXT "Nie sú potrebné žiadne nastavenia."
|
||||
END
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 273, 178
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ïàðàìåòðû çàñòàâêè ""Îá'ºìíèé òåêñò"""
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
|
@ -16,12 +16,10 @@ BEGIN
|
|||
DEFPUSHBUTTON "OK",IDOK,216,7,50,14
|
||||
PUSHBUTTON "Ñêàñóâàòè",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "Текст",IDC_STATIC_TEXT,18,17,65,8
|
||||
LTEXT "Òåêñò",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Çàñòàâêà ""Îá'ºìíèé òåêñò"""
|
||||
IDS_TITLE "Про"
|
||||
IDS_TEXT "Ця заставка не має налаштовуваних параметрів."
|
||||
END
|
||||
|
|
|
@ -1,23 +1,2 @@
|
|||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by en-US.rc
|
||||
//
|
||||
#define IDD_CONFIG 9
|
||||
#define IDD_DIALOG1 101
|
||||
#define IDC_MESSAGE_TEXT 1001
|
||||
#define IDC_STATIC_TEXT 1002
|
||||
|
||||
#define IDS_DESCRIPTION 1
|
||||
#define IDS_TITLE 2
|
||||
#define IDS_TEXT 3
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1003
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
#define IDC_STATIC -1
|
||||
#define IDC_MESSAGE_TEXT 1001
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#include <windows.h>
|
||||
#include <scrnsave.h>
|
||||
#include "resource.h"
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
||||
#define REACTOS_VERSION_DLL
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "OpenGL 3DText ScreenSaver\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "ss3dtext\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "ss3dtext.scr\0"
|
||||
|
||||
#define REACTOS_STR_INTERNAL_NAME "3dtext\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "3dtext.scr\0"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
#include "lang/bg-BG.rc"
|
||||
|
@ -19,6 +19,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
#include "lang/it-IT.rc"
|
||||
#include "lang/lt-LT.rc"
|
||||
#include "lang/pl-PL.rc"
|
||||
#include "lang/ru-RU.rc"
|
||||
#include "lang/sk-SK.rc"
|
||||
#include "lang/uk-UA.rc"
|
||||
#include "lang/ru-RU.rc"
|
||||
|
|
|
@ -1,78 +1,70 @@
|
|||
/*
|
||||
Screen saver library by Anders Norlander <anorland@hem2.passagen.se>
|
||||
|
||||
This library is (hopefully) compatible with Microsoft's
|
||||
screen saver library.
|
||||
|
||||
This is public domain software.
|
||||
|
||||
* PROJECT: ReactOS Screen Saver Library
|
||||
* LICENSE: GPL v2 or any later version
|
||||
* FILE: include/psdk/scrnsave.h
|
||||
* PURPOSE: Header file for the library
|
||||
* PROGRAMMERS: Anders Norlander <anorland@hem2.passagen.se>
|
||||
* Colin Finck <mail@colinfinck.de>
|
||||
*/
|
||||
|
||||
#ifndef _SCRNSAVE_H
|
||||
#define _SCRNSAVE_H
|
||||
#if __GNUC__ >=3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* configure dialog identifier */
|
||||
#define DLG_SCRNSAVECONFIGURE 2003
|
||||
#define idsIsPassword 1000
|
||||
#define idsIniFile 1001
|
||||
#define idsScreenSaver 1002
|
||||
#define idsPassword 1003
|
||||
#define idsDifferentPW 1004
|
||||
#define idsChangePW 1005
|
||||
#define idsBadOldPW 1006
|
||||
#define idsAppName 1007
|
||||
#define idsNoHelpMemory 1008
|
||||
#define idsHelpFile 1009
|
||||
#define idsDefKeyword 1010
|
||||
|
||||
#define idsIsPassword 1000
|
||||
#define idsIniFile 1001
|
||||
#define idsScreenSaver 1002
|
||||
#define idsPassword 1003
|
||||
#define idsDifferentPW 1004
|
||||
#define idsChangePW 1005
|
||||
#define idsBadOldPW 1006
|
||||
#define idsAppName 1007
|
||||
#define idsNoHelpMemory 1008
|
||||
#define idsHelpFile 1009
|
||||
#define idsDefKeyword 1010
|
||||
// If you add a configuration dialog for your screen saver, it must have this dialog ID.
|
||||
#define DLG_SCRNSAVECONFIGURE 2003
|
||||
|
||||
#define IDS_DESCRIPTION 1
|
||||
#define ID_APP 100
|
||||
#define IDS_DESCRIPTION 1
|
||||
#define ID_APP 100
|
||||
|
||||
#define WS_GT (WS_GROUP | WS_TABSTOP)
|
||||
#define SCRM_VERIFYPW WM_APP
|
||||
#define MAXFILELEN 13
|
||||
#define TITLEBARNAMELEN 40
|
||||
#define APPNAMEBUFFERLEN 40
|
||||
#define BUFFLEN 255
|
||||
#define WS_GT (WS_GROUP | WS_TABSTOP)
|
||||
#define MAXFILELEN 13
|
||||
#define TITLEBARNAMELEN 40
|
||||
#define APPNAMEBUFFERLEN 40
|
||||
#define BUFFLEN 255
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
// The dialog procedure of the screen saver configure dialog (if any)
|
||||
// If you don't have a configuration dialog, just implement a procedure that always returns FALSE.
|
||||
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
/* functions provided by the aothor of the screen saver */
|
||||
BOOL WINAPI ScreenSaverConfigureDialog(HWND,UINT,WPARAM,LPARAM);
|
||||
BOOL WINAPI RegisterDialogClasses(HANDLE);
|
||||
LONG WINAPI ScreenSaverProc(HWND,UINT,WPARAM,LPARAM);
|
||||
// Use this function if you want to register special classes before opening the configuration dialog.
|
||||
// Return TRUE here if the classes were registered successfully and the configuration dialog shall be opened.
|
||||
// If you return FALSE, no configuration dialog will be opened.
|
||||
BOOL WINAPI RegisterDialogClasses(HANDLE hInst);
|
||||
|
||||
/* Change name of function if we are using UNICODE */
|
||||
#ifdef UNICODE
|
||||
#define DefScreenSaverProc DefScreenSaverProcW
|
||||
#endif
|
||||
// The screen saver window procedure
|
||||
LRESULT WINAPI ScreenSaverProc(HWND, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
/* default screen saver proc; call instead of DefWindowProc */
|
||||
LONG WINAPI DefScreenSaverProc(HWND,UINT,WPARAM,LPARAM);
|
||||
// The window procedure, which handles default tasks for screen savers.
|
||||
// Use this instead of DefWindowProc.
|
||||
LRESULT WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
/* change password */
|
||||
void WINAPI ScreenSaverChangePassword(HWND);
|
||||
|
||||
/* globals that may be used by screen saver */
|
||||
extern HINSTANCE hMainInstance;
|
||||
extern HWND hMainWindow;
|
||||
extern BOOL fChildPreview;
|
||||
extern TCHAR szName[];
|
||||
extern TCHAR szAppName[];
|
||||
extern TCHAR szIniFile[];
|
||||
extern TCHAR szScreenSaver[];
|
||||
extern TCHAR szHelpFile[];
|
||||
extern TCHAR szNoHelpMemory[];
|
||||
extern UINT MyHelpMessage;
|
||||
|
||||
#endif /* RC_INVOKED */
|
||||
// These globals are defined in the screen saver library.
|
||||
extern HINSTANCE hMainInstance;
|
||||
extern HWND hMainWindow;
|
||||
extern BOOL fChildPreview;
|
||||
extern TCHAR szName[];
|
||||
extern TCHAR szAppName[];
|
||||
extern TCHAR szIniFile[];
|
||||
extern TCHAR szScreenSaver[];
|
||||
extern TCHAR szHelpFile[];
|
||||
extern TCHAR szNoHelpMemory[];
|
||||
extern UINT MyHelpMessage;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
/*
|
||||
Screen saver library by Anders Norlander <anorland@hem2.passagen.se>
|
||||
|
||||
This library is (hopefully) compatible with Microsoft's
|
||||
screen saver library.
|
||||
|
||||
This is public domain software.
|
||||
|
||||
* PROJECT: ReactOS Screen Saver Library
|
||||
* LICENSE: GPL v2 or any later version
|
||||
* FILE: lib/sdk/scrnsave/scrnsave.c
|
||||
* PURPOSE: Library for writing screen savers, compatible with MS' scrnsave.lib
|
||||
* PROGRAMMERS: Anders Norlander <anorland@hem2.passagen.se>
|
||||
* Colin Finck <mail@colinfinck.de>
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <tchar.h>
|
||||
#include <scrnsave.h>
|
||||
#include <regstr.h>
|
||||
|
||||
/* screen saver window class */
|
||||
// Screen Saver window class
|
||||
#define CLASS_SCRNSAVE TEXT("WindowsScreenSaverClass")
|
||||
|
||||
/* globals */
|
||||
// Globals
|
||||
HWND hMainWindow = NULL;
|
||||
BOOL fChildPreview = FALSE;
|
||||
HINSTANCE hMainInstance;
|
||||
|
@ -27,45 +26,21 @@ TCHAR szHelpFile[MAXFILELEN];
|
|||
TCHAR szNoHelpMemory[BUFFLEN];
|
||||
UINT MyHelpMessage;
|
||||
|
||||
/* local house keeping */
|
||||
static HINSTANCE hPwdLib = NULL;
|
||||
// Local house keeping
|
||||
static POINT pt_orig;
|
||||
static BOOL checking_pwd = FALSE;
|
||||
static BOOL closing = FALSE;
|
||||
static BOOL w95 = FALSE;
|
||||
|
||||
typedef BOOL (WINAPI *VERIFYPWDPROC)(HWND);
|
||||
typedef DWORD (WINAPI *CHPWDPROC)(LPCTSTR, HWND, DWORD, PVOID);
|
||||
static VERIFYPWDPROC VerifyScreenSavePwd = NULL;
|
||||
|
||||
/* function names */
|
||||
#define szVerifyPassword "VerifyScreenSavePwd"
|
||||
|
||||
#ifdef UNICODE
|
||||
#define szPwdChangePassword "PwdChangePasswordW"
|
||||
#else
|
||||
#define szPwdChangePassword "PwdChangePasswordA"
|
||||
#endif
|
||||
|
||||
static void TerminateScreenSaver(HWND hWnd);
|
||||
static BOOL RegisterClasses(void);
|
||||
static LRESULT WINAPI SysScreenSaverProc(HWND,UINT,WPARAM,LPARAM);
|
||||
static int LaunchScreenSaver(HWND hParent);
|
||||
static void LaunchConfig(void);
|
||||
|
||||
static int ISSPACE(char c)
|
||||
static int ISSPACE(TCHAR c)
|
||||
{
|
||||
return (c == ' ' || c == '\t');
|
||||
}
|
||||
|
||||
#define ISNUM(c) ((c) >= '0' && c <= '9')
|
||||
|
||||
static unsigned long
|
||||
_toul(const char *s)
|
||||
static unsigned long _toul(const TCHAR *s)
|
||||
{
|
||||
unsigned long res;
|
||||
unsigned long n;
|
||||
const char *p;
|
||||
const TCHAR *p;
|
||||
|
||||
for (p = s; *p; p++)
|
||||
if (!ISNUM(*p))
|
||||
|
@ -80,138 +55,117 @@ _toul(const char *s)
|
|||
return res;
|
||||
}
|
||||
|
||||
/* screen saver entry point */
|
||||
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
|
||||
LPSTR CmdLine, int nCmdShow)
|
||||
// This function takes care of *must* do tasks, like terminating screen saver
|
||||
static LRESULT WINAPI SysScreenSaverProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
LPSTR p;
|
||||
OSVERSIONINFO vi;
|
||||
|
||||
/* initialize */
|
||||
hMainInstance = hInst;
|
||||
|
||||
vi.dwOSVersionInfoSize = sizeof(vi);
|
||||
GetVersionEx(&vi);
|
||||
/* check if we are going to check for passwords */
|
||||
if (vi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
|
||||
switch(uMsg)
|
||||
{
|
||||
HKEY hKey;
|
||||
/* we are using windows 95 */
|
||||
w95 = TRUE;
|
||||
if (RegOpenKey(HKEY_CURRENT_USER, REGSTR_PATH_SCREENSAVE ,&hKey) ==
|
||||
ERROR_SUCCESS)
|
||||
{
|
||||
DWORD check_pwd;
|
||||
DWORD size = sizeof(DWORD);
|
||||
DWORD type;
|
||||
LONG res;
|
||||
case WM_CREATE:
|
||||
// Mouse is not supposed to move from this position
|
||||
GetCursorPos(&pt_orig);
|
||||
break;
|
||||
|
||||
res = RegQueryValueEx(hKey, REGSTR_VALUE_USESCRPASSWORD,
|
||||
NULL, &type, (PBYTE) &check_pwd, &size);
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
if (check_pwd && res == ERROR_SUCCESS)
|
||||
case WM_SYSCOMMAND:
|
||||
if (!fChildPreview)
|
||||
{
|
||||
hPwdLib = LoadLibrary(TEXT("PASSWORD.CPL"));
|
||||
if (hPwdLib)
|
||||
VerifyScreenSavePwd = GetProcAddress(hPwdLib, szVerifyPassword);
|
||||
switch (wParam)
|
||||
{
|
||||
case SC_CLOSE:
|
||||
case SC_SCREENSAVE:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* parse arguments */
|
||||
for (p = CmdLine; *p; p++)
|
||||
return ScreenSaverProc(hWnd, uMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
LRESULT WINAPI DefScreenSaverProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
// Don't do any special processing when in preview mode
|
||||
if (fChildPreview)
|
||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
switch (*p)
|
||||
case WM_NCACTIVATE:
|
||||
case WM_ACTIVATE:
|
||||
case WM_ACTIVATEAPP:
|
||||
if (!wParam)
|
||||
{
|
||||
// wParam is FALSE, so the screensaver is losing the focus.
|
||||
PostMessage(hWnd, WM_CLOSE, 0, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
{
|
||||
case 'S':
|
||||
case 's':
|
||||
/* start screen saver */
|
||||
return LaunchScreenSaver(NULL);
|
||||
|
||||
case 'P':
|
||||
case 'p':
|
||||
{
|
||||
/* start screen saver in preview window */
|
||||
HWND hParent;
|
||||
fChildPreview = TRUE;
|
||||
|
||||
while (ISSPACE(*++p));
|
||||
hParent = (HWND) _toul(p);
|
||||
|
||||
if (hParent && IsWindow(hParent))
|
||||
return LaunchScreenSaver(hParent);
|
||||
}
|
||||
return 0;
|
||||
|
||||
case 'C':
|
||||
case 'c':
|
||||
/* display configure dialog */
|
||||
LaunchConfig();
|
||||
return 0;
|
||||
|
||||
case 'A':
|
||||
case 'a':
|
||||
{
|
||||
/* change screen saver password */
|
||||
HWND hParent;
|
||||
while (ISSPACE(*++p));
|
||||
hParent = (HWND) _toul(p);
|
||||
|
||||
if (!hParent || !IsWindow(hParent))
|
||||
hParent = GetForegroundWindow();
|
||||
|
||||
ScreenSaverChangePassword(hParent);
|
||||
}
|
||||
return 0;
|
||||
|
||||
case '-':
|
||||
case '/':
|
||||
case ' ':
|
||||
default:
|
||||
POINT pt;
|
||||
GetCursorPos(&pt);
|
||||
if (pt.x == pt_orig.x && pt.y == pt_orig.y)
|
||||
break;
|
||||
|
||||
// Fall through
|
||||
}
|
||||
|
||||
case WM_LBUTTONDOWN:
|
||||
case WM_RBUTTONDOWN:
|
||||
case WM_MBUTTONDOWN:
|
||||
case WM_KEYDOWN:
|
||||
case WM_KEYUP:
|
||||
// Send a WM_CLOSE to close the screen saver (allows the screensaver author to do clean-up tasks)
|
||||
PostMessage(hWnd, WM_CLOSE, 0, 0);
|
||||
break;
|
||||
|
||||
case WM_SETCURSOR:
|
||||
SetCursor(NULL);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
LaunchConfig();
|
||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
return 0;
|
||||
// Registers the screen saver window class
|
||||
static BOOL RegisterScreenSaverClass(void)
|
||||
{
|
||||
WNDCLASS cls = {0,};
|
||||
|
||||
cls.hIcon = LoadIcon(hMainInstance, MAKEINTATOM(ID_APP));
|
||||
cls.lpszClassName = CLASS_SCRNSAVE;
|
||||
cls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
|
||||
cls.hInstance = hMainInstance;
|
||||
cls.style = CS_VREDRAW | CS_HREDRAW | CS_SAVEBITS | CS_PARENTDC;
|
||||
cls.lpfnWndProc = (WNDPROC)SysScreenSaverProc;
|
||||
|
||||
return RegisterClass(&cls) != 0;
|
||||
}
|
||||
|
||||
static void LaunchConfig(void)
|
||||
{
|
||||
/* FIXME: should this be called */
|
||||
RegisterDialogClasses(hMainInstance);
|
||||
|
||||
/* display configure dialog */
|
||||
DialogBox(hMainInstance, MAKEINTRESOURCE(DLG_SCRNSAVECONFIGURE),
|
||||
GetForegroundWindow(), (DLGPROC) ScreenSaverConfigureDialog);
|
||||
// Only show the dialog if the RegisterDialogClasses function succeeded.
|
||||
// This is the same behaviour as MS' scrnsave.lib.
|
||||
if( RegisterDialogClasses(hMainInstance) )
|
||||
DialogBox(hMainInstance, MAKEINTRESOURCE(DLG_SCRNSAVECONFIGURE), GetForegroundWindow(), (DLGPROC) ScreenSaverConfigureDialog);
|
||||
}
|
||||
|
||||
static int LaunchScreenSaver(HWND hParent)
|
||||
{
|
||||
BOOL foo;
|
||||
UINT style;
|
||||
RECT rc;
|
||||
MSG msg;
|
||||
|
||||
/* don't allow other tasks to get into the foreground */
|
||||
if (w95 && !fChildPreview)
|
||||
SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, &foo, 0);
|
||||
|
||||
msg.wParam = 0;
|
||||
|
||||
/* register classes, both user defined and classes used by screen saver
|
||||
library */
|
||||
if (!RegisterClasses())
|
||||
if (!RegisterScreenSaverClass())
|
||||
{
|
||||
MessageBox(NULL, TEXT("RegisterClasses() failed"), NULL, MB_ICONHAND);
|
||||
goto restore;
|
||||
MessageBox(NULL, TEXT("RegisterClass() failed"), NULL, MB_ICONHAND);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* a slightly different approach needs to be used when displaying
|
||||
in a preview window */
|
||||
// A slightly different approach needs to be used when displaying in a preview window
|
||||
if (hParent)
|
||||
{
|
||||
style = WS_CHILD;
|
||||
|
@ -225,213 +179,71 @@ static int LaunchScreenSaver(HWND hParent)
|
|||
style |= WS_VISIBLE;
|
||||
}
|
||||
|
||||
/* create main screen saver window */
|
||||
// Create the main screen saver window
|
||||
hMainWindow = CreateWindowEx(hParent ? 0 : WS_EX_TOPMOST, CLASS_SCRNSAVE,
|
||||
TEXT("SCREENSAVER"), style,
|
||||
0, 0, rc.right, rc.bottom, hParent, NULL,
|
||||
hMainInstance, NULL);
|
||||
|
||||
/* display window and start pumping messages */
|
||||
// Display window and start pumping messages
|
||||
if (hMainWindow)
|
||||
{
|
||||
UpdateWindow(hMainWindow);
|
||||
ShowWindow(hMainWindow, SW_SHOW);
|
||||
|
||||
while (GetMessage(&msg, NULL, 0, 0) == TRUE)
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
while (GetMessage(&msg, NULL, 0, 0))
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
restore:
|
||||
/* restore system */
|
||||
if (w95 && !fChildPreview)
|
||||
SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, &foo, 0);
|
||||
|
||||
FreeLibrary(hPwdLib);
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
/* this function takes care of *must* do tasks, like terminating
|
||||
screen saver */
|
||||
static LRESULT WINAPI SysScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
// Screen Saver entry point
|
||||
int APIENTRY _tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPTSTR CmdLine, int nCmdShow)
|
||||
{
|
||||
switch (msg)
|
||||
LPTSTR p;
|
||||
|
||||
hMainInstance = hInst;
|
||||
|
||||
// Parse the arguments
|
||||
for (p = CmdLine; *p; p++)
|
||||
{
|
||||
case WM_CREATE:
|
||||
if (!fChildPreview)
|
||||
SetCursor(NULL);
|
||||
/* mouse is not supposed to move from this position */
|
||||
GetCursorPos(&pt_orig);
|
||||
break;
|
||||
switch (*p)
|
||||
{
|
||||
case 'S':
|
||||
case 's':
|
||||
// Start the screen saver
|
||||
return LaunchScreenSaver(NULL);
|
||||
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
case WM_TIMER:
|
||||
if (closing)
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case WM_PAINT:
|
||||
if (closing)
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
break;
|
||||
|
||||
case WM_SYSCOMMAND:
|
||||
if (!fChildPreview)
|
||||
case 'P':
|
||||
case 'p':
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case SC_CLOSE:
|
||||
case SC_SCREENSAVE:
|
||||
case SC_NEXTWINDOW:
|
||||
case SC_PREVWINDOW:
|
||||
return FALSE;
|
||||
}
|
||||
// Start the screen saver in preview mode
|
||||
HWND hParent;
|
||||
fChildPreview = TRUE;
|
||||
|
||||
while (ISSPACE(*++p));
|
||||
hParent = (HWND) _toul(p);
|
||||
|
||||
if (hParent && IsWindow(hParent))
|
||||
return LaunchScreenSaver(hParent);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
case WM_LBUTTONDOWN:
|
||||
case WM_RBUTTONDOWN:
|
||||
case WM_MBUTTONDOWN:
|
||||
case WM_KEYDOWN:
|
||||
case WM_SYSKEYDOWN:
|
||||
case WM_NCACTIVATE:
|
||||
case WM_ACTIVATE:
|
||||
case WM_ACTIVATEAPP:
|
||||
if (closing)
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return ScreenSaverProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
|
||||
LONG WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
/* don't do any special processing when in preview mode */
|
||||
if (fChildPreview || closing)
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_CLOSE:
|
||||
TerminateScreenSaver(hWnd);
|
||||
/* do NOT pass this to DefWindowProc; it will terminate even if
|
||||
an invalid password was given.
|
||||
*/
|
||||
return 0;
|
||||
|
||||
case SCRM_VERIFYPW:
|
||||
/* verify password or return TRUE if password checking is turned off */
|
||||
if (VerifyScreenSavePwd)
|
||||
return VerifyScreenSavePwd(hWnd);
|
||||
else
|
||||
return TRUE;
|
||||
case 'C':
|
||||
case 'c':
|
||||
// Display the configuration dialog
|
||||
LaunchConfig();
|
||||
return 0;
|
||||
|
||||
case WM_SETCURSOR:
|
||||
if (checking_pwd)
|
||||
break;
|
||||
SetCursor(NULL);
|
||||
return TRUE;
|
||||
|
||||
case WM_NCACTIVATE:
|
||||
case WM_ACTIVATE:
|
||||
case WM_ACTIVATEAPP:
|
||||
if (wParam != FALSE)
|
||||
break;
|
||||
|
||||
case WM_MOUSEMOVE:
|
||||
{
|
||||
POINT pt;
|
||||
GetCursorPos(&pt);
|
||||
if (pt.x == pt_orig.x && pt.y == pt_orig.y)
|
||||
case '-':
|
||||
case '/':
|
||||
case ' ':
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_LBUTTONDOWN:
|
||||
case WM_RBUTTONDOWN:
|
||||
case WM_MBUTTONDOWN:
|
||||
case WM_KEYDOWN:
|
||||
case WM_SYSKEYDOWN:
|
||||
/* try to terminate screen saver */
|
||||
if (!checking_pwd)
|
||||
PostMessage(hWnd, WM_CLOSE, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
|
||||
static void TerminateScreenSaver(HWND hWnd)
|
||||
{
|
||||
/* don't allow recursion */
|
||||
if (checking_pwd || closing)
|
||||
return;
|
||||
|
||||
/* verify password */
|
||||
if (VerifyScreenSavePwd)
|
||||
{
|
||||
checking_pwd = TRUE;
|
||||
closing = SendMessage(hWnd, SCRM_VERIFYPW, 0, 0);
|
||||
checking_pwd = FALSE;
|
||||
}
|
||||
else
|
||||
closing = TRUE;
|
||||
|
||||
/* are we closing? */
|
||||
if (closing)
|
||||
{
|
||||
DestroyWindow(hWnd);
|
||||
}
|
||||
else
|
||||
GetCursorPos(&pt_orig); /* if not: get new mouse position */
|
||||
}
|
||||
|
||||
/*
|
||||
Register screen saver window class and call user
|
||||
supplied hook.
|
||||
*/
|
||||
static BOOL RegisterClasses(void)
|
||||
{
|
||||
WNDCLASS cls;
|
||||
ZeroMemory(&cls, sizeof(cls));
|
||||
cls.hCursor = NULL;
|
||||
cls.hIcon = LoadIcon(hMainInstance, MAKEINTATOM(ID_APP));
|
||||
cls.lpszMenuName = NULL;
|
||||
cls.lpszClassName = CLASS_SCRNSAVE;
|
||||
cls.hbrBackground = NULL; //(HBRUSH)GetStockObject(BLACK_BRUSH);
|
||||
cls.hInstance = hMainInstance;
|
||||
cls.style = CS_VREDRAW | CS_HREDRAW | CS_SAVEBITS | CS_PARENTDC;
|
||||
cls.lpfnWndProc = (WNDPROC) SysScreenSaverProc;
|
||||
cls.cbWndExtra = 0;
|
||||
cls.cbClsExtra = 0;
|
||||
|
||||
if (!RegisterClass(&cls))
|
||||
return FALSE;
|
||||
|
||||
return RegisterDialogClasses(hMainInstance);
|
||||
}
|
||||
|
||||
void WINAPI ScreenSaverChangePassword(HWND hParent)
|
||||
{
|
||||
/* load Master Password Router (MPR) */
|
||||
HINSTANCE hMpr = LoadLibrary(TEXT("MPR.DLL"));
|
||||
|
||||
if (hMpr)
|
||||
{
|
||||
CHPWDPROC ChangePassword;
|
||||
ChangePassword = (CHPWDPROC) GetProcAddress(hMpr, szPwdChangePassword);
|
||||
|
||||
/* change password for screen saver provider */
|
||||
if (ChangePassword)
|
||||
ChangePassword(TEXT("SCRSAVE"), hParent, 0, NULL);
|
||||
|
||||
FreeLibrary(hMpr);
|
||||
}
|
||||
LaunchConfig();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group>
|
||||
<module name="scrnsave" type="staticlibrary">
|
||||
<file>scrnsave.c</file>
|
||||
</module>
|
||||
<module name="scrnsave" type="staticlibrary" unicode="yes">
|
||||
<file>scrnsave.c</file>
|
||||
</module>
|
||||
</group>
|
|
@ -1,15 +1,11 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
|
||||
<module name="blankscr" type="win32scr" installbase="system32" installname="scrnsave.scr">
|
||||
<module name="blankscr" type="win32scr" installbase="system32" installname="scrnsave.scr" unicode="yes">
|
||||
<importlibrary definition="scrnsave.def" />
|
||||
<library>scrnsave</library>
|
||||
<library>kernel32</library>
|
||||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
<library>opengl32</library>
|
||||
<library>glu32</library>
|
||||
<library>advapi32</library>
|
||||
<library>shell32</library>
|
||||
|
||||
<file>scrnsave.c</file>
|
||||
<file>scrnsave.rc</file>
|
||||
|
|
|
@ -3,6 +3,5 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Blank"
|
||||
IDS_TITLE "Çà"
|
||||
IDS_TEXT "Íÿìà âúçìîæíîñò çà íàñòðîéêè."
|
||||
END
|
||||
|
|
|
@ -2,7 +2,6 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Blank"
|
||||
IDS_TITLE "Über"
|
||||
IDS_DESCRIPTION "Schwarzer Bildschirm"
|
||||
IDS_TEXT "Keinerlei Einstellungen notwendig."
|
||||
END
|
||||
|
|
|
@ -2,7 +2,6 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Blank"
|
||||
IDS_TITLE "About"
|
||||
IDS_DESCRIPTION "Blank screen"
|
||||
IDS_TEXT "No options need to be set."
|
||||
END
|
||||
|
|
|
@ -3,6 +3,5 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "En blanco"
|
||||
IDS_TITLE "Acerca de"
|
||||
IDS_TEXT "Ninguna opción necesita ser configurada."
|
||||
END
|
||||
|
|
|
@ -3,6 +3,5 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Vide"
|
||||
IDS_TITLE "À propos de"
|
||||
IDS_TEXT "Il n'y a aucune option à définir."
|
||||
END
|
||||
|
|
|
@ -12,6 +12,5 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Tuðèias"
|
||||
IDS_TITLE "Apie"
|
||||
IDS_TEXT "Nëra keièiamø parametrø."
|
||||
END
|
||||
|
|
|
@ -3,6 +3,5 @@ LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Blank"
|
||||
IDS_TITLE "Informatie"
|
||||
IDS_TEXT "Geen dingen om in te stellen."
|
||||
END
|
||||
|
|
|
@ -10,6 +10,5 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Puste"
|
||||
IDS_TITLE "O programie"
|
||||
IDS_TEXT "Brak opcji do ustawiania."
|
||||
END
|
||||
|
|
|
@ -7,6 +7,5 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Blank"
|
||||
IDS_TITLE "Čo je ..."
|
||||
IDS_TEXT "Nie sú potrebné žiadne nastavenia."
|
||||
END
|
||||
|
|
|
@ -11,6 +11,5 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "Ïîðîæíüî"
|
||||
IDS_TITLE "Ïðî"
|
||||
IDS_TEXT "Öÿ çàñòàâêà íå ìຠíàëàøòîâóâàíèõ ïàðàìåòð³â."
|
||||
END
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
|
||||
#define IDS_DESCRIPTION 1
|
||||
#define IDS_TITLE 2
|
||||
#define IDS_TEXT 3
|
||||
|
|
|
@ -21,38 +21,27 @@
|
|||
#include <scrnsave.h>
|
||||
#include "resource.h"
|
||||
|
||||
LRESULT WINAPI ScreenSaverProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
static HDC hdc;
|
||||
static RECT rc;
|
||||
|
||||
switch(message)
|
||||
{
|
||||
case WM_CREATE:
|
||||
break;
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
case WM_ERASEBKGND:
|
||||
hdc = GetDC(hwnd);
|
||||
GetClientRect (hwnd, &rc);
|
||||
FillRect (hdc, &rc, GetStockObject(BLACK_BRUSH));
|
||||
ReleaseDC(hwnd,hdc);
|
||||
break;
|
||||
case WM_PAINT:
|
||||
break;
|
||||
default:
|
||||
return DefScreenSaverProc(hwnd, message, wParam, lParam);
|
||||
}
|
||||
return 0;
|
||||
LRESULT WINAPI ScreenSaverProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
return DefScreenSaverProc(hwnd, uMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// This function is only called one time before opening the configuration dialog.
|
||||
// Use it to show a message that no configuration is necesssary and return FALSE to indicate that no configuration dialog shall be opened.
|
||||
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
|
||||
{
|
||||
return TRUE;
|
||||
TCHAR szMessage[256];
|
||||
TCHAR szTitle[25];
|
||||
|
||||
LoadString(hInst, IDS_TEXT, szMessage, sizeof(szMessage) / sizeof(TCHAR));
|
||||
LoadString(hInst, IDS_DESCRIPTION, szTitle, sizeof(szTitle) / sizeof(TCHAR));
|
||||
|
||||
MessageBox(NULL, szMessage, szTitle, MB_OK | MB_ICONEXCLAMATION);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
NAME blankscr.SCR
|
||||
|
||||
DESCRIPTION 'Blank screen saver'
|
||||
|
||||
EXPORTS
|
||||
ScreenSaverProc
|
||||
ScreenSaverConfigureDialog
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include <windows.h>
|
||||
#include <scrnsave.h>
|
||||
#include "resource.h"
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
@ -7,7 +8,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Default ScreenSaver\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "scrnsave\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "scrnsave.scr\0"
|
||||
|
||||
#include <reactos/version.rc>
|
||||
|
||||
#include "lang/bg-BG.rc"
|
||||
|
|
Loading…
Reference in a new issue