You are here: > ESRI Forums > arcgis engine forums > Thread Replies

ArcGIS Engine Forums

ArcGIS Engine: ArcObjects COM API forum

IIdentify with ArcEngine install   Kirk Kuykendall Dec 03, 2004
Re: IIdentify with ArcEngine install   Steve Shell Dec 03, 2004
Re: IIdentify with ArcEngine install   Kirk Kuykendall Dec 03, 2004
Re: IIdentify with ArcEngine install   Stephen Shell Dec 06, 2004
Re: IIdentify with ArcEngine install   Stephen Shell Dec 06, 2004
Re: IIdentify with ArcEngine install   Kirk Kuykendall Dec 06, 2004
Re: IIdentify with ArcEngine install   Stephen Shell Dec 06, 2004
Re: IIdentify with ArcEngine install   Kirk Kuykendall Dec 06, 2004
Re: IIdentify with ArcEngine install   Stephen Shell Dec 06, 2004
Re: IIdentify with ArcEngine install   Kirk Kuykendall Dec 06, 2004
Re: IIdentify with ArcEngine install   Stephen Shell Dec 06, 2004
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject IIdentify with ArcEngine install 
Author Kirk Kuykendall 
Date Dec 03, 2004 
Message Hi all -

Does someone out there have a machine that has just ArcEngine installed on it?

If so, could you please test and see what's in the array returned by IIdentify.Identify?

The documentation says the array will contain FeatureIdentifyObject's, but this coclass is not available with ArcEngine.

If there's something in the array, I sure would like to know what coclass it is.

Thanks! 
  Kirk Kuykendall
AmberGIS Programming Services & Sales
http://www.ambergis.com
Now Answering questions at:
http://gis.stackexchange.com/


 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Steve Shell 
Date Dec 03, 2004 
Message Hi Kirk,

IIdentify returns: IFeatureIdentifyObj. Looks like a bug in the documentation. If you search on that in the help fils you will see IIdentify with an example. Hope this helps,

Steve Shell
Application Developer
GTG, Inc.
www.geotg.com 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Kirk Kuykendall 
Date Dec 03, 2004 
Message Thanks for the reply Steve.

According to the documentation the FeatureIdentifyObj coclass is the only class that implements IFeatureIdentifyObj.

Since this coclass is in the cartoUI library. I am wondering what is in that array.

Do you have a machine with just ArcEngine installed on it (and no Desktop) ... if so can you check to see if the objects in the array returned by IIdentify are indeed IFeatureIdentifyObj's?

If this is so, then perhaps there is another undocumented coclass that implements IFeatureIdentifyObj ?

Thanks again,

Kirk 
  Kirk Kuykendall
AmberGIS Programming Services & Sales
http://www.ambergis.com
Now Answering questions at:
http://gis.stackexchange.com/


 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Stephen Shell 
Date Dec 06, 2004 
Message Hi Kirk,

My machine only has VB and ArcEngine on it. I ran the code below (on the map control mouse down event) and was able to get a handle on IFeatureIdentifyObj. I loaded a layer into the map control. When I clicked on the layer it returned the feature name. Hope this helps,

Steve 
 
Dim pMap As IMap
    Dim pIdentify As IIdentify
    Dim pPoint As IPoint
    Dim pIDArray As IArray
    Dim pFeatIdObj As IFeatureIdentifyObj
    Dim pIdObj As IIdentifyObj

    Set pMap = mapMain.Map
    Set pIdentify = pMap.Layer(0)

    pMap.ClearSelection
  
    Set pPoint = New Point
    pPoint.x = mapX
    pPoint.y = mapY

    Set pIDArray = pIdentify.Identify(pPoint)

    If Not pIDArray Is Nothing Then
      Set pFeatIdObj = pIDArray.Element(0)
      Set pIdObj = pFeatIdObj
      MsgBox "Feature:" & pIdObj.Name
    End If
 
  Steve Shell
Software Engineer
Opvantek
www.opvantek.com
 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Stephen Shell 
Date Dec 06, 2004 
Message After looking at your message again, I realized: IIdentifyObj is the object your looking for...

Steve
 
  Steve Shell
Software Engineer
Opvantek
www.opvantek.com
 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Kirk Kuykendall 
Date Dec 06, 2004 
Message Thanks Steve, one more question though, could you fire up Categories.exe on your machine and see what is in the ESRI IdentifyObj category?

Kirk 
  Kirk Kuykendall
