OSDN Git Service

change EOL style to CRLF to adjust to default setting of Visual Studio
[yamy/yamy.git] / yamy.cpp
1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
2 // yamy.cpp\r
3 \r
4 #include <windows.h>\r
5 #include <tchar.h>\r
6 #include "mayurc.h"\r
7 \r
8 /// main\r
9 int WINAPI _tWinMain(HINSTANCE i_hInstance, HINSTANCE /* i_hPrevInstance */,\r
10                      LPTSTR /* i_lpszCmdLine */, int /* i_nCmdShow */)\r
11 {\r
12   typedef BOOL (WINAPI* ISWOW64PROCESS)(HANDLE hProcess, PBOOL Wow64Process);\r
13   BOOL isWow64;\r
14   ISWOW64PROCESS pIsWow64Process;\r
15   STARTUPINFO si;\r
16   PROCESS_INFORMATION pi;\r
17   BOOL result;\r
18   TCHAR *yamyPath = _T("yamy32");\r
19 \r
20   pIsWow64Process =\r
21     (ISWOW64PROCESS)::GetProcAddress(::GetModuleHandle(_T("kernel32.dll")),\r
22                                      "IsWow64Process");\r
23   ZeroMemory(&pi,sizeof(pi));\r
24   ZeroMemory(&si,sizeof(si));\r
25   si.cb=sizeof(si);\r
26 \r
27   if (pIsWow64Process)\r
28   {\r
29     result = pIsWow64Process(::GetCurrentProcess(), &isWow64);\r
30     if (result != FALSE && isWow64 == TRUE)\r
31     {\r
32       yamyPath = _T("yamy64");\r
33     }\r
34   }\r
35 \r
36   result = CreateProcess(yamyPath, yamyPath, NULL, NULL, FALSE,\r
37                          NORMAL_PRIORITY_CLASS, 0, NULL, &si, &pi);\r
38 \r
39   if (result == FALSE)\r
40   {\r
41     TCHAR buf[1024];\r
42     TCHAR text[1024];\r
43     TCHAR title[1024];\r
44 \r
45     LoadString(i_hInstance, IDS_cannotInvoke,\r
46                text, sizeof(text)/sizeof(text[0]));\r
47     LoadString(i_hInstance, IDS_mayu,\r
48                title, sizeof(title)/sizeof(title[0]));\r
49     _stprintf_s(buf, sizeof(buf)/sizeof(buf[0]),\r
50                 text, yamyPath, GetLastError());\r
51     MessageBox((HWND)NULL, buf, title, MB_OK | MB_ICONSTOP);\r
52   }\r
53   else\r
54   {\r
55     CloseHandle(pi.hThread);\r
56     CloseHandle(pi.hProcess);\r
57   }\r
58 \r
59   return 0;\r
60 }\r