| #!/usr/bin/perl |
| open(APIW,"./apiw.index") or die "Can't find ./apiw.index"; |
| while(<APIW>) |
| { |
| ($func,$link)=split /:/; |
| chop $link; |
| $link=~m/(\d*)/; |
| $apiw{$func}="http://www.willows.com/apiw/chapter$1/p$link.html"; |
| } |
| close(APIW); |
| |
| open(WINDOWS,"../include/windows.h") or die "Can't find ../include/windows.h"; |
| while(<WINDOWS>) { add_func($_) if /AccessResource/../wvsprintf/; } |
| close(WINDOWS); |
| open(TOOLHELP,"../include/toolhelp.h") or die "Can't find ../include/toolhelp.h"; |
| while(<TOOLHELP>) { add_func($_) if /GlobalInfo/../MemoryWrite/; } |
| close(TOOLHELP); |
| open(COMMDLG,"../include/commdlg.h") or die "Can't find ../include/commdlg.h"; |
| while(<COMMDLG>) { add_func($_) if /ChooseColor/../ReplaceText/; } |
| close(COMMDLG); |
| |
| print "<html><body>\n"; |
| |
| print "<h2>Windows API Functions</h2>\n"; |
| print "The following API functions were found by searching windows.h,\n"; |
| print "toolhelp.h, and commdlg.h. Where possible, help links pointing\n"; |
| print "to www.willows.com are included.<p>\n"; |
| print "<table>\n"; |
| print "<th>Help-link</th><th></th><th></th><th align=left>Function</th>\n"; |
| foreach $func (sort(keys %funcs)) |
| { |
| $funcs{$func}=~m/(.*) +(\w*)(\(.*)/; |
| print "<tr>\n<td>"; |
| if($apiw{$2}) |
| { |
| print "<center><a href=\"$apiw{$2}\">APIW</a></center>"; |
| $impl{$2}=1; |
| $impl++; |
| } |
| $numfuncs++; |
| print "</td>\n"; |
| print "<td></td>\n"; |
| print "<td>$1</td>\n"; |
| print "<td>$2$3</td>\n"; |
| print "</tr>\n"; |
| } |
| print "</table><p>\n"; |
| print "(Approximately ",sprintf("%3.1f",$impl/(1.0*$numfuncs)*100.0), |
| "% of the functions above are in the APIW standard.)<p>\n"; |
| |
| print "<hr>\n"; |
| print "<h2>Unimplemented APIW functions</h2><p>\n"; |
| print "Here's a list of the API functions in the APIW standard which were <b>not</b> found\n"; |
| print "in windows.h, commdlg.h, or toolhelp.h:<p>\n"; |
| foreach $func (sort (keys %apiw)) |
| { |
| if(!$impl{$func}) |
| { |
| print "<a href=\"$apiw{$func}\">$func</a>\n"; |
| $unimpl++; |
| } |
| $numapiw++; |
| } |
| print "<p>(This comprises approximately ",sprintf("%3.1f",$unimpl/(1.0*$numapiw)*100.0), |
| "% of the APIW.)\n"; |
| |
| print "</body></html>\n"; |
| |
| sub add_func |
| { |
| $line=shift; |
| chop $line; |
| $line=~s/\s+/ /g; |
| ($func)=$line=~m/ (\w*)\(/; |
| if($func) |
| { |
| while($funcs{$func}) { $func.=" "; } |
| $funcs{$func}=$line; |
| } |
| } |