??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品色视频,黄色在线小视频,亚洲精品xxxhttp://www.aygfsteel.com/wangxinsh55/category/20256.htmlzh-cnThu, 09 Aug 2007 16:02:46 GMTThu, 09 Aug 2007 16:02:46 GMT60巧用JavaE序把Word转换成Html文ghttp://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135558.htmlSIMONESIMONEThu, 09 Aug 2007 09:21:00 GMThttp://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135558.htmlhttp://www.aygfsteel.com/wangxinsh55/comments/135558.htmlhttp://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135558.html#Feedback0http://www.aygfsteel.com/wangxinsh55/comments/commentRss/135558.htmlhttp://www.aygfsteel.com/wangxinsh55/services/trackbacks/135558.html
以下是引用片D:
package com;
/**
* 〈p〉Title:Word文档转htmlcR?p?br>* 〈p〉Description: ?p?br>* 〈p〉Copyright:() 2002?p?br>* @author 舉|
* @version 1.0
*/
import com.jacob.com.*;
import com.jacob.activeX.*;

public class WordtoHtml {
/**
*文档转换函数
*@param docfile word文档的绝对\径加文g?包含扩展?
*@param htmlfile 转换后的html文gl对路径和文件名(不含扩展?
*/
public static void change(String docfile, String htmlfile) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try {
app.setProperty("Visible", new Variant(false));
//讄word不可?br>Object docs = app.getProperty("Documents").toDispatch();
Object doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[]
{ docfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch();
// 打开word文g
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile,
new Variant(8) }, new int[1]);
// 作ؓhtml格式保存C时文?br>Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[]{});
}
}
public static void main(String[] strs){
WordtoHtml.change("c:\a\q输理调度pȝMҎ.doc", "c:\a\t");

}
}



SIMONE 2007-08-09 17:21 发表评论
]]>
使用MFC开发ActiveX控ghttp://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101152.htmlSIMONESIMONEWed, 28 Feb 2007 07:33:00 GMThttp://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101152.htmlhttp://www.aygfsteel.com/wangxinsh55/comments/101152.htmlhttp://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101152.html#Feedback0http://www.aygfsteel.com/wangxinsh55/comments/commentRss/101152.htmlhttp://www.aygfsteel.com/wangxinsh55/services/trackbacks/101152.html摘要Q?/b> 本文对COMlg中的ActiveX控g的MFC开发方法进行了介绍Q讲qC用户自定义和库存属性、方法以及事件的dҎ和属性页的制作过E。读者能够掌握基本的MFC ActiveX开发方法?br />
  关键词: MFCQActiveX控gQCOM

  阅读目录Q?/b>

  一、前a
  二、徏立工E框?/a>
  
