Basic4ppc, including 6.90, could not pass internal data to a library method with an Object type parameter. It was because of this that the Door and DoorEx libraries had two variants of, say SetProperty, one taking a String as the value parameter and the other taking an Object. The first was used to set data from within Basic4ppc and the other to set "real" Objects from an external library.
I have changed my own version of Basic4ppc to be able to pass to internal data as String types to Object parameters which let me rewrite the DoorEx library as my new Reflection library and remove the String based duplicated methods. However this means that your Basic4ppc cannot use SetProperty in this library as (despite what the Reflection help might still say) it takes Object type parameters, as do the RunMethod variants.
The workaround is to use Object.ValueAsString to set the Value of a Reflection Object to the required value as a string and then pass that Value as the value parameter of a Reflection library method. This works for numbers, strings, Booleans and enum names.
So for your drag and drop this doesn't work passing a String to an Object parameter from inside Basic4pp with the Reflection library.
Obj1.New1
Obj1.FromControl("TextBox1")
Obj1.SetProperty("AllowDrop","True")
Using an intermediate Object does work as the String being passed to an Object parameter is now from outside Basic4ppc which does work.
Obj1.New1
Obj1.FromControl("TextBox1")
Obj2.New1
Obj2.ValueAsString = "True"
Obj1.SetProperty("AllowDrop",Obj2.Value)
Attached is a 6.90 project that should work in the IDE as well as when compiled.