I have polygon and array of polylines. Each polyline may be closed or not. Also each polyline may not divide the polygon into 2 or more parts. The problem is to construct the array of polygons which are the parts of my big polygon, bounded by one or more polylines. Each of these polygons should not intersect some of given polylines.

I try, first, to create buffers polygons from given polylines, unify buffers into one buffer-polygon and then to differ all of buffers from my big polygon. But when I write:
IGeometryPtr differedGeom(CLSID_Polygon);
ITopologicalOperator3Ptr pTop;
pTop = internalRect;
pTop->Difference(myPolygon, &differedGeom);
and insert differedGeom into Feature class, it presents as array of rings but not array of polygons.