Add function prototypes.
Change the way functions are called and either alter their declaration
order or predeclare them so perl can check the prototypes.

diff --git a/tools/winapi/winapi_extract b/tools/winapi/winapi_extract
index 7497ef2..4923556 100755
--- a/tools/winapi/winapi_extract
+++ b/tools/winapi/winapi_extract
@@ -25,7 +25,7 @@
 }
 
 use config qw(
-    &file_type &files_skip &files_filter &get_spec_files
+    file_type files_skip files_filter get_spec_files
     $current_dir $wine_dir $winapi_dir $winapi_check_dir
 );
 use output qw($output);
@@ -99,7 +99,7 @@
 
 my %specifications;
 
-sub documentation_specifications {
+sub documentation_specifications($) {
     my $function = shift;
 
     my @debug_channels = @{$function->debug_channels};
@@ -161,7 +161,7 @@
 
 my %module_pseudo_stub;
 
-sub statements_pseudo_stub {
+sub statements_pseudo_stub($) {
     my $function = shift;
 
     my $pseudo_stub = 0;
@@ -415,7 +415,7 @@
     }
 }
 
-sub output_function {
+sub output_function($$$$$) {
     local *OUT = shift;
     my $type = shift;
     my $ordinal = shift;