AmberGIS Programming Services & Sales
http://www.ambergis.com
Now Answering questions at:
http://gis.stackexchange.com/


 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Stephen Shell 
Date Dec 06, 2004 
Message Hmm... I don't have categories.exe on my machine. I'm guessing it comes with ArcGIS. I did check the Object Browser and it has the same 3 properties and 3 methods that are listed in the help files.

Steve
 
  Steve Shell
Software Engineer
Opvantek
www.opvantek.com
 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Kirk Kuykendall 
Date Dec 06, 2004 
Message Oh that's right ... no categories.exe ... could you please fire up OleView, I think its under microsoft visual studio 6 tools, and see whats under ObjectClasses>Grouped By Component Category>ESRI IdentifyObj> ?

Thanks,

Kirk 
  Kirk Kuykendall
AmberGIS Programming Services & Sales
http://www.ambergis.com
Now Answering questions at:
http://gis.stackexchange.com/


 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Stephen Shell 
Date Dec 06, 2004 
Message I opened up OleView but didn't see IdentifyObj listed. I went and opened up the esri carto object library from the program files directory and found it in there. Below is the info for IdentifyObj:

[
odl,
uuid(3947C520-D34A-11D2-8CD0-00C04F5B951E),
helpstring("Provides access to members that control feature identification for a layer."),
helpcontext(0x00002b14),
oleautomation
]
interface IIdentifyObj : IUnknown {
[helpstring("Indicates if the object can identify the specified layer."), helpcontext(0x00002b15)]
HRESULT _stdcall CanIdentify(
[in] ILayer* pLayer,
[out, retval] VARIANT_BOOL* b);
[propget, helpstring("The window handle."), helpcontext(0x00002b16)]
HRESULT _stdcall hWnd([out, retval] OLE_HANDLE* hWnd);
[propget, helpstring("Name of the identify object."), helpcontext(0x00002b17)]
HRESULT _stdcall Name([out, retval] BSTR* Name);
[propget, helpstring("Target layer for identification."), helpcontext(0x00002b18)]
HRESULT _stdcall Layer([out, retval] ILayer** ppLayer);
[helpstring("Flashes the identified object on the screen."), helpcontext(0x00002b19)]
HRESULT _stdcall Flash([in] IScreenDisplay* pDisplay);
[helpstring("Displays a context sensitive popup menu at the specified location."), helpcontext(0x00002b1a)]
HRESULT _stdcall PopUpMenu(
[in] long x,
[in] long y);
};

Let me know if this helps,

Steve
 
  Steve Shell
Software Engineer
Opvantek
www.opvantek.com
 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Kirk Kuykendall 
Date Dec 06, 2004 
Message Hi Steve -

Thanks, this helps eliminate one explanation of how IIdentify works. The documentation on them is rather lacking.

The big question for me is: if IIdentify does indeed always return instances of FeatureIdentifyObj's (instead of some other coclass that implements IFeatureIdentifyObj) then how does it instantiate them since they live in CartoUI, which does not get installed with Engine?

So I was thinking: OK, the featurelayer's IIdentify.Identify method must loop though each coclass in the IdentifyObj category and use the first one that returns true for IIdentifyObj.CanIdentify. This would follow the pattern used by propertypages.

But since there is no category I'm stumped.

Presumably there is no UI in Engine, but I suspect it is possible to reparent the hWnd returned by IIdentifyObj.hWnd to a container control on a custom identifydialog.

I guess I need to repartition my machine to get an install of Engine (without desktop) to work with.

Thanks again for your help.

Kirk
 
  Kirk Kuykendall
AmberGIS Programming Services & Sales
http://www.ambergis.com
Now Answering questions at:
http://gis.stackexchange.com/


 
   
Report Inappropriate Content • Top • Print • This Forum is closed for replies.    
Subject Re: IIdentify with ArcEngine install 
Author Stephen Shell 
Date Dec 06, 2004 
Message Hi Kirk,

If your working on an ArcEngine app, I would definately suggest using a separate machine. I find having the documentation encompass the whole suite of products to be a pain just because I might find a useful class only to realize that its only available in Arcmap. I couldn't imagine if I had to deal with that in the object browser as well!

BTW, CartoUI is available in ArcEngine. I had to reference that .dll in my project so I have access to it. Thats why I had to open the file in OleView since OleView isn't part of the project.

Steve
 
  Steve Shell
Software Engineer
Opvantek
www.opvantek.com