1 /* Sample winestub.c file for compiling programs with libwine.so. */
8 /* Stub needed for linking with Winelib */
9 /* FIXME: this should not be necessary */
10 HMODULE32
BUILTIN_LoadModule( LPCSTR name
, BOOL32 force
) {
11 fprintf(stderr
,"BUILTIN_LoadModule(%s,%d) called in a library!\n",name
,force
);
15 extern int PASCAL
WinMain(HINSTANCE32
,HINSTANCE32
,LPSTR
,int);
16 extern int MAIN_WinelibInit(void);
17 extern BOOL32
MAIN_WineInit( int *argc
, char *argv
[] );
18 extern void TASK_Reschedule(void);
20 /* Most Windows C/C++ compilers use something like this to */
21 /* access argc and argv globally: */
25 int main( int argc
, char *argv
[] )
27 HINSTANCE16 hInstance
;
31 _ARGV
= (char **)argv
;
33 MAIN_WineInit( &argc
, argv
);
35 /* Alloc szCmdParam */
36 for (i
= 1; i
< argc
; i
++) len
+= strlen(argv
[i
]) + 1;
37 lpszCmdParam
= (LPSTR
) xmalloc(len
+ 1);
38 /* Concatenate arguments */
39 if (argc
> 1) strcpy(lpszCmdParam
, argv
[1]);
40 else lpszCmdParam
[0] = '\0';
41 for (i
= 2; i
< argc
; i
++) strcat(strcat(lpszCmdParam
, " "), argv
[i
]);
43 if(!MAIN_WinelibInit()) return 0;
44 hInstance
= WinExec32( *argv
, SW_SHOWNORMAL
);
48 return WinMain (hInstance
, /* hInstance */
49 0, /* hPrevInstance */
50 lpszCmdParam
, /* lpszCmdParam */
51 SW_NORMAL
); /* nCmdShow */