WEB开发网
开发学院软件开发C语言 C#开发ActiveX控件操作指南 阅读

C#开发ActiveX控件操作指南

 2010-09-30 20:58:43 来源:WEB开发网   
核心提示: 添加一个Windows用户控件:图片看不清楚?请点击这里查看原图(大图),按照开发Windows用户控件一样的思路完成该控件的开发,C#开发ActiveX控件操作指南(3),本例中主要实现了两个业务功能,一个是提供一个公共方法,为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“

添加一个Windows用户控件:

C#开发ActiveX控件操作指南

图片看不清楚?请点击这里查看原图(大图)。

按照开发Windows用户控件一样的思路完成该控件的开发,本例中主要实现了两个业务功能,一个是提供一个公共方法,用于读取USBKey中保存的签名证书,保存到本地C盘根目录下,并返回操作信息;另一个业务功能提供UI界面,包括一个Button控件和一个Label控件,Button控件的 Click事件调用前面提供的那个方法,并将返回信息显示到Label控件上。这样做可以达到两个目的,其一,ActiveX控件提供公共方法供B/S程序直接调用,从后实现业务功能;其二,ActiveX控件可以提供B/S程序UI界面,通过响应B/S程序中对UI的操作事件实现业务功能。

完成控件开发后,为了使该用户控件作为一个ActiveX控件进行使用,还需要做以下修改:

首先,为控件类添加GUID,这个编号将用于B/S系统的客户端调用时使用(可以使用 工具-创建GUID 菜单创建一个GUID): 

Guid("4A44CF4E-F859-4328-AA22-3E9D7AFFF1AB")]  
public partial class Hello : UserControl  
{  

其次,为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能修改该接口的GUID值): 

using System;  
using System.Collections.Generic;  
using System.Text;  
using System.Runtime.InteropServices;  
 
namespace Preresearch.CSharpActiveX  
{  
    [ComImport, GuidAttribute("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]  
    [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]  
    public interface IObjectSafety  
    {  
  [PreserveSig]  
  int GetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [MarshalAs(UnmanagedType.U4)] ref int pdwEnabledOptions);  
 
  [PreserveSig()]  
  int SetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] int dwOptionSetMask, [MarshalAs(UnmanagedType.U4)] int dwEnabledOptions);  
    }  
}  

上一页  1 2 3 4 5  下一页

Tags:开发 ActiveX 控件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接