xref: /reactos/base/applications/write/write.c (revision 845faec4)
1 /*
2  * Write.exe - this program only calls wordpad.exe
3  *
4  * Copyright 2007 by Mikolaj Zalewski
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 #define WIN32_LEAN_AND_MEAN
22 
23 #include <stdarg.h>
24 
25 #include <windows.h>
26 #include "resources.h"
27 
28 static const WCHAR SZ_WORDPAD[]   = {'\\','w','o','r','d','p','a','d','.','e','x','e',0};
29 
30 int CALLBACK wWinMain(HINSTANCE hInstance, HINSTANCE hOldInstance, LPWSTR szCmdParagraph, int res)
31 {
32     WCHAR path[MAX_PATH];
33     STARTUPINFOW stinf;
34     PROCESS_INFORMATION info;
35 
36     if (!GetSystemDirectoryW(path, MAX_PATH - 1 - lstrlenW(SZ_WORDPAD)))
37 	goto failed;
38     lstrcatW(path, SZ_WORDPAD);
39 
40     stinf.cb = sizeof(STARTUPINFOW);
41     GetStartupInfoW(&stinf);
42 
43     if (!CreateProcessW(path, GetCommandLineW(), NULL, NULL, FALSE, 0, NULL, NULL, &stinf, &info))
44 	goto failed;
45     CloseHandle(info.hProcess);
46     CloseHandle(info.hThread);
47     return 0;
48 
49 failed:
50     LoadStringW(GetModuleHandleW(NULL), IDS_FAILED, path, MAX_PATH);
51     MessageBoxW(NULL, path, NULL, MB_OK|MB_ICONERROR);
52     return 1;
53 }
54