三、属性、方法以及事件的d
  四、实现属性表
  五、在包容E序中用ActiveX控g
  六、小l?/a>


  前言

  ActiveX控g是一U实C一pd特定接口而其在使用和外观上更象一个控件的COMlg。ActiveX控gq种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象、统一数据传输、OLE文档、属性页、永久存储以及OLE自动化等?br />
  ActiveX控g作ؓ基本的界面单元,必须拥有自己的属性和Ҏ以适合不同特点的程序和向包容器E序提供功能服务Q其属性和Ҏ均由自动化服务的IDispatch接口来支持。除了属性和Ҏ外,ActiveX控gq具有区别于自动化服务的一U特?-事g。事件指的是从控件发送给其包容程序的一U通知。与H口控g通过发送消息通知其拥有者类|ActiveX控g是通过触发事g来通知其包容器的。事件的触发通常是通过控g包容器提供的IDispatch接口来调用自动化对象的方法来实现的。在设计ActiveX控g时就应当考虑控g可能会发生哪些事件以及包容器E序会对其中的哪些事g感兴ƈ这些事件包含进来。与自动化服务不同,ActiveX控g的方法、属性和事g均有自定义(customQ和库存QstockQ两U不同的cd。自定义的方法和属性也是是普通的自动化方法和属性,自定义事件则是自己选取名字和Dispatch ID的事件。而所谓的库存Ҏ、属性和事g则是使用了ActiveX控g规定了名字和Dispatch ID?标准"Ҏ、属性和事g?br />
  ActiveX控g可以使COMlg从外观和使用上能与普通的H口控g一P而且q提供了cM于设|Windows标准控g属性的属性页Q其能够在包容器程序的设计阶段对ActiveX控g的属性进行可视化讄。ActiveX控g提供的这些功能得对其的使用是非常方便的。本文下面即以MFC为工具对ActiveX控g的开发进行介l?br />  建立工程框架

  通过"MFC ActiveX ControlWizard"向导可以非常Ҏ的徏立一个MFC ActiveX控g工程框架。按照默认的选项徏立如?所C的工程l构Q?br />

? 使用~省选项建立的ActiveX控g工程l构

  其中Q_DSample68和_DSample68Eventsq两个接口将为客L序提供本控g的属性、方法以及可能响应的事g。全局函数DllRegisterServerQ)和DllUnregisterServerQ)分别用于控g在注册表的注册和注销Q一般不需要对其进行改动?br />
  应用E序cMCOleControlModulel承。而COleControlModule有是从CWinAppzQ提供了初始化控件模块的功能。CSample68PropPage的基cLCOlePropertyPageQCDialogcȝzc,主要负责对属性页中对囑Ş界面下用h件属性的昄。控件类CSample68CtrlcLq几个类中比较重要的一个类Q大部分实质性工作都在该cd成,其基cMؓCOleControlQ从CWnd和CCmdTargetl承Q因此能够ؓ控g对象提供与MFCH口对象相同的功能同时也提供了一pd事g触发函数和一个分发映表QActiveX控g能够同包容器E序有效地进行交互。该cȝzcd可以在满特定的条g时向控g的包容器发送消息或是触发事Ӟ以通知包容器程序在控g内有一些重要的事g发生。分发映表是其中很重要的一个部分,负责向包容器E序暴露控g提供的方法和属性。图2展示了COleControlcd控g与包容器通信中所L作用。可以看出,ActiveX控g与其包容器之间的所有通信q程都是由COleControl来完成的Q?br />

? COleControl在ActiveX控g与包容器通信中的作用

  控gcd基类COleControl的OnDrawQ)函数q行了重载,向导生成了如下缺省代码,其作用是在控件的客户区绘制一个椭圆。在~程q程中通常要对其进行替换:

void CSample68Ctrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
 // TODO: Replace the following code with your own drawing code.
 pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
 pdc->Ellipse(rcBounds);
}


? 插入ActiveX控g


? 插入的待试控g

  对向导生成的代码q行~译后,生扩展名为ocx的ActiveX控g。ActiveX控gq不能独立运行,只能在包容器E序中才能够q行。通常Qؓ了调试方便而多使用VC++附带的ActiveX Control Test Container工具以在试阶段对ActiveX控gq行调试。在试工具的客户区点击鼠标右键Qƈ选中弹出菜单?Insert New Control?菜单,弹出图3所C的对话框,左侧的列表框中列Z当前pȝ中所有注册的ActiveX控gQ选中要测试的控gq将其插入到试E序卛_通过"Control"菜单下的各菜单项Ҏ件的Ҏ、属性以及事件等q行试。在位于下方的分割视图中跟t显C出调试记录Q参见图4Q?br />  属性、方法以及事件的d


? 属性的d


? Ҏ的添?br />
  对ActiveX控g属性、方法和事g的添加均有库存和自定义两U。其中对属性和Ҏ的添加在MFC ClassWizard对话框的Automation中通过按钮"Add Property??Add Method?弹出如图5和图6所C的d属性和dҎ的对话框来完成。对于库存属性和ҎQ可以直接从External namel合框的下拉列表中选取QImplementation将自动讄为Stock。对于自定义属性和Ҏ的添加与在自动化对象中ؓ接口d属性和Ҏ的过E一PClassWizard在.odl文g和控件类生成相应的代码,下面l出的是在控件类中实现的部分分发映射代码Q?br />
