mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 15:22:31 +01:00
Author:vwheeler
Date:2014-04-18T21:44:15.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1328 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
[[Property:title|Interfaces]]
|
[[Property:title|Interfaces]]
|
||||||
[[Property:weight|0]]
|
[[Property:weight|0]]
|
||||||
[[Property:uuid|7f65c561-cac3-6870-5d1c-6f73beeed872]]
|
[[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.
|
COM interfaces have several facets. First, an interface is a deferred class ("abstract class" in C++ terms). 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.
|
||||||
|
<!--break-->
|
||||||
==ECOM_INTERFACE==
|
==ECOM_INTERFACE==
|
||||||
|
|
||||||
For each interface listed in a type library, the EiffelCOM wizard generates a deferred class and two effective classes: a proxy of an interface pointer, or a client side class, and a stub of an interface pointer, or a server side class. The deferred interface class inherits from [[ref:libraries/com/reference/ecom_interface_chart|<eiffel>ECOM_INTERFACE</eiffel>]] and has a deferred feature per each interface function. Both effective classes, or implemented interfaces, inherit from the deferred class and implement its functions. The functions of the interface proxy calls the underlying C layer, which in turn calls the COM component while the functions of the interface stub implement the component functionality.
|
For each interface listed in a type library, the EiffelCOM wizard generates a deferred class and two effective classes: a proxy of an interface pointer, or a client side class, and a stub of an interface pointer, or a server side class. The deferred interface class inherits from [[ref:libraries/com/reference/ecom_interface_chart|<eiffel>ECOM_INTERFACE</eiffel>]] and has one deferred feature for each interface function. Both effective classes, or implemented interfaces, inherit from the deferred class and implement its functions. The functions of the interface proxy calls the underlying C layer, which in turn calls the COM component while the functions of the interface stub implement the component functionality.
|
||||||
|
|
||||||
[[ref:libraries/com/reference/ecom_interface_chart|ECOM_INTERFACE]] holds a pointer to the underlying COM interface.
|
[[ref:libraries/com/reference/ecom_interface_chart|ECOM_INTERFACE]] holds a pointer to the underlying COM interface.
|
||||||
|
|
||||||
@@ -19,8 +19,5 @@ which queries a COM component internally. Every interface proxy class inherits f
|
|||||||
|
|
||||||
==ECOM_STUB==
|
==ECOM_STUB==
|
||||||
|
|
||||||
[[ref:libraries/com/reference/ecom_stub_chart|ECOM_STUB]] inherits from [[ref:libraries/com/reference/ecom_interface_chart|ECOM_INTERFACE]], and exposes the feature [[ref:libraries/com/reference/ecom_stub_chart|<code>create_item</code>]] which allows creating the underlying COM object.
|
[[ref:libraries/com/reference/ecom_stub_chart|ECOM_STUB]] inherits from [[ref:libraries/com/reference/ecom_interface_chart|ECOM_INTERFACE]], and exposes the feature [[ref:libraries/com/reference/ecom_stub_chart|<code>create_item</code>]] which allows creating the underlying COM object.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ The list of options is the following:
|
|||||||
* '''--server, -s''' <DEFINITION_FILE>: Build new COM component as described by <DEFINITION_FILE>.
|
* '''--server, -s''' <DEFINITION_FILE>: Build new COM component as described by <DEFINITION_FILE>.
|
||||||
* '''--eiffel, -e''' <PROJECT_FILE>: Add COM interface to Eiffel project with project file (*.epr) <PROJECT_FILE>.
|
* '''--eiffel, -e''' <PROJECT_FILE>: Add COM interface to Eiffel project with project file (*.epr) <PROJECT_FILE>.
|
||||||
* '''--ace, -a''' <ECF_FILE>: Path to ecf file of Eiffel project to be added a COM interface. Use together with <code>'--eiffel'</code>.
|
* '''--ace, -a''' <ECF_FILE>: Path to ecf file of Eiffel project to be added a COM interface. Use together with <code>'--eiffel'</code>.
|
||||||
* '''--facade, -f''' >FACADE_CLASS>: Name of facade class to generate IDL from. Use together with <code>'--eiffel'</code>.
|
* '''--facade, -f''' <FACADE_CLASS>: Name of facade class to generate IDL from. Use together with <code>'--eiffel'</code>.
|
||||||
* '''--cluster, -u''' >CLUSTER>: Name of facade class cluster. Use together with <code>'--eiffel'</code>.
|
* '''--cluster, -u''' <CLUSTER>: Name of facade class cluster. Use together with <code>'--eiffel'</code>.
|
||||||
* '''--outofprocess, -o''': Access or build out of process component. By default access or build in-process component (DLL).
|
* '''--outofprocess, -o''': Access or build out of process component. By default access or build in-process component (DLL).
|
||||||
* '''--compilec, -i''': Compile generated C code.
|
* '''--compilec, -i''': Compile generated C code.
|
||||||
* '''--compileeiffel, -l''': Compile generated Eiffel code. Implies '--compilec'.
|
* '''--compileeiffel, -l''': Compile generated Eiffel code. Implies '--compilec'.
|
||||||
|
|||||||
Reference in New Issue
Block a user