关于ISAPI的问题 ( 积分: 6 )

  • 主题发起人 主题发起人 rong007
  • 开始时间 开始时间
R

rong007

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现在IIS里访问网页后,自动在网页里加入代码

请问这个ISAPI需要怎么样写呀?谢谢

最后的6分了
 
在网上的一些代码,如果我需要在访问的那个页面想加入“测试”这些字符串应该怎么样写呀?

library Project1;

uses
SysUtils,math,Classes,windows,isapi2;//delphi中ISAPI过滤器单元

{$R *.res}
function GetFilterVersion(var pVer: THTTP_FILTER_VERSION):BOOL;stdcall;
begin
//过滤器要处理的事件和其他一些标志
pVer.dwFlags:=(
SF_NOTIFY_NONSECURE_PORT
//过滤器只在一般端口上使用
or SF_NOTIFY_SEND_RAW_DATA
//处理发送数据事件
or $80//SF_NOTIFY_END_OF_REQUEST
//处理请求结束事件
or SF_NOTIFY_ORDER_DEFAULT
//过滤器使用缺省优先级
);
//过滤器使用的版本HTTP_FILTER_REVISION
//返回当前版本
pVer.dwFilterVersion:=HTTP_FILTER_REVISION;
//过滤器的描述
pVer.lpszFilterDesc[0]:='A';pVer.lpszFilterDesc[1]:=#0;
result:=true;//初始化成功
end;

function HttpFilterProc(var pfc:THTTP_FILTER_CONTEXT;Notificationtype:DWORD;pvNotification:Pointer):DWORD;stdcall;
var
p:PHTTP_FILTER_RAW_DATA;
i:integer;
pc:pchar;
sMsg:string;
sMsgLen:DWORD;
begin
if Notificationtype=$80 then //是SF_NOTIFY_END_OF_REQUEST将pFilterContext复位
begin
pfc.pFilterContext:=nil;
end
else
begin
p:=PHTTP_FILTER_RAW_DATA(pvNotification);
pc:=p^.pvInData;
sMsg:='test';
sMsgLen:=length(sMsg);
pfc.WriteClient(pfc, PChar(sMsg),sMsgLen , 0);
case integer(pfc.pFilterContext) of
0://第一次调用,要检查MIME
begin
pfc.pFilterContext:=pointer(1);//是HTM
pc:=nil;
end;
1://HTML数据
begin
pfc.pFilterContext:=pointer(3);
pc:=nil;
//将pc转换内码
//gb2big(pc,p^.cbInBuffer);
end;
3://http1.1100contimue
begin
pfc.pFilterContext:=pointer(1);
end;
end;//endofcase
end;
//总是返回成功,并且如果有其他过滤器的话,还将继续调用
result:=SF_STATUS_REQ_NEXT_NOTIFICATION;
end;

exports
GetFilterVersion,
HttpFilterProc;
Begin
end.
 
没有朋友会吗?
 
后退
顶部