1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
<!--
-
- This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
- project.
-
- Copyright (C) 1998-2012 OpenLink Software
-
- This project is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; only version 2 of the License, dated June 1991.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-->
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry id="HO-S-15">
<refmeta>
<refentrytitle>Accessing COM Objects via C#</refentrytitle>
<refmiscinfo>tutorial</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Accessing COM Objects via C#</refname>
<refpurpose>Using the .NET to access native COM objects from Virtuoso/PL</refpurpose>
</refnamediv>
<refsect1 id="HO-S-15a_overview">
<title>Overview</title>
<para>The following tutorial demonstrates how Virtuoso can access MS Windows COM
objects via .NET. </para>
<para>The demonstrations in this section highlight transparent integration
(hosting) between Virtuoso, the Microsoft .NET implementations of
the ECMA Common Language Infrastructure (CLI) and the Win32 COM Layer. </para>
</refsect1>
<refsect1 id="HO-S-15a_prerequisites">
<title>Prerequisites</title>
<para>The following prerequisites ensure the usability of these
tutorial demos on Windows: </para>
<itemizedlist>
<listitem>.NET Runtime and Frameworks</listitem>
<listitem>.Net Runtime and Framework SDK (if you seek to write your own Objects for integration with Virtuoso)</listitem>
<listitem>Virtuoso Universal Server for Windows with .NET CLR Hosting</listitem>
</itemizedlist>
</refsect1>
<refsect1 id="HO-S-14a">
<title>Tutorial Example</title>
<para>The following tutorial shows how the Virtuoso server can call native Win32 COM objects using
the .NET runtime as intermediary. </para>
<para>Please follow the steps below to maximize the value of this tutorial:</para>
<orderedlist>
<listitem>Register the COM library COM/VirtCOMServer/Debug/VirtCOMServer.dll with COM (via regsvr32.exe COM/VirtCOMServer/Debug/VirtCOMServer.dll).</listitem>
<listitem>Copy the interop assembly COM/VirtCOMServer/VirtCOMServer.dll next to the virtuoso server binary (if not allready there).</listitem>
<listitem>Click on the "Set Initial State" link which registers the C# interop class for the Interface IVirtCOMObject with Virtuoso. Click on the "ho_s_15.sql" link to see the code behind this step </listitem>
<listitem>Click on the "Run" links to actually experience the demo</listitem>
</orderedlist>
<para>Demo Breakdown</para>
<orderedlist>
<listitem>"ho_s_15.sql" registers the "VirtCOMServer.CVirtCOMObjectClass" C# interop class with Virtuoso. Click
on the "VirtCOMObject.c" and "VirtCOMObject.h" link to see the C++ source code of this interface and it's class</listitem>
<listitem> "vsp1.vsp" uses the methods "AddAmount", "Clear" and "get_balance" of the "VirtCOMServer.IVirtCOMObject" Interface to
sum a number of amounts and get the resulting total.</listitem>
</orderedlist>
</refsect1>
</refentry>
|