1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\r
9 int WINAPI _tWinMain(HINSTANCE i_hInstance, HINSTANCE /* i_hPrevInstance */,
\r
10 LPTSTR /* i_lpszCmdLine */, int /* i_nCmdShow */)
\r
12 typedef BOOL (WINAPI* ISWOW64PROCESS)(HANDLE hProcess, PBOOL Wow64Process);
\r
14 ISWOW64PROCESS pIsWow64Process;
\r
16 PROCESS_INFORMATION pi;
\r
18 TCHAR *yamyPath = _T("yamy32");
\r
21 (ISWOW64PROCESS)::GetProcAddress(::GetModuleHandle(_T("kernel32.dll")),
\r
23 ZeroMemory(&pi,sizeof(pi));
\r
24 ZeroMemory(&si,sizeof(si));
\r
27 if (pIsWow64Process)
\r
29 result = pIsWow64Process(::GetCurrentProcess(), &isWow64);
\r
30 if (result != FALSE && isWow64 == TRUE)
\r
32 yamyPath = _T("yamy64");
\r
36 result = CreateProcess(yamyPath, yamyPath, NULL, NULL, FALSE,
\r
37 NORMAL_PRIORITY_CLASS, 0, NULL, &si, &pi);
\r
39 if (result == FALSE)
\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
55 CloseHandle(pi.hThread);
\r
56 CloseHandle(pi.hProcess);
\r