…?br />// Dispatch maps
//{{AFX_DISPATCH(CSample68Ctrl)
CString m_message;
afx_msg void OnMessageChanged();
afx_msg short GetXPos();
afx_msg void SetXPos(short nNewValue);
afx_msg short GetYPos();
afx_msg void SetYPos(short nNewValue);
afx_msg short MessageLen();
//}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
// Dispatch and event IDs
public:
enum {
//{{AFX_DISP_ID(CSample68Ctrl)
dispidMessage = 1L,
dispidXPos = 2L,
dispidYPos = 3L,
dispidMessageLen = 4L,
//}}AFX_DISP_ID
};
…?br />BEGIN_DISPATCH_MAP(CSample68Ctrl, COleControl)
//{{AFX_DISPATCH_MAP(CSample68Ctrl)
DISP_PROPERTY_NOTIFY(CSample68Ctrl, "Message", m_message, OnMessageChanged, VT_BSTR)
DISP_PROPERTY_EX(CSample68Ctrl, "XPos", GetXPos, SetXPos, VT_I2)
DISP_PROPERTY_EX(CSample68Ctrl, "YPos", GetYPos, SetYPos, VT_I2)
DISP_FUNCTION(CSample68Ctrl, "MessageLen", MessageLen, VT_I2, VTS_NONE)
DISP_STOCKPROP_BACKCOLOR()
DISP_STOCKPROP_CAPTION()
DISP_STOCKPROP_FORECOLOR()
//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()
…?/td>

  在这里共d了一个自定义ҎMessageLenQ)和三U库存属性BackColor、Caption和ForeColorQ分别表C控件的背景艌Ӏ标题和前台Ԍ、两个以Get/Set方式获取的自定义属性XPos、YPos和一个以成员变量方式实现的自定义属性Message。这几个自定义属性分别表C昄字符串的x、y坐标和要昄的内宏V对于采取Get/Set方式获取的属性,应当在控件类中ؓ其添加相应的成员函数Qƈ修改其Get、Set成员函数的实现过E:

short m_nYPos;
short m_nXPos;
…?br />short CSample68Ctrl::GetXPos()
{
 return m_nXPos;
}
void CSample68Ctrl::SetXPos(short nNewValue)
{
 m_nXPos = nNewValue;
 SetModifiedFlag();
}
short CSample68Ctrl::GetYPos()
{
 return m_nYPos;
}
void CSample68Ctrl::SetYPos(short nNewValue)
{
 m_nYPos = nNewValue;
 SetModifiedFlag();
}

  对于以成员变量方式创建的属性MessageQ向D为其生成了一个消息响应函敎ͼ

void CSample68Ctrl::OnMessageChanged()
{
SetModifiedFlag();
}

  只要该属性的D更改QOnMessageChangedQ)函数即会被调用?br />
  Z使上q属性设|如背景艌Ӏ前景色{能够与控g实际联系hQ需要替换控件类OnDrawQ)函数中由向导生成的那部分代码。例如,下面q段代码即以前面d的属性设|作为参数|在控件中昄一串字W:

// 用背景色讄d
CBrush Brush(TranslateColor(GetBackColor()));
// 用前台色讄字体颜色
pdc->SetTextColor(TranslateColor(GetForeColor()));
// l制背景
pdc->FillRect(rcBounds, &Brush);
// 讄字体背景透明
pdc->SetBkMode(TRANSPARENT);
// 昄字符
pdc->TextOut(m_nXPos, m_nYPos, m_message);

  Z使属性设|更改后Q其效果能够立即在控件上昄出来Q应当在与属性设|相关的函数实现中调用InvalidateControlQ)以更新控件的昄?br />
  可以~译E序q在ActiveX Control Test Container工具中对其进行测试。在插入控g后,通过"Invoke Methods?菜单弹出如?所C的对话框。在Method Namel合框中可以选择要测试的属性和Ҏ。其中,对于属性的试分别有ProgGet和ProgSet的说明以指出是对属性值的获取与设|。在Parameter~辑框中输入要设|的参数及其对应的参数类型,点击SetValue按钮把该参数值添加到参数列表框,最后点击Invoke按钮在控g应用讄的属性ƈ执行指定的方法。对于有q回值的ҎQ其执行l果在Return~辑框中昄。如果出C异常操作Q在Exception~辑框中会昄出相应的异常错误信息。图8l出了经q属性设|的控g界面?br />

