works on vb and vb.net...
i use vb.net not vb but i took the code from an api site....

you are right that you shouldnt ALWAYS use api but in this case i have tried both codes and api is faster.

the unmanaged and managed code things just means that for api they are effective only 99.9% of the time or something like that so i think in the end api is better for window dragging because it is faster even if it is unmanaged code...

also you can find, even in vb.net where you have a whole class based on processes and stuff, that some api like shellexecute are faster than vb.net equivelants like process.start.
and it is easier to get the handle of a window by api instead of using processes then the mainwindowhandle property...

those are just few examples....other than that managed code is better like you said