The adwInfo[0] field was no longer used on mmioOpen (may contain file
[wine.git] / library / winestub.c
blob3a3a120cfe25baa4b3afa5a7fb6ad1723ae9f160
1 /* Sample winestub.c file for compiling programs with libwine.so. */
3 #include <string.h>
4 #include "winbase.h"
5 #include "winuser.h"
6 #include "xmalloc.h"
8 extern int PASCAL WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
10 /* external declaration here because we don't want to depend on Wine headers */
11 #ifdef __cplusplus
12 extern "C" HINSTANCE MAIN_WinelibInit( int *argc, char *argv[] );
13 #else
14 extern HINSTANCE MAIN_WinelibInit( int *argc, char *argv[] );
15 #endif
17 /* Most Windows C/C++ compilers use something like this to */
18 /* access argc and argv globally: */
19 int _ARGC;
20 char **_ARGV;
22 int main( int argc, char *argv [] )
24 HINSTANCE hInstance;
25 LPSTR lpszCmdParam;
26 int i, len = 0, retv;
27 _ARGC = argc;
28 _ARGV = (char **)argv;
30 if (!(hInstance = MAIN_WinelibInit( &argc, argv ))) return 0;
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 retv = WinMain (hInstance, /* hInstance */
41 0, /* hPrevInstance */
42 lpszCmdParam, /* lpszCmdParam */
43 SW_NORMAL); /* nCmdShow */
45 ExitProcess( retv );
46 return retv;