/// <summary> /// Obtain DataObject, Draggables and DropEffects, by calling AssignDataObject, QuerryDraggablesFromDataObject /// and QueryDropEffects() script commands. /// </summary> /// <param name="iSupportDropVariable"></param> /// <param name="destinationDataObjectVariable"></param> /// <param name="destinationVariable"></param> /// <param name="skipIfExists"></param> /// <param name="nextCommand"></param> /// <returns></returns> public static IScriptCommand QueryShellDragInfo( string iSupportDropVariable = "{ISupportDrop}", string destinationDataObjectVariable = "{DataObj}", string destinationVariable = "{Draggables}", string queryDropResultVariable = "{QueryDropResult}", bool skipIfExists = false, IScriptCommand successCommand = null, IScriptCommand otherwiseCommand = null) { return(HubScriptCommands.AssignDataObject(destinationDataObjectVariable, false, HubScriptCommands.QueryDraggablesFromDataObject(iSupportDropVariable, destinationDataObjectVariable, destinationVariable, false, //And if there's draggables, ScriptCommands.IfAssigned("{DragDrop.Draggables}", ScriptCommands.IfNotEquals("{DragDrop.Draggables.Count()}", 0, //Call ISupportDrop.QueryDropEffects() to get QueryDropEffect. HubScriptCommands.QueryDropEffects(iSupportDropVariable, destinationVariable, destinationDataObjectVariable, null, queryDropResultVariable, false, ScriptCommands.IfEquals(queryDropResultVariable, FileExplorer.Defines.QueryDropEffects.None, otherwiseCommand, successCommand)), otherwiseCommand), otherwiseCommand)))); }