<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic E_NOINTERFACE fail to cast IGeoDataset to ISaveAs in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611949#M16426</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm new to ArcObjects and C# and currently I'm trying to take an IRasterBand object and write it to file. The IRasterBand has been cast to IGeoDataset before this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
ISaveAs saveAs = (ISaveAs)EucDistRas; //this is the line that causes the failure
saveAs.SaveAs(targetName, targetWorkspace, "GRID");&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The error I'm getting is as follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'ESRI.ArcGIS.Geodatabase.ISaveAs'. This operation failed because the QueryInterface call on the COM component for the interface with IID'{C7A9E97-597E-4A69-A872-29CB60B5E0DB}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This procedure seems pretty standard. I've seen ESRI help docs that uses this code. I've read that dll registration might cause E_NOINTERFACE errors. So I've unregistered and then re-registered the ESRI.ArcGIS.Geodatabase dll (which ISaveAs resides in). But it doesn't seem to help. If anyone has any advice that would be much appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks :]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Grace&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 16:41:44 GMT</pubDate>
    <dc:creator>GraceCai</dc:creator>
    <dc:date>2021-12-12T16:41:44Z</dc:date>
    <item>
      <title>E_NOINTERFACE fail to cast IGeoDataset to ISaveAs</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611949#M16426</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm new to ArcObjects and C# and currently I'm trying to take an IRasterBand object and write it to file. The IRasterBand has been cast to IGeoDataset before this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
ISaveAs saveAs = (ISaveAs)EucDistRas; //this is the line that causes the failure
saveAs.SaveAs(targetName, targetWorkspace, "GRID");&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The error I'm getting is as follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'ESRI.ArcGIS.Geodatabase.ISaveAs'. This operation failed because the QueryInterface call on the COM component for the interface with IID'{C7A9E97-597E-4A69-A872-29CB60B5E0DB}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This procedure seems pretty standard. I've seen ESRI help docs that uses this code. I've read that dll registration might cause E_NOINTERFACE errors. So I've unregistered and then re-registered the ESRI.ArcGIS.Geodatabase dll (which ISaveAs resides in). But it doesn't seem to help. If anyone has any advice that would be much appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks :]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Grace&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:41:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611949#M16426</guid>
      <dc:creator>GraceCai</dc:creator>
      <dc:date>2021-12-12T16:41:44Z</dc:date>
    </item>
    <item>
      <title>Re: E_NOINTERFACE fail to cast IGeoDataset to ISaveAs</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611950#M16427</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Although you can cast an IRasterBand as an IGeodataset, only MosiacRasters, Rasters, RasterDatasets, and RendererRasters can implement ISaveAs. Can you use IRasterBand::Copy instead?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2012 16:46:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611950#M16427</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2012-07-05T16:46:16Z</dc:date>
    </item>
    <item>
      <title>Re: E_NOINTERFACE fail to cast IGeoDataset to ISaveAs</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611951#M16428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Oh thank you very much! I've tried .Copy on the IRasterBand but I got the error E_FAIL&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;System.Runtime.InteropService.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component. at ESRI.ArcGIS.DataSourcesRaster.IRasterBand.Copy(String copyName, IWorkspace copyWorkspace)...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not sure where to go with that error message... :confused:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Jul 2012 14:09:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611951#M16428</guid>
      <dc:creator>GraceCai</dc:creator>
      <dc:date>2012-07-10T14:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: E_NOINTERFACE fail to cast IGeoDataset to ISaveAs</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611952#M16429</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Can you post your code?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Jul 2012 14:37:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611952#M16429</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2012-07-10T14:37:35Z</dc:date>
    </item>
    <item>
      <title>Re: E_NOINTERFACE fail to cast IGeoDataset to ISaveAs</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611953#M16430</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's my code :]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;String targetWorkspacePath = @"O:\EPScratch\GeomaticsGrace\NTR\TestOutput.gdb";
String targetName = "testOut";
IWorkspace targetWorkspace = (IWorkspace)OpenFeatureWorkspace(targetWorkspacePath);

IRasterBand EucDistRas = CreateDistanceOpEucDistanceFullDistanceRaster(FClass as IGeoDataset);
EucDistRas.Copy(targetName, targetWorkspace);&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;IFeatureWorkspace OpenFeatureWorkspace(string filePath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspaceFactory WorkspaceFactory = new FileGDBWorkspaceFactoryClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkspace Workspace = WorkspaceFactory.OpenFromFile(filePath, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)Workspace; // Explict Cast
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return featureWorkspace;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public IRasterBand CreateDistanceOpEucDistanceFullDistanceRaster(IGeoDataset geoDataset)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (geoDataset is IRaster | geoDataset is IRasterDataset | geoDataset is IRasterBand | geoDataset is IRasterDescriptor | geoDataset is IFeatureClass)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create the RasterDistanceOp object&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDistanceOp distanceOp = new RasterDistanceOpClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object euc_maxDistance = Type.Missing;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object object_missing2 = Type.Missing;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeoDataset geoDataset_result = distanceOp.EucDistanceFull(geoDataset, true, false, false, ref euc_maxDistance, ref object_missing2);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Access the Euclidean distance raster from the output generated
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRasterBandCollection rasterBandCollection = (IRasterBandCollection)geoDataset_result; // Explicit Cast
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRasterBand rasterBand = rasterBandCollection.Item(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IGeoDataset geoDataset_output = (IGeoDataset)rasterBand; // Explicit Cast

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return rasterBand;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Invalid type of GeoDataset for this process
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("CreateDistanceOpEucDistanceFullDistanceRaster Error: invalid input");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(e.ToString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 02:10:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/e-nointerface-fail-to-cast-igeodataset-to-isaveas/m-p/611953#M16430</guid>
      <dc:creator>GraceCai</dc:creator>
      <dc:date>2021-12-12T02:10:57Z</dc:date>
    </item>
  </channel>
</rss>

