ISAPI-Interface
ISAPI-Interface
Das Interface
Beim Erstellen der Interface-Datei habe ich mich bewusst auf die sehr ausgereifte ISAPI - Schnittstelle des IIS konzentriert, denn man kann schon sagen, dass der IIS den größten Funktionsumfang zur Verfügung stellt in vielen anderen Implementierungen wie z.B. beim Apache wurde auf einige Möglichkeiten verzichtet, denn hier steht auch eine andere Schnittstelle zur Verfügung.
Wie schon erwähnt konnte ich es mir zunutze machen, dass bereits in C Header-Dateien zu diesem Interface zur Verfügung stehen, die nur nach Pascal portiert werden mussten. Im Internet findet man dazu einiges (wenn man nach isapi.pas sucht), aber leider sind die Ergebnisse nicht aktuell und auch leider nicht immer fehlerfrei und auch leider nicht direkt für Free Pascal zu gebrauchen.
Die aus den Recherchen im Internet entstandene Interface-Datei ist gleichermaßen für Lazarus / Free Pascal als auch für Delphi geeignet. Sie stellt die Definitionen der drei zu jeder Schnittstelle zu exportierten Funktionen zur Verfügung.
Bei dem Filter wären das:
 1.	 GetFilterVersion, welche Informationen zum Filter übergibt, vor allem für welche Events das Filter geschrieben wurde.
2.	 HttpFilterProc die Hauptfunktion, welche eigentliche Verarbeitung vornimmt.
3.	 TerminateFilter, die das Beenden des Filters einleitet.
Bei der Extension wären das:
 1.	 GetExtensionVersion, welche Informationen zur Extension übergibt.
2.	 HttpExtensionProc die Hauptfunktion, welche eigentliche Verarbeitung des Requests vornimmt.
3.	 TerminateExtension, die das Beenden der Extension einleitet.
 isapi.pas