首页 IP地址查询 | Alexa排名查询 | 手机归属地查询
设为首页 收藏本站
  • 网络编程网络编程
  • 软件编程软件编程
  • 数据库技术数据库技术
  • 编程学院
  • 业界资讯 业界资讯
  • 源码中心源码中心
  • 会员中心会员中心
  • 页面导航: 首页COM编程ATL → .net开发ASP组件

    .net开发ASP组件

    发布:姜毅 发布日期:2008-06-19 字体:[增加 减小] 类型:原创

    第一步先创建ATL项目

    第二步创建COM组件,并定义组件名

    第三步,在组件中创建方法。这里接口方法是对外的,处理函数只是对内的

    添加了无参数方法STDMETHODIMP CAppOpt::StartApp(void)

    这是对外的,以下简单的做了提示消息处理

    STDMETHODIMP CAppOpt::StartApp(void)
    {
     MessageBox("谢谢使用我这个组件");

     return S_OK;
    }

     

    编译成功了,但是这是不安全的,不能直接给ASP使用,还要在头文件中添加以下代码

    class ATL_NO_VTABLE CAppOpt :
     public IAppOpt,
     public IPersistStreamInitImpl<CAppOpt>,
     public IOleControlImpl<CAppOpt>,
     public IOleObjectImpl<CAppOpt>,
     public IOleInPlaceActiveObjectImpl<CAppOpt>,
     public IViewObjectExImpl<CAppOpt>,
     public IOleInPlaceObjectWindowlessImpl<CAppOpt>,
     public IPersistStorageImpl<CAppOpt>,
     public ISpecifyPropertyPagesImpl<CAppOpt>,
     public IQuickActivateImpl<CAppOpt>,
     public IDataObjectImpl<CAppOpt>,
     public IProvideClassInfo2Impl<&__uuidof(CAppOpt), NULL>,
     public CComControl<CAppOpt>
    {
    public:

     CAppOpt()
     {
     }
     

    DECLARE_OLEMISC_STATUS(OLEMISC_RECOMPOSEONRESIZE |
     OLEMISC_ACTSLIKELABEL |
     OLEMISC_CANTLINKINSIDE |
     OLEMISC_INSIDEOUT |
     OLEMISC_ACTIVATEWHENVISIBLE |
     OLEMISC_SETCLIENTSITEFIRST
    )

    修改为

    class ATL_NO_VTABLE CAppOpt :
     public IAppOpt,
     public IPersistStreamInitImpl<CAppOpt>,
     public IOleControlImpl<CAppOpt>,
     public IOleObjectImpl<CAppOpt>,
     public IOleInPlaceActiveObjectImpl<CAppOpt>,
     public IViewObjectExImpl<CAppOpt>,
     public IOleInPlaceObjectWindowlessImpl<CAppOpt>,
     public IPersistStorageImpl<CAppOpt>,
     public ISpecifyPropertyPagesImpl<CAppOpt>,
     public IQuickActivateImpl<CAppOpt>,
     public IDataObjectImpl<CAppOpt>,
     public IProvideClassInfo2Impl<&__uuidof(CAppOpt), NULL>,
     public CComControl<CAppOpt>
    {
    public:

     CAppOpt()
     {
     }
     BEGIN_CATEGORY_MAP(CAppOpt)
      IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
      IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
     END_CATEGORY_MAP()

    DECLARE_OLEMISC_STATUS(OLEMISC_RECOMPOSEONRESIZE |
     OLEMISC_ACTSLIKELABEL |
     OLEMISC_CANTLINKINSIDE |
     OLEMISC_INSIDEOUT |
     OLEMISC_ACTIVATEWHENVISIBLE |
     OLEMISC_SETCLIENTSITEFIRST
    )

     

     

    在网页中调用方法

    < OBJECT ID="AppOpt" WIDTH=0 HEIGHT=0 CLASSID="CLSID:6C29F2AB-D401-4C74-89D5-2B534063DDC5" VIEWASTEXT> < /OBJECT>

    < script language="JavaScript">

    AppOpt.StartApp();

    < /script >


    下载源代码
    Tags: COM 组件 ASP
    为配合网络严查,文章评论将关闭敬请谅解.
    同 类 文 章
    最 近 更 新
    热 点 排 行