Author:admin

Date:2008-09-19T07:54:43.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@25 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
jfiat
2008-09-19 07:54:43 +00:00
parent c0aba35d72
commit 8a46c5d793
247 changed files with 1257 additions and 47 deletions

View File

@@ -1,6 +1,7 @@
[[Property:title|EiffelCOM Content]]
[[Property:link_title|EiffelCOM Interface Content]]
[[Property:weight|-2]]
[[Property:uuid|a6543000-6009-970e-8a68-a6f3b18c1fc6]]
The EiffelCOM library includes the following clusters:
* A [[ref:libraries/com/reference/index|Constants]] cluster provides standard COM constants and enumerations.
* A [[Interfaces|Interfaces]] cluster includes wrappers for standard interfaces that the EiffelCOM wizard does not generate and deferred classes: [[ref:libraries/com/reference/ecom_interface_chart|ECOM_INTERFACE]] , [[ref:libraries/com/reference/ecom_queriable_chart|ECOM_QUERIABLE]] , and [[ref:libraries/com/reference/ecom_stub_chart|ECOM_STUB]] .

View File

@@ -1,5 +1,6 @@
[[Property:title|Interfaces]]
[[Property:weight|0]]
[[Property:uuid|7f65c561-cac3-6870-5d1c-6f73beeed872]]
COM interfaces have several facets. First, an interface is a deferred, or an abstract, class. This means that an interface is a specification of a type. Second, an interface pointer represents a COM object, which is callable by a client application. An object can expose several interfaces, or represent several types.
==ECOM_INTERFACE==

View File

@@ -1,5 +1,6 @@
[[Property:title|Structures]]
[[Property:weight|1]]
[[Property:uuid|fc2071f0-213c-cc88-4914-833b598ceb83]]
The [[ref:libraries/com/reference/index|Structures]] cluster includes wrappers for data structures useful when using the COM technology.
==ECOM_ARRAY==

View File

@@ -1,5 +1,6 @@
[[Property:title|EiffelCOM Library]]
[[Property:weight|8]]
[[Property:uuid|b5c66d71-515f-3c73-9c67-c50e4a8d6685]]
Type: Library <br/>
Platform: Windows <br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|Access Type]]
[[Property:weight|5]]
[[Property:uuid|0d049617-9737-7cc8-810a-9f6f9ca603ec]]
Regardless of its location, a COM components can be accessed either directly through interface's virtual table or through OLE Automation.
==Automation==
Accessing a COM component through Automation means using a well known interface to access to a group of methods and properties. This interface is called IDispatch, and it includes the method <eiffel>invoke</eiffel> that allows to call a method, set or get a property on the Automation server. One advantage of that approach is that the interface has a known virtual table layout. As a result, Windows can include a built-in marshaler for that interface (See [[Deeper into COM|Marshaling]] for information on what a marshaler is). The supported types (known as Automation types) and their Eiffel equivalents are listed in the following table:

View File

