亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ch02.htm

?? 用VC開發(fā)ACTIVEX書籍和隨書源碼
?? HTM
?? 第 1 頁 / 共 3 頁
字號(hào):
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<TITLE>Chapter 2</TITLE>

<META NAME="Author" Content="Steph Mineart">
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.03z">
</HEAD>
<BODY>
<H1><!--last modified on Thu, Apr 10, 1997 4:25 PM--> <!-- This document was created from RTF source by rtftohtml version 3.0.1 -->
<BODY TEXT="#000000" BGCOLOR="#FFFFFF">Chapter 2<BR>
What Can ActiveX Do for You? 
</H1>
<UL>
<LI><A HREF="#Heading1">What Can ActiveX Do for You?</A> 
<UL>
<LI><A HREF="#Heading2">Defining the Needs and Requirements of Your Application</A>
<LI><A HREF="#Heading3">What Type of ActiveX Component Do You Need?</A>
<UL>
<LI><A HREF="#Heading4">Automation Servers and Controllers</A>
<LI><A HREF="#Heading5">ActiveX Controls</A> 
<LI><A HREF="#Heading6">COM Objects</A> 
</UL>
<LI><A HREF="#Heading7">Selecting the Right Tool for the Right Job</A>
<UL>
<LI><A HREF="#Heading8">Microsoft Foundation Classes</A> 
<LI><A HREF="#Heading9">ActiveX Template Library</A> 
<LI><A HREF="#Heading10">BaseControl Framework</A> 
<LI><A HREF="#Heading11">Create Your Own Framework</A> 
</UL>
<LI><A HREF="#Heading12">Basic ActiveX Component Architecture</A>
<UL>
<LI><A HREF="#Heading13">ActiveX Automation Servers</A> 
<LI><A HREF="#Heading14">ActiveX Controls</A> 
</UL>
<LI><A HREF="#Heading15">Support Tools Needed for Building ActiveX Components</A>
<UL>
<LI><A HREF="#Heading16">MIDL Compiler</A> 
<LI><A HREF="#Heading17">Mktyplib</A> 
<LI><A HREF="#Heading18">GUIDGEN</A> 
<LI><A HREF="#Heading19">RegEdit</A> 
<LI><A HREF="#Heading20">Registration Server</A> 
<LI><A HREF="#Heading21">Ole2View</A> 
<LI><A HREF="#Heading22">Adding the Tools to the Visual C++ Development Environment</A>
</UL>
<LI><A HREF="#Heading23">From Here...</A> 
</UL>
</UL>
<HR SIZE="4">
<H1><A NAME="Heading1">What Can ActiveX Do for You?</A></H1>
<UL>
<LI><B>Application requirements<SPACER TYPE="VERTICAL" SIZE="2"></B>
It is important to understand as many of the requirements as possible
before starting your development project. <BR>
<LI><B>Choosing the correct architecture and component type<SPACER TYPE="VERTICAL" SIZE="2"></B>
The various ways in which ActiveX components can be created are
crucial to a successful project. You don't want to do too much
or too little. <BR>
<LI><B>Choosing the correct tool<SPACER TYPE="VERTICAL" SIZE="2"></B>
The tool used to develop your component also affects the success
of the project. Picking the right tool for the job is as important
as is understanding the job itself. <BR>
<LI><B>Basic ActiveX component architecture<SPACER TYPE="VERTICAL" SIZE="2"></B>
Each ActiveX Component type has its particular architecture and
construction. Understanding this architecture is important. <BR>
<LI><B>Basic ActiveX support tools<SPACER TYPE="VERTICAL" SIZE="2"></B>
You will find a collection of development support to tools that
are invaluable to your ActiveX development. 
</UL>
<P>
Gone are the days of hacking together simple stand-alone applications
that had all the interoperability of two semi-trailer trucks screaming
toward each other at 100 miles an hour. With the advent of OLE
(Object Linking and Embedding) and more recently ActiveX and the
Internet, applications are expected to be flexible, modifiable,
and extendible (with &quot;clairvoyant&quot; running a close fourth).</P>
<P>
Spending a little time up front working out the design and architecture
of your application can and will make all the difference in the
world. Almost any application worth its salt has resulted from
some forethought, regardless of whether that information is crammed
into the head of one of your developers, scribbled on restaurant
napkins, or written in formal documentation. I recommend the latter
two since removing your developer's head to take to a strategy
meeting is probably not an option.</P>
<P>
The basic principles of OLE and ActiveX are going to determine
most of the specific component architecture and design. For example,
ActiveX Controls and Documents are developed within a specific
set of parameters and rules so that they will interact with Containers
correctly. Automation Servers and Controllers have to conform
to OLE Automation rules. And COM Objects have to support the basic
fundamentals of COM. But what about component relationships and
lifetimes? What about access to interfaces and support for security?
What if your component is going to be utilized by users who speak
another language?
<H2><A NAME="Heading2">Defining the Needs and Requirements of
Your Application</A></H2>
<P>
A specification is important to establish the basic requirements
of the component you are asked to create. Before you can proceed,
you must have a clear understanding of what kind of component
or application is needed and why you are creating it. Appropriate
questions to ask are, &quot;What created the need for the component,
and how is it going to be used?&quot; If the person or persons
can't describe the problem, they probably don't understand the
problem. The last thing anyone needs is an incomplete picture
of the problem, which tends to create delays and promote last
minute changes that can cause unexpected results. Try to get as
much of the specification as possible on paper.</P>
<P>
After you determine the need, you can move on to designing the
component. Again, it is critical to get as much information as
possible. Does the problem require a single component or multiple
components? Do the components need the capability to interact
together? And, if so, is speed an issue? What about the skill
level of your developers? How are they able to cope with change
or possibly new and unfamiliar development methods? What are the
support and maintenance requirements?</P>
<P>
What is the problem? And what is going to be the solution? Take
for example the need for creating in-house purchase requests.
Is it simple enough to say, &quot;We will create an ActiveX Document
and use our Web browsers to interact with the Document&quot;?
Probably not. What about e-mail integration? What about training
for how to use the Web browser and the purchase request application?
What if the purchase request application must integrate with a
legacy application in-house? What if the development tool that
you normally use can't create ActiveX Documents? What if there
aren't any developers on staff who can handle the effort? Most
of these issues can be boiled down to a single question, &quot;What
is the level of effort versus the amount of gain?&quot; That is,
is it worthwhile to pursue a development project that is difficult
to understand, implement, and maintain? Or is it worthwhile to
use a simpler approach and live with its limitations?</P>
<P>
All these issues and more will affect the kind of component you
create and how you will develop it. As a developer of ActiveX
components, it is your responsibility to know the answers to these
questions. You have the specific domain knowledge, that is, the
capabilities and limitations of yourself and the tools that you
use. This book will hopefully aid you in making the correct choices
when choosing and implementing a development plan.
<H2><A NAME="Heading3">What Type of ActiveX Component Do You Need?</A>
</H2>
<P>
The first thing you must decide is what kind of component best
fits your requirements.
<H3><A NAME="Heading4">Automation Servers and Controllers</A>
</H3>
<P>
Automation Servers and Controllers probably have the greatest
amount of flexibility. The Servers' <TT>IDispatch</TT> interface
can be used from just about every major application available
from Microsoft and hundreds of other manufacturers. Because it
won't suffer from the same versioning requirements placed on strict
COM interfaces, the interface also lends itself well to prototyping
and modeling component interactions.</P>
<P>
A dual-interface Automation Server created in-process is the fastest
type of Automation Server. Dual-interface refers to the fact that
a Server contains two interfaces one based on <TT>IDispatch</TT>
and the other based on COM. The COM interface is actually the
fastest of the two. An in- process Server means that the application
resides in the same memory address space as the application that
created it. This allows the invocation of methods defined within
the Server to be performed significantly faster because there
is no burden of having to cross process boundaries every time
a method is called. For the same reason, Server load times are
fast because of the minimal number of steps involved in creating
the Server and getting its <TT>IDispatch</TT> or COM interface
pointer.</P>
<P>
Nothing inherent to Automation architecture promotes the use of
User Interface (UI), and nothing prevents its use either. You
have complete freedom and control over how the Servers are implemented
and used. Your Automation Servers could potentially contain UI
in the form of a dialog or a form.</P>
<P>
Automation Servers also lend themselves well to the increasingly
popular multitiered applications architectures that have appeared
in recent years. The separation of UI from function is perfect
for Automation Servers because you have complete freedom over
how your Servers are implemented and used. Creating Servers with
thin UI layers that utilize other Servers with no UI to accomplish
a task is at the heart of multitiered applications development.
Automation Servers should be used in the same fashion as any other
DLL. The only difference between an Automation Server and a standard
Windows DLL is the fact that the Server uses only a restricted
set of data types whereas a DLL can use any type.</P>
<P>
Designing Automation Servers that work without the need for UI
also makes them prime candidates for Distributed COM (DCOM) and
other distributing technologies.
<H3><A NAME="Heading5">ActiveX Controls</A></H3>
<P>
You should use ActiveX Controls primarily as they were intended
to be used: as UI components to enhance or support a dialog, form,
or document. Controls can be expensive to load because they can
potentially require a large number of interfaces, depending on
the functionality the Control supports. The OC 96 specification
added the QuickActivate interface to help with Control load times,
but the improvement was not significant. In addition, the OC 96
specification identified a number of interfaces that are considered
optional or conditional, depending on the type of Control you
are implementing. It is wise to review the specification to determine
what can and cannot be removed from your implementation in order
to improve its performance and overall size.</P>
<P>
When creating Controls, be sure to make them as lean as possible.
If the Control will not be commercially distributed, remove the
&quot;AboutBox&quot; code. Also, see whether you can get away
with relying on the property editor of the application's development
tool that will be used rather than supporting property pages.
Avoid large amounts of persistence, and save the data only if
you must. The real message here is to implement only those features
that are truly useful and helpful for your Control implementation.
<H3><A NAME="Heading6">COM Objects</A></H3>
<P>
COM Objects (Custom Interfaces) are far more flexible than any
other component type when it comes to interface design. They are
also the fastest interfaces in terms of execution times, although
that is with the caveat that the COM interface is in-process to
the application using it. COM Objects can use any data type within
their interface definitions and do not suffer from the same restrictions
as Automation Servers. This situation does present a problem when
crossing process boundaries because the Object will then require
its own proxy-stub marshaling code.</P>
<P>
Proxy-stub marshaling is what takes place when an application
resides in a process space other than the application it is communicating
with. It is necessary to translate function calls and data to
a context that can be understood by both applications. This is
the responsibility of the proxy-stub code and is true for all
types of OLE components. Going out-of-process with any type of
component will have a profound effect on the performance of the
application because a lot more work is taking place in order to
perform the specific set of operations.</P>
<P>
Automation Servers rely on built-in proxy-stub marshaling code,
whereas COM interfaces are required to create their own. This
problem is not insurmountable, but it does add to the development
time and effort, maintenance of the code, distribution of the
Object, and overall performance of the application, so it needs
to be considered when deciding on what type of component to develop.
If you are going to go out-of-process with the COM Object, you
should probably consider using an Automation Server because the
performance will be comparable between the two, that is unless
you are going to come up with your own marshaling code that significantly
outperforms the built-in mechanisms.</P>
<P>
COM Objects are useful for the cases where the limited set of
data types available to Automation Servers has a significant impact

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久爽爽爽麻豆色哟哟| 一区二区三区在线视频免费| 国产精品久久三| 视频一区在线播放| 成人爱爱电影网址| 日韩精品一区二区在线| 亚洲日韩欧美一区二区在线| 久久国产精品一区二区| 色爱区综合激月婷婷| 国产色婷婷亚洲99精品小说| 丝袜美腿亚洲综合| 99久久久无码国产精品| 欧美精品一区二区三区蜜桃 | 97精品久久久久中文字幕| 欧美日韩国产美| 亚洲码国产岛国毛片在线| 国产精品18久久久久久久久久久久 | 国产女同互慰高潮91漫画| 日韩av午夜在线观看| 欧美手机在线视频| 亚洲综合色自拍一区| 成人三级在线视频| 国产网站一区二区三区| 国产一区二区三区国产| 精品国产自在久精品国产| 久久99精品久久久久久动态图 | 日韩午夜激情av| 亚洲高清不卡在线| 在线亚洲高清视频| 一区二区三区免费网站| 色综合久久中文综合久久牛| 国产精品黄色在线观看| 91偷拍与自偷拍精品| 中文字幕永久在线不卡| 成a人片国产精品| 亚洲欧洲日韩在线| 96av麻豆蜜桃一区二区| 国产精品妹子av| 99久久夜色精品国产网站| 欧美国产日韩精品免费观看| 成人动漫一区二区三区| 亚洲蜜臀av乱码久久精品 | 欧美一级理论片| 久久91精品国产91久久小草| 欧美精品一区男女天堂| 国产精品99久久久久久久女警| 国产欧美一区二区精品秋霞影院 | 国产亚洲欧美日韩在线一区| 国产精品主播直播| 亚洲色图在线播放| 欧美日韩成人高清| 蜜桃视频一区二区三区在线观看| 日韩一区二区三区视频在线观看 | 奇米影视在线99精品| 中文一区二区在线观看| 91麻豆福利精品推荐| 亚洲一区影音先锋| 日韩欧美国产精品一区| 国产成人午夜视频| 一区二区三区免费在线观看| 欧美电影免费观看高清完整版在线 | 蜜桃视频第一区免费观看| 久久久不卡影院| 91蝌蚪porny| 久久成人免费日本黄色| 国产精品伦理一区二区| 欧美无人高清视频在线观看| 麻豆成人综合网| 中文字幕免费观看一区| 欧美日韩成人综合天天影院| 国产一区日韩二区欧美三区| 亚洲三级免费观看| 久久亚洲一区二区三区四区| 一本到不卡免费一区二区| 日本中文字幕一区二区有限公司| 国产午夜精品美女毛片视频| 一本大道av一区二区在线播放| 蜜臀av性久久久久蜜臀aⅴ| 国产精品青草综合久久久久99| 色哟哟在线观看一区二区三区| 免费观看一级欧美片| 亚洲免费伊人电影| 久久嫩草精品久久久久| 在线免费视频一区二区| 国产凹凸在线观看一区二区| 夜夜爽夜夜爽精品视频| 国产女同互慰高潮91漫画| 欧美一区二区三区免费大片| 99久久亚洲一区二区三区青草| 成人av动漫在线| 亚洲国产综合在线| 亚洲欧美综合另类在线卡通| 欧美大片日本大片免费观看| 在线观看av一区二区| 高清在线不卡av| 国产一区在线观看麻豆| 奇米精品一区二区三区四区| 亚洲一区二区在线视频| 国产欧美日韩在线观看| 精品久久五月天| 日韩欧美一区二区在线视频| 在线看不卡av| 色av综合在线| 91黄视频在线观看| 色先锋资源久久综合| 99视频精品全部免费在线| 国产精品 欧美精品| 精品一区二区影视| 久草在线在线精品观看| 日本欧美在线看| 蜜桃精品在线观看| 美女免费视频一区二区| 蜜桃久久av一区| 紧缚捆绑精品一区二区| 九九九精品视频| 国产一区久久久| 国产成人av福利| 国产白丝精品91爽爽久久| 国产成人在线视频网址| 国产精品亚洲第一区在线暖暖韩国| 国产一区二区三区免费看| 国产一区二区三区免费播放| 国产黑丝在线一区二区三区| 国产精品一区专区| 欧美在线观看禁18| 在线成人免费观看| 日韩一区二区三区免费看| 欧美一区二区久久| 欧美精品一区二区三区久久久| wwwwww.欧美系列| 国产欧美一区二区精品性色超碰| 国产精品三级电影| 一区二区三区国产精品| 午夜视频在线观看一区| 免费精品99久久国产综合精品| 国产精品综合一区二区三区| av成人免费在线| 欧美日韩亚洲综合一区二区三区| 91精品国产综合久久香蕉的特点| 欧美成人午夜电影| 中文字幕乱码日本亚洲一区二区 | gogo大胆日本视频一区| 色偷偷88欧美精品久久久| 欧美男生操女生| 欧美mv和日韩mv的网站| 国产精品国产三级国产普通话蜜臀 | 91成人在线免费观看| 日韩一级片网址| 18欧美亚洲精品| 日本伊人午夜精品| 国产98色在线|日韩| 欧美日韩免费电影| 久久久久久久综合狠狠综合| 亚洲精品视频观看| 精品在线亚洲视频| 色综合激情久久| 国产免费久久精品| 日韩和欧美的一区| 成人免费视频一区| 91精品国产综合久久精品图片| 国产日产欧美精品一区二区三区| 亚洲免费观看在线视频| 激情成人午夜视频| 欧美怡红院视频| 中文字幕成人av| 美女网站视频久久| 欧美亚洲国产一区二区三区| 久久亚洲一区二区三区明星换脸 | 成人午夜视频网站| 337p亚洲精品色噜噜噜| 亚洲精品国产a久久久久久| 毛片av一区二区| 欧美色倩网站大全免费| 欧美国产日韩在线观看| 日本免费新一区视频| 91香蕉视频mp4| 欧美国产在线观看| 精品一区二区三区在线观看| 91精品在线一区二区| 一区二区三区毛片| av动漫一区二区| 国产日韩欧美精品综合| 久久国产麻豆精品| 日韩一区国产二区欧美三区| 亚洲激情男女视频| 91麻豆蜜桃一区二区三区| 国产无一区二区| 国产精品18久久久久| 亚洲精品一区二区三区精华液| 日本成人在线看| 欧美一区二区三区在线观看| 亚洲精品成人a在线观看| 91在线视频网址| 中文字幕一区二区三区四区不卡| 精品一区二区三区视频| 日韩欧美一二三四区| 美女视频黄 久久| 亚洲精品一线二线三线无人区| 麻豆成人综合网| 久久免费精品国产久精品久久久久|