? 对属性、方法的试


? 讄了属性后的控?br />
  对于控g属性的dQ在MFC ClassWizard对话框的ActiveX Events中通过"Add Event?按钮弹出如图9所C的"Add Event"事gd对话框。与Ҏ、属性的dcMQ在External namel合框中可以输入要添加的自定义事件名Uͼ也可以从下拉列表选择库存事g。Implementation将Ҏ所要添加的事gcd而自动设|Stock或Custom选项。ActiveX控g通过d的事件来通知容器E序有特定的事g发生Q库存事件多为键盘、鼠标事Ӟ由COleControl自动q行处理。对于自定义事gQ则只是?odl文g和控件类中添加了事g映射表等必要的代码(代码附下Q,至于应当在何U条件下触发该事仉由开发h员自行编写代码?br />

? 事g的添?br />
dispinterface _DSample68Events
{
 properties:
  // Event interface has no properties
 methods:
  // NOTE - ClassWizard will maintain event information here.
  // Use extreme caution when editing this section.
  //{{AFX_ODL_EVENT(CSample68Ctrl)
  [id(1)] void MsgOut();
  //}}AFX_ODL_EVENT
};
…?br />// Event maps
//{{AFX_EVENT(CSample68Ctrl)
void FireMsgOut()
{FireEvent(eventidMsgOut,EVENT_PARAM(VTS_NONE));}
//}}AFX_EVENT
DECLARE_EVENT_MAP()
// Dispatch and event IDs
public:
enum {
 //{{AFX_DISP_ID(CSample68Ctrl)
 …?br /> eventidMsgOut = 1L,
 //}}AFX_DISP_ID
};
…?br />BEGIN_EVENT_MAP(CSample68Ctrl, COleControl)
//{{AFX_EVENT_MAP(CSample68Ctrl)
EVENT_CUSTOM("MsgOut", FireMsgOut, VTS_NONE)
//}}AFX_EVENT_MAP
END_EVENT_MAP()

  上述代码d了一个MsgOut的自定义事gQ可以在通过调用FireMsgOutQ)来激发。下面对Message属性的OnMessageChangedQ)消息响应函数q行修改Q每当Message属性内容被更改都会调用该函敎ͼ在该函数中调用此前添加的MessageLenQ)Ҏ以确定更改后的Message属性的字符串长度,在长度大?0时调用FireMsgOutQ)触发MsgOut事gQ?br />
void CSample68Ctrl::OnMessageChanged()
{
 InvalidateControl();
 if (MessageLen() >= 10)
  FireMsgOut();
  SetModifiedFlag();
}


?0 选择要记录的事g

  在用ActiveX Control Test Container对刚d的事件进行测试时Q首先通过"Control"菜单下的"Logging?菜单弹出如?0所C的对话框,q从"Events"属性页中选中要跟t记录的事g。当通过Invoke Methods对话框设|Message属性的内容过10个字W后Q位于程序框架下方的分割视图记录控件所触发的MsgOut事gQ如?1所C)?br />

?1 对事件的试
  实现属性表

  属性表是ActiveX控g所Ҏ的一U技术,可以在包容器E序处于设计阶段时ؓ其提供一个可视化的hZ互界面,q可以通过其对控g的自定义属性和库存属性进行设|。在用向导生成程序框架的同时卛_l生成了一个空的用于管理自定义属性的属性页。在代码上通过控gcd现文件中的属性页ID表对其进行维护:

