<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Few of my technology ideas</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/vanih/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/vanih/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:47:47 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Generic representation of a Media Topology, Serialize and De-serialize</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/generic-representation-of-a-media-topology-serialize-and-de-serialize</link>
      <pubDate>Tue, 19 Aug 2014 11:53:00 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2014/08/19/generic-representation-of-a-media-topology-serialize-and-de-serialize/</guid>
      <description><![CDATA[Recently I came across a problem where various Media topologies in Windows were represented in...]]></description>
      <content:encoded><![CDATA[<p>Recently I came across a problem where various Media topologies in Windows were represented in different ways. For example, IMFMediaSession topology is represented using IMFTopology (<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms705488(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/windows/desktop/ms705488(v=vs.85).aspx</a>) whereas IMFSoureReader and IMFSinkWriter based topologies are represented as a chain of transforms.</p>
<p>I was part of a team that developed a generic library to represent all Media topologies - Topology Builder. The Topology builder library essentially does the following:</p>
<p style="margin-left:30px;">a. Helps transform <em>any</em> given Media topology into a Directed Graph.</p>
<p style="margin-left:30px;">b. Helps serialize this graph into a <a href="https://en.wikipedia.org/wiki/Json">JSON </a>string</p>
<p style="margin-left:30px;">c. Helps de-serialize the JSON back into a Directed Graph</p>
<p></p>
<p><span style="text-decoration:underline;"><strong>Building the graph</strong></span></p>
<p>The Directed Graph (with cycles) implementation was such that it was a collection of vertices. Vertex creation and deletions were managed by a memory pool. Each vertex had:</p>
<p style="margin-left:30px;">- a unique identifier</p>
<p style="margin-left:30px;">- list of neighbors</p>
<p style="margin-left:30px;">- a name attribute</p>
<p style="margin-left:30px;">- list of properties associated with the vertex. Each property in the vertex was a key-value pair of GUID and PROPVARIANT.</p>
<p>The public interface for building the directed graph exposed the following methods:<span style="text-decoration:underline;"><strong><br /></strong></span></p>
<p style="margin-left:30px;">- ability to add a vertex</p>
<p style="margin-left:30px;">- ability to associate a set of properties to a vertex</p>
<p style="margin-left:30px;">- ability to add an edge from one vertex to another</p>
<p style="margin-left:30px;">- ability to serialize the graph into a JSON string (explained below)</p>
<p></p>
<p><span style="text-decoration:underline;"><strong>Graph serialization</strong></span></p>
<p>The serialized graph would be represented as a JSON string. We picked JSON to be the format for serialization since JSON is a well know format and there are standard libraries available for JSON writers and readers. We picked a C++ implementation for JSON writer four purpose. For an example of a sample topology representation in JSON, please look at the <span style="text-decoration:underline;">attached file</span> in this blog.</p>
<p></p>
<p><span style="text-decoration:underline;"><strong>JSON de-serialization</strong></span></p>
<p>We used <span style="color:#800000;">JsonObject</span> present under Windows.Data.Json (<a href="https://msdn.microsoft.com/en-us/library/windows/apps/windows.data.json.jsonobject.parse.aspx">https://msdn.microsoft.com/en-us/library/windows/apps/windows.data.json.jsonobject.parse.aspx</a>) namespace in .NET for de-serializing the JSON into:</p>
<p>a. a class</p>
<p>b. a DGML representation for debugging (<a href="https://en.wikipedia.org/wiki/DGML)">https://en.wikipedia.org/wiki/DGML)</a></p>
<p>c. a Database representation for statistical analysis</p>
<p>Here&#39;s an example view of a Topology JSON de-serialized into DGML:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/topology.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/topology.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/topology.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/topology.png" border="0" /></a></p>
<p>The entire implementation was a combination of C++ and C# modules.</p>
<p>- Topology builder graph was a C++ implementation</p>
<p>- JSON serialization was a C++ implementation</p>
<p>- JSON de-serialization was a C# implementation</p>
<p>The was&nbsp;highly performing solution with respect to memory and execution time. The space and time complexity of building a Windows Capture Topology could vary between&nbsp;6 KB (~1 ms) - 17 KB&nbsp; (~3 ms) for building the graph and serializing it.</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/5028/00/00/03/63/61/10/TopologyJSON.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-5028-00-00-03-63-61-10/TopologyJSON.zip">TopologyJSON.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Determining pin dependence in MediaCapture</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/determining-pin-dependence-in-mediacapture</link>
      <pubDate>Mon, 28 Jul 2014 12:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2014/07/28/determining-pin-dependence-in-mediacapture/</guid>
      <description><![CDATA[In general most of the cameras expose 1-3 pins from which you can capture Video Preview...]]></description>
      <content:encoded><![CDATA[<p>In general most of the cameras expose 1-3 pins from which you can capture Video Preview stream,&nbsp;Video Record&nbsp;stream, Photo stream.</p>
<p>Example: Normal USB cameras generally expose 1 pin (Preview)&nbsp;, H264 cameras expose 2 pins (1 for Preview and 1 for Record), SOC cameras expose 3 pins (independent Preview, Record and Photo capture).</p>
<p><strong>MediaCapture default mapping of Single pin camera - Media Streams</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/single.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/single.png"><img width="550" height="258" style="width:441px;height:169px;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/single.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/single.png" border="0" /></a></p>
<p><strong>MediaCapture default&nbsp;mapping of 2 pin camera - Media Streams</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/h264.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/h264.png"><img width="548" height="299" style="width:436px;height:189px;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/h264.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/h264.png" border="0" /></a></p>
<p><strong>&nbsp;</strong></p>
<p><strong>MediaCapture default&nbsp;mapping of 3 pin&nbsp;camera - Media Streams</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/soc.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/soc.png"><img width="548" height="335" style="width:391px;height:215px;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/soc.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/soc.png" border="0" /></a></p>
<p>MediaCapture exposes a way to determine this pin independence information. This will come in handy when you are adding effects to a Media Stream and when you don&#39;t want any effects to be applied inadvertently to a stream that you didn&#39;t desire to apply.</p>
<p>Let&#39;s take an example: Say your intension is to apply a custom effect (using <strong>AddEffectAsync</strong>)&nbsp;to&nbsp;a <span style="text-decoration:underline;">Photo stream</span> while taking a Photo when Preview and Recording are in progress.&nbsp;For your same code, the behavior will vary when you run your application on a machine with a USB camera attached vs. a machine with H264 camera attached vs. on a SOC device like a Phone or tablet. On a machine with USB camera, your effect will be applied to <span style="text-decoration:underline;">Preview, Record and Photo</span>. On machine with H264 camera, your effect will be applied to <span style="text-decoration:underline;">Preview and Photo</span>. On Phone or Tablet, your effect will be applied to <span style="text-decoration:underline;">Photo only</span>.&nbsp;</p>
<p>So determining Pin dependence will be helpful in some scenarios. You can use <strong>MediaCapture.MediaCaptureSettings.VideoDeviceCharacteristic</strong> to determine this behavior<strong>: </strong><a href="https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.capture.videodevicecharacteristic.aspx">https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.capture.videodevicecharacteristic.aspx</a></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Mirroring best practices</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/sql-mirroring-best-practices</link>
      <pubDate>Fri, 25 Jul 2014 13:17:38 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2014/07/25/sql-mirroring-best-practices/</guid>
      <description><![CDATA[Few years ago when I was working on web services, I was part of a team that built a tool to achieve...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:arial,helvetica,sans-serif;font-size:small;">Few years ago when I was working on web services, I was part of a team that built a tool to achieve SQL Mirroring in a reliable manner. Here are few best practices that I took away from that experience.</span></p>
<p><span style="font-family:arial,helvetica,sans-serif;font-size:small;">Mirroring is one of the best ways in which you can achieve fault tolerance in a distributed data store environment.&nbsp; There are various operations around mirroring that are critical and need to be dealt with cautiously. The following few sections discuss some of the validations that a user can perform around these mirroring operations.</span><br /><span style="font-family:arial,helvetica,sans-serif;font-size:small;">a. Setting up mirroring</span><br /><span style="font-family:arial,helvetica,sans-serif;font-size:small;">b. Changing failover options</span><br /><span style="font-family:arial,helvetica,sans-serif;font-size:small;">c. Failing over</span><br /><span style="font-family:arial,helvetica,sans-serif;font-size:small;">d. Breaking up mirroring</span><br /><span style="font-family:arial,helvetica,sans-serif;font-size:small;">e. Changing mirroring port</span></p>
<p><span style="font-family:arial,helvetica,sans-serif;font-size:small;">If you want to look at the entire paper, it is attached to this blog. <br /></span></p>
<p><strong>Validations around Mirroring setup</strong></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/SetupMirroring.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/SetupMirroring.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/SetupMirroring.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/SetupMirroring.png" border="0" /></a></p>
<p><strong>Validations around changing &quot;Failover&quot; mode - Changing the failover mode from &quot;Manual&quot; to &quot;Automatic&quot;</strong></p>
<p><span style="line-height:115%;font-family:arial,helvetica,sans-serif;font-size:small;">&ldquo;Manual&rdquo; to &ldquo;Automatic&rdquo; failover mode change requires the setting up of a new SQL server as Witness. You can read in detail about setting up a Witness at: <a href="https://technet.microsoft.com/en-us/library/ms365603.aspx"><span style="color:#0000ff;">https://technet.microsoft.com/en-us/library/ms365603.aspx</span></a> . You can change the failover mode from &ldquo;manual&rdquo; to &ldquo;automatic&rdquo; ONLY on the Primary SQL server</span></p>
<p><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/ManualToAutomatic-2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/ManualToAutomatic_2D00_2.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/ManualToAutomatic-2.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/ManualToAutomatic_2D00_2.png" border="0" /></a><br /></span></p>
<p><strong><span style="font-family:arial,helvetica,sans-serif;font-size:small;">Validations around changing &quot;Failover&quot; mode - <span style="line-height:115%;">Changing the failover mode from &ldquo;Automatic&rdquo; to &ldquo;Manual&rdquo;</span></span></strong></p>
<p><span style="font-family:arial,helvetica,sans-serif;font-size:small;">Changing the failover mode from &ldquo;Automatic&rdquo; to &ldquo;Manual&rdquo; simply involves removing the Witness server from the mirroring relationship. You can remove the Witness server either from the Primary or the Secondary. Here are a few validations that you can perform before you change the failover mode from &ldquo;automatic&rdquo; to &ldquo;manual&rdquo;</span></p>
<p><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="font-family:Times New Roman;font-size:medium;"> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/AutoToManual.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/AutoToManual.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/AutoToManual.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/AutoToManual.png" border="0" /></a></span></span></p>
<p><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="font-family:arial,helvetica,sans-serif;font-size:small;"><strong>Validations around &quot;Failover&quot;</strong></span><br /></span></p>
<p><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/Failover.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/Failover.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/Failover.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/Failover.png" border="0" /></a><br /></span></p>
<p><span style="line-height:115%;font-family:arial,helvetica,sans-serif;font-size:small;"><strong>Validations around breaking up mirroring relationship - &quot;normal break up&quot;</strong><br /></span></p>
<p><span style="font-family:arial,helvetica,sans-serif;font-size:small;"><span style="line-height:115%;">&nbsp;</span>This is the normal breakup scenario where you might want to breakup mirroring when the Primary and Secondary SQL servers are connected. Here is a list of validations that you can perform before performing a breakup.</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/Normalbreakup.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/Normalbreakup.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/Normalbreakup.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/Normalbreakup.png" border="0" /></a></p>
<p><span style="line-height:115%;font-family:arial,helvetica,sans-serif;font-size:small;"><strong>Validations around breaking up mirroring relationship - &quot;force break up&quot;</strong><br /></span></p>
<p><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:small;"><span style="font-family:Times New Roman;"><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;"><span style="font-family:arial,helvetica,sans-serif;">There could be situations where the Secondary is in disconnected state. This might happen when the Primary goes down in a &ldquo;manual&rdquo; failover mode and &ldquo;Primary&rdquo; and &ldquo;Witness&rdquo; go down in an &ldquo;automatic&rdquo; failover mode. If your Primary and Witness are not in recoverable state, you might want to breakup mirroring and bring the existing Secondary server to process all connections in a standalone mode. Note that this might lead to a data loss [<a href="https://msdn.microsoft.com/en-us/library/ms189977.asp"><span style="color:#0000ff;">https://msdn.microsoft.com/en-us/library/ms189977.asp</span></a>x].</span>&nbsp;</span></span></span><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="font-family:Times New Roman;font-size:medium;"><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">&nbsp;</span></span></span></p>
<p><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="font-family:Times New Roman;font-size:medium;"><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/forcebreakup.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/forcebreakup.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/forcebreakup.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/forcebreakup.png" border="0" /></a><br /></span></span></span></p>
<p><span style="line-height:115%;font-family:arial,helvetica,sans-serif;font-size:small;"><span style="line-height:115%;"><strong>Validations around modifying the mirroring port</strong><br /></span></span></p>
<p><span style="font-family:arial,helvetica,sans-serif;font-size:small;">Let us say that you want to change the port related to the mirroring endpoint on the Primary or Secondary SQL server which you have already created. Now you need to ensure the following:</span></p>
<p><span style="font-family:arial,helvetica,sans-serif;font-size:small;">a. For databases that are not mirrored on your Primary/Secondary, there is nothing much to worry about</span><br /><span style="font-family:arial,helvetica,sans-serif;font-size:small;">b. For databases that are mirrored, once you change the mirroring endpoint port, the database goes into a disconnected mode since the TCP connection is broken. Now you need to make sure that you re-establish mirroring partnership between the Primary and Secondary for these databases so that they get back into connected state</span></p>
<p><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="font-family:Times New Roman;font-size:medium;"><span style="line-height:115%;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="font-family:Times New Roman;font-size:medium;"> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/portchange.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/portchange.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/50/28/portchange.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-50-28/portchange.png" border="0" /></a></span></span></span></span></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/5028/00/00/03/63/51/06/SQL%20Mirroring%20Best%20Practices.docx" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-5028-00-00-03-63-51-06/SQL-Mirroring-Best-Practices.docx">SQL Mirroring Best Practices.docx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Accessing Public classes in your Webservice from Clients</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/accessing-public-classes-in-your-webservice-from-clients</link>
      <pubDate>Fri, 25 Jan 2008 16:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2008/01/25/accessing-public-classes-in-your-webservice-from-clients/</guid>
      <description><![CDATA[Recently I struggled a lot to figure out how to access classes that are public in my webservice...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">Recently I struggled a lot to figure out how to access classes that are public in my webservice namespace, from the client (that was making the webservice method calls)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">I had a Public class called</SPAN><FONT face=Calibri size=3> “</FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Details</SPAN><FONT face=Calibri size=3>” </FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">in my webservice and I had a method which would return an</SPAN><FONT face=Calibri size=3> </FONT><SPAN style="FONT-SIZE: 10pt; COLOR: teal; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ArrayList</SPAN><FONT face=Calibri size=3> </FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">of objects of type</SPAN><FONT face=Calibri size=3> “</FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Details</SPAN><FONT face=Calibri size=3>” </FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">to the client. But I could never access the class</SPAN><FONT face=Calibri size=3> “</FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Details</SPAN><FONT face=Calibri size=3>” </FONT><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">from the client. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">Here is what I finally did:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">I had a webservice called <SPAN style="mso-no-proof: yes">TestWebService</SPAN> which had many public classes in its namespace. Here is how the namespace looked:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">namespace</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> Test.TestWebService<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">class</SPAN> Details<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">public</SPAN> Details() { } <SPAN style="mso-spacerun: yes">&nbsp;</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>...<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">class</SPAN> TestWebService<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>...<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>[WebMethod]<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">public ArrayList GetDetails()</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Wingdings; mso-no-proof: yes; mso-bidi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> Client couldn’t access the class <SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">“Details”</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">public</SPAN> <FONT color=#008080 size=2>List</FONT><FONT size=2>&lt;</FONT><FONT color=#008080 size=2>Details</FONT><FONT size=2>&gt;</FONT> GetDetails()</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Wingdings; mso-no-proof: yes; mso-bidi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Client could access the class <SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">“Details” </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{&nbsp;&nbsp;&nbsp; </SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes"><FONT color=#008080 size=2>ArrayList</FONT><FONT size=2> list = </FONT><FONT color=#0000ff size=2>new</FONT><FONT size=2> </FONT><FONT color=#008080 size=2>ArrayList</FONT><FONT size=2>();</FONT>&nbsp;</SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#008080 size=2>List</FONT><FONT size=2>&lt;</FONT><FONT color=#008080 size=2>Details</FONT><FONT size=2>&gt; details = </FONT><FONT color=#0000ff size=2>new</FONT><FONT size=2> </FONT><FONT color=#008080 size=2>List</FONT><FONT size=2>&lt;</FONT><FONT color=#008080 size=2>Details</FONT><FONT size=2>&gt;();</FONT></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes"><FONT size=2>&nbsp;</P></FONT></SPAN></SPAN>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: gray">///</SPAN><SPAN style="COLOR: green">Do all processing<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="COLOR: gray">///</SPAN><SPAN style="COLOR: green">Let us assume that this "list" gets filled up dy</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">namically<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>...<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">return list; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Wingdings; mso-no-proof: yes; mso-bidi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> Client couldn’t access the class <SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">“Details”</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">return</SPAN> details; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Wingdings; mso-no-proof: yes; mso-bidi-font-family: 'Courier New'; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> <SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Client could access the class <SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">“Details”</SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes">So on the client side (after changing the return type) I tried to access the method this way:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">test.<SPAN style="COLOR: teal">TestWebService</SPAN> svc = <SPAN style="COLOR: blue">new</SPAN> ConsoleApplication3.test.<SPAN style="COLOR: teal">TestWebService</SPAN>();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">test.<SPAN style="COLOR: teal">Details</SPAN>[] details = svc.GetDetails(1);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes">So basically I could never access “</SPAN><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Details</SPAN><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes">” from my client until it got used somewhere in the web method signature (either as an input parameter or as a return value).<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes">Hope this helps.</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes"></SPAN>&nbsp;</P><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-no-proof: yes">
<DIV style="mso-element: comment-list">
<HR class=msocomoff align=left width="33%" SIZE=1>

<DIV style="mso-element: comment">
<DIV language=JavaScript class=msocomtxt id=_com_1 onmouseover="msoCommentShow('_anchor_1','_com_1')" onmouseout="msoCommentHide('_com_1')"><SPAN style="mso-comment-author: RahulT">
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-bidi-font-family: Arial"><o:p>(<FONT face="Times New Roman"><FONT color=#000000>This posting is provided "AS IS" with no warranties, and confers no rights.&nbsp;</FONT><FONT color=#000000>Use of included script samples are subject to the terms specified at </FONT></FONT><A href="https://www.microsoft.com/info/cpyright.htm" target=_blank mce_href="https://www.microsoft.com/info/cpyright.htm"><FONT face="Times New Roman">https://www.microsoft.com/info/cpyright.htm</FONT></A>)</o:p></SPAN></P></SPAN></DIV></DIV></DIV></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'"><o:p></o:p></SPAN>]]></content:encoded>
    </item>
    <item>
      <title>ConfigurationManager class in C#</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/configurationmanager-class-in-c</link>
      <pubDate>Fri, 25 Jan 2008 15:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2008/01/25/configurationmanager-class-in-c/</guid>
      <description><![CDATA[The ConfigurationManager class in C#&nbsp;has been one of my latest discoveries for storing&nbsp;all...]]></description>
      <content:encoded><![CDATA[<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">The <SPAN style="COLOR: teal">ConfigurationManager</SPAN> class in C#&nbsp;has been one of my latest discoveries for storing&nbsp;all the configuration data required by an application. Here is one example of how I used it to store some of my configuration data:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Let us say that you have written an&nbsp;application (let's call is <SPAN style="COLOR: #4bacc6; mso-themecolor: accent5">Foo.exe</SPAN>). Now let us say that <SPAN style="COLOR: #4bacc6; mso-themecolor: accent5">Foo.exe</SPAN> logs some information and it requires the log file location to be passed in as an input&nbsp;via&nbsp;configuration info. <o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">So, here is what you&nbsp;could do.&nbsp;<o:p></o:p></SPAN></P>
<P><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"></SPAN></B>&nbsp;</P>
<P><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">1.</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> Add an Application Config file to&nbsp;<SPAN style="COLOR: #4bacc6; mso-themecolor: accent5">Foo.exe</SPAN> (You could do this on <SPAN style="COLOR: #4bacc6; mso-themecolor: accent5">Visual Studio via Add &gt; New Item &gt; Application Configuration File</SPAN>). Let us call it <SPAN style="COLOR: #4bacc6; mso-themecolor: accent5">Foo.config</SPAN><o:p></o:p></SPAN></P>
<P><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"></SPAN></B>&nbsp;</P>
<P><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">2.</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> Open&nbsp;<SPAN style="COLOR: #4bacc6; mso-themecolor: accent5">Foo.config</SPAN>. It'll look something like this:<o:p></o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&lt;?</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Arial','sans-serif'">xml</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Arial','sans-serif'">version</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">=</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">"<SPAN style="COLOR: blue">1.0</SPAN>"<SPAN style="COLOR: blue"> </SPAN><SPAN style="COLOR: red">encoding</SPAN><SPAN style="COLOR: blue">=</SPAN>"<SPAN style="COLOR: blue">utf-8</SPAN>"<SPAN style="COLOR: blue"> ?&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="MARGIN-LEFT: 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Arial','sans-serif'">configuration</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&gt;<o:p></o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&lt;/</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Arial','sans-serif'">configuration</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&gt;<o:p></o:p></SPAN></P>
<P><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"></SPAN></B>&nbsp;</P>
<P><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">&nbsp;3.</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> Add the following lines into <SPAN style="COLOR: #4bacc6; mso-themecolor: accent5">Foo.config</SPAN> between the <SPAN style="COLOR: blue">&lt;</SPAN><SPAN style="COLOR: maroon">configuration</SPAN><SPAN style="COLOR: blue">&gt; &lt;/</SPAN><SPAN style="COLOR: maroon">configuration</SPAN><SPAN style="COLOR: blue">&gt;</SPAN> tags:<o:p></o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Arial','sans-serif'">appSettings</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&gt;<o:p></o:p></SPAN></P>
<P style="MARGIN-LEFT: 1in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Arial','sans-serif'">add</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Arial','sans-serif'">key</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">=</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">"<SPAN style="COLOR: blue">LoggingFile</SPAN>"<SPAN style="COLOR: blue"> </SPAN><SPAN style="COLOR: red">value</SPAN><SPAN style="COLOR: blue">=</SPAN>"<SPAN style="COLOR: blue">C:\Logs\Foo.log</SPAN>"<SPAN style="COLOR: blue"> /&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="MARGIN-LEFT: 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&lt;/</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Arial','sans-serif'">appSettings</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&gt;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">&nbsp;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Where the key "<SPAN style="COLOR: blue"> LoggingFile</SPAN>" is the key, querying the value of which will fetch you the log file path.<o:p></o:p></SPAN></P>
<P mce_keep="true"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"></SPAN></B>&nbsp;</P>
<P mce_keep="true"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">4.</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> Now within your application, here is how you can fetch the value of "<SPAN style="COLOR: blue"> LoggingFile</SPAN>":<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Arial','sans-serif'">using</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> System.Configuration;<o:p></o:p></SPAN></P>
<P mce_keep="true"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">string logFilePath = <SPAN style="COLOR: teal">ConfigurationManager</SPAN>.AppSettings["<SPAN style="COLOR: blue">LoggingFile</SPAN>"] <o:p></o:p></SPAN></P>
<P mce_keep="true"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"></SPAN>&nbsp;</P>
<P mce_keep="true"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Wasn’t that easier than writing your own XML based config files and a parser to fetch the values from it? Hope this helps.<o:p></o:p></SPAN></P>
<DIV style="mso-element: comment-list">
<HR class=msocomoff align=left width="33%" SIZE=1>

<DIV style="mso-element: comment">
<DIV language=JavaScript class=msocomtxt id=_com_1 onmouseover="msoCommentShow('_anchor_1','_com_1')" onmouseout="msoCommentHide('_com_1')"><SPAN style="mso-comment-author: RahulT">
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-bidi-font-family: Arial"><o:p>(<FONT face="Times New Roman"><FONT color=#000000>This posting is provided "AS IS" with no warranties, and confers no rights.&nbsp;</FONT><FONT color=#000000>Use of included script samples are subject to the terms specified at </FONT></FONT><A href="https://www.microsoft.com/info/cpyright.htm" target=_blank mce_href="https://www.microsoft.com/info/cpyright.htm"><FONT face="Times New Roman">https://www.microsoft.com/info/cpyright.htm</FONT></A>)</o:p></SPAN></P></SPAN></DIV></DIV></DIV>]]></content:encoded>
    </item>
    <item>
      <title>Tips and Tricks with C++ COM and .NET</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/tips-and-tricks-with-c-com-and-net</link>
      <pubDate>Thu, 02 Nov 2006 07:03:00 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2006/11/02/tips-and-tricks-with-c-com-and-net/</guid>
      <description><![CDATA[&nbsp;If you have written a C++ COM dll&nbsp;and if you are looking to&nbsp;use it in&nbsp;a C#...]]></description>
      <content:encoded><![CDATA[<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">&nbsp;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">If you have written a <STRONG><SPAN style="FONT-FAMILY: Tahoma">C++</SPAN></STRONG> COM dll&nbsp;and if you are looking to&nbsp;use it in&nbsp;a <STRONG><SPAN style="FONT-FAMILY: Tahoma">C#</SPAN></STRONG> program, then you are in the right place! :)&nbsp; Read on...<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Trust me, using a COM dll in a C# program is far simpler and relieves you of all those ref counting hazzles. Managed code even simplifies the standard COM function calls to QueryInterface, AddRef&nbsp;etc. Making a QueryInterface call is as simple as casting an object of type A to type B and you don't have to&nbsp;make any calls to&nbsp;AddRefs and Releases!<o:p></o:p></SPAN></P>
<P><A style="mso-comment-reference: RT_1; mso-comment-date: 20061102T1934"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">There are 3 <STRONG>simple</STRONG> steps to using your C++ COM dll in your C# program.&nbsp;<SPAN style="mso-spacerun: yes">&nbsp;</SPAN></SPAN></A><SPAN class=MsoCommentReference><SPAN style="FONT-SIZE: 8pt"><SPAN style="mso-special-character: comment"><FONT face="Times New Roman">&nbsp;</FONT></SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Step 1: Generate a managed COM wrapper dll for your C++ COM dll (let us call it <SPAN style="COLOR: #ff6600">MyComDll.dll</SPAN>). Let us call the generated dll as <SPAN style="COLOR: olive">MyManagedDll.dll</SPAN>.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Step 2: Use the generated <SPAN style="COLOR: olive">MyManagedDll.dll </SPAN>in your C# application (let us cal it <SPAN style="COLOR: #3366ff">MyDotNetApp.exe</SPAN>)<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Step 3: Register <SPAN style="COLOR: #ff6600">MyComDll.dll&nbsp;</P></SPAN></SPAN>
<P>
<TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid white .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid white; mso-border-insidev: .5pt solid white" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid">
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
<TD class="" style="BORDER-RIGHT: white 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: white 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #666699; PADDING-BOTTOM: 0in; BORDER-LEFT: white 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: white 1pt solid; mso-border-alt: solid white .5pt" vAlign=top width=590>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><STRONG><SPAN style="FONT-SIZE: 10pt; TEXT-TRANSFORM: uppercase; COLOR: white; FONT-FAMILY: Tahoma">Step 1: Generating a managed com wrapper</SPAN></STRONG><B><SPAN style="FONT-SIZE: 10pt; TEXT-TRANSFORM: uppercase; COLOR: white; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN></B></P></TD></TR></TBODY></TABLE></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">The first step is to generate a Managed wrapper for <SPAN style="COLOR: #ff6600">MyComDll.dll </SPAN>so that you can add it as a reference into your MyDotNetApp.exe project.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">If you have been building this COM dll all by yourself, then build your <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: olive">IDL</SPAN></B> solution separately. This will generate a <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: olive">.TLB</SPAN></B> file once the compilation succeeds. In this case when we build <SPAN style="COLOR: #ff6600">MyComDll.IDL</SPAN> we get a <SPAN style="COLOR: #ff6600">MyComDll.TLB</SPAN>.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Visual Studio 2005 ships with a tool called <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: olive">TlbImp.exe</SPAN></B>. This tool uses your <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: olive">.TLB</SPAN></B> file and generates a managed wrapper for it. In this case, when we run <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: olive">Tlbimp.exe</SPAN></B> on <SPAN style="COLOR: #ff6600">MyComDll.TLB</SPAN>, we will get a managed dll. This is <SPAN style="COLOR: olive">MyManagedDll.dll</SPAN> of which we spoke above. </SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You can read more about Tlbimp.exe at <A href="https://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrftypelibraryimportertlbimpexe.asp" mce_href="https://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrftypelibraryimportertlbimpexe.asp">https://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrftypelibraryimportertlbimpexe.asp</A>.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">By the end of step 1, you are all set to use the generated managed dll in your <SPAN style="COLOR: #3366ff">MyDotNetApp</SPAN> project!</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN>&nbsp;</P>
<P>
<TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid white .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid white; mso-border-insidev: .5pt solid white" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid">
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
<TD class="" style="BORDER-RIGHT: white 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: white 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #666699; PADDING-BOTTOM: 0in; BORDER-LEFT: white 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: white 1pt solid; mso-border-alt: solid white .5pt" vAlign=top width=590>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><STRONG><SPAN style="FONT-SIZE: 10pt; TEXT-TRANSFORM: uppercase; COLOR: white; FONT-FAMILY: Tahoma">Step 2: using the managed com wrapper in your application</SPAN></STRONG><B><SPAN style="FONT-SIZE: 10pt; TEXT-TRANSFORM: uppercase; COLOR: white; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN></B></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Now let us see how we can use the built managed COM wrapper dll in your <SPAN style="COLOR: #3366ff">MyDotNetApp</SPAN> project. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Open your <SPAN style="COLOR: #3366ff">MyDotNetApp</SPAN> project and add this built <SPAN style="COLOR: olive">MyManagedDll.dll</SPAN> as a reference and add the reference in your .cs file via the <SPAN style="COLOR: blue; mso-no-proof: yes">using</SPAN> keyword. Something like:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Tahoma; mso-no-proof: yes">using </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; mso-no-proof: yes">System.Runtime.InteropServices;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Tahoma; mso-no-proof: yes">using</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; mso-no-proof: yes"> ComDll;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Now you create an instance of the public class exposed from your COM dll (let us call this class as <SPAN style="COLOR: teal; mso-no-proof: yes">MyAppClass)</SPAN> by doing the following:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: Tahoma; mso-no-proof: yes">MyAppClass</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; mso-no-proof: yes"> application = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: teal">MyAppClass</SPAN>();</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">This will do the <I style="mso-bidi-font-style: normal">CoCreateInstance</I> equivalent part of your COM dll and return you an instance based on its UUID. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Now you are all set to interact with the interfaces of your COM dll. Here is how you do <I style="mso-bidi-font-style: normal">QueryInterface</I>: if you want to query Interface A from a class B, then here is how you do it:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: Tahoma; mso-no-proof: yes">IMyAppA </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; mso-no-proof: yes">settings = (<SPAN style="COLOR: teal">IMyAppA</SPAN>) myAppBObject;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; mso-no-proof: yes"></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN>&nbsp;</P>
<P>
<TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-alt: solid white .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid white; mso-border-insidev: .5pt solid white" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid">
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
<TD class="" style="BORDER-RIGHT: white 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: white 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #666699; PADDING-BOTTOM: 0in; BORDER-LEFT: white 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: white 1pt solid; mso-border-alt: solid white .5pt" vAlign=top width=590>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><STRONG><SPAN style="FONT-SIZE: 10pt; TEXT-TRANSFORM: uppercase; COLOR: white; FONT-FAMILY: Tahoma">Step 3: registering your com dll before use</SPAN></STRONG><B><SPAN style="FONT-SIZE: 10pt; TEXT-TRANSFORM: uppercase; COLOR: white; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN></B></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Now, COM dlls either need to be registered or not before they can be used depending on whether it expects a manifest file or not.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">If your COM dll is built in a way that it <B style="mso-bidi-font-weight: normal">expects</B> a manifest file, then please keep the .manifest file in the same location where your application binary and the dll both reside. In this case when you build <SPAN style="COLOR: #3366ff">MyDotNetApp</SPAN> solution file, VS will create a <SPAN style="COLOR: #3366ff">MyDotNetApp.exe.manifest</SPAN> file for you. The contents of this file will be something like: <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: -12pt"><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&lt;?</SPAN></SPAN><SPAN class=pi1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"> xml version="1.0" encoding="UTF-8" standalone="yes" </SPAN></SPAN><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">?&gt;</SPAN></SPAN></FONT><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: -12pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><A href="file:///D:/Yamuna/RTC/Test/qacore/UCCPBinaries/Desktop/UCClient.exe.manifest.xml##" mce_href="file:///D:/Yamuna/RTC/Test/qacore/UCCPBinaries/Desktop/UCClient.exe.manifest.xml##"></A><SPAN class=m1><FONT color=#0000ff>&lt;</FONT></SPAN><SPAN class=t1><FONT color=#990000>assembly</FONT></SPAN><SPAN class=ns1><FONT color=#ff0000> xmlns</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B><SPAN style="COLOR: red">urn:schemas-microsoft-com:asm.v1</SPAN></B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> manifestVersion</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>1.0</B><FONT color=#0000ff><SPAN class=m1>"&gt;</SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: -24pt"><SPAN class=b1><SPAN style="FONT-SIZE: 10pt"><STRONG><FONT face="Courier New" color=#ff0000>&nbsp;</FONT></STRONG></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"> <SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN><SPAN class=m1><FONT color=#0000ff>&lt;</FONT></SPAN><SPAN class=t1><FONT color=#990000>assemblyIdentity</FONT></SPAN> <SPAN class=t1><FONT color=#990000>version</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>1.1.0.0</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> processorArchitecture</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>x86</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> name</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>MyDotNetApp.exe</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> type</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>win32</B><SPAN class=m1><FONT color=#0000ff>" /&gt;</FONT></SPAN> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>dependency</FONT></SPAN></SPAN><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&gt;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: 0.5in"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>dependentAssembly</FONT></SPAN></SPAN><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&gt;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 84pt"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>assemblyIdentity</FONT></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"> <SPAN class=t1><FONT color=#990000>type</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>win32</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> name</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>Microsoft.VC80.CRT</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> version</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>8.0.50608.0</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> processorArchitecture</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>x86</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> publicKeyToken</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>1fc8b3b9a1e18e3b</B><SPAN class=m1><FONT color=#0000ff>" /&gt;</FONT></SPAN> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: -12pt"><SPAN class=b1><SPAN style="FONT-SIZE: 10pt"><STRONG><FONT face="Courier New" color=#ff0000>&nbsp;</FONT></STRONG></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"> <SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN class=m1><FONT color=#0000ff>&lt;/</FONT></SPAN><SPAN class=t1><FONT color=#990000>dependentAssembly</FONT></SPAN><FONT color=#0000ff><SPAN class=m1>&gt;</SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: -12pt"><SPAN class=b1><SPAN style="FONT-SIZE: 10pt"><STRONG><FONT face="Courier New" color=#ff0000>&nbsp;</FONT></STRONG></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"> <SPAN class=m1><FONT color=#0000ff>&lt;/</FONT></SPAN><SPAN class=t1><FONT color=#990000>dependency</FONT></SPAN><FONT color=#0000ff><SPAN class=m1>&gt;</SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>dependency</FONT></SPAN></SPAN><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&gt;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: 0.5in"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>dependentAssembly</FONT></SPAN></SPAN><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&gt;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 84pt"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>assemblyIdentity</FONT></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"> <SPAN class=t1><FONT color=#990000>version</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>2.0.0.0</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> processorArchitecture</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>x86</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> name</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>MyComDll</B><SPAN class=m1><FONT color=#0000ff>"</FONT></SPAN><SPAN class=t1><FONT color=#990000> type</FONT></SPAN><SPAN class=m1><FONT color=#0000ff>="</FONT></SPAN><B>win32</B><SPAN class=m1><FONT color=#0000ff>" /&gt;</FONT></SPAN> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: 0.5in"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;/</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>dependentAssembly</FONT></SPAN></SPAN><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&gt;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;/</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>dependency</FONT></SPAN></SPAN><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&gt;</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: -12pt"><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#0000ff>&lt;/</FONT></SPAN></SPAN><SPAN class=t1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><FONT color=#990000>assembly</FONT></SPAN></SPAN><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&gt;</SPAN></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 12pt; TEXT-INDENT: -12pt"><FONT color=#0000ff><SPAN class=m1><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">So, make sure that you keep <SPAN style="COLOR: #3366ff">MyDotNetApp.exe.manifest</SPAN>, <SPAN style="COLOR: #3366ff">MyDotNetApp.exe</SPAN>, <SPAN style="COLOR: olive">MyManagedDll.dll</SPAN> and <SPAN style="COLOR: #ff6600">MyComDll.dll</SPAN> all in the same location before you run.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Instead, if your COM dll is built in a way that you need to register it before you can instantiate the class, then make sure that you register it on the machine where you are planning to run the application (under HKCR\CLSID\{…}\</SPAN><FONT face="Times New Roman" size=3> </FONT><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">InprocServer32 \). Make sure that you give the correct location where <SPAN style="COLOR: #ff6600">MyComDll.dll</SPAN> resides on your machine in the registration path.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">You can read more about manifest files at: <A href="https://windowssdk.msdn.microsoft.com/en-us/library/ms717746.aspx" mce_href="https://windowssdk.msdn.microsoft.com/en-us/library/ms717746.aspx">https://windowssdk.msdn.microsoft.com/en-us/library/ms717746.aspx</A> </SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"><o:p></o:p></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">Run your application!<o:p></o:p></SPAN></P>
<DIV style="mso-element: comment-list">
<HR class=msocomoff align=left width="33%" SIZE=1>

<DIV style="mso-element: comment">
<DIV language=JavaScript class=msocomtxt id=_com_1 onmouseover="msoCommentShow('_anchor_1','_com_1')" onmouseout="msoCommentHide('_com_1')"><SPAN style="mso-comment-author: RahulT">
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-bidi-font-family: Arial"><o:p>(<FONT face="Times New Roman"><FONT color=#000000>This posting is provided "AS IS" with no warranties, and confers no rights.&nbsp;</FONT><FONT color=#000000>Use of included script samples are subject to the terms specified at </FONT></FONT><A href="https://www.microsoft.com/info/cpyright.htm" target=_blank mce_href="https://www.microsoft.com/info/cpyright.htm"><FONT face="Times New Roman">https://www.microsoft.com/info/cpyright.htm</FONT></A>)</o:p></SPAN></P><A class="" title=_msocom_1 name=_msocom_1></A></SPAN></DIV></DIV></DIV>]]></content:encoded>
    </item>
    <item>
      <title>A study on IPC options on WinCE and Windows</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/a-study-on-ipc-options-on-wince-and-windows</link>
      <pubDate>Mon, 01 May 2006 00:45:00 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2006/05/01/a-study-on-ipc-options-on-wince-and-windows/</guid>
      <description><![CDATA[&nbsp;
I wanted to make a client-server application that would run both on WinCE/Windows Mobile 5.0...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I wanted to make a client-server application that would run both on <SPAN style="COLOR: #ff6600">WinCE/Windows Mobile 5.0 PPC/SP</SPAN> and <SPAN style="COLOR: #ff6600">Windows</SPAN>. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Here is what I wanted to make: <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">§<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">A <I><SPAN style="COLOR: #ff6600">Server</SPAN></I> EXE which would have to run, both on a Win CE based device and on a Desktop machine. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1; tab-stops: list .25in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">§<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">A <I><SPAN style="COLOR: #ff6600">Client</SPAN></I> EXE which would talk to the Server. The scenario involved running several instances of client EXE running both on Desktop and Device. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The obvious choice was to write a common Server/Client code which would run both on Device and for Desktop. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">So I started looking at the various IPC options that both WinCE and Windows provide to come with an intersection set and then finally choose one of the options from the set.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Surprisingly the intersection set was really small. </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings">L</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Here is the result of my study. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P>
<TABLE class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #99cc00 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #99cc00 1pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">IPC mechanisms<o:p></o:p></SPAN></B></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #99cc00 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Windows<o:p></o:p></SPAN></B></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #99cc00 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Win CE<o:p></o:p></SPAN></B></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #99cc00 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 330.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=441>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center" align=center><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">References<o:p></o:p></SPAN></B></P></TD></TR>
<TR style="mso-yfti-irow: 1">
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #99cc00 1pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DCOM<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Provides an option to run the Server as a OUT PROC COM component<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Not Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DCOM is an optional component. So you might run into the risk of not able to run your server EXE on the device.<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 330.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=441>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">WinCE: <A href="https://blogs.msdn.com/cenet/archive/2005/07/13/438424.aspx">https://blogs.msdn.com/cenet/archive/2005/07/13/438424.aspx</A> <o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 2">
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #99cc00 1pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">File mapping/Shared memory<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">File mapping is supported on Windows platform and you can use this via CreateFileMapping, MapViewOfFile, ReadFile, WriteFile APIs.<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Partially Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">File mapping is also supported by Win CE, but there is a caveat to it. Here is what MSDN has to say:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">“<I><SPAN style="COLOR: #ff6600">This function will not work on a Windows CE–based platform that does not support Page-In</SPAN></I>.”<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 330.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=441>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">WinCE: <A href="https://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/_wcesdk_win32_createfilemapping.asp">https://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/_wcesdk_win32_createfilemapping.asp</A> (Read the Remarks Section) <o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 3">
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #99cc00 1pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Message Queues<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Not Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Windows does not seem to be supporting this. At least the MSDN documentation does not list this as a possible IPC mechanism.<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">WinCE supports Message Queues. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">You can use the CreateMsgQueue, WriteMsgQueue etc APIs to achieve it.<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 330.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=441>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">Windows: <A href="https://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/interprocess_communications.asp">https://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipc/base/interprocess_communications.asp</A> <o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 4">
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #99cc00 1pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Pipes<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Windows supports it via CreateNamedPipe, WriteFile, ReadFile etc APIs.<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Not Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">There is no support for Pipes specifically on WinCE. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">But they claim that a point-to-point message queue can be regarded as some sort of pipe.<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 330.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=441>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">WinCE: <A href="https://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/intercommWindowsCENETInterprocessCommunication.asp">https://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/intercommWindowsCENETInterprocessCommunication.asp</A> (Read the Abstract section)<o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 5">
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #99cc00 1pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">MailSlots/Mailbox<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Desktop calls this Mail Slots. Take a look at: CreateMailslot, WriteFile, ReadFile etc APIs.<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Not Supported.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The Mail Slot APIs are not supported on WinCE.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">But there is an implementation of one-way “Mailbox” concept described in MSDN. <o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 330.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=441>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Arial">Win CE: <A href="https://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/intercommWindowsCENETInterprocessCommunication.asp">https://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/intercommWindowsCENETInterprocessCommunication.asp</A><o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 6; mso-yfti-lastrow: yes">
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #99cc00 1pt solid; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Sockets<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Supported<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 2.05in; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=197>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Supported<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-RIGHT: #99cc00 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 330.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #99cc00 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=441>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Looking at all the possible options, I finally felt that <STRONG><FONT color=#ffa500>Sockets</FONT></STRONG> would be the best way to go. Since I had so many device platforms to support, I did not wanted to take the risk of choosing something that works on Desktop and the same thing not working on&nbsp;<EM>even</EM> one of the Device platforms.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">This is just my observation. Please let me know if there is any other option that I have missed out. Hope this helps.</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN>&nbsp;</P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-bidi-font-family: Arial"><o:p>(<FONT face="Times New Roman"><FONT color=#000000>This posting is provided "AS IS" with no warranties, and confers no rights.&nbsp;</FONT><FONT color=#000000>Use of included script samples are subject to the terms specified at </FONT></FONT><A href="https://www.microsoft.com/info/cpyright.htm" target=_blank><FONT face="Times New Roman">https://www.microsoft.com/info/cpyright.htm</FONT></A>)</o:p></SPAN></P></SPAN>]]></content:encoded>
    </item>
    <item>
      <title>An example of using delegates in C#</title>
      <link>https://docs.microsoft.com/archive/blogs/vanih/an-example-of-using-delegates-in-c</link>
      <pubDate>Thu, 20 Apr 2006 06:03:00 GMT</pubDate>
      <dc:creator><![CDATA[Vani Hombal]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/vanih/2006/04/20/an-example-of-using-delegates-in-c/</guid>
      <description><![CDATA[&nbsp;
Delegates hold the references/addresses of functions so that the functions can...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Delegates hold the references/addresses of functions so that the functions can be&nbsp;invoked in a call back manner. If you are familiar with C++, they are just like function pointers. Here is one example of how delegates can aid in structuring your&nbsp;test cases.</SPAN><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><U><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Objective</SPAN></U></B><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Let us say that you have developed a text editor called </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; FONT-FAMILY: Arial">Editor+</SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; FONT-FAMILY: Arial"> which is the next version of already developed application called </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; FONT-FAMILY: Arial">Editor</SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; FONT-FAMILY: Arial">. &nbsp;Now your goal is to test backward compatibility, i.e. </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; FONT-FAMILY: Arial">Editor+</SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; FONT-FAMILY: Arial"> should be able to open and modify files that were created using </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; FONT-FAMILY: Arial">Editor</SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; FONT-FAMILY: Arial">.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; FONT-FAMILY: Arial">To achieve this goal, we need to perform the following 2 tasks:</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 150%"><B><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Task 1<I>:</I></SPAN></B><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> </SPAN></I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Have a repository called </SPAN><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Version 1 Files</SPAN></I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">, which will contain files that were created using </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Editor</SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: 150%"><B><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Task 2</SPAN></B><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">: </SPAN></I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Make an application that will: </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">a.</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy; LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">open each file in this repository </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">b.</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy; LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">make </SPAN><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">different kinds of modifications</SPAN></I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> to the contents </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">c.</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy; LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">save and close the file.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">So, you have a set of input, which is constant. But each test case needs to perform a different action on this set.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><U><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; FONT-FAMILY: Arial">Performing Task 1</SPAN></U></B><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Making the repository is a 1 time job. You can either do it manually or make it using some tools.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><U><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Performing Task 2</SPAN></U></B><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">The application will comprise of mainly 2 components. </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">1.</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy; LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">A generic class called Reader which will implement the logic of opening each file from the repository, perform the required set of modification, save and close the file.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">2.</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy; LINE-HEIGHT: 150%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Test cases which use the Reader class and implement the actual set of modification as per their requirement. Example of a few test cases could be like the following: </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">TestCase1: Add letter “x” in the beginning of each file in </SPAN><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Version 1 Files</SPAN></I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> using </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Editor+</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; LINE-HEIGHT: 150%"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">TestCase2: Delete the last line in each file in </SPAN><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Version 1 Files </SPAN></I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: navy; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">using </SPAN><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Editor+</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><U><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Reader class</SPAN></U></B><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Let us define a class called </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #ff6600; FONT-FAMILY: Arial">Reader</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">, which can do the following:</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol">·</SPAN><SPAN style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Provide a function which can recursively look at each file in repository </SPAN><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; FONT-FAMILY: Arial">Version 1 Files</SPAN></I><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Symbol">·</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Open the file</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Symbol">·</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Modify the file according to the user’s request</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Symbol">·</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: navy">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Close the file</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Here is the pseudo code implementation of such a function in </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #ff6600; FONT-FAMILY: Arial">Reader</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> class</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">Function WorkOnFiles (“</SPAN><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; FONT-FAMILY: Arial">Version 1 Files</SPAN></I><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">”)</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">{</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp; For each file in directory “</SPAN><I><SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #ff6600; FONT-FAMILY: Arial">Version 1 Files</SPAN></I><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">”</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp; {</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open (File)</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modify (File)</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close (File)</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>}</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">The logic of opening and closing each file will be the same for all the files and can be left to the </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #ff6600; FONT-FAMILY: Arial">Reader</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> class. But the challenge comes in handling the Modify function since each test case wants to modify the files in a different way. Like the first case wants to “add ‘x’ at the beginning of the file” whereas the other wants to “delete the last line” in the each file.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Using delegates we can handle such a situation. You just need to define the “Modify” function as a delegate in </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #ff6600; FONT-FAMILY: Arial">Reader</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> class so that each test case can initialize this with its own implementation of modify function. Just add the following lines in your </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #ff6600; FONT-FAMILY: Arial">Reader</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> class.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// Delegate that defines the function which will be used to </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// “Make Changes” to a document</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;/summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;param name="filehandle"&gt;The file handle&lt;/param&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;returns&gt;success/failure&lt;/returns&gt;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">public</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> <SPAN style="COLOR: blue">delegate</SPAN> <SPAN style="COLOR: blue">bool</SPAN> modify(Object fileHandle);</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt -0.25in">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">private</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> modify&nbsp; modifyFunction;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt -0.25in">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// Get/Set actions for ModifyFunction so that the test case can call it</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;/summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">public</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> modify ModifyFunction</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">get</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> {<SPAN style="COLOR: blue">return</SPAN> modifyFunction;}</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">set</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> { modifyFunction = <SPAN style="COLOR: blue">value</SPAN>;}</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">With the introduction of delegate, the WorkOnFiles function in the </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #ff6600; FONT-FAMILY: Arial">Reader</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> class will look like the following. </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">public</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;<SPAN style="COLOR: blue">bool</SPAN> WorkOnFiles(<SPAN style="COLOR: blue">string</SPAN> directoryName)</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">bool</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">result</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">true</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'">;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp; DirectoryInfo</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> info = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: teal">DirectoryInfo</SPAN>(directoryName);</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp; FileInfo</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">[] files = info.GetFiles();</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">foreach</SPAN>(<SPAN style="COLOR: teal">FileInfo</SPAN> file <SPAN style="COLOR: blue">in</SPAN> files)</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp; {</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <SPAN style="COLOR: green">//Open the file</SPAN></SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; <SPAN style="COLOR: blue">object</SPAN> fileHandle = OpenFile(file.Name);</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Do error handling for the returned file handle </SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //object</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp; &nbsp;//Call the function specified by the test case that makes </SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; //changes to the file</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; result &amp;= ModifyFunction(fileHandle);</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Call the function that closes the file</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; CloseFile(fileHandle);</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp; }</SPAN>&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; …</B><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">return</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> result;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN><o:p></o:p>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><U><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Test Case logic</SPAN></U></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><U><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"></SPAN></U></B><o:p></o:p>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Your test case can now provide its own customized Modify function according to its need.&nbsp;Here is how your test cases would initialize the </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #ff6600; FONT-FAMILY: Arial">Reader</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> class and use it.</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"></SPAN><o:p></o:p>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// Test case which goes thru each file in a directory, </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// opens each file, adds 'x' in the beginning&nbsp;of the file, </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// saves&nbsp;and closes.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;/summary&gt;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">public</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> result TestCase1 ()</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">Reader</SPAN> myReader = new <SPAN style="COLOR: blue">Reader</SPAN> ();</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: green"> //The function which will&nbsp;add 'x' at the beginning</SPAN></SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myReader.ModifyFunction = MyAddX;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;&nbsp;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> ...</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;&nbsp; //Call the function which will recursively open, modify and </SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //close </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">the files</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;&nbsp; myReader.WorkOnFiles(“<I><SPAN style="BACKGROUND: white; COLOR: #ff6600">Version 1 Files</SPAN></I>”);</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;...</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}&nbsp;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// Test case which goes thru each file in a directory, </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// opens each file, deletes the last line of the file, </SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// saves&nbsp;and closes.</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;/summary&gt;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN>&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">public</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> result TestCase2 ()</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">Reader</SPAN> myReader = new <SPAN style="COLOR: blue">Reader</SPAN> ();</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: green">&nbsp; //The function which will&nbsp;delete the last line</SPAN></SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myReader.ModifyFunction = MyDeleteLastLine;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; ...</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;//Call the function which will recursively open, modify and </SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// close </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">the files</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;&nbsp; myReader.WorkOnFiles(“<I><SPAN style="BACKGROUND: white; COLOR: #ff6600">Version 1 Files</SPAN></I>”);</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">&nbsp;<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;...</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: navy"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// Sample MyAddX function</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;/summary&gt;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN>&nbsp;<SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-bidi-font-family: Arial"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">public</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"> bool </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">MyAddX <SPAN style="COLOR: navy">(</SPAN><SPAN style="COLOR: blue">object</SPAN><SPAN style="COLOR: navy"> </SPAN>fileHandle)<SPAN style="COLOR: navy"><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'">{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">bool</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">result<SPAN style="COLOR: navy"> </SPAN>=<SPAN style="COLOR: navy"> </SPAN><SPAN style="COLOR: blue">true</SPAN><SPAN style="COLOR: navy">;<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>…<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">return</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">result;<SPAN style="COLOR: navy"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><BR>}</SPAN>&nbsp;<SPAN style="COLOR: navy"><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;summary&gt;</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">/// Sample MyDeleteLastLine function</SPAN><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">///</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">&lt;/summary&gt;</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN>&nbsp;<SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">public</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">bool</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">MyDeleteLastLine<SPAN style="COLOR: navy"> (</SPAN><SPAN style="COLOR: blue">object</SPAN><SPAN style="COLOR: navy"> </SPAN>fileHandle)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'">{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">bool</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">result<SPAN style="COLOR: navy"> </SPAN>=<SPAN style="COLOR: navy"> </SPAN><SPAN style="COLOR: blue">true</SPAN><SPAN style="COLOR: navy">;<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>…<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">return</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: 'Courier New'"> </SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">result<SPAN style="COLOR: navy">;<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><BR>}</SPAN>&nbsp;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-bidi-font-family: Arial"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial; mso-bidi-font-family: Arial"><o:p>(<FONT face="Times New Roman"><FONT color=#000000>This posting is provided "AS IS" with no warranties, and confers no rights.&nbsp;</FONT><FONT color=#000000>Use of included script samples are subject to the terms specified at </FONT></FONT><A href="https://www.microsoft.com/info/cpyright.htm" target=_blank><FONT face="Times New Roman">https://www.microsoft.com/info/cpyright.htm</FONT></A>)</o:p></SPAN></P>]]></content:encoded>
    </item>
  </channel>
</rss>