Author: mpiulachs
Date: Tue Oct 30 01:52:33 2007
New Revision: 29966
URL: 
http://svn.reactos.org/svn/reactos?rev=29966&view=rev
Log:
- Compile screensavers as UNICODE applications + minor fixes (Part 2/2)
Modified:
    trunk/rosapps/applications/screensavers/cylfrac/cylfrac.c
    trunk/rosapps/applications/screensavers/cylfrac/cylfrac.rbuild
    trunk/rosapps/applications/screensavers/matrix/matrix.rbuild
    trunk/rosapps/applications/screensavers/matrix/screensave.c
    trunk/rosapps/applications/screensavers/scrnsave/scrnsave.c   (contents, props
changed)
    trunk/rosapps/applications/screensavers/scrnsave/scrnsave.rbuild   (contents, props
changed)
    trunk/rosapps/applications/screensavers/starfield/screensaver.c   (contents, props
changed)
    trunk/rosapps/applications/screensavers/starfield/starfield.rbuild   (contents, props
changed)
Modified: trunk/rosapps/applications/screensavers/cylfrac/cylfrac.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/cylfrac/cylfrac.c (original)
+++ trunk/rosapps/applications/screensavers/cylfrac/cylfrac.c Tue Oct 30 01:52:33 2007
@@ -236,26 +236,25 @@
        }
 }
-void ParseCommandLine(PSTR szCmdLine, int *chOption, HWND *hwndParent)
-{
-       int ch;
-
-       if (!strlen(szCmdLine))
-               return;
-
-       ch = *szCmdLine++;
+//
+//     Look for any options Windows has passed to us:
+//
+//     -a <hwnd>         (set password)
+//  -s                         (screensave)
+//  -p <hwnd>            (preview)
+//  -c <hwnd>            (configure)
+//
+VOID ParseCommandLine(LPWSTR szCmdLine, UCHAR *chOption, HWND *hwndParent)
+{
+       UCHAR ch = *szCmdLine++;
        if(ch == '-' || ch == '/')
                ch = *szCmdLine++;
        if(ch >= 'A' && ch <= 'Z')
-               ch += 'a' - 'A';
+               ch += 'a' - 'A';                //convert to lower case
        *chOption = ch;
-
-       if (ch == 's' || ch == 'c')
-               return;
-
        ch = *szCmdLine++;
        if(ch == ':')
@@ -266,11 +265,11 @@
        if(isdigit(ch))
        {
-               unsigned int i = atoi(szCmdLine - 1);
+               unsigned int i = _wtoi(szCmdLine - 1);
                *hwndParent = (HWND)i;
        }
        else
-               *hwndParent = 0;
+               *hwndParent = NULL;
 }
 void Configure(void)
@@ -294,13 +293,13 @@
                   MB_OK | MB_ICONWARNING);
 }
