Naja, es gibt die Eigenschaft Bitmap32.Bits.
Du könntest also entweder
a) Den Pointer in ein Array casten und dann übergeben. Da musst du nur sichergehen dass die
dll da nix dran rumpfuscht und du darfst währenddessen natürlich nix zeichnen.
b) Mit memcpy/Move oder so das ganze in ein Array kopieren. Sollte auch deutlich schneller gehen als Pixelweise.
Ich nehme mal an, die
dll erwartet die Pixel im passenden Format (ARGB oder ABGR) - ansonsten musst du wohl doch nochmal mit ner Schleife drüber.