频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用C++Builder开发ISAPI扩展应用程序

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组
上一页 1 2 3 4 5 下一页 

  ●HSE_REQ_SEND_URL: 重定向到本服务器上的一个URL,Buffer: 指向一重定向目标 URL字符串;DataType被忽略。

  ●HSE_REQ_SEND_RESPONSE_HEADER:发送响应头部给用户;Buffer: 指向包含头部的 字符串;DataType被忽略。

  ●HSE_REQ_DONE_WITH_SESSION: 通知服务器, 异步的请求处理已经完成。 Size, Buffer,DataType均被忽略。

  ●HSE_REQ_MAP_URL_TO_PATH: 映射一个逻辑路径到一个物理路径。Buffer:映射在 此缓冲区上完成;DataType被忽略。

  HttpExtensionProc()函数的返回值必须使以下四个值(在Isapi2.hpp中定义)中的一个:

  ●HSE_STATUS_SUCCESS:所有进程已完成。

  ●HSE_STATUS_SUCCESS_AND_KEEP_CONN:所有进程已经完成,但希望保持连接以继 续进一步的交互。

  ●HSE_STATUS_PENDING: 进程未完成。 当扩展异步完成进程时, 将以参数 HSERRequest=HSE_REQ_DONE_WITH_SESSION调用ServerSupportFunction(),以提醒服务 器进程已完成。

  ●HSE_STATUS_ERROR:进程由于错误已异常终止。

  清单3包含了处理一个"Hello World"网页请求的简单 但必要的逻辑。

  ---------清单3------------------------

  int _export WINAPI HttpExtensionProc(Isapi2::TEXTENSION_CONTROL_BLOCK &ECB)
   {
   char my_string[256];
   int length;
   strcpy(my_string,"200 OK/r/nContext-Type:text/html");
   length=strlen(my_string);
   ECB.dwHttpStatusCode=200;
   ECB.ServerSupportFunction(ECB.ConnID, HSE_REQ_SEND_RESPONSE_HEADER, my_string,length,NULL);//发送头部  strcpy(my_string,"Hello World!");
   length=strlen(my_string);
   ECB.WriteClient(ECB.ConnID,my_string,length,0); //发送数据给客户浏览器
   return(HSE_STATUS_SUCCESS);
   }

  这是一个简单的例子,实际应用的ISAPI扩展将需要做比这更多的工作。

  与GetExtenVersion()函数和TerninateExtension()函数不同,HttpExtensionProc ()函数对用户的行为产生作用。

  1.3 TerminateExtension()函数

  TerminateExtension() 函数在用户将卸载DLL时被调用,它是可选择的。传入参数 为dwFlages,类型为int,是以下两个值(在Isapi2.hpp中定义)中的一个:

保留:: http://www.qqread.com/bcb/d349884.html 更多文章 更多内容请看C/C++技术专题Wlan组网----家庭专题C/C++进阶技术文档专题,或进入讨论组讨论。
上一页 1 2 3 4 5 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章