Alexandre Julliard | 7e56f68 | 1996-01-31 19:02:28 +0000 | [diff] [blame] | 1 | #!/usr/bin/perl |
Alexandre Julliard | 0c126c7 | 1996-02-18 18:44:41 +0000 | [diff] [blame] | 2 | open(APIW,"./apiw.index") or die "Can't find ./apiw.index"; |
Alexandre Julliard | 7e56f68 | 1996-01-31 19:02:28 +0000 | [diff] [blame] | 3 | while(<APIW>) |
| 4 | { |
| 5 | ($func,$link)=split /:/; |
| 6 | chop $link; |
| 7 | $link=~m/(\d*)/; |
| 8 | $apiw{$func}="http://www.willows.com/apiw/chapter$1/p$link.html"; |
| 9 | } |
| 10 | close(APIW); |
| 11 | |
Alexandre Julliard | 0c126c7 | 1996-02-18 18:44:41 +0000 | [diff] [blame] | 12 | open(WINDOWS,"../include/windows.h") or die "Can't find ../include/windows.h"; |
Alexandre Julliard | 7e56f68 | 1996-01-31 19:02:28 +0000 | [diff] [blame] | 13 | while(<WINDOWS>) { add_func($_) if /AccessResource/../wvsprintf/; } |
| 14 | close(WINDOWS); |
Alexandre Julliard | 0c126c7 | 1996-02-18 18:44:41 +0000 | [diff] [blame] | 15 | open(TOOLHELP,"../include/toolhelp.h") or die "Can't find ../include/toolhelp.h"; |
Alexandre Julliard | 7e56f68 | 1996-01-31 19:02:28 +0000 | [diff] [blame] | 16 | while(<TOOLHELP>) { add_func($_) if /GlobalInfo/../MemoryWrite/; } |
| 17 | close(TOOLHELP); |
Alexandre Julliard | 0c126c7 | 1996-02-18 18:44:41 +0000 | [diff] [blame] | 18 | open(COMMDLG,"../include/commdlg.h") or die "Can't find ../include/commdlg.h"; |
Alexandre Julliard | 7e56f68 | 1996-01-31 19:02:28 +0000 | [diff] [blame] | 19 | while(<COMMDLG>) { add_func($_) if /ChooseColor/../ReplaceText/; } |
| 20 | close(COMMDLG); |
| 21 | |
| 22 | print "<html><body>\n"; |
| 23 | |
| 24 | print "<h2>Windows API Functions</h2>\n"; |
| 25 | print "The following API functions were found by searching windows.h,\n"; |
| 26 | print "toolhelp.h, and commdlg.h. Where possible, help links pointing\n"; |
| 27 | print "to www.willows.com are included.<p>\n"; |
| 28 | print "<table>\n"; |
| 29 | print "<th>Help-link</th><th></th><th></th><th align=left>Function</th>\n"; |
| 30 | foreach $func (sort(keys %funcs)) |
| 31 | { |
| 32 | $funcs{$func}=~m/(.*) +(\w*)(\(.*)/; |
| 33 | print "<tr>\n<td>"; |
| 34 | if($apiw{$2}) |
| 35 | { |
| 36 | print "<center><a href=\"$apiw{$2}\">APIW</a></center>"; |
| 37 | $impl{$2}=1; |
| 38 | $impl++; |
| 39 | } |
| 40 | $numfuncs++; |
| 41 | print "</td>\n"; |
| 42 | print "<td></td>\n"; |
| 43 | print "<td>$1</td>\n"; |
| 44 | print "<td>$2$3</td>\n"; |
| 45 | print "</tr>\n"; |
| 46 | } |
| 47 | print "</table><p>\n"; |
| 48 | print "(Approximately ",sprintf("%3.1f",$impl/(1.0*$numfuncs)*100.0), |
| 49 | "% of the functions above are in the APIW standard.)<p>\n"; |
| 50 | |
| 51 | print "<hr>\n"; |
| 52 | print "<h2>Unimplemented APIW functions</h2><p>\n"; |
| 53 | print "Here's a list of the API functions in the APIW standard which were <b>not</b> found\n"; |
| 54 | print "in windows.h, commdlg.h, or toolhelp.h:<p>\n"; |
| 55 | foreach $func (sort (keys %apiw)) |
| 56 | { |
| 57 | if(!$impl{$func}) |
| 58 | { |
| 59 | print "<a href=\"$apiw{$func}\">$func</a>\n"; |
| 60 | $unimpl++; |
| 61 | } |
| 62 | $numapiw++; |
| 63 | } |
| 64 | print "<p>(This comprises approximately ",sprintf("%3.1f",$unimpl/(1.0*$numapiw)*100.0), |
| 65 | "% of the APIW.)\n"; |
| 66 | |
| 67 | print "</body></html>\n"; |
| 68 | |
| 69 | sub add_func |
| 70 | { |
| 71 | $line=shift; |
| 72 | chop $line; |
| 73 | $line=~s/\s+/ /g; |
| 74 | ($func)=$line=~m/ (\w*)\(/; |
| 75 | if($func) |
| 76 | { |
| 77 | while($funcs{$func}) { $func.=" "; } |
| 78 | $funcs{$func}=$line; |
| 79 | } |
| 80 | } |