Ich würde nativen
Win32-Code nicht 1:1 zu .NET portieren.
.NET bietet einfach zu viele Features, die man mit einer reinen Portierung nicht nutzen kann. Und hinterher verflucht man sich selber weil man keine generischen Listen etc. in seinem Code hat, weil man es gerade bräuchte. Ergo: Eine einfache Portierung macht in aller Regel keinen Sinn. Dafür ist es aber auch nicht gedacht.