Coredll.dll is the main device native code library. There is not a desktop version of it. The advanced drawing functions are implemented entirely differently on the desktop to the device, that is why there are two ImageLibEx libraries. The device needs to call native code for some things that are available in the .NET Framework on the desktsop. To implement gradient fill you will also need two different libraries or possibly one with conditional statements to do the right thing at runtime.