Есть примерно такой код:
IGeoFeatureLayerPtr fl(m_Layers[wLayerID]);
if (fl)
{
IFeatureRendererPtr fr = fl->Renderer;
if (fr)
{
ISimpleRendererPtr sr(fr);
if (sr)
{
ISymbolPtr symbol = sr->Symbol;
if (symbol)
{
int nState = SaveDC(hDC);
SetMapMode(hDC, MM_TEXT);
symbol->SetupDC(reinterpret_cast<OLE_HANDLE>(hDC), NULL);
symbol->Draw(GetGeometry(rc));
symbol->ResetDC();
RestoreDC(hDC, nState);
return S_OK;
}
}
}
}
так вот этот код не работает :(
все валится внутри вызова symbol->Draw(...)
что я делаю не так?
ps GetGeometry - это простой метод, создающий из CRect IEnvelope
IGeometryPtr GetGeometry(CRect rc)
{
IEnvelopePtr env(CLSID_Envelope);
env->PutCoords(rc.left, rc.top, rc.right, rc.bottom);
return env;
}