<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ArcObjects on Marko Apfel</title><link>http://blog.marko-apfel.de/topics/arcobjects/</link><description>Recent content in ArcObjects on Marko Apfel</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 12 Sep 2012 15:20:00 +0200</lastBuildDate><atom:link href="http://blog.marko-apfel.de/topics/arcobjects/index.xml" rel="self" type="application/rss+xml"/><item><title>LINQ and ArcObjects</title><link>http://blog.marko-apfel.de/posts/linq-and-arcobjects/</link><pubDate>Wed, 12 Sep 2012 15:20:00 +0200</pubDate><guid>http://blog.marko-apfel.de/posts/linq-and-arcobjects/</guid><description>&lt;h1 id="motivation"&gt;Motivation&lt;/h1&gt;
&lt;p&gt;LINQ (language integrated query) is a component of the Microsoft. NET Framework since version 3.5. It allows a SQL-like query to various data sources such as SQL, XML etc.&lt;/p&gt;
&lt;p&gt;Like SQL also LINQ to SQL provides a declarative notation of problem solving – i.e. you don’t need describe in detail how a task could be solved, you describe what to be solved at all. This frees the developer from error-prone iterator constructs.&lt;/p&gt;</description></item><item><title>Interop effects by resolving and instantiating types with ArcObjects</title><link>http://blog.marko-apfel.de/posts/interop-effects-by-resolving-and-instantiating-types-with-arcobjects/</link><pubDate>Fri, 25 Nov 2011 14:10:00 +0100</pubDate><guid>http://blog.marko-apfel.de/posts/interop-effects-by-resolving-and-instantiating-types-with-arcobjects/</guid><description>&lt;h1 id="problem"&gt;Problem&lt;/h1&gt;
&lt;p&gt;this code does not work&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Type t = typeof(ESRI.ArcGIS.Framework.AppRefClass);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;System.Object obj = Activator.CreateInstance(t);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;but yet this code&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Type t = Type.GetTypeFromCLSID(typeof(ESRI.ArcGIS.Framework.AppRefClass).GUID);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;System.Object obj = Activator.CreateInstance(t);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="reason"&gt;Reason&lt;/h1&gt;
&lt;p&gt;In the first variant the runtime tries to cast to AppRefClass . This is not possible.&lt;/p&gt;</description></item><item><title>"Failure has occurred while loading a type."</title><link>http://blog.marko-apfel.de/posts/failure-has-occurred-while-loading-a-type/</link><pubDate>Fri, 28 Oct 2011 12:08:00 +0200</pubDate><guid>http://blog.marko-apfel.de/posts/failure-has-occurred-while-loading-a-type/</guid><description>&lt;h1 id="motivation"&gt;Motivation&lt;/h1&gt;
&lt;p&gt;During programming suddenly this error (“Failure has occurred while loading a type”) was thrown by accessing a artifact of a referenced library.&lt;/p&gt;
&lt;p&gt;In such cases I take the assembly fusion logger fuslogvw to search for problems of loading assemblies. Sometimes an old version from a not expected folder is binded. But all bindings were correct.&lt;/p&gt;</description></item><item><title>Umfrage-Auswertung zum Workshop “Professionelle Softwareentwicklung mit ArcObjects” auf der ESRI 2011</title><link>http://blog.marko-apfel.de/posts/umfrage-auswertung-zum-workshop-professionelle-softwareentwicklung-mit-arcobjects-auf-der-esri-2011/</link><pubDate>Fri, 27 May 2011 04:04:00 +0200</pubDate><guid>http://blog.marko-apfel.de/posts/umfrage-auswertung-zum-workshop-professionelle-softwareentwicklung-mit-arcobjects-auf-der-esri-2011/</guid><description>&lt;p&gt;Als erstes möchten Jochen und ich uns bei euch Teilnehmern bedanken für das große positive Feedback zu diesem Workshop. Das waren sicher für uns alle 3 sehr spannende Stunden – für euch im technischen Inhalt und für uns in der Frage euren Geschmack zu treffen. Ein derartiger Workshop war eine Premiere für Esri im Rahmen der GIS Konferenz - und eure Einwertung kann man durchaus als einen Arbeitsauftrag an uns auffassen diesbzgl am Ball zu bleiben.&lt;/p&gt;</description></item><item><title>Suppressing Add-in-registration task during build process</title><link>http://blog.marko-apfel.de/posts/suppressing-add-in-registration-task-during-build-process/</link><pubDate>Mon, 16 May 2011 07:17:00 +0200</pubDate><guid>http://blog.marko-apfel.de/posts/suppressing-add-in-registration-task-during-build-process/</guid><description>&lt;p&gt;If you develop ArcGIS Add-ins with Visual Studio under limited permissions you get during the build process an error, that the stuff could not be registered.&lt;/p&gt;
&lt;p&gt;Normally its enough to run one times this build as an admin. Then all needed information are set and also taken for users with limited access.&lt;/p&gt;</description></item><item><title>Casing of COM-Interop registered components</title><link>http://blog.marko-apfel.de/posts/casing-of-com-interop-registered-components/</link><pubDate>Tue, 08 Jun 2010 09:54:00 +0200</pubDate><guid>http://blog.marko-apfel.de/posts/casing-of-com-interop-registered-components/</guid><description>&lt;p&gt;During a refactoring i realized that renaming of components, which will be registered for COM-Interop, must be done carefully.&lt;/p&gt;
&lt;p&gt;In my case i changed the casing of XyzToolbar to XyzToolBar.&lt;/p&gt;
&lt;p&gt;At the developing machine everything works fine. But after installing the modified stuff at the production machine, the toolbar was not visible. Using regasm with the new assemblies helped.&lt;/p&gt;</description></item><item><title>F# and ArcObjects, Part 3</title><link>http://blog.marko-apfel.de/posts/f-sharp-and-arcobjects-part-3/</link><pubDate>Fri, 26 Mar 2010 13:15:00 +0100</pubDate><guid>http://blog.marko-apfel.de/posts/f-sharp-and-arcobjects-part-3/</guid><description>&lt;p&gt;Today i played a little bit with IFeature-sequences and piping data.
The result was a calculator of the bounding box around all features in a feature class.&lt;/p&gt;
&lt;p&gt;Maybe a little bit dirty, but for learning was it OK. ;-)&lt;/p&gt;</description></item><item><title>F# and ArcObjects, Part 2</title><link>http://blog.marko-apfel.de/posts/f-sharp-and-arcobjects-part-2/</link><pubDate>Thu, 25 Mar 2010 14:49:00 +0100</pubDate><guid>http://blog.marko-apfel.de/posts/f-sharp-and-arcobjects-part-2/</guid><description>&lt;p&gt;After accessing one feature now i iterate through all features of a feature class:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;open System;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#I &amp;#34;C:\Program Files\ArcGIS\DotNet&amp;#34;;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#r &amp;#34;ESRI.ArcGIS.System.dll&amp;#34;;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#r &amp;#34;ESRI.ArcGIS.DataSourcesGDB.dll&amp;#34;;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#r &amp;#34;ESRI.ArcGIS.Geodatabase.dll&amp;#34;;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;open ESRI.ArcGIS.esriSystem;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;open ESRI.ArcGIS.DataSourcesGDB;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;open ESRI.ArcGIS.Geodatabase;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let aoInitialize = new AoInitializeClass();;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let status = aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let workspacefactory = new SdeWorkspaceFactoryClass();;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let connection = &amp;#34;SERVER=okul;DATABASE=p;VERSION=sde.default;INSTANCE=sde:sqlserver:okul;USER=s;PASSWORD=g&amp;#34;;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let workspace = workspacefactory.OpenFromString(connection, 0);;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let featureWorkspace = (box workspace) :?&amp;gt; IFeatureWorkspace;;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let featureClass = featureWorkspace.OpenFeatureClass(&amp;#34;Praxair.SFG.BP_L_ROHR&amp;#34;);;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let queryFilter = new QueryFilterClass();;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let featureCursor = featureClass.Search(queryFilter, true);;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let featureCursorSeq (featureCursor : IFeatureCursor) = 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; let actualFeature = ref (featureCursor.NextFeature())
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; seq {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; while (!actualFeature) &amp;lt;&amp;gt; null do
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; yield actualFeature
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; do actualFeature := featureCursor.NextFeature()
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; };;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;featureCursorSeq featureCursor
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;|&amp;gt; Seq.iter (fun feature -&amp;gt; Console.WriteLine ((!feature).OID));;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>F# and ArcObjects, Part 1</title><link>http://blog.marko-apfel.de/posts/f-sharp-and-arcobjects-part-1/</link><pubDate>Thu, 25 Mar 2010 10:58:00 +0100</pubDate><guid>http://blog.marko-apfel.de/posts/f-sharp-and-arcobjects-part-1/</guid><description>&lt;p&gt;After having a first look on F# its time to ask: How could i use F# with ArcObjects.&lt;/p&gt;
&lt;p&gt;So my first steps was to do something with a feature in a F# interactive session.
And these are my first code lines:&lt;/p&gt;</description></item><item><title>Nachtrag: Casting Anti-Pattern</title><link>http://blog.marko-apfel.de/posts/nachtrag-casting-anti-pattern/</link><pubDate>Thu, 29 Oct 2009 12:40:00 +0100</pubDate><guid>http://blog.marko-apfel.de/posts/nachtrag-casting-anti-pattern/</guid><description>&lt;p&gt;Wie so oft im Leben sind manche Dinge auf den zweiten Blick komplexer als sie auf dem Ersten den Anschein haben.&lt;/p&gt;
&lt;p&gt;Es kam die Anfrage, ob es nicht doch einen Unterschied zwischen &amp;ldquo;as&amp;rdquo; und &amp;ldquo;is&amp;rdquo; gibt &amp;amp; dann wurden noch ein paar Inputs gefunden, dass im Falle des &amp;ldquo;Überladens von Cast-Operatoren&amp;rdquo; mögliche Fallen lauern.&lt;/p&gt;</description></item><item><title>Casting Anti-Pattern</title><link>http://blog.marko-apfel.de/posts/casting-anti-pattern/</link><pubDate>Thu, 29 Oct 2009 12:35:00 +0100</pubDate><guid>http://blog.marko-apfel.de/posts/casting-anti-pattern/</guid><description>&lt;p&gt;in unten stehendem Code ist ein Anti-Pattern, welches immer wieder im ArcObjects-Kontext zu beobachten ist.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;if (element is IMapSurroundFrame)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; IMapSurround mapSurround = ((IMapSurroundFrame)element).MapSurround;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ..
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Es wird eine is-Abfrage gemacht (element is IMapSurroundFrame) und dann ein Stück später der tatsächliche Cast ((IMapSurroundFrame)element).&lt;/p&gt;</description></item><item><title>Catching COM-Exceptions from ArcObjects</title><link>http://blog.marko-apfel.de/posts/catching-com-exceptions-from-arcobjects/</link><pubDate>Tue, 20 Oct 2009 14:36:00 +0200</pubDate><guid>http://blog.marko-apfel.de/posts/catching-com-exceptions-from-arcobjects/</guid><description>&lt;p&gt;to catch the COM-Exception in own applications thrown from the underlaying ArcObjects-Library could be done with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;catch (COMException ComEx)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Console.WriteLine(string.Format(&amp;#34;MyCode errored: {0}, Error Code: {1}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ComEx.Message, ComEx.ErrorCode));
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;the special error constants could be found under:&lt;/p&gt;</description></item></channel></rss>