⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isapi1.dpr

📁 Delphi6分布式开发例程12 )
💻 DPR
字号:
library Isapi1;

uses
  Windows,
  SysUtils,
  ISAPI,
  Classes,
  Unitlib in 'unitlib.pas';

const CRLF=^M^J;

function GetExtensionVersion(var Ver:THSE_VERSION_INFO):BOOL;stdcall;export;
begin
     try
       Ver.dwExtensionVersion:=MAKELONG(HSE_VERSION_MINOR,HSE_VERSION_MAJOR);
       Ver.lpszExtensionDesc:='ISAPI应用程序范例';
       Result:=True;
     except
       Result:=False;
     end;
end;

function HttpExtensionProc(var FECB:TEXTENSION_CONTROL_BLOCK):DWORD;stdcall;export;
var buffer:PCHAR;
    buf_size:DWORD;
    ServerName:String;
    RequestMethod:String;
    RemoteAddr:String;
    QueryString:String;
    temp:String;
    len,count:Integer;
    i:DWORD;
    sa:StrArr;
begin
try
     GetMem(buffer,5000);
     buf_size:=5000;

     FECB.GetServerVariable(FECB.ConnID,'REMOTE_ADDR',buffer,buf_size);
     RemoteAddr:=StrPas(buffer);

     FECB.GetServerVariable(FECB.ConnID,'SERVER_NAME',buffer,buf_size);
     ServerName:=StrPas(buffer);

     FECB.GetServerVariable(FECB.ConnID,'REQUEST_METHOD',buffer,buf_size);
     RequestMethod:=StrPas(buffer);

     len:=Length(StrPas(FECB.lpszQueryString));
     count:=CutQueryString(FECB.lpszQueryString,sa,len);
     QueryString:='';
     for i:=0 to count-1 do begin
       sa[i]:=DecodeURL(sa[i]);
       QueryString := QueryString + sa[i];
     end;

     FreeMem(buffer);

     temp:='<HTML><HEAD><TITLE>ISAPI范例程序</TITLE></HEAD><HR>'+CRLF;
     i:=length(temp);
     FECB.WriteClient(FECB.ConnID,PCHAR(temp),i,0);

     temp:='使用方法:'+RequestMethod+'<P>'+CRLF;
     i:=length(temp);
     FECB.WriteClient(FECB.ConnID,PCHAR(temp),i,0);

     temp:='服务器名:'+ServerName+'<P>'+CRLF;
     i:=length(temp);
     FECB.WriteClient(FECB.ConnID,PCHAR(temp),i,0);

     temp:='主机地址:'+RemoteAddr+'<P>'+CRLF;
     i:=length(temp);
     FECB.WriteClient(FECB.ConnID,PCHAR(temp),i,0);

     temp:='服务器当前的日期和时间:'+DateTimeToStr(now)+'<P><HR>'+CRLF;
     i:=length(temp);
     FECB.WriteClient(FECB.ConnID,PCHAR(temp),i,0);

     temp:='用户输入字符串:'+QueryString+'<P><HR>'+CRLF;
     i:=length(temp);
     FECB.WriteClient(FECB.ConnID,PCHAR(temp),i,0);

     temp:='</BODY></HTML>'+CRLF;
     i:=length(temp);
     FECB.WriteClient(FECB.ConnID,PCHAR(temp),i,0);

     Result:=HSE_STATUS_SUCCESS;
except
     Result:=HSE_STATUS_ERROR;
end;
end;

exports
       GetExtensionVersion,
       HttpExtensionProc;

begin
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -