Im Prinzip wie InflateRect.
...
Da werden vier Betondeckungen (Margins) vorgeben.
InflateRect verschiebt die Kanten um einen bestimmten Wert nach außen bzw. innen (bei negativem Wert). Dabei können zwei separate Abstände für die waagerechten und senkrechten Kanten übergeben werden. In deinem Fall sind das aber wohl vier separate Werte (Margins), wobei mir nicht klar ist, wie sich diese auf nicht achs-parallele Kanten auswirken sollen.
Kannst du eine Regel formulieren, was mit jeder Polygonkante passieren soll? Die Analogie zu InflateRect erschließt sich mir hier noch nicht vollständig oder ist zumindest lückenhaft. Ich kann eigentlich nur dann intuitiv etwas ableiten, wenn man von dem Polygon genau die Punkte und Kanten betrachtet, die auf dem umschließenden Rechteck liegen.