@@ -1,6 +1,7 @@
[[Property:title|Generalities]]
[[Property:link_title|COM Concepts]]
[[Property:weight|1]]
[[Property:uuid|9cb19fc1-3d26-5752-6232-ea23f2668c32]]
COM is a binary standard that describes how the component can communicate with the outer-world. The component communicates through well defined interfaces. Each interface is a specification of a group of properties and methods, and it does not contain the implementation of these routines but only their specification (signatures). The actual implementation lies in the coclass. There can be different implementations of a same interface in different coclasses. Finally, each coclass can be instantiated using a class object or class factory. These three notions will be discussed further in the forthcoming paragraphs.
{{seealso| '''See Also''' <br/>
[[EiffelCOM Wizard|EiffelCOM wizard]] <br/>

View File

@@ -1,5 +1,6 @@
[[Property:title|COM Interfaces]]
[[Property:weight|2]]
[[Property:uuid|1dbc3fb2-cf0b-b129-1102-ba01e26d8f74]]
Interfaces are at the heart of any COM component. Interfaces are described in the definition file of a component. They consist of a group of semantically related functions that can be accessed by the clients of the component. Although they are a specification, they also have a physical representation. A client can request a pointer on an interface and access the component functions through that pointer. Interfaces are the only possible way to access functions from a component. They enforce information hiding by providing only the public functions to the client.
Interfaces also define the type of a component. Each interface corresponds to a specific view of the component. It can be compared to polymorphism in the Object Oriented world. Whenever an interface from a component is requested, only the functions defined on that interface are accessible as if the component was polymorphically cast into an object of the type of that interface.

View File

@@ -1,5 +1,6 @@
[[Property:title|The Component Location]]
[[Property:weight|4]]
[[Property:uuid|083c0120-2eda-9353-ceae-f63e7f407341]]
<div>
==Types of Components==
ActiveX, DirectX, OCX, COM+, ADO+, ASP etc. who never heard of these technologies? They all represent yet another use of the COM standard. This paragraph will focus on categorizing COM components according to their own properties as well as the context in which they are used. The categorization will define how the EiffelCOM wizard should be used to wrap or create a component. </div>The first criteria that defines the type of component is from where it will be accessed: will the component be loaded in the client process or will the component be a remote server for a distributed application? In the former case, the component is compiled as a Dynamic Link Libraries (DLL) while in the latter case it is a standard executable. <div>

View File

@@ -1,5 +1,6 @@
[[Property:title|EiffelCOM: Introduction]]
[[Property:weight|0]]
[[Property:uuid|adadc51d-3dec-320a-9405-0842eacca4f7]]
This chapter covers enough information about COM for Eiffel developers to use the EiffelCOM wizard in an effective way. It does not cover all of COM since it would require an entire book but presents the main concepts needed to understand how to build an EiffelCOM system.
Briefly said, the Component Object Model is a Microsoft binary standard that establishes how two binary units can access each other at runtime. Such binary units can run in the same process, in different processes on the same machine, or even on different machines. Components can be implemented in any language as long as the compiler produces COM standard compliant binaries.

View File

@@ -1,6 +1,7 @@
[[Property:title|EiffelCOM]]
[[Property:link_title|COM and Eiffel]]
[[Property:weight|-15]]
[[Property:uuid|32e79152-1e8f-43cd-e014-a83aab18e440]]
* [[EiffelCOM: Introduction|Introduction]]
* [[Generalities|Generalities]]
* [[COM Interfaces|Interfaces]]

View File

@@ -1,5 +1,6 @@
[[Property:title|EiffelCOM Wizard]]
[[Property:weight|4]]
[[Property:uuid|49d5c1b9-14f8-5bea-6641-50e9cf6715cf]]
Type: Wizard <br/>
Platform: Windows

View File

@@ -1,5 +1,6 @@
[[Property:title|Eiffel for ASP.NET Documentation]]
[[Property:weight|6]]
[[Property:uuid|158e298e-e4b3-3246-651c-557f2f630957]]
CodeDom is a Microsoft .NET technology which allows representing source code programatically so that it may be rendered in different languages. The Eiffel CodeDom Provider is installed through Eiffel for ASP.NET which is available for download for free on the Eiffel Software web site ( [http://www.eiffel.com http://www.eiffel.com] ). <br/>
The following documents cover different aspects of the Eiffel CodeDom Provider:
* [[Writing ASP.NET pages in Eiffel|Writing ASP.NET pages in Eiffel]] covers topics related to writing Eiffel pages in ASP.NET.

View File

@@ -1,5 +1,6 @@
[[Property:title|.NET]]
[[Property:weight|-15]]
[[Property:uuid|55eda2f0-0c60-f08c-b141-913e31a49c2f]]
* [[.NET Installation instructions|Installation instructions]]
* [[Building a .NET application|Building a .NET application]]
* [[The Eiffel for .NET language|Eiffel for .NET language description]]

View File

@@ -1,5 +1,6 @@
[[Property:title|ResourceBench]]
[[Property:weight|1]]
[[Property:uuid|a39ba4ef-460f-eab7-080d-c83d91546484]]
Type: Tool <br/>
Platform: Any <br/>
Version: 5.4 <br/>

View File

@@ -1,6 +1,7 @@
[[Property:title|WEL Library]]
[[Property:link_title|WEL]]
[[Property:weight|-13]]
[[Property:uuid|a8f57de5-a0eb-262e-a825-95a706392640]]
Type: Library <br/>
Platform: Windows <br/>