1 /* Sample winestub.c file for compiling programs with libwine.so. */
7 /* Stub needed for linking with Winelib */
8 /* FIXME: this should not be necessary */
9 HMODULE32 BUILTIN_LoadModule( LPCSTR name, BOOL32 force ) { return 0; }
12 extern int PASCAL WinMain(HINSTANCE32,HINSTANCE32,LPSTR,int);
13 extern int MAIN_WinelibInit(void);
14 extern BOOL32 MAIN_WineInit( int *argc, char *argv[] );
15 extern void TASK_Reschedule(void);
17 /* Most Windows C/C++ compilers use something like this to */
18 /* access argc and argv globally: */
22 int main( int argc, char *argv [] )
24 HINSTANCE16 hInstance;
28 _ARGV = (char **)argv;
30 MAIN_WineInit( &argc, argv );
32 /* Alloc szCmdParam */
33 for (i = 1; i < argc; i++) len += strlen(argv[i]) + 1;
34 lpszCmdParam = (LPSTR) xmalloc(len + 1);
35 /* Concatenate arguments */
36 if (argc > 1) strcpy(lpszCmdParam, argv[1]);
37 else lpszCmdParam[0] = '\0';
38 for (i = 2; i < argc; i++) strcat(strcat(lpszCmdParam, " "), argv[i]);
40 if(!MAIN_WinelibInit()) return 0;
41 hInstance = WinExec32( *argv, SW_SHOWNORMAL );
45 return WinMain (hInstance, /* hInstance */
46 0, /* hPrevInstance */
47 lpszCmdParam, /* lpszCmdParam */
48 SW_NORMAL); /* nCmdShow */