1 /* Sample winestub.c file for compiling programs with libwine.so. */
7 extern int PASCAL
WinMain(HINSTANCE32
,HINSTANCE32
,LPSTR
,int);
8 extern int MAIN_Init(void);
9 extern BOOL32
MAIN_WineInit( int *argc
, char *argv
[] );
10 extern void TASK_Reschedule(void);
12 /* Most Windows C/C++ compilers use something like this to */
13 /* access argc and argv globally: */
17 int main( int argc
, char *argv
[] )
19 HINSTANCE16 hInstance
;
23 _ARGV
= (char **)argv
;
25 MAIN_WineInit( &argc
, argv
);
27 /* Alloc szCmdParam */
28 for (i
= 1; i
< argc
; i
++) len
+= strlen(argv
[i
]) + 1;
29 lpszCmdParam
= (LPSTR
) xmalloc(len
+ 1);
30 /* Concatenate arguments */
31 if (argc
> 1) strcpy(lpszCmdParam
, argv
[1]);
32 else lpszCmdParam
[0] = '\0';
33 for (i
= 2; i
< argc
; i
++) strcat(strcat(lpszCmdParam
, " "), argv
[i
]);
35 if(!MAIN_Init()) return 0; /* JBP: Needed for DosDrives[] structure, etc. */
36 hInstance
= WinExec32( *argv
, SW_SHOWNORMAL
);
40 return WinMain (hInstance
, /* hInstance */
41 0, /* hPrevInstance */
42 lpszCmdParam
, /* lpszCmdParam */
43 SW_NORMAL
); /* nCmdShow */