??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品色视频,黄色在线小视频,亚洲精品xxx http://www.aygfsteel.com/wangxinsh55/category/20256.htmlzh-cn Thu, 09 Aug 2007 16:02:46 GMT Thu, 09 Aug 2007 16:02:46 GMT 60 巧用JavaE序把Word转换成Html文g http://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135558.htmlSIMONE SIMONE Thu, 09 Aug 2007 09:21:00 GMT http://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135558.html http://www.aygfsteel.com/wangxinsh55/comments/135558.html http://www.aygfsteel.com/wangxinsh55/archive/2007/08/09/135558.html#Feedback 0 http://www.aygfsteel.com/wangxinsh55/comments/commentRss/135558.html http://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"); } }
]]>使用MFC开发ActiveX控g http://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101152.htmlSIMONE SIMONE Wed, 28 Feb 2007 07:33:00 GMT http://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101152.html http://www.aygfsteel.com/wangxinsh55/comments/101152.html http://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101152.html#Feedback 0 http://www.aygfsteel.com/wangxinsh55/comments/commentRss/101152.html http://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 /> ]]> qxU篏的有关MSDN 里ActiveX开发技术的一些链? http://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101150.htmlSIMONE SIMONE Wed, 28 Feb 2007 07:18:00 GMT http://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101150.html http://www.aygfsteel.com/wangxinsh55/comments/101150.html http://www.aygfsteel.com/wangxinsh55/archive/2007/02/28/101150.html#Feedback 0 http://www.aygfsteel.com/wangxinsh55/comments/commentRss/101150.html http://www.aygfsteel.com/wangxinsh55/services/trackbacks/101150.html http://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 ]]>
վ֩ģ壺
ƺ |
|
» |
|
ɽ |
|
ݰ |
|
ɽ |
|
ƽ |
|
|
Ž |
|
|
μ |
|
ˮ |
|
|
Դ |
Ԫı |
|
|
|
|
|
|
|
Ĭ |
|
Ҧ |
|
|
ƽ |
ͩ |
ͨ |
ͷ |
|
¡ |