Спасибо за инфу - буду копать
А вот тогда еще вопрос, для рисования я использую примерно следущий код (это пока заготовка - только начал)
IDisplayPtr display(CLSID_SimpleDisplay);
if (display->StartDrawing(hDC, esriNoScreenCache) == S_OK)
{
ISimpleRendererPtr sr(CLSID_SimpleRenderer);
IFeatureRendererPtr fr;
if (sr->QueryInterface(&fr) == S_OK)
{
IEnvelopePtr envelope(CLSID_Envelope);
envelope->PutCoords(m_drcBounds.left, m_drcBounds.top, m_drcBounds.right, m_drcBounds.bottom);
ISpatialFilterPtr sflt(CLSID_SpatialFilter);
sflt->putref_Geometry(envelope);
for (size_t i = 0; i < m_Layers.size(); ++i)
{
IDataset* ds = m_Layers(i);
IFeatureClassPtr fcl;
if (ds->QueryInterface(&fcl) == S_OK)
{
IFeatureCursorPtr fcc;
if (fcl->Search(sflt, false, &fcc) == S_OK)
{
fr->Draw(fcc, esriDPGeography, display, NULL);
}
}
}
}
display->FinishDrawing();
}
Метод Draw возвращает E_FAIL, как узнать - почему? IErrorInfo здесь не работает.
При этом метод Search точно возвращает данные - если явно енумеровать - возвращаются нормальные объекты
ps Извините, если что не так и вопросы глупые - с ArcGIS работаю недавно. До этого как-то не приходилось сталкиваться.