using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace MSDNOUT
{
/// <summary>
/// 反编译微软MSDN2003文档并保存到数据库的程序主窗体
/// </summary>
public class dlgMSDNOut : System.Windows.Forms.Form
{
/******************************************************************************************
声明:本程序只是研究性的程序,没有损害微软对MSDN的版权的意图,并承认
微软对 MSDN , Microsoft Help 2.0 SDK , HXS文件格式,MSDE 等版权所有权
本程序能反编译微软MSDN2003的帮助文档,并将反编译结果保存到一个SQLSERVER数据库中
本文件为一个独立的C#代码文件,不需要依赖任何其他文件,使用VS.NET建立一个
C#的默认名称空间为MSDNOUT的Windows应用程序后将该文件内容覆盖掉系统自动生成
的Form1.cs文件内容即可编译通过并执行,本程序在微软.NET框架1.1简体中文版的
Windows2000Server环境下测试通过, MDAC版本2.7,数据库服务器为MSDE,版本8.00.760(SP3)
本程序假定你将MSDN2003安装在 C:\Program Files\MSDN\2003FEB\2052
还假定安装了 Microsoft Help 2.0 SDK , 并假定安装在目录
"C:\Program Files\Microsoft Help 2.0 SDK" , 该SDK安装文件可在微软网站下载
本程序长时间频繁的读写临时文件,因此可以使用一个虚拟硬盘工具在
物理内存中虚拟一个磁盘,这样可以大大加快程序的运行速度
可在 http://down1.tech.sina.com.cn/cgi-bin/download/download.cgi?s_id=3761&num=1
下载一个虚拟硬盘工具
程序使用的数据库为MSSQLSERVER,在此使用了MSDE,由于MSDE的单个数据库
大小限制在2GB内,而MSDN文件总共超过了2GB,因此程序运行时还根据需要
切换数据库,本程序使用的数据库文件保存在 f:\db 下面
使用前请执行以下SQL语句来初始化数据库
CREATE DATABASE MSDN1 ON (NAME = MSDN1, FILENAME = f:\db\MSDN1.mdf )";
CREATE TABLE [MSDNFileList] (
[MFileID] [int] NOT NULL ,
[MFileName] [varchar] (200) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[MDBName] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[MFileLength] [int] NULL ,
CONSTRAINT [PK_MSDNFileList] PRIMARY KEY CLUSTERED
(
[MFileName]
) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [MSDNFile] (
[MFileID] [int] NOT NULL ,
[MFileContent] [image] NULL ,
CONSTRAINT [PK_MSDNFile] PRIMARY KEY CLUSTERED
(
[MFileID]
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
*****************************************************************************************/
/// <summary>
/// 取消操作标记
/// </summary>
private bool bolCancel = false ;
/// <summary>
/// 暂停操作标记
/// </summary>
private bool bolPause = false ;
/// <summary>
/// 主数据库连接字符串
/// </summary>
private System.Data.SqlClient.SqlConnection MainConn = null;
/// <summary>
//