1/****************************************************************************
2 * Name:        winestub.cpp
3 * Purpose:     wxWINE module mapping main() to WinMain()
4 * Author:      Robert Roebling
5 * Created:     04/01/98
6 * RCS-ID:      $Id: winestub.c 29038 2004-09-07 11:11:05Z ABX $
7 * Copyright:   (c) Robert Roebling
8 * Licence:     wxWidgets Licence
9 *****************************************************************************/
10
11#include <string.h>
12#include "winuser.h"
13#include "xmalloc.h"
14
15extern int PASCAL WinMain( HINSTANCE, HINSTANCE, LPSTR, int );
16extern HINSTANCE MAIN_WinelibInit( int *argc, char *argv[] );
17
18/* Most Windows C/C++ compilers use something like this to */
19/* access argc and argv globally: */
20int _ARGC;
21char **_ARGV;
22
23int main( int argc, char *argv [] )
24{
25  HINSTANCE hInstance;
26  LPSTR lpszCmdParam;
27  int i, len = 0;
28  _ARGC = argc;
29  _ARGV = (char **)argv;
30
31  if (!(hInstance = MAIN_WinelibInit( &argc, argv ))) return 0;
32
33  /* Alloc szCmdParam */
34  for (i = 1; i < argc; i++) len += strlen(argv[i]) + 1;
35  lpszCmdParam = (LPSTR) xmalloc(len + 1);
36  /* Concatenate arguments */
37  if (argc > 1) strcpy(lpszCmdParam, argv[1]);
38  else lpszCmdParam[0] = '\0';
39  for (i = 2; i < argc; i++) strcat(strcat(lpszCmdParam, " "), argv[i]);
40
41  return WinMain (hInstance,    /* hInstance */
42          0,            /* hPrevInstance */
43          lpszCmdParam, /* lpszCmdParam */
44          SW_NORMAL);   /* nCmdShow */
45}
46