/[eiffelstudio]/trunk/Delivery/xmldoc/tools/wizards/com/guided_tour/02_new_from_eiffel.xml
ViewVC logotype

Contents of /trunk/Delivery/xmldoc/tools/wizards/com/guided_tour/02_new_from_eiffel.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 51737 - (show annotations)
Mon Jun 6 15:52:57 2005 UTC (14 years, 8 months ago) by raphaels
File MIME type: text/xml
File size: 5031 byte(s)
Fixed various issues.

1 <document title="Creating a new component from an Eiffel project" output="studio">
2 <meta_data>
3 <help>
4 <meta>
5 <meta_content>EiffelCOM</meta_content>
6 <name>MS-HKWD</name>
7 </meta>
8 <meta>
9 <meta_content>EiffelCOM Wizard</meta_content>
10 <name>MS-HKWD</name>
11 </meta>
12 <meta>
13 <meta_content>EiffelCOM Wizard, Guided Tour</meta_content>
14 <name>MS-HKWD</name>
15 </meta>
16 <meta>
17 <meta_content>EiffelCOM Wizard, Guided Tour, Creating a new component from an Eiffel project</meta_content>
18 <name>MS-HKWD</name>
19 </meta>
20 </help>
21 </meta_data>
22 <paragraph>
23 <paragraph>The second tutorial describes creating a COM component from an Eiffel system. The tutorial example
24 <class_name>String</class_name> is almost identical to
25 <class_name>StringManipulator</class_name> of the previous tutorial. In the
26 <class_name>StringManipulator</class_name> example the wizard starts from an IDL file and builds an Eiffel System; in contrast, the
27 <class_name>String</class_name> example takes an Eiffel system and generates an IDL file and the required plumbing code to make
28 the Eiffel project accessible to COM.
29 </paragraph>
30 <heading>
31 <size>2</size> Step by step instructions
32 </heading>
33 <list ordered="true">
34 <item>Create a new Eiffel project in the directory
35 <italic>$ISE_EIFFEL\examples\com\wizard\e2idl\eproject</italic> where $ISE_EIFFEL represents the path to the
36 EiffelStudio installation directory.
37 </item>
38 <item>Select the ACE file located in the same directory and compile.</item>
39 <item>Start the EiffelCOM Wizard</item>
40 <item>
41 In <bold>Project</bold>, in the <bold>Current project</bold> input field, type in <italic>string</italic>
42 and press <bold>enter</bold>.
43 </item>
44 <item>
45 In <bold>Project Type</bold>, choose
46 <italic>Add a COM interface to an existing Eiffel project</italic>.
47 </item>
48 <item>
49 Click the browse button under <bold>Path to Eiffel project file (*.epr)</bold> and open the file
50 <italic>$ISE_EIFFEL\examples\com\wizard\e2idl\eproject\string.epr</italic>.
51 </item>
52 <item>
53 Click the browse button under <bold>Path to system's ace file (*.ace)</bold> and open the file
54 <italic>$ISE_EIFFEL\examples\com\wizard\e2idl\eproject\Ace.ace</italic>.
55 </item>
56 <item>In the text field under <bold>Name of Eiffel facade class</bold>, enter:
57 <class_name>string_manipulator</class_name>.
58 </item>
59 <item>In the text field under <bold>Name of Eiffel facade class cluster</bold>, enter:
60 <class_name>root_cluster</class_name>.
61 </item>
62 <item>
63 <link/>Click
64 <bold>Next</bold>.
65 </item>
66 <item>
67 In <bold>Component Type</bold>, choose
68 <italic>In-process (*.dll)</italic>.
69 </item>
70 <item>
71 In <bold>Generation Options</bold>, click the browse button and select the directory where the project should be created. Choose
72 <italic>$ISE_EIFFEL\examples\com\wizard\e2idl\generated</italic>.
73 </item>
74 <item>
75 Make sure both <bold>Compile C code</bold> and <bold>Compile Eiffel code</bold> are checked.
76 </item>
77 <item>
78 Make sure <bold>Clean destination folder prior to generation</bold> is selected.
79 </item>
80 <item>
81 Click <bold>Generate</bold>.
82 </item>
83 <item>
84 Wait until the wizard is done.
85 </item>
86 </list>
87 <heading>
88 <size>2</size> First look at the generated code
89 </heading>
90 <paragraph>
91 The generated Eiffel classes include:
92 <list ordered="false">
93 <item>
94 <class_name>ISTRING_MANIPULATOR_INTERFACE</class_name>: This class represents the only interface exposed by the COM
95 component.
96 </item>
97 <item>
98 <class_name>STRING_MANIPULATOR_PROXY_IMP</class_name>: This class implements the coclass, it inherits from the interface
99 and implements its members.
100 </item>
101 <item>
102 <class_name>ECOM_STRING_REGISTRATION</class_name>: This class contains the code required to register the component.
103 </item>
104 </list>
105 You do not need to modify or implement any classes. The wizard produces a ready-to-use component.
106 </paragraph>
107 <tip>
108 <bold>Tip</bold>:
109 <line_break/>In most Eiffel systems functionality is spread out throughout the system. No single class exposes the full functionality
110 of the system and can serve as a Facade to the outside world. Running the wizard on any such class would not be practical.
111 Before starting the wizard write an Eiffel class that acts as a Facade and forwards client calls to the appropriate subsystems.
112 Enter the Facade class name into <bold>Name of Eiffel facade class</bold> field. The wizard generates an IDL file from this class.
113 </tip>
114 <seealso>
115 <bold>See Also</bold>
116 <line_break/>
117 <link>
118 <url>01_new_from_com.xml</url>
119 <label>Creating a new COM component</label>
120 </link>
121 <line_break/>
122 <link>
123 <url>03_accessing.xml</url>
124 <label>Accessing a COM component.</label>
125 </link>
126 </seealso>
127 <paragraph> </paragraph>
128 </paragraph></document>

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.23