BEGIN_PROPPAGEIDS(CSample68Ctrl, 1)
PROPPAGEID(CSample68PropPage::guid)
END_PROPPAGEIDS(CSample68Ctrl)

  q里的CSample68PropPagecL从COlePropertyPagez出来的,而COlePropertyPage的基cd是CDialogQ因此不隑֏现CSample68PropPage与通常的对话框cL比较怼的。可以象处理对话框一样在资源视图中ؓ~省的属性页d与自定义属性相关的交互用控Ӟq过ClassWizard这些控件与cL员变量徏立绑定关pR但是有一点不同,是在绑定成员变量时q要与控件中的相应属性徏立v对应关系。如?2所C,在Optional property namel合框中输入自定义属性名或是直接从下拉列表选择库存属性名QClassWizard向导在属性页cȝDoDataExchangeQ)函数中添加控件、变量和属性的l定代码Q?br />
void CSample68PropPage::DoDataExchange(CDataExchange* pDX)
{
 //{{AFX_DATA_MAP(CSample68PropPage)
 DDP_Text(pDX, IDC_MESSAGE, m_sMessage, _T("Message") );
 DDX_Text(pDX, IDC_MESSAGE, m_sMessage);
 DDP_Text(pDX, IDC_TITLE, m_sCaption, _T("Caption") );
 DDX_Text(pDX, IDC_TITLE, m_sCaption);
 DDP_Text(pDX, IDC_XPOS, m_nXPos, _T("XPos") );
 DDX_Text(pDX, IDC_XPOS, m_nXPos);
 DDP_Text(pDX, IDC_YPOS, m_nYPos, _T("YPos") );
 DDX_Text(pDX, IDC_YPOS, m_nYPos);
//}}AFX_DATA_MAP
DDP_PostProcessing(pDX);
}


?2 成员变量、控件与属性的l定

  q里只是在向导生成的~省属性页中实C自定义属性的可视化设|。虽然也可以用相同的Ҏ为库存属性进行设|,但是更多的还是采用添加库存属性页ID的方法来直接使用库存属性页来对其进行维护。例如,对于库存属性BackColor和ForeColorQ可以通过ID号ؓCLSID_CcolorPropPage的库存属性页来进行设|,在将其添加到属性页ID表的同时一定要注意修改BEGIN_PROPPAGEIDSQ)宏的属性页计数Q否则将会引Ll的崩溃Q?br />
BEGIN_PROPPAGEIDS(CSample68Ctrl, 2)
PROPPAGEID(CSample68PropPage::guid)
PROPPAGEID(CLSID_CColorPropPage)
END_PROPPAGEIDS(CSample68Ctrl)

  l箋在ActiveX Control Test Container中测试控Ӟ其插入后选择"Edit"菜单?Properties?菜单,弹出入?3所C的属性表。该属性表共有三个属性页Q其中第一个属性页为刚才编辑的自定义属性页Q第二个属性页Q如?4所C)即ؓCLSID_CcolorPropPage所指定的颜色属性页Qؓ库存属性页Q,最后一个属性页则是向导自动d的扩展属性页。在属性表中设|了相应的属性后Q点?应用"按钮卛_让控件用新的属性。这与在"Invoke Methods"对话框中所完成的功能一P但显然要方便的多。而且在包容器E序的设计阶D,也是通过该属性表来完成控件与客户的属性设|交互的?br />

?3 控g的属性表


?4 颜色属性页
  在包容程序中使用ActiveX控g

  对于ActiveX控g的包容器E序Qƈ不需要象使用OLE文档服务器或ActiveX文档服务器对象那L写特定的包容器程序框Ӟ直接控件添加到工程q在对话框上创徏卛_对其q行使用?br />
  通过"Project"菜单下的"Add To Project"菜单弹出的"Components and Controls?子菜单项打开一?Components and Controls Gallery"对话框,q入到Registered ActiveX Controls目录下,选取前面创徏的ActiveX控gQƈ其d到工E。向导将会在工程中添加一个关于此ActiveX控g的包装类Qƈ?Controls"工具栏中d一个表C此控g的图标。可以象使用其他的标准控件一样将其放|到对话框资源中Qƈ修改其缺省属性。除此之外,q可以在E序中通过Ҏ件包装类成员函数的用来动态更Ҏ件的属性设|。例如,下面q段代码通过包装cd象m_ctrlTest在程序运行期间动态设|了控g的XPos、YPos 以及Message属性:

