Mit der Zwischenablage wird es auf jeden Fall am einfachsten. Andernfalls müsstest du deine Funktion auf die verschiedensten Steuerelemente anpassen. Bei gezeichneten Steuerelementen, die kein eindeutiges Handle haben, würde es dann nochmals schwerer werden.
Also bevorzuge ich definitiv die Zwischenablagen-Variante.
Mit _ClipBoard_GetData und _ClipBoard_SetData, kannst du nicht nur Text auslesen und zwischenspeichern, sondern auch Bilder & co. Damit solltest du deine Funktion umsetzen können.
Sicher ist es nur dann zwischengespeichert, solange dein Programm während der Funktion stabil läuft..