Hi Remy,
it is easy for you to say (I know that you have the knowledge), but try to get any info if you are beginning from zero. Google for "change ip address programmatically" or similar, and all you will get is about C#, powershell, WMI...
I did found some examples built around native API, but not all I need. For some functions, I needed to use WMI because of the available info. At the end, I've decided to do all over the WMI, and not with a combination of native/WMI.
There was also some info on the net, which APIs will be deprecated in the future versions of Windows, and MS' advice was to use WMI because they will keep the frontend API as is for some time, thus giving me hope that my app will keep working with future versions of Windows for at least some time.
I can't recall all the details, but I can recall that I’ve made some decisions according to such kind of info.