As far as I’m aware you’ve got two choices when you want to call non .NET assemblies, DllImport or Interop.
For DllImport you’ll want to consult pinvoke.net.
But that DllImport syntax isn’t for everyone, some like to pretend we are working with .NET assemblies and want to use an Interop DLL, but how?
First you need to generate one using Tlbimp.exe (Type Library Importer)
c:\Windows\System32>tlbimp shell32.dll /out:me.dll
Microsoft (R) .NET Framework Type Library to Assembly Converter 3.5.30729.1
Copyright (C) Microsoft Corporation. All rights reserved.
Type library imported to c:\Windows\System32\me.dll
Now just include the me.dll in your project (as a normal .NET assembly reference), stick a “using Shell32 = me;” / “Import Shell32 = me” in your source code and voila, Shell32.Folder etc is at your disposal.
Note: retrospectively thinking, don’t generate the dll into System32, you’re just asking for trouble.