Fixed some compiler errors and warnings.

diff --git a/programs/winhelp/hlpfile.c b/programs/winhelp/hlpfile.c
index d06655d..9948441 100644
--- a/programs/winhelp/hlpfile.c
+++ b/programs/winhelp/hlpfile.c
@@ -5,7 +5,9 @@
  */
 
 #include <stdio.h>
+#include <string.h>
 #include "windows.h"
+#include "windowsx.h"
 #include "winhelp.h"
 
 static void Report(LPCSTR str)
diff --git a/programs/winhelp/macro.c b/programs/winhelp/macro.c
index bb15208..82fd5a2 100644
--- a/programs/winhelp/macro.c
+++ b/programs/winhelp/macro.c
@@ -482,7 +482,7 @@
     printer.hPrintTemplate      = 0;
     printer.hSetupTemplate      = 0;
         
-    if (PrintDlg16(&printer)) {
+    if (PrintDlg16((LPPRINTDLG16)&printer)) {
         fprintf(stderr, "Print()\n");
     };
 }
diff --git a/programs/winhelp/macro.lex.l b/programs/winhelp/macro.lex.l
index 0e6823d..e40e159 100644
--- a/programs/winhelp/macro.lex.l
+++ b/programs/winhelp/macro.lex.l
@@ -177,7 +177,7 @@
   if (!lstrcmpi(macro, "MacroTest"))
     {
       WNDPROC lpfnDlg = MakeProcInstance(MACRO_TestDialogProc, Globals.hInstance);
-      DialogBox(Globals.hInstance, STRING_DIALOG_TEST, Globals.active_win->hMainWnd, lpfnDlg);
+      DialogBox(Globals.hInstance, STRING_DIALOG_TEST, Globals.active_win->hMainWnd, (DLGPROC)lpfnDlg);
       FreeProcInstance(lpfnDlg);
       macro = szTestMacro;
     }
diff --git a/programs/winhelp/winhelp.c b/programs/winhelp/winhelp.c
index 39271a8..590deaf 100644
--- a/programs/winhelp/winhelp.c
+++ b/programs/winhelp/winhelp.c
@@ -5,7 +5,9 @@
  */
 
 #include <stdio.h>
+#include <string.h>
 #include "windows.h"
+#include "windowsx.h"
 #include "winhelp.h"
 
 #ifdef WINELIB