<?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/tags/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/tags/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;h2 id="motivation"&gt;Motivation&lt;/h2&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-cs" data-lang="cs"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Type&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ESRI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ArcGIS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Framework&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AppRefClass&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Object&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Activator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateInstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&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-cs" data-lang="cs"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Type&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetTypeFromCLSID&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ESRI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ArcGIS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Framework&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AppRefClass&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;GUID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Object&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Activator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateInstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&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 &lt;code&gt;AppRefClass&lt;/code&gt;. This is not possible.&lt;/p&gt;
&lt;p&gt;And in the second one, the runtime does not knows anything about &lt;code&gt;AppRefClass&lt;/code&gt;. So it leave it as &lt;code&gt;IUnknown&lt;/code&gt;.&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;h2 id="motivation"&gt;Motivation&lt;/h2&gt;
&lt;p&gt;During programming suddenly this error (&lt;code&gt;Failure has occurred while loading a type&lt;/code&gt;) 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 &lt;em&gt;fuslogvw&lt;/em&gt; 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>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 &lt;code&gt;regasm&lt;/code&gt; 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-fs" data-lang="fs"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;open&lt;/span&gt; &lt;span class="nf"&gt;System;;&lt;/span&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 class="nf"&gt;#I&lt;/span&gt; &lt;span class="nf"&gt;&amp;#34;C:\Program&lt;/span&gt; &lt;span class="nf"&gt;Files\ArcGIS\DotNet&amp;#34;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;#r&lt;/span&gt; &lt;span class="nf"&gt;&amp;#34;ESRI.ArcGIS.System.dll&amp;#34;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;#r&lt;/span&gt; &lt;span class="nf"&gt;&amp;#34;ESRI.ArcGIS.DataSourcesGDB.dll&amp;#34;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;#r&lt;/span&gt; &lt;span class="nf"&gt;&amp;#34;ESRI.ArcGIS.Geodatabase.dll&amp;#34;;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;open&lt;/span&gt; &lt;span class="nf"&gt;ESRI.ArcGIS.esriSystem;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;open&lt;/span&gt; &lt;span class="nf"&gt;ESRI.ArcGIS.DataSourcesGDB;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;open&lt;/span&gt; &lt;span class="nf"&gt;ESRI.ArcGIS.Geodatabase;;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;aoInitialize&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;AoInitializeClass();;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;status&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;workspacefactory&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;SdeWorkspaceFactoryClass();;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;connection&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;&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&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;workspace&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;workspacefactory.OpenFromString(connection,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="nf"&gt;);;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;featureWorkspace&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;(box&lt;/span&gt; &lt;span class="nf"&gt;workspace)&lt;/span&gt; &lt;span class="nf"&gt;:?&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;IFeatureWorkspace;;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;featureClass&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;featureWorkspace.OpenFeatureClass(&amp;#34;Praxair.SFG.BP_L_ROHR&amp;#34;);;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;queryFilter&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;QueryFilterClass();;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;featureCursor&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;featureClass.Search(queryFilter,&lt;/span&gt; &lt;span class="nf"&gt;true);;&lt;/span&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 class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;featureCursorSeq&lt;/span&gt; &lt;span class="nf"&gt;(featureCursor&lt;/span&gt; &lt;span class="kn"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;IFeatureCursor)&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;let&lt;/span&gt; &lt;span class="nf"&gt;actualFeature&lt;/span&gt; &lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;ref&lt;/span&gt; &lt;span class="nf"&gt;(featureCursor.NextFeature())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;seq&lt;/span&gt; &lt;span class="nf"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nf"&gt;(!actualFeature)&lt;/span&gt; &lt;span class="nf"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;null&lt;/span&gt; &lt;span class="k"&gt;do
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;yield&lt;/span&gt; &lt;span class="nf"&gt;actualFeature&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;do &lt;/span&gt;&lt;span class="nf"&gt;actualFeature&lt;/span&gt; &lt;span class="nf"&gt;:=&lt;/span&gt; &lt;span class="nf"&gt;featureCursor.NextFeature()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;};;&lt;/span&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 class="nf"&gt;featureCursorSeq&lt;/span&gt; &lt;span class="nf"&gt;featureCursor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;Seq.iter&lt;/span&gt; &lt;span class="nf"&gt;(fun&lt;/span&gt; &lt;span class="nf"&gt;feature&lt;/span&gt; &lt;span class="nf"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;Console.WriteLine&lt;/span&gt; &lt;span class="nf"&gt;((!feature).OID));;&lt;/span&gt;
&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-cs" data-lang="cs"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;element&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;IMapSurroundFrame&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;IMapSurround&lt;/span&gt; &lt;span class="n"&gt;mapSurround&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;IMapSurroundFrame&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;element&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;MapSurround&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;..&lt;/span&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>