-int WINAPI WinMain (HINSTANCE hInst,
+int CALLBACK wWinMain (HINSTANCE hInst,
                     HINSTANCE hPrev,
-                    LPSTR lpCmdLine,
+                    LPWSTR lpCmdLine,
                     int iCmdShow)
 {
        HWND    hwndParent = 0;
-       int     chOption = 0;
+       UCHAR   chOption;
        MSG     Message;
        hInstance = hInst;
Modified: trunk/rosapps/applications/screensavers/cylfrac/cylfrac.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/cylfrac/cylfrac.rbuild (original)
+++ trunk/rosapps/applications/screensavers/cylfrac/cylfrac.rbuild Tue Oct 30 01:52:33
2007
@@ -1,9 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
-<module name="cylfrac" type="win32scr"
installbase="system32" installname="cylfrac.scr">
-       <define name="UNICODE" />
-       <define name="_UNICODE" />
-
+<module name="cylfrac" type="win32scr"
installbase="system32" installname="cylfrac.scr"
unicode="true">
        <library>kernel32</library>
        <library>user32</library>
        <library>gdi32</library>
Modified: trunk/rosapps/applications/screensavers/matrix/matrix.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/matrix/matrix.rbuild (original)
+++ trunk/rosapps/applications/screensavers/matrix/matrix.rbuild Tue Oct 30 01:52:33 2007
@@ -1,13 +1,9 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
-<module name="matrix" type="win32scr"
installbase="system32" installname="matrix2.scr"
allowwarnings="true">
+<module name="matrix" type="win32scr"
installbase="system32" installname="matrix2.scr"
allowwarnings="true" unicode="true">
        <include base="matrix">.</include>
-
        <define name="_WIN32_IE">0x0501</define>
        <define name="_WIN32_WINNT">0x0501</define>
-       <define name="UNICODE" />
-       <define name="_UNICODE" />
-
        <library>kernel32</library>
        <library>user32</library>
        <library>gdi32</library>
Modified: trunk/rosapps/applications/screensavers/matrix/screensave.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/matrix/screensave.c (original)
+++ trunk/rosapps/applications/screensavers/matrix/screensave.c Tue Oct 30 01:52:33 2007
@@ -100,7 +100,7 @@
 //  -p <hwnd>            (preview)
 //  -c <hwnd>            (configure)
 //
-VOID ParseCommandLine(LPSTR szCmdLine, UCHAR *chOption, HWND *hwndParent)
+VOID ParseCommandLine(LPWSTR szCmdLine, UCHAR *chOption, HWND *hwndParent)
 {
        UCHAR ch = *szCmdLine++;
@@ -121,7 +121,7 @@
        if(isdigit(ch))
        {
-               unsigned int i = atoi(szCmdLine - 1);
+               unsigned int i = _wtoi(szCmdLine - 1);
                *hwndParent = (HWND)i;
        }
        else
@@ -131,7 +131,7 @@
 //
 //     Entrypoint for screen-saver: it's just a normal win32 app!
 //
-int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int iCmdShow)
+int CALLBACK wWinMain (HINSTANCE hInst, HINSTANCE hPrev, LPWSTR lpCmdLine, int iCmdShow)
 {
        HWND   hwndParent;
        UCHAR  chOption;
Modified: trunk/rosapps/applications/screensavers/scrnsave/scrnsave.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/scrnsave/scrnsave.c (original)
+++ trunk/rosapps/applications/screensavers/scrnsave/scrnsave.c Tue Oct 30 01:52:33 2007
@@ -1,215 +1,215 @@
-/*
- *  Copyright 2003 J Brown
- *  Copyright 2006 Eric Kohl
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <windows.h>
-#include <tchar.h>
-#include "resource.h"
-
-#define APPNAME _T("Scrnsave")
-
-
-HINSTANCE hInstance;
-
-BOOL fullscreen = FALSE;
-
-
-LRESULT WINAPI WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-       static POINT ptLast;
-       static POINT ptCursor;
-       static BOOL  fFirstTime = TRUE;
-
-       switch (msg)
-       {
-               case WM_DESTROY:
-                 ShowCursor(TRUE);
-                       PostQuitMessage(0);
-                       break;
-
-               // break out of screen-saver if any keyboard activity
-               case WM_NOTIFY:
-               case WM_SYSKEYDOWN:
-                       PostMessage(hwnd, WM_CLOSE, 0, 0);
-                       break;
-
-               // break out of screen-saver if any mouse activity
-               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;
-       }
-
-       return DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-void InitSaver(HWND hwndParent)
-{
-       WNDCLASS wc;
-       ZeroMemory(&wc, sizeof(wc));
-       wc.style            = CS_HREDRAW | CS_VREDRAW;
-       wc.lpfnWndProc      = WndProc;
-       wc.lpszClassName    = APPNAME;
-       wc.hbrBackground    = (HBRUSH)GetStockObject(BLACK_BRUSH);
-       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 = CreateWindowEx(WS_EX_TOPMOST,
-                          APPNAME,
-                          APPNAME,
-                          WS_VISIBLE | WS_POPUP,
-                          0, 0,
-                          GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
-                          HWND_DESKTOP, 0,
-                          hInstance, NULL);
-
-    SetWindowPos(hwnd,
-                 0, 0, 0, 0, 0,
-                 SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
-
-               ShowCursor(FALSE);
-               fullscreen = TRUE;
-       }
-}
-
-void ParseCommandLine(PSTR szCmdLine, int *chOption, HWND *hwndParent)
-{
-       int ch = *szCmdLine++;
-
-       if(ch == '-' || ch == '/')
-               ch = *szCmdLine++;
-
-       if(ch >= 'A' && ch <= 'Z')
-               ch += 'a' - 'A';
-
-       *chOption = ch;
-       ch = *szCmdLine++;
-
-       if(ch == ':')
-               ch = *szCmdLine++;
-
-       while(ch == ' ' || ch == '\t')
-               ch = *szCmdLine++;
-
-       if(isdigit(ch))
-       {
-               unsigned int i = atoi(szCmdLine - 1);
-               *hwndParent = (HWND)i;
-       }
-       else
-               *hwndParent = 0;
-}
-
-void Configure(void)
-{
-       TCHAR szTitle[256];
-       TCHAR szText[256];
-
-       LoadString(hInstance,
-                  IDS_TITLE,
-                  szTitle,
-                  256);
-
-       LoadString(hInstance,
-                  IDS_TEXT,
-                  szText,
-                  256);
-
-       MessageBox(0,
-                  szText,
-                  szTitle,
-                  MB_OK | MB_ICONWARNING);
-}
-
-
-int WINAPI WinMain (HINSTANCE hInst,
-                    HINSTANCE hPrev,
-                    LPSTR lpCmdLine,
-                    int iCmdShow)
-{
-       HWND    hwndParent;
-       UINT    nPreviousState;
-       int     chOption;
-       MSG     Message;
-
-       hInstance = hInst;
-
-       ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
-
-       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
-
-       switch (chOption)
-       {
-               case 's':
-                       InitSaver(0);
-                       break;
-
-               case 'p':
-                       InitSaver(hwndParent);
-                       break;
-
-               case 'c':
-               default:
-                       Configure();
-                       return 0;
-       }
-
-       while (GetMessage(&Message, 0, 0, 0))
-               DispatchMessage(&Message);
-
-       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
-
-       return Message.wParam;
-}
+/*
+ *  Copyright 2003 J Brown
+ *  Copyright 2006 Eric Kohl
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program 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 General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <windows.h>
+#include <tchar.h>
+#include "resource.h"
+
+#define APPNAME _T("Scrnsave")
+
+
+HINSTANCE hInstance;
+
+BOOL fullscreen = FALSE;
+
+
+LRESULT WINAPI WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+       static POINT ptLast;
+       static POINT ptCursor;
+       static BOOL  fFirstTime = TRUE;
+
+       switch (msg)
+       {
+               case WM_DESTROY:
+                 ShowCursor(TRUE);
+                       PostQuitMessage(0);
+                       break;
+
+               // break out of screen-saver if any keyboard activity
+               case WM_NOTIFY:
+               case WM_SYSKEYDOWN:
+                       PostMessage(hwnd, WM_CLOSE, 0, 0);
+                       break;
+
+               // break out of screen-saver if any mouse activity
+               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;
+       }
+
+       return DefWindowProc(hwnd, msg, wParam, lParam);
+}
+
+void InitSaver(HWND hwndParent)
+{
+       WNDCLASS wc;
+       ZeroMemory(&wc, sizeof(wc));
+       wc.style            = CS_HREDRAW | CS_VREDRAW;
+       wc.lpfnWndProc      = WndProc;
+       wc.lpszClassName    = APPNAME;
+       wc.hbrBackground    = (HBRUSH)GetStockObject(BLACK_BRUSH);
+       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 = CreateWindowEx(WS_EX_TOPMOST,
+                          APPNAME,
+                          APPNAME,
+                          WS_VISIBLE | WS_POPUP,
+                          0, 0,
+                          GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
+                          HWND_DESKTOP, 0,
+                          hInstance, NULL);
+
+    SetWindowPos(hwnd,
+                 0, 0, 0, 0, 0,
+                 SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
+
+               ShowCursor(FALSE);
+               fullscreen = TRUE;
+       }
+}
+
+VOID ParseCommandLine(LPWSTR szCmdLine, UCHAR *chOption, HWND *hwndParent)
+{
+       UCHAR ch = *szCmdLine++;
+
+       if(ch == '-' || ch == '/')
+               ch = *szCmdLine++;
+
+       if(ch >= 'A' && ch <= 'Z')
+               ch += 'a' - 'A';                //convert to lower case
+
+       *chOption = ch;
+       ch = *szCmdLine++;
+
+       if(ch == ':')
+               ch = *szCmdLine++;
+
+       while(ch == ' ' || ch == '\t')
+               ch = *szCmdLine++;
+
+       if(isdigit(ch))
+       {
+               unsigned int i = _wtoi(szCmdLine - 1);
+               *hwndParent = (HWND)i;
+       }
+       else
+               *hwndParent = NULL;
+}
+
+void Configure(void)
+{
+       TCHAR szTitle[256];
+       TCHAR szText[256];
+
+       LoadString(hInstance,
+                  IDS_TITLE,
+                  szTitle,
+                  256);
+
+       LoadString(hInstance,
+                  IDS_TEXT,
+                  szText,
+                  256);
+
+       MessageBox(0,
+                  szText,
+                  szTitle,
+                  MB_OK | MB_ICONWARNING);
+}
+
+
+int CALLBACK wWinMain (HINSTANCE hInst,
+                    HINSTANCE hPrev,
+                    LPWSTR lpCmdLine,
+                    int iCmdShow)
+{
+       HWND    hwndParent;
+       UINT    nPreviousState;
+       UCHAR   chOption;
+       MSG     Message;
+
+       hInstance = hInst;
+
+       ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
+
+       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
+
+       switch (chOption)
+       {
+               case 's':
+                       InitSaver(0);
+                       break;
+
+               case 'p':
+                       InitSaver(hwndParent);
+                       break;
+
+               case 'c':
+               default:
+                       Configure();
+                       return 0;
+       }
+
+       while (GetMessage(&Message, 0, 0, 0))
+               DispatchMessage(&Message);
+
+       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
+
+       return Message.wParam;
+}
Propchange: trunk/rosapps/applications/screensavers/scrnsave/scrnsave.c
------------------------------------------------------------------------------
    svn:eol-style = native
Modified: trunk/rosapps/applications/screensavers/scrnsave/scrnsave.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/scrnsave/scrnsave.rbuild (original)
+++ trunk/rosapps/applications/screensavers/scrnsave/scrnsave.rbuild Tue Oct 30 01:52:33
2007
@@ -1,16 +1,13 @@
-<?xml version="1.0"?>
-<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
-<module name="scrnsave" type="win32scr"
installbase="system32" installname="scrnsave.scr">
-       <define name="UNICODE" />
-       <define name="_UNICODE" />
-
-       <library>kernel32</library>
-       <library>user32</library>
-       <library>gdi32</library>
-       <library>opengl32</library>
-       <library>glu32</library>
-       <library>winmm</library>
-
-       <file>scrnsave.c</file>
-       <file>scrnsave.rc</file>
-</module>
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
+<module name="scrnsave" type="win32scr"
installbase="system32" installname="scrnsave.scr"
unicode="true">
+       <library>kernel32</library>
+       <library>user32</library>
+       <library>gdi32</library>
+       <library>opengl32</library>
+       <library>glu32</library>
+       <library>winmm</library>
+
+       <file>scrnsave.c</file>
+       <file>scrnsave.rc</file>
+</module>
Propchange: trunk/rosapps/applications/screensavers/scrnsave/scrnsave.rbuild
------------------------------------------------------------------------------
    svn:eol-style = native
Modified: trunk/rosapps/applications/screensavers/starfield/screensaver.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/starfield/screensaver.c (original)
+++ trunk/rosapps/applications/screensavers/starfield/screensaver.c Tue Oct 30 01:52:33
2007
@@ -1,377 +1,385 @@
-/*
- *  Copyright 2003 J Brown
- *  Copyright 2006 Eric Kohl
- *  Copyright 2007 Marc Piulachs (marc.piulachs(a)codexchange.net)
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#include <windows.h>
-#include <tchar.h>
-#include "resource.h"
-
-#define RANDOM( min, max ) ((rand() % (int)(((max)+1) - (min))) + (min))
-
-#define MAX_LOADSTRING 100
-#define MAX_STARS 1000
-
-#define APPNAME                                _T("Starfield")
-#define APP_TIMER                      1
-#define APP_TIMER_INTERVAL     20
-
-#define MAX_STARS 1000
-
-// Details of each individual star
-typedef struct star
-{
-       int m_nXPos, m_nYPos, m_nZPos;
-       int m_nOldX, m_nOldY;
-} STAR;
-
-HINSTANCE hInstance;
-BOOL fullscreen = FALSE;
-
-STAR *stars;
-
-int            m_nTotStars;
-int            m_nCenterX, m_nCenterY;
-
-void DrawStarField (HDC pDC)
-{
-       int nX, nY;
-       int i;
-       for (i = 0; i < m_nTotStars; i++)
-       {
-               //      Clear last position of this star
-               SetPixel (
-                       pDC,
-                       stars[i].m_nOldX,
-                       stars[i].m_nOldY,
-                       RGB (0, 0, 0));
-
-               nX = (int)((((long)stars[i].m_nXPos << 7) / (long)stars[i].m_nZPos)
+ m_nCenterX);
-               nY = (int)((((long)stars[i].m_nYPos << 7) / (long)stars[i].m_nZPos)
+ m_nCenterY);
-
-               // Draw star
-               SetPixel (
-                       pDC,
-                       nX,
-                       nY,
-                       RGB (255, 255, 255));
-
-               // Remember current position for clearing later
-               stars[i].m_nOldX = nX;
-               stars[i].m_nOldY = nY;
-       }
-}
-
-BOOL SetUpStars (int nNumStars)
-{
-       int i;
-       if (nNumStars > MAX_STARS)
-       {
-               MessageBox (0,
-                       _T("Too many stars! Aborting!"),
-                       _T("Error"),
-                       MB_OK | MB_ICONWARNING);
-               return FALSE;
-       }
-
-       if (stars)
-               free (stars);
-
-       m_nTotStars = nNumStars;
-
-       stars = (STAR*)malloc(nNumStars * sizeof(STAR));
-
-       if (!stars)
-       {
-               MessageBox (0,
-                       _T("Unable to allocate memory! Aborting!"),
-                       _T("Error"),
-                       MB_OK | MB_ICONWARNING);
-               return FALSE;
-       }
-
-       for (i = 0; i < m_nTotStars; i++)
-       {
-               do
-               {
-                       stars[i].m_nXPos = RANDOM (-320, 320);
-                       stars[i].m_nYPos = RANDOM (-200, 200);
-                       stars[i].m_nZPos = i+1;
-                       stars[i].m_nOldX = -1;
-                       stars[i].m_nOldY = -1;
-               } while ((stars[i].m_nXPos == 0) || (stars[i].m_nYPos == 0));
-       }
-
-       return TRUE;
-}
-
-void MoveStarField (int nXofs, int nYofs, int nZofs)
-{
-       int i;
-       for (i = 0; i < m_nTotStars; i++)
-       {
-               stars[i].m_nXPos += nXofs;
-               stars[i].m_nYPos += nYofs;
-               stars[i].m_nZPos += nZofs;
-
-               if (stars[i].m_nZPos > m_nTotStars)
-                       stars[i].m_nZPos -= m_nTotStars;
-               if (stars[i].m_nZPos < 1)
-                       stars[i].m_nZPos += m_nTotStars;
-       }
-}
-
-void SetDimensions (int nWidth, int nHeight)
-{
-       m_nCenterX = nWidth / 2;
-       m_nCenterY = nHeight / 2;
-}
-
-LRESULT WINAPI WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-       static POINT ptLast;
-       static POINT ptCursor;
-       static BOOL  fFirstTime = TRUE;
-       static HDC pDC;
-
-       switch (msg)
-       {
-               case WM_CREATE :
-               {
-                       SetTimer (
-                               hwnd,
-                               APP_TIMER,
-                               APP_TIMER_INTERVAL,
-                               NULL);
-               }
-               break;
-               case WM_PAINT :
-               {
-                       PAINTSTRUCT     PtStr;
-                       HDC pDC = BeginPaint (hwnd, &PtStr);
-                       DrawStarField (pDC);
-                       EndPaint (hwnd, &PtStr);
-                       return (0);
-               }
-               break;
-               case WM_TIMER :
-               {
-                       if (wParam == APP_TIMER)
-                       {
-                               MoveStarField (0, 0, -3);
-                               pDC = GetDC(hwnd);
-                               DrawStarField (pDC);
-                               ReleaseDC(hwnd, pDC);
-                       }
-               }
-               break;
-               case WM_SIZE :
-               {
-                       //      Change the center point of the starfield
-                       SetDimensions (
-                               LOWORD(lParam),
-                               HIWORD(lParam));
-               }
-               break;
-               case WM_DESTROY :
-               {
-                       KillTimer (hwnd, APP_TIMER);
-                       free(stars);
-                       ShowCursor(TRUE);
-                       PostQuitMessage (0);
-                       return 0;
-               }
-               break;
-               // break out of screen-saver if any keyboard activity
-               case WM_NOTIFY:
-               case WM_SYSKEYDOWN:
-               {
-                       PostMessage(hwnd, WM_CLOSE, 0, 0);
-                       break;
-               }
-               // break out of screen-saver if any mouse activity
-               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;
-               }
-       }
-
-       return DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-
-void InitSaver(HWND hwndParent)
-{
-       WNDCLASS wc;
-       ZeroMemory(&wc, sizeof(wc));
-       wc.style            = CS_HREDRAW | CS_VREDRAW;
-       wc.lpfnWndProc      = WndProc;
-       wc.lpszClassName    = APPNAME;
-       wc.hbrBackground    = (HBRUSH)GetStockObject(BLACK_BRUSH);
-       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 = CreateWindowEx(WS_EX_TOPMOST,
-                          APPNAME,
-                          APPNAME,
-                          WS_VISIBLE | WS_POPUP,
-                          0, 0,
-                          GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
-                          HWND_DESKTOP, 0,
-                          hInstance, NULL);
-
-    SetWindowPos(hwnd,
-                 0, 0, 0, 0, 0,
-                 SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
-
-               ShowCursor(FALSE);
-               fullscreen = TRUE;
-       }
-
-    SetUpStars(250);
-}
-
-void ParseCommandLine(PSTR szCmdLine, int *chOption, HWND *hwndParent)
-{
-       int ch = *szCmdLine++;
-
-       if(ch == '-' || ch == '/')
-               ch = *szCmdLine++;
-
-       if(ch >= 'A' && ch <= 'Z')
-               ch += 'a' - 'A';
-
-       *chOption = ch;
-       ch = *szCmdLine++;
-
-       if(ch == ':')
-               ch = *szCmdLine++;
-
-       while(ch == ' ' || ch == '\t')
-               ch = *szCmdLine++;
-
-       if(isdigit(ch))
-       {
-               unsigned int i = atoi(szCmdLine - 1);
-               *hwndParent = (HWND)i;
-       }
-       else
-               *hwndParent = 0;
-}
-
-void Configure(void)
-{
-       TCHAR szTitle[256];
-       TCHAR szText[256];
-
-       LoadString(hInstance,
-                  IDS_TITLE,
-                  szTitle,
-                  256);
-
-       LoadString(hInstance,
-                  IDS_TEXT,
-                  szText,
-                  256);
-
-       MessageBox(0,
-                  szText,
-                  szTitle,
-                  MB_OK | MB_ICONWARNING);
-}
-
-int WINAPI WinMain (HINSTANCE hInst,
-                    HINSTANCE hPrev,
-                    LPSTR lpCmdLine,
-                    int iCmdShow)
-{
-       HWND    hwndParent;
-       UINT    nPreviousState;
-       int     chOption;
-       MSG     Message;
-
-       hInstance = hInst;
-
-       ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
-
-       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
-
-       switch (chOption)
-       {
-               case 's':
-                       InitSaver(0);
-                       break;
-
-               case 'p':
-                       InitSaver(hwndParent);
-                       break;
-
-               case 'c':
-               default:
-                       Configure();
-                       return 0;
-       }
-
-       while (GetMessage(&Message, 0, 0, 0))
-               DispatchMessage(&Message);
-
-       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
-
-       return Message.wParam;
-}
+/*
+ *  Copyright 2003 J Brown
+ *  Copyright 2006 Eric Kohl
+ *  Copyright 2007 Marc Piulachs (marc.piulachs(a)codexchange.net)
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program 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 General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <windows.h>
+#include <tchar.h>
+#include "resource.h"
+
+#define RANDOM( min, max ) ((rand() % (int)(((max)+1) - (min))) + (min))
+
+#define MAX_LOADSTRING 100
+#define MAX_STARS 1000
+
+#define APPNAME                                _T("Starfield")
+#define APP_TIMER                      1
+#define APP_TIMER_INTERVAL     20
+
+#define MAX_STARS 1000
+
+// Details of each individual star
+typedef struct star
+{
+       int m_nXPos, m_nYPos, m_nZPos;
+       int m_nOldX, m_nOldY;
+} STAR;
+
+HINSTANCE hInstance;
+BOOL fullscreen = FALSE;
+
+STAR *stars;
+
+int            m_nTotStars;
+int            m_nCenterX, m_nCenterY;
+
+void DrawStarField (HDC pDC)
+{
+       int nX, nY;
+       int i;
+       for (i = 0; i < m_nTotStars; i++)
+       {
+               //      Clear last position of this star
+               SetPixel (
+                       pDC,
+                       stars[i].m_nOldX,
+                       stars[i].m_nOldY,
+                       RGB (0, 0, 0));
+
+               nX = (int)((((long)stars[i].m_nXPos << 7) / (long)stars[i].m_nZPos)
+ m_nCenterX);
+               nY = (int)((((long)stars[i].m_nYPos << 7) / (long)stars[i].m_nZPos)
+ m_nCenterY);
+
+               // Draw star
+               SetPixel (
+                       pDC,
+                       nX,
+                       nY,
+                       RGB (255, 255, 255));
+
+               // Remember current position for clearing later
+               stars[i].m_nOldX = nX;
+               stars[i].m_nOldY = nY;
+       }
+}
+
+BOOL SetUpStars (int nNumStars)
+{
+       int i;
+       if (nNumStars > MAX_STARS)
+       {
+               MessageBox (0,
+                       _T("Too many stars! Aborting!"),
+                       _T("Error"),
+                       MB_OK | MB_ICONWARNING);
+               return FALSE;
+       }
+
+       if (stars)
+               free (stars);
+
+       m_nTotStars = nNumStars;
+
+       stars = (STAR*)malloc(nNumStars * sizeof(STAR));
+
+       if (!stars)
+       {
+               MessageBox (0,
+                       _T("Unable to allocate memory! Aborting!"),
+                       _T("Error"),
+                       MB_OK | MB_ICONWARNING);
+               return FALSE;
+       }
+
+       for (i = 0; i < m_nTotStars; i++)
+       {
+               do
+               {
+                       stars[i].m_nXPos = RANDOM (-320, 320);
+                       stars[i].m_nYPos = RANDOM (-200, 200);
+                       stars[i].m_nZPos = i+1;
+                       stars[i].m_nOldX = -1;
+                       stars[i].m_nOldY = -1;
+               } while ((stars[i].m_nXPos == 0) || (stars[i].m_nYPos == 0));
+       }
+
+       return TRUE;
+}
+
+void MoveStarField (int nXofs, int nYofs, int nZofs)
+{
+       int i;
+       for (i = 0; i < m_nTotStars; i++)
+       {
+               stars[i].m_nXPos += nXofs;
+               stars[i].m_nYPos += nYofs;
+               stars[i].m_nZPos += nZofs;
+
+               if (stars[i].m_nZPos > m_nTotStars)
+                       stars[i].m_nZPos -= m_nTotStars;
+               if (stars[i].m_nZPos < 1)
+                       stars[i].m_nZPos += m_nTotStars;
+       }
+}
+
+void SetDimensions (int nWidth, int nHeight)
+{
+       m_nCenterX = nWidth / 2;
+       m_nCenterY = nHeight / 2;
+}
+
+LRESULT WINAPI WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+       static POINT ptLast;
+       static POINT ptCursor;
+       static BOOL  fFirstTime = TRUE;
+       static HDC pDC;
+
+       switch (msg)
+       {
+               case WM_CREATE :
+               {
+                       SetTimer (
+                               hwnd,
+                               APP_TIMER,
+                               APP_TIMER_INTERVAL,
+                               NULL);
+               }
+               break;
+               case WM_PAINT :
+               {
+                       PAINTSTRUCT     PtStr;
+                       HDC pDC = BeginPaint (hwnd, &PtStr);
+                       DrawStarField (pDC);
+                       EndPaint (hwnd, &PtStr);
+                       return (0);
+               }
+               break;
+               case WM_TIMER :
+               {
+                       if (wParam == APP_TIMER)
+                       {
+                               MoveStarField (0, 0, -3);
+                               pDC = GetDC(hwnd);
+                               DrawStarField (pDC);
+                               ReleaseDC(hwnd, pDC);
+                       }
+               }
+               break;
+               case WM_SIZE :
+               {
+                       //      Change the center point of the starfield
+                       SetDimensions (
+                               LOWORD(lParam),
+                               HIWORD(lParam));
+               }
+               break;
+               case WM_DESTROY :
+               {
+                       KillTimer (hwnd, APP_TIMER);
+                       free(stars);
+                       ShowCursor(TRUE);
+                       PostQuitMessage (0);
+                       return 0;
+               }
+               break;
+               // break out of screen-saver if any keyboard activity
+               case WM_NOTIFY:
+               case WM_SYSKEYDOWN:
+               {
+                       PostMessage(hwnd, WM_CLOSE, 0, 0);
+                       break;
+               }
+               // break out of screen-saver if any mouse activity
+               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;
+               }
+       }
+
+       return DefWindowProc(hwnd, msg, wParam, lParam);
+}
+
+
+void InitSaver(HWND hwndParent)
+{
+       WNDCLASS wc;
+       ZeroMemory(&wc, sizeof(wc));
+       wc.style            = CS_HREDRAW | CS_VREDRAW;
+       wc.lpfnWndProc      = WndProc;
+       wc.lpszClassName    = APPNAME;
+       wc.hbrBackground    = (HBRUSH)GetStockObject(BLACK_BRUSH);
+       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 = CreateWindowEx(WS_EX_TOPMOST,
+                          APPNAME,
+                          APPNAME,
+                          WS_VISIBLE | WS_POPUP,
+                          0, 0,
+                          GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
+                          HWND_DESKTOP, 0,
+                          hInstance, NULL);
+
+    SetWindowPos(hwnd,
+                 0, 0, 0, 0, 0,
+                 SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
+
+               ShowCursor(FALSE);
+               fullscreen = TRUE;
+       }
+
+    SetUpStars(250);
+}
+
+//
+//     Look for any options Windows has passed to us:
+//
+//     -a <hwnd>         (set password)
+//  -s                         (screensave)
+//  -p <hwnd>            (preview)
+//  -c <hwnd>            (configure)
+//
+VOID ParseCommandLine(LPWSTR szCmdLine, UCHAR *chOption, HWND *hwndParent)
+{
+       UCHAR ch = *szCmdLine++;
+
+       if(ch == '-' || ch == '/')
+               ch = *szCmdLine++;
+
+       if(ch >= 'A' && ch <= 'Z')
+               ch += 'a' - 'A';                //convert to lower case
+
+       *chOption = ch;
+       ch = *szCmdLine++;
+
+       if(ch == ':')
+               ch = *szCmdLine++;
+
+       while(ch == ' ' || ch == '\t')
+               ch = *szCmdLine++;
+
+       if(isdigit(ch))
+       {
+               unsigned int i = _wtoi(szCmdLine - 1);
+               *hwndParent = (HWND)i;
+       }
+       else
+               *hwndParent = NULL;
+}
+
+void Configure(void)
+{
+       TCHAR szTitle[256];
+       TCHAR szText[256];
+
+       LoadString(hInstance,
+                  IDS_TITLE,
+                  szTitle,
+                  256);
+
+       LoadString(hInstance,
+                  IDS_TEXT,
+                  szText,
+                  256);
+
+       MessageBox(0,
+                  szText,
+                  szTitle,
+                  MB_OK | MB_ICONWARNING);
+}
+
+int CALLBACK wWinMain (HINSTANCE hInst,
+                    HINSTANCE hPrev,
+                    LPWSTR lpCmdLine,
+                    int iCmdShow)
+{
+       HWND    hwndParent;
+       UINT    nPreviousState;
+       UCHAR   chOption;
+       MSG     Message;
+
+       hInstance = hInst;
+
+       ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
+
+       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
+
+       switch (chOption)
+       {
+               case 's':
+                       InitSaver(0);
+                       break;
+
+               case 'p':
+                       InitSaver(hwndParent);
+                       break;
+
+               case 'c':
+               default:
+                       Configure();
+                       return 0;
+       }
+
+       while (GetMessage(&Message, 0, 0, 0))
+               DispatchMessage(&Message);
+
+       SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
+
+       return Message.wParam;
+}
Propchange: trunk/rosapps/applications/screensavers/starfield/screensaver.c
------------------------------------------------------------------------------
    svn:eol-style = native
Modified: trunk/rosapps/applications/screensavers/starfield/starfield.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
==============================================================================
--- trunk/rosapps/applications/screensavers/starfield/starfield.rbuild (original)
+++ trunk/rosapps/applications/screensavers/starfield/starfield.rbuild Tue Oct 30 01:52:33
2007
@@ -1,15 +1,12 @@
-<?xml version="1.0"?>
-<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
-<module name="starfield" type="win32scr"
installbase="system32" installname="starfield.scr">
-       <define name="UNICODE" />
-       <define name="_UNICODE" />
-
-       <library>kernel32</library>
-       <library>user32</library>
-       <library>gdi32</library>
-
-       <metadata description = "Starfield simulation screensaver" />
-
-       <file>screensaver.c</file>
-       <file>starfield.rc</file>
-</module>
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
+<module name="starfield" type="win32scr"
installbase="system32" installname="starfield.scr"
unicode="true">
+       <library>kernel32</library>
+       <library>user32</library>
+       <library>gdi32</library>
+
+       <metadata description = "Starfield simulation screensaver" />
+
+       <file>screensaver.c</file>
+       <file>starfield.rc</file>
+</module>
Propchange: trunk/rosapps/applications/screensavers/starfield/starfield.rbuild
------------------------------------------------------------------------------
    svn:eol-style = native