• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> ASP开发 >> 组件开发 >> 详细内容
 

推荐文章

 
 

热点文章

  • VB编写ActiveX DLL实现ASP编程
  • 汉字转换拼音(带音调)Asp版
  • 新生命Web服务器v1.1源码
  • VB编写ASP组件的调试
  • 使用ASPJPEG添加水印的方法
  • 用VB将ASP代码封装成DLL
  • 常见ASP组件介绍及下载
  • 用VB生成DLL封装ASP代码,连接数据库
  • 使用VB编写纯ASP程序
  • 调用winrar压缩文件夹
  • 利用OWC画图的例子
  • Asp生成条形码
 
 

相关文章

  • 一个用来画图的组件(画饼图,条形图,各种形状图象的
  • 利用OWC服务器端组件动态生成图表
  • 作一个可以直接和浏览器进行交互的组件
  • 一个用组件动态创建Excel文件的实例
  • 使用VC++6.0制作ASP服务器控件简介
  • 用VB创建FTP组件(get)
  • 用VB创建FTP组件(put)
  • 在WEB环境下打印报表的crystal的解决方案
  • 用ASP、VB和XML建立互联网应用程序
  • 如何制作无状态的ASP组件
  • 利用ASP改进文档上载控件
  • 利用ASP改进文档上载控件
 
 

百度搜索

 
 

在VC++ 编写的组件中使用ASP对象

  • 阅览次数:
  • 文章来源: 网海之贝
  • 原文作者: 佚名
  • 整理日期: 2006-10-03
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

简介
本文用一个简单的sample演示如何在VC++ ATL编写的组件中调用我们熟悉的ASP对象(Request,Response,Session等等)。你会发现在 Visual C++中使用 ATL Object Wizard就可以达到我们的目的。但使用OnStartPage,OnEndPage事件并不是最佳方法。
在IIS3.0中,组件能通过IscriptingContext 接口存取ASP内建对象,但这是通过页面级方法来存取内建对象。现在有了一种更好的实现方法,就是利用ObjectContext对象直接存取。ObjectContext使IIS应用有更好的扩展性,提供更完善的事务处理功能。强烈建议你把原有的应用转换到这种方式,但要求你的应用支持事务处理。
代码
首先需要包含一些必要的库文件。我们需要mtx.h来定义一些常量,通过mtxas.dll得到IobjectContext接口,通过asp.dll得到ASP对象。
#include <mtx.h>
#import "c:Winntsystem32mtsmtxas.dll"
#import "c:Winntsystem32inetsrvasp.dll"

然后,我们调入IobjectContext接口。
MTxAS::ObjectContextPtr pObjectContext;
HRESULT hr = GetObjectContext((IObjectContext**)
   &pObjectContext);  

下一步,通过context 对象得到我们需要的东西。这里举两个例子:session和response。
//Session Object
CComVariant v;
CComBSTR bstr(L"Session");
CComQIPtr<IGetContextProperties, &__uuidof
   (IGetContextProperties)> pProps(pObjectContext);
hr = pProps->GetProperty(bstr, &v);
CComPtr<IDispatch> pDisp;
pDisp = V_DISPATCH(&v);
CComQIPtr<ASPTypeLibrary::ISessionObject, &__uuidof
   (ASPTypeLibrary::ISessionObject)> pSession(pDisp);  


//Response Object
CComVariant v;
CComBSTR bstr(L"Response");
CComQIPtr<IGetContextProperties, &__uuidof
   (IGetContextProperties)> pProps(pObjectContext);
hr = pProps->GetProperty(bstr, &v);
CComPtr<IDispatch> pDisp;
pDisp = V_DISPATCH(&v);
CComQIPtr<ASPTypeLibrary::IResponse, &__uuidof
   (ASPTypeLibrary::IResponse)> pResponse(pDisp);  

最后来一个使用这个对象得简单例子。
//Retrieve a value from the Session Object.
CComBSTR bstrVarName(L"TestSessionVar");
VARIANT* pValue;
pSession->get_Value(bstrVarName, pValue);

//Write that value out to the browser.
pResponse->Write(pValue);  

总结
虽然这只是一个很简单的在VC++编写的组件中调用ASP 内建对象的例子,你可以按这个原理做更多的事情。Good luck。
       

上一篇:PHP编程技巧:看实例学正则表达式
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号