I have a class that inherits from BaseDynamicLayer and I override the DrawDynamicLayer() method. Is there something special that needs to be done for a successful inDynamicDisplay.DrawPolygon(poly) call? The method crashes every time I call it with a "Exception from HRESULT: 0x80040218." I can use the same point collection to create a Polyline and call DrawPolyline(polyLine) without a problem. I can also successfully use all the other draw commands, like DrawMarker() & DrawRectangle().
Is your polygon a simple geometry? You may need to invoke simplify and then try to draw it.
Here's an example of simplifying a polygon