// 更新昄
UpdateData();
// 动态更Ҏ件的Message属?br />m_ctrlTest.SetMessage(m_sInput);
// 讄昄坐标
m_ctrlTest.SetXPos(10);
m_ctrlTest.SetYPos(10);


?5 d事g响应函数

  在资源视图中用鼠标右键点L|于对话框上的ActiveX控gQƈ从弹单中选择"Events?菜单,弹出如?5所C的对话框,在左边的列表框中昄了控件提供的事gQ双M件将在包容器E序中添加相应的事g处理函数和事件映表Qƈ可以在响应控件发出的事g后进行相应的处理Q?br />
BEGIN_EVENTSINK_MAP(CSample69Dlg, CDialog)
//{{AFX_EVENTSINK_MAP(CSample69Dlg)
ON_EVENT(CSample69Dlg, IDC_SAMPLE68CTRL1, 1 /* MsgOut */, OnMsgOutSample68ctrl1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
…?br />void CSample69Dlg::OnMsgOutSample68ctrl1()
{
 // 得到输入字符?br /> int nNum = m_ctrlTest.MessageLen();
 // 回显信息
 m_sInput.Format("输入字符太多Q共输入?d个字W?, nNum);
 // 昄信息
 UpdateData(FALSE);
}

  从上q对ActiveX控g的用过E可以看出其与标准控件的使用q没有什么太大的区别Q通过包装cM得在客户E序中对控g属性、方法的使用可以象用普通MFCcML单。另外,在控件的包装cMq提供有CreateQ)ҎQ在程序运行期间也能够动态创建控件?br />
  

  管ActiveX控g从技术上集成了COM和OLE的许多精华技术,但由于MFC对ActiveX控g提供了强大的支持Q得对ActiveX控g的开发成Z仉常容易的事情。但要深ȝ解ActiveX控g技术,q要对一些基技术有一个基本的概念Q本文的目的q不在于介绍如何~写一个ActiveX控gQ而是通过Ҏ件的创徏q程的分析而读者能够对ActiveX控g的开发有一个新的认识。本文所qC码在Windows 2000 Professional下由Microsoft Visual C++ 6.0~译通过?br />

SIMONE 2007-02-28 15:33 发表评论
]]>
qxU篏的有关MSDN 里ActiveX开发技术的一些链?http://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101150.htmlSIMONESIMONEWed, 28 Feb 2007 07:18:00 GMThttp://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101150.htmlhttp://www.aygfsteel.com/wangxinsh55/comments/101150.htmlhttp://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101150.html#Feedback0http://www.aygfsteel.com/wangxinsh55/comments/commentRss/101150.htmlhttp://www.aygfsteel.com/wangxinsh55/services/trackbacks/101150.htmlhttp://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/_core_activex_control_containers.3a_.using_controls_in_a_non.2d.dialog_container.asp

2. BHO ~程指南Q?br />ms-help://MS.MSDNQTR.2003FEB.2052/dnwebgen/html/bho.htm

3. 定制览器向|
ms-help://MS.MSDNQTR.2003FEB.2052/progie/workshop/browser/hosting/wbcustomization.htm

4. 使用 ATL AXHost 承蝲 ActiveX 控g
ms-help://MS.MSDNQTR.2003FEB.2052/vccore/html/vclrfHostingActiveXControlsUsingATLAXHost.htm

5. The Shell Drag/Drop Helper Object
ms-help://MS.MSDNQTR.2003FEB.2052/dnwui/html/ddhelp_pt1.htm

6. Using ATL 3.0 to Host the Video Control
ms-help://MS.MSDNQTR.2003FEB.2052/directshow_sp1/htm/hostingthevideocontrolinanatlbasedapplication.htm

7. HOWTO: Dynamically Add ActiveX Controls to ATL Composite Control
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q218442.htm

8. HOWTO: Control the Context Menu in an ATL HTML Control
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q274202.htm

11.WebBrowser 不可见时不触?DocumentComplete BUGQ?br />http://support.microsoft.com/kb/q259935/

12.重新发布 Visual C++ ActiveX 控g
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/_core_regular_dlls_dynamically_linked_to_mfc.3a_.overview.asp

13.事g
ms-help://MS.MSDNQTR.2003FEB.2052/progie/workshop/browser/mshtml/tutorials/sink.htm

14. 升现有?ActiveX 控g
ms-help://MS.MSDNQTR.2003FEB.2052/vccore/html/_core_Upgrading_an_Existing_ActiveX_Control_to_be_Used_on_the_Internet.htm

15.PRB: TranslateAccelerator() Not Called for ActiveX Controls
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q183167.htm

16.FIX: ActiveX Control Events Are Not Fired in ATL Dialog
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q190530.htm

17. Creating Custom Explorer Bars, Tool Bands, and Desk Bands
ms-help://MS.MSDNQTR.2003FEB.2052/shellcc/platform/shell/programmersguide/shell_adv/bands.htm
23 Designing Secure ActiveX Controls
ms-help://MS.MSDNQTR.2003FEB.2052/activex/workshop/components/activex/security.htm

24. Packaging ActiveX Controls
ms-help://MS.MSDNQTR.2003FEB.2052/activex/workshop/components/activex/packaging.htm

25.COM Objects Overviews and Tutorials
ms-help://MS.MSDNQTR.2003FEB.2052/icom/workshop/components/com/comobj.htm

26.The Windows Internet (WinINet) application programming interface (API)
ms-help://MS.MSDNQTR.2003FEB.2052/wininet/wininet/about_wininet.htm

27.
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q150204.htm

28.HOWTO: Call a Script Method from an ActiveX Script Host
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q222966.htm

29. HOWTO: Add Toolbars and Tooltips to ActiveX Controls
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q194294.htm

30.HOWTO: Draw ActiveX Controls with Child Controls in Design Time
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q198732.htm

31.HOWTO: Adding Tooltips to ATL ActiveX Controls
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q201540.htm

32. PRB: MFC ActiveX Control BLOB Props Missing While Printing in Internet Explorer
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q200932.htm

33.HOWTO: Enable ActiveX Control Event Handling on a Web Page
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q200839.htm

34.PRB: ActiveX Control Window Is Not Created Until Visible in Internet Explorer
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q195188.htm

35. HOWTO: Detect IE's STOP Button Click in ActiveX Control
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q167956.htm

36.HOWTO: Renaming an ActiveX Control After its Project Is Created
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q185695.htm

37.HOWTO: Troubleshoot ActiveX Control Crashes in Internet Explorer
ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q247845.htm

38.SAMPLE: AXSH.EXE Demonstrates Implementing ActiveX Script Hosts
http://download.microsoft.com/download/vc60pro/sample3/1/WIN98/EN-US/Axsh.exe

39.OLE U程模型的说明和工作方式
http://support.microsoft.com/kb/q150777/

40.The COM Programmer's Cookbook
ms-help://MS.MSDNQTR.2003FEB.2052/dncomg/html/msdn_com_co.htm

41. 利用晚期l定的威力编写您自己?COM 调用传输
ms-help://MS.MSDNQTR.2003FEB.2052/dntaloc/html/comleverage.htm


44. ActiveX Controls on the Internet
http://msdn2.microsoft.com/en-us/library/d0d6f721.aspx


46. IContextMenu
ms-help://MS.MSDNQTR.2003FEB.2052/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/contextmenuhandlers.htm



SIMONE 2007-02-28 15:18 发表评论
]]>
վ֩ģ壺 ƺ| | »| | ɽ| | ݰ| | ɽ| | ƽ| | | Ž| | | μ| | ˮ| | | Դ| Ԫı| | | | | | | | Ĭ| | Ҧ| | | ƽ| ͩ| ͨ| ͷ| | ¡|