diff options
Diffstat (limited to 'desktop/win32/source/wrapper.h')
-rwxr-xr-x | desktop/win32/source/wrapper.h | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/desktop/win32/source/wrapper.h b/desktop/win32/source/wrapper.h deleted file mode 100755 index 6ccf063b36..0000000000 --- a/desktop/win32/source/wrapper.h +++ /dev/null @@ -1,175 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -#pragma once -#ifndef __cplusplus -#error Need C++ to compile -#endif - -#include "main.h" - -#ifndef _WINDOWS_ -#if defined _MSC_VER -#pragma warning(push, 1) -#endif -# include <windows.h> -#if defined _MSC_VER -#pragma warning(pop) -#endif -#endif - - -#ifndef _INC_TCHAR -# ifdef UNICODE -# define _UNICODE -# endif -# include <tchar.h> -#endif - -#ifdef UNICODE -# define Main MainW -# define GetArgv( pArgc ) CommandLineToArgvW( GetCommandLine(), pArgc ) -# define PROCESS_CREATIONFLAGS CREATE_UNICODE_ENVIRONMENT -#else -# define GetArgv( pArgc ) (*pArgc = __argc, __argv) -# define PROCESS_CREATIONFLAGS 0 -# define Main MainA -#endif - -#define BIN_EXT_STR TEXT(".bin") -#define PARAM_LIBPATH_STR TEXT("-libpath=") -#define PARAM_LOCAL_STR TEXT("-local") -#define PARAM_REMOTE_STR TEXT("-remote") - -#if defined( REMOTE ) -#define DEFAULT_LIBPATH TEXT("remote;") -#elif defined( LOCAL ) -#define DEFAULT_LIBPATH TEXT("local;") -#endif - -extern "C" int Main() -{ - // Retreive startup info - - STARTUPINFO aStartupInfo; - - ZeroMemory( &aStartupInfo, sizeof(aStartupInfo) ); - aStartupInfo.cb = sizeof( aStartupInfo ); - GetStartupInfo( &aStartupInfo ); - - // Retrieve command line - - LPTSTR lpCommandLine = GetCommandLine(); - - LPTSTR *ppArguments = NULL; - int nArguments = 0; - - ppArguments = GetArgv( &nArguments ); - - // Calculate application name - - - TCHAR szApplicationName[MAX_PATH]; - TCHAR szDrive[MAX_PATH]; - TCHAR szDir[MAX_PATH]; - TCHAR szFileName[MAX_PATH]; - TCHAR szExt[MAX_PATH]; - - GetModuleFileName( NULL, szApplicationName, MAX_PATH ); - _tsplitpath( szApplicationName, szDrive, szDir, szFileName, szExt ); - _tmakepath( szApplicationName, szDrive, szDir, szFileName, BIN_EXT_STR ); - - // Retreive actual environment - - TCHAR szBuffer[1024]; - TCHAR szPathValue[1024] = TEXT(""); - -#ifdef DEFAULT_LIBPATH - _tmakepath( szPathValue, szDrive, szDir, DEFAULT_LIBPATH, TEXT("") ); -#endif - - for ( int argn = 1; argn < nArguments; argn++ ) - { - if ( 0 == _tcscmp( ppArguments[argn], PARAM_REMOTE_STR ) ) - { - _tmakepath( szPathValue, szDrive, szDir, TEXT("remote;"), TEXT("") ); - break; - } - else if ( 0 == _tcscmp( ppArguments[argn], PARAM_LOCAL_STR ) ) - { - _tmakepath( szPathValue, szDrive, szDir, TEXT("local;"), TEXT("") ); - break; - } - else if ( 0 == _tcsncmp( ppArguments[argn], PARAM_LIBPATH_STR, _tcslen(PARAM_LIBPATH_STR) ) ) - { - LPTSTR pFileSpec = NULL; - - GetFullPathName( ppArguments[argn] + _tcslen(PARAM_LIBPATH_STR), sizeof(szPathValue) / sizeof(TCHAR), szPathValue, &pFileSpec ); - _tcscat( szPathValue, TEXT(";") ); - break; - } - } - - GetEnvironmentVariable( TEXT("PATH"), szBuffer, sizeof(szBuffer) ); - _tcscat( szPathValue, szBuffer ); - SetEnvironmentVariable( TEXT("PATH"), szPathValue); - - LPVOID lpEnvironment = GetEnvironmentStrings(); - - - // Retrieve current directory - - TCHAR szCurrentDirectory[MAX_PATH]; - GetCurrentDirectory( MAX_PATH, szCurrentDirectory ); - - // Set the Flags - - DWORD dwCreationFlags = PROCESS_CREATIONFLAGS; - - PROCESS_INFORMATION aProcessInfo; - - BOOL fSuccess = CreateProcess( - szApplicationName, - lpCommandLine, - NULL, - NULL, - TRUE, - dwCreationFlags, - lpEnvironment, - szCurrentDirectory, - &aStartupInfo, - &aProcessInfo ); - - if ( fSuccess ) - { - DWORD dwExitCode; - - WaitForSingleObject( aProcessInfo.hProcess, INFINITE ); - fSuccess = GetExitCodeProcess( aProcessInfo.hProcess, &dwExitCode ); - - return dwExitCode; - } - - DWORD dwError = GetLastError(); - - LPVOID lpMsgBuf; - - FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - dwError, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - (LPTSTR)&lpMsgBuf, - 0, - NULL - ); - - // Display the string. - MessageBox( NULL, (LPCTSTR)lpMsgBuf, NULL, MB_OK | MB_ICONERROR ); - - // Free the buffer. - LocalFree( lpMsgBuf ); - - return GetLastError(); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |