MX2008015484A - Arrastrar y dejar caer objetos entre modulos locales y remotos. - Google Patents

Arrastrar y dejar caer objetos entre modulos locales y remotos.

Info

Publication number
MX2008015484A
MX2008015484A MX2008015484A MX2008015484A MX2008015484A MX 2008015484 A MX2008015484 A MX 2008015484A MX 2008015484 A MX2008015484 A MX 2008015484A MX 2008015484 A MX2008015484 A MX 2008015484A MX 2008015484 A MX2008015484 A MX 2008015484A
Authority
MX
Mexico
Prior art keywords
drop
drag
act
component
application
Prior art date
Application number
MX2008015484A
Other languages
English (en)
Inventor
Nadim Y Abdo
Carl M Carter-Schwendler
Elton Saul
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2008015484A publication Critical patent/MX2008015484A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

La presente invención se extiende a métodos, sistemas, y productos de programa de computadora para arrastrar y dejar caer objetos entre módulos locales y remotos. Los componentes de servidor de terminal simulan la funcionalidad de participantes en operaciones de arrastre y caída para facilitar el arrastre y caída de objetos entre módulos locales y remotos y viceversa. Los componentes de servidor de terminal interactúan localmente para comunicarse con módulos que participan en una operación de arrastre y caída. Los componentes de servidor de terminal también envían mensajes a través de una sesión de servidor de terminal para confiar información de arrastre y caída apropiada a los componentes de servidor de terminal correspondientes en el otro extremo de la sesión de servidor de terminal.

Description

ARRASTRAR Y DEJAR CAER OBJETOS ENTRE MODULOS LOCALES Y REMOTOS ANTECEDENTES Los sistemas de computadora y tecnología relacionada afectan muchos aspectos de sociedad. De hecho, la capacidad del sistema de computadora para procesar información ha transformado la forma en que vivimos y trabajamos. Los sistemas de computadora ahora comúnmente realizan varias tareas (por ejemplo, procesamiento de palabra, programación, y manejo de bases de datos) que previo a la llegada del sistema de computadora se realizaban manualmente. Típicamente, para realizar estas varias tareas, un sistema de computadora incluye un número de aplicaciones correspondientes. Por ejemplo, para realizar procesamiento de palabra, un sistema de computadora puede incluir una aplicación de procesamiento de palabra, para manipular hojas de cálculo y un sistema de computadora puede incluir una aplicación de hoja de cálculo, etc. En un ambiente de cómputo individual, frecuentemente es útil ser capaz de mover objetos entre aplicaciones que realizan diferentes tareas en un sistema de computadora. Por ejemplo, puede ser útil mover una porción de texto generada en aplicación de procesamiento de palabra en un programa de presentación como el texto descriptivo para una imagen o dibujo. Para permitir movimiento de objetos entre aplicaciones, algunos sistemas de computadora incluyen una porción de memoria (por ejemplo, portapapeles) que pueden interconectarse en una forma común por aplicaciones en el sistema de computadora. De esa forma, una aplicación puede interconectarse con la porción de memoria para almacenar un objeto y entonces otra aplicación puede interconectarse con la porción de memoria para recuperar el objeto. De esa forma, las aplicaciones (incluso aquellas que no pueden intercambiar compatiblemente objetos de forma directa) pueden intercambiar objetos a través de la memoria de porción. Muchos ambientes de cómputo individuales también incluyen la capacidad más conveniente para utilizar dispositivos de entrada en combinación con pistas visuales para transferir directamente objetos entre aplicaciones compatibles. Un mecanismo común para transferencias directas entre aplicaciones es "arrastrar y dejar caer". Para facilitar arrastrar y dejar caer, un usuario identifica un objeto en una aplicación (por ejemplo, una porción de texto, una imagen, o una celda de hoja de cálculo). Por ejemplo, el usuario puede resaltar una porción de texto con un ratón. Una pista visual, por ejemplo, iluminación oscura, puede utilizarse para indicar al usuario que el texto está seleccionado. El usuario manipula dispositivos de entrada para seleccionar el objeto identificado. Por ejemplo, el usuario manipula un ratón para mover un cursor sobre el texto identificado y entonces puede oprimir un botón de ratón izquierdo. El usuario entonces además manipula dispositivos de entrada para mover el objeto a otra aplicación. Por ejemplo, mientras mantiene el botón de ratón izquierdo oprimido, el usuario puede manipular el ratón para mover (arrastrar) el cursor sobre la parte superior de la otra aplicación. Una vez en la parte superior de la otra aplicación, el usuario puede liberar el botón de ratón izquierdo. El acto de liberar el botón de ratón causa que el objeto se transfiera a (o se deje caer en) la otra aplicación. En otros ambientes, los sistemas de computadora se acoplan entre sí y a otros dispositivos electrónicos para formar tanto redes de computadora por cable e inalámbricas sobre las cuales los sistemas de computadora y otros dispositivos electrónicos pueden transferir datos electrónicos. Como un resultado, muchas tareas realizadas en un sistema de computadora (por ejemplo, comunicación por voz, acceder a correo electrónico, controlar electrónica de hogar, navegación web, e imprimir documentos) incluye la comunicación (por ejemplo, el intercambio de mensajes electrónicos) entre un número de sistemas de computadora y/u otros dispositivos electrónicos a través de redes de computadora por cable y/o inalámbricas. En un ambiente en red, también frecuentemente es útil ser capaz de mover objetos entre aplicaciones que realizan diferentes tareas, en donde algunas aplicaciones corren localmente y otras aplicaciones corren remotamente, por ejemplo, en un servidor de terminal. Un servidor de terminal es un sistema de computadora que mantiene aplicaciones que pueden ejecutarse remotamente por los sistemas de computadora de cliente. La entrada se ingresa en un sistema de computadora de cliente y se transfiere en una red (por ejemplo, al utilizar protocolos basándose en ITU T.120 de familia de protocolos, tal como, por ejemplo, Protocolo de Escritorio Remoto ("RDP")) a una aplicación en el servidor de terminal. La aplicación procesa la entrada como si la entrada se ingresará en el servidor de terminal. La aplicación genera salida en respuesta a la entrada recibida y la salida se transfiere en la red (por ejemplo, también protocolos basados en T.120) al sistema de computadora de cliente. El sistema de computadora de cliente presenta los datos de salida. De esa forma, la entrada se recibe y la salida presentada en el sistema de computadora de cliente, mientras el procesamiento realmente ocurre en el servidor de terminal. Para permitir el movimiento de objetos entre aplicaciones locales y remotas, algunos sistemas de computadora en red incluyen funcionalidad de portapapeles similar a la utilizada en un ambiente individual. Una porción de memoria (o portapapeles) se distribuye y puede interconectarse en una forma común por aplicaciones en el sistema de computadora. De esa forma, una aplicación local puede interconectarse con la porción de memoria para almacenar un objeto y entonces una aplicación remota puede interconectarse con la porción de memoria para recuperar el objeto o viceversa. De esa forma, las aplicaciones (incluso aquellas que corren en diferentes sistemas de computadora) pueden intercambiar objetos a través de la memoria de porción. Sin embargo, muchos sistemas de computadora en red carecen de la capacidad más conveniente de arrastrar y dejar caer objetos entre aplicaciones locales y remotas y viceversa. Es decir, los componentes de servidor de terminal de cliente y servidor típicamente no se configuran para transferir por arrastre y dejar caer objetos a través de una sesión de servidor de terminal y para interactuar con una fuente de dejar caer u objetivo para dejar caer para facilitar una transferencia de arrastre y dejar caer. Por ejemplo, un componente de servidor típicamente no tiene forma de determinar si el movimiento de un cursor de ratón fuera de una ventana de escritorio remota (un sistema de cliente) se asocia con operación de dejar caer y dejar caer o si un usuario mueve el cursor por otras razones.
BREVE DESCRIPCION DE LA INVENCION La presente invención se extiende a métodos, sistemas, y productos de programa de computadora para arrastrar y dejar caer objetos entre módulos locales y remotos. En algunas modalidades, un objeto se arrastra y deja caer desde una aplicación local hacia uno aplicación remota. Un componente de cliente detecta que un curso de ventana de escritorio se movió desde afuera hacia dentro de los límites de una ventana de aplicación para una aplicación remota. El componente de cliente recibe una notificación de dejar caer que indica una operación de dejar caer y arrastre pendiente. La notificación de dejar caer indica que un objeto de arrastre y dejar caer se va a transferir a la aplicación remota. El componente de cliente envía una solicitud para transferir el objeto para arrastrar y dejar caer junto con una ubicación de coordenadas del cursor de ventana de escritorio hacia un sistema de computadora de servidor a través de una sesión de servidor de terminal. Un componente de servidor recibe la solicitud y dirige una notificación de transferencia de objeto de arrastrar y dejar caer a la aplicación remota. El componente de servidor actúa como una fuente para dejar caer de proxy a beneficio de la aplicación local en respuesta a recibir la solicitud para transferir un objeto de arrastre y dejar caer, que incluye recibir una solicitud para el objeto de arrastre y dejar caer de la aplicación remota. El componente de servidor dirige la solicitud para el objeto de arrastre y dejar caer al componente de cliente a través de la sesión de servidor de terminal. El componente de cliente recibe la solicitud del objeto de arrastre y dejar caer del sistema de computadora de servidor a través de la sesión de servidor de terminal. El componente de cliente actúa como un objetivo para dejar caer de proxy a beneficio de la aplicación remota, que incluye dirigir la solicitud para el objeto de arrastrar y dejar caer en la aplicación local y recibir el objeto para arrastrar y dejar caer de la aplicación local. El componente de cliente envía el objeto de arrastrar y dejar caer al sistema de computadora de servidor a través de la sesión de servidor de terminal. El componente de servidor recibe el objeto para arrastrar y dejar caer y el componente de cliente a través de la sesión de servidor de terminal. El componente de servidor actúa como una fuente para dejar caer de proxy a beneficio de la aplicación local, que incluye enviar el objeto de arrastre y dejar caer a la aplicación remota. En otras modalidades, un objeto se arrastra y deja caer desde una aplicación remota hacia una aplicación local. Un componente de cliente detecta que un cursor de ventana de escritorio se movió desde dentro hacia fuera de los límites de una aplicación remota. El componente de cliente envía un mensaje al componente de servidor a través de la sesión de servidor de terminal. El mensaje indica al componente de servidor que el cursor de ventana de escritorio se movió desde dentro hacia fuera de los límites de ventana de aplicación para la aplicación remota. El componente de servidor recibe el mensaje del componente de cliente a través de la sesión de servidor de terminal. El componente de servidor determina que el movimiento del cursor de ventana de escritorio se asocia con una operación para arrastrar y dejar caer pendiente. El componente de cliente actúa como una fuente para dejar caer de proxy a beneficio de la aplicación remota, que incluye recibir una consulta de un objeto para arrastrar y dejar caer de la aplicación local. La consulta es indicativa de una notificación para dejar caer en la aplicación local que representa que el objeto para arrastrar y dejar caer se va transferir a la aplicación local. El componente de cliente envía una solicitud para el objeto de arrastrar y dejar caer al componente de servidor a través de la sesión de servidor de terminal. El componente de servidor recibe la solicitud. El componente de servidor actúa como un objetivo para dejar caer de proxy a beneficio de la aplicación local, que incluye dirigir la solicitud para el objeto para arrastrar y dejar caer a la aplicación remota y recibir el objeto para arrastrar y dejar caer de la aplicación remota. El componente de servidor envía el objeto para arrastrar y dejar caer al sistema de computadora de cliente a través de la sesión de servidor de terminal. El componente de cliente recibe el objeto para arrastrar y dejar caer. El componente de cliente actúa como una fuente para dejar caer de proxy a beneficio de la aplicación remota, que incluye enviar el objeto de para arrastrar y dejar caer a la aplicación local. Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe más adelante en la descripción detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado. Características y ventajas adicionales se mencionarán en la descripción que sigue, y en parte serán obvias a partir de la descripción, o pueden aprenderse por la práctica de las enseñanzas aquí. Características y ventajas de la invención pueden realizarse y obtenerse por medio de instrumentos y combinaciones particularmente señaladas en las reivindicaciones anexas. Características de la presente invención serán más completamente evidentes a partir de la siguiente descripción y reivindicaciones anexas, o pueden aprenderse por la práctica de la invención como se menciona aquí más adelante.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Con el fin de describir la forma en la cual las ventajas y características antes mencionadas y otras pueden obtenerse, se presentará una descripción más particular del tema brevemente descrito anteriormente por referencia a modalidades específicas que se ¡lustran en los dibujos anexos. Al entender que estos dibujos sólo ilustran modalidades típicas y por lo tanto no se consideran que limiten el alcance, las modalidades se describirán y explicarán con especificación adicional y detalle a través del uso de los dibujos anexos en donde: la Figura 1A ¡lustra una arquitectura de computadora ilustrativa que facilita arrastrar y dejar caer un objeto desde un módulo local hacia un módulo remoto. La Figura 1B ¡lustra una ventana de escritorio ilustrativa que ilustra una operación de arrastrar y dejar caer desde un módulo local hacia un módulo remoto. Las Figuras 2A-2C ¡lustra un cuadro de flujo de un método ilustrativo para arrastrar y dejar caer un objeto desde de un módulo local hacia un módulo remoto. La Figura 3A ilustra una arquitectura de computadora ilustrativa que facilita arrastrar y dejar caer un objeto desde un módulo remoto hacia un módulo local. La Figura 3B ¡lustra una ventana de escritorio ilustrativa que ilustra una operación para arrastrar y dejar caer desde un módulo remoto hacia un módulo local. Las Figuras 4A-4C ilustran un cuadro de flujo de un método ilustrativo para arrastrar y dejar caer un objeto de un módulo remoto a un módulo local.
DESCRIPCIÓN DETALLADA La presente invención se extiende a métodos, sistemas, y productos de programa de computadora para arrastrar y dejar caer objetos entre módulos locales y remotos. En algunas modalidades, un objeto se arrastra y deja caer desde una aplicación local hacia una aplicación remota. Un componente de cliente detecta que un cursor de ventana de escritorio se movió desde fuera hacia dentro de los límites de una ventana de aplicación para una aplicación remota. El componente de cliente recibe una notificación de dejar caer que indica una operación de arrastrar y dejar caer pendiente. La notificación para dejar caer indica que un objeto para arrastrar y dejar caer se va a transferir a la aplicación remota. El componente de cliente envía una solicitud para transferir el objeto para arrastrar y dejar caer junto con una ubicación de coordenada del cursor de ventana de escritorio a un sistema de computadora de servidor a través de una sesión de servidor de terminal. Un componente de servidor recibe la solicitud y dirige una notificación de transferencia de objeto para arrastrar y dejar caer a la aplicación remota. El componente de servidor actúa como una fuente para dejar caer de proxy a beneficio de la aplicación local en respuesta a recibir la solicitud para transferir un objeto para arrastrar y dejar caer, que incluye recibir una solicitud para el objeto de arrastrar y dejar caer desde la aplicación remota. El componente de servidor dirige la solicitud para el objeto para arrastrar y dejar caer al componente de cliente a través de la sesión de servidor de terminal. El componente de cliente recibe la solicitud para el objeto de arrastrar y dejar caer desde el sistema de computadora de servidor a través de la sesión de servidor de terminal. El componente de cliente actúa como un objetivo para dejar caer de proxy a beneficio de la aplicación remota, que incluye dirigir la solicitud para el objeto de arrastrar y dejar caer a la aplicación local y recibir el objeto para arrastrar y dejar caer de la aplicación local. El componente de cliente envía el objeto para arrastrar y dejar caer al sistema de computadora de servidor a través de la sesión de servidor de terminal . El componente de servidor recibe el objeto para arrastrar y dejar caer del componente de cliente a través de la sesión de servidor de terminal. El componente de servidor actúa como una fuente de dejar caer de proxy a beneficio de la aplicación local, que incluye enviar el objeto para arrastrar y dejar caer a la aplicación remota. En otras modalidades, un objeto se arrastra y deja caer desde una aplicación remota hacia una aplicación local. Un componente de cliente detecta que un cursor de ventana de escritorio se movió desde dentro hacia fuera de los límites de una aplicación remota. Los componentes de cliente envían un mensaje al componente de servidor a través de la sesión de servidor de terminal. El mensaje indica al componente de servidor que el cursor de ventana de escritorio se movió desde dentro hacia fuera de los límites de ventana de aplicación para la aplicación remota. El componente de servidor recibe el mensaje del componente de cliente a través de la sesión de servidor de terminal. El componente de servidor determina que el movimiento del cursor de ventana de escritorio se asocia con una operación para arrastrar y dejar caer pendiente. El componente de cliente actúa como una fuente para dejar caer de proxy a beneficio de la aplicación remota, que incluye recibir una consulta de un objeto para arrastrar y dejar caer desde la aplicación local. La consulta es indicativa de una notificación para dejar caer en la aplicación local que representa que el objeto para arrastrar y dejar caer se va a transferir a la aplicación local. El componente de cliente envía una solicitud para el objeto para arrastrar y dejar caer al componente de servidor a través de la sesión de servidor de terminal. El componente de servidor recibe la solicitud. El componente de servidor actúa como un objetivo para dejar caer de proxy a beneficio de la aplicación local, que incluye dirigir la solicitud del componente para arrastrar y dejar caer a la aplicación remota y recibir el objeto para arrastrar y dejar caer de la aplicación remota. El componente de servidor envía el objeto para arrastrar y dejar caer al sistema de computadora de cliente a través de la sesión de servidor de terminal. El componente de cliente recibe el objeto para arrastrar y dejar caer. El componente de cliente actúa como una fuente para dejar caer de proxy a beneficio de la aplicación remota, que incluye enviar el objeto para arrastrar y dejar caer a la aplicación local. Las modalidades de la presente invención pueden comprender una computadora de propósito especial o de propósito general que incluye hardware de computadora, como se discutió en mayor detalle más adelante. Las modalidades dentro del alcance de la presente invención también incluyen medios legibles por computadora para llevar o tener instrucciones ejecutables por computadora o estructuras de datos almacenadas en estos. Tales medios legibles por computadora puede ser cualquier medio disponible que puede accederse por una computadora de propósito general o de propósito especial. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento legibles por computadora, tal como, RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar medios de código de programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos y que pueden accederse por una computadora de propósito general o propósito especial. En esta descripción y en las siguientes reivindicaciones, una "red" se define como uno o más enlaces de datos que permiten el transporte de datos electrónicos entre sistemas y/o módulos de computadora. Cuando la información se transfiere o se proporciona a través de una red u otra conexión de comunicaciones (ya sea por cable, inalámbrica, o una combinación de por cable o inalámbrico) a una computadora, la computadora apropiadamente ve la conexión como un medio legible por computadora. De esa forma, a manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprender una red o enlace de datos que pueden utilizarse para transportar o almacenar medios de código de programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos y que pueden accederse por una computadora de propósito general o de propósito especial. Las instrucciones ejecutables por computadora comprenden, por ejemplo, instrucciones y datos que causan que una computadora de propósito general, computadora de propósito especial, o dispositivo de procesamiento de propósito especial realice cierta función o grupo de funciones. Las instrucciones ejecutables por computadora pueden ser, por ejemplo, binarios, instrucciones de formato intermedio tal como lenguaje de ensamble, o incluso código de fuente. Aunque el tema se describió en lenguaje específico a características estructurales y/o actos metodológicos, se debe entender que el tema definido en las reivindicaciones anexas no necesariamente se limita a las características descritas o actos descritos anteriormente. En lugar de esto, las características descritas y actos se describen como formas ilustrativas de implementar las reivindicaciones. Aquellos expertos en la técnica apreciarán que la invención puede practicarse en ambientes de cómputo en red con muchos tipos de configuraciones de sistema de computadora, que incluyen, computadoras personales, de computadora de escritorio, computadoras portátiles, dispositivos móviles, sistemas de multiprocesador, electrónica a base de microprocesador o de consumidor programable, PCs de red, minicomputadoras, macrocomputadoras, teléfonos móviles, PDAs, localizadores, y similares. La invención también puede practicarse en ambientes de sistema distribuido en donde los sistemas de computadora local y remota, que se enlazan (ya sea por enlaces de datos por cable, enlaces de datos inalámbricos, o por una combinación de enlaces de datos por cable e inalámbricos) a través de una red, ambos realizan tareas. En un ambiente de sistema distribuido, los módulos de programa pueden localizarse tanto en dispositivos de almacenamiento de memoria local como remota. En esta descripción y en las siguientes reivindicaciones, un "objetivo para dejar caer" se define como un módulo que va a recibir un objeto que es el tema de una operación de arrastrar y dejar caer.
En esta descripción y en las siguientes reivindicaciones, una "fuente de dejar caer" se define como un módulo que es el origen de un objeto que es el tema de una operación de arrastrar y dejar caer. En esta descripción y en las siguientes reivindicaciones, un "objetivo para dejar caer de proxy" se define como un módulo asociado con la misma sesión que la fuente para dejar caer y actos que un intermediario entre la fuente para dejar caer y el objetivo para dejar caer. Un objetivo para dejar caer de proxy puede simular funcionalidad de un objetivo para dejar caer real para facilitar una operación de arrastrar y dejar caer sobre una sesión de servidor de terminal. En algunas modalidades, un objetivo para dejar caer de proxy es un componente de sesión de servidor de terminal que simula funcionalidad de objetivo para dejar caer y participa en el manejo de una sesión de servidor de terminal. En esta descripción y en las siguientes reivindicaciones, una "fuente para dejar caer de proxy" se define como un módulo asociado con la misma sesión que el objetivo para dejar caer y actúa como un intermediario entre la fuente para dejar caer y el objetivo para dejar caer. Una fuente para dejar caer de proxy puede simular funcionalidad de una fuente para dejar caer real para facilitar una operación para arrastrar y dejar caer a través de una sesión de servidor de terminal. En algunas modalidades, una fuente para dejar caer de proxy es un componente de sesión de servidor de terminal que simula la funcionalidad de fuente para dejar caer y participa en el manejo de una sesión de servidor de terminal. En esta descripción y en las siguientes reivindicaciones, los mensajes intercambiados a través de la comunicación de red para facilitar operaciones de arrastrar y dejar caer generalmente se definen de como sigue: Mensaje de INICIO_ARRASTRAR_DEJAR CAER: una indicación de un objetivo para dejar caer de proxy a una fuente para dejar caer de proxy para iniciar un giro de modo de arrastre y dejar caer. El mensaje puede incluir los nombres e IDs de los datos de formato que pueden proporcionarse. Mensaje de INICIO _ARRASTRE_DEJAR CAER_RESPUESTA: una indicación de una fuente de dejar caer de proxy que el giro de modo de arrastrar y dejar caer comenzó para el objetivo de dejar caer. Mensaje de ACTUALIZAR_DE JAR CAER_EFECTO: indica el efecto para dejar caer actualizado para un objetivo de dejar caer. Es decir, que desea hacer el objetivo para dejar caer con los datos. Mensaje de DETERNER_ARRASTRAR_DEJAR CAER: una indicación del objetivo para dejar caer de proxy a la fuente de dejar caer de proxy para detener la operación de arrastre y dejar caer. Mensaje de HACER_ARRASTRE_DE JAR CAER: una indicación del objetivo para dejar caer de proxy a la fuente para dejar caer de proxy para iniciar una operación de dejar caer. Un mensaje de Dejar caer, indicativo de un mensaje de HACER_ARRASTRE_DE JAR CAER enviado a través de la comunicación en red, puede dirigirse a través de un Enlace e Inserción de objeto ("OLE") al objetivo para dejar caer. En respuesta a un mensaje de Dejar caer, el objetivo para dejar caer puede solicitar un objeto de datos de proxy y llamar a un método de Obtener datos. Mensaje HACER _ARRASTRAR_DEJAR CAER_RESPU ESTA: una indicación de la fuente para dejar caer de proxy que la operación de arrastre y dejar caer está completa (por ejemplo, enviada en respuesta al mensaje de HACER_ARRASTRAR_DE JAR CAER). Mensaje de FORMATO_DATOS_SOLICITUD: enviado por un objeto de datos de proxy al objetivo para dejar caer de proxy cuando los datos se solicitan para el objetivo para dejar caer. Mensaje FORMATO_DATOS_RES PUESTA: enviado por un objetivo para dejar caer de proxy al objeto de datos de proxy y contiene cualquier dato solicitado. Otros mensajes también pueden intercambiarse a través de una red para facilitar operaciones de arrastre y dejar caer. La Figura 1A ilustra una arquitectura de computadora ilustrativa 100 que facilita arrastrar y dejar caer un objeto desde un módulo local hacia un módulo remoto. El sistema de computadora 101 (por ejemplo, un cliente) y sistema de computadora 111 (por ejemplo, un servidor). Los sistemas de computadora 101 y 111 pueden conectarse a una red, tal como, por ejemplo, una Red de Área Local ("LAN"), una Red de Área Ancha ("WAN"), o incluso Internet. De esa forma, los varios componentes en los sistemas de computadora 101 y 111 pueden recibir datos desde y enviar datos entre sí, así como otros los componentes conectados a la red. Por consiguiente, los componentes pueden crear mensajes relacionados con datos e intercambiar mensajes relacionados con datos en la red (por ejemplo, datagramas de Protocolo de Internet ("IP") y otros protocolos de capa superior que utilizan datagramas de IP, tal como, Protocolo de Control de Transmisión ("TCP"), Protocolo de Escritorio Remoto ( " R D P " ) , Protocolo de Transferencia de Hipertexto ("HTTP"), Protocolo de Transferencia de Correo Simple ("SMTP"), Arquitectura de Cómputo Independiente ("ICA"), etc.). Como se ilustró el sistema de computadora 101 incluye aplicación 102, módulo de cliente 106, e interfase de usuario 104 y el sistema de computadora 111 incluye aplicación 112, y módulo de servidor 116. El sistema de computadora 101 y sistema de computadora 111 están en comunicación entre sí a través de una sesión de servidor de terminal 131 (por ejemplo, una sesión de RDP) establecida en una red. El componente de cliente 106 y componente de servidor 116 pueden interoperar para facilitar el manejo de la sesión de servidor de terminal 131. Por ejemplo, transferir entrada de usuario recibida en la interfase de usuario 104 del sistema de computadora 101 al sistema de computadora 111, dirigir entrada de usuario a las aplicaciones remotas apropiadas en el sistema de computadora 111, recibir salida de aplicaciones remotas en el sistema de computadora 111, transferir salida de aplicación remota del sistema de computadora 111 al sistema de computadora 101, y dar salida de aplicación remota en la ¡nterfase de usuario 104. De esa forma, para aplicaciones remotas (desde la perspectiva de interfase de usuario 104), la entrada se recibe y saca presentada en el sistema de computadora 101, mientras el procesamiento realmente ocurre en el sistema de computadora 111. Los canales virtuales pueden utilizarse para extender la funcionalidad de sesión de servidor de terminal (por ejemplo, al extender el protocolo de RDP) que permite que las aplicaciones transfieran datos específicos de aplicación a través de una sesión de servidor de terminal (por ejemplo, una conexión de RDP). De esa forma, además de ingresar y sacar datos, otros tipos de datos pueden intercambiarse en canales virtuales. Por ejemplo, el canal virtual 121 puede ser un canal configurado para transferir objetos de arrastrar y dejar caer desde el sistema de computadora 101 al sistema de computadora 111. El canal virtual 121 puede conectar una secuencia de arrastrar y dejar caer en el componente de cliente 106 a una secuencia de arrastrar y dejar caer en el componente de servidor de cliente 116 y viceversa. Por consiguiente, el componente de cliente 106 y componente de servidor 116 pueden no interoperar para arrastrar y dejar caer datos en el canal virtual 121 entre aplicaciones apropiadas en el sistema de computadora 101 y sistema de computadora 111.
La Figura 1B ilustra una ventana de escritorio ilustrativa 123 que ilustra una operación de arrastrar y dejar caer de un módulo local a un módulo remoto. Como se ¡lustró, la ventana de escritorio 123 es una porción de interfase de usuario 104 e incluye ventana de aplicación 102W y escritorio remoto 113. La ventana de aplicación 102W corresponde a la aplicación 102 y se configura para recibir entrada de usuario para aplicación 102 y presentar salida de la aplicación 102 a un usuario. El escritorio remoto 113 incluye ventanas de aplicación para cualquiera de las aplicaciones que son remotas desde el sistema de computadora 111. Por ejemplo, la ventana de aplicación 112W corresponde a la aplicación 112 y se configura para recibir entrada de usuario para aplicación 112 y presentar salida de la aplicación 112 a un usuario. Las Figuras 2A-2C ilustran un cuadro de flujo de un método ilustrativo 200 para arrastrar y dejar caer un objeto desde un módulo local hacia un módulo remoto. El método 200 se describirá con respecto a los componentes y datos en la arquitectura de computadora 100. En método 200 incluye un acto de seleccionar un objeto para arrastrar y dejar caer de una ventana de aplicación local (acto 201). Por ejemplo, un usuario de sistema de computadora 101 puede seleccionar objeto 126 desde dentro de la ventana de aplicación 102W El objeto 126 puede ser virtualmente cualquier objeto seleccionable en el sistema de computadora, tal como, por ejemplo, una porción de texto, gráficos, o datos de sonido, una celda de hoja de cálculo, una entrada de base de datos, un mensaje electrónico, etc. El método 200 incluye un acto de modificar un cursor de ventana de escritorio para virtualmente representar que se selecciona un objeto para dejar caer y dejar caer (acto 202). Por ejemplo, después de la selección del objeto 126, el curso 133 puede modificarse para incluir indicador de efecto para dejar caer 134. Los efectos para dejar caer pueden incluir cualquiera de mover, copiar, enlazar, crear unir por el vínculo a, y crear un atajo al objeto seleccionado el cursor 133 puede modificarse o complementarse en formas diferentes para indicar diferentes efectos para dejar caer. Por ejemplo, el indicador de efecto para dejar caer 134 puede presentarse para indicar que el efecto para dejar caer es copia. Un efecto para dejar caer puede seleccionarse de los efectos para dejar caer disponibles a una aplicación. Mientras el cursor 133 transita entre diferentes ventanas de ventana de escritorio 123, el indicador de efecto para dejar caer presentado puede cambiar. Por ejemplo, mientras el cursor 133 está dentro de los límites de la ventana aplicación 102W, un efecto para dejar caer predeterminado para aplicación 102 (por ejemplo, de copia) pueden presentarse. Cuando el cursor 133 está fuera de los límites de cualquier ventana de aplicación, puede presentarse un efecto para dejar caer predeterminado para la ventana de escritorio 123 (por ejemplo, el sistema operativo). Por ejemplo para la ventana de escritorio 123, una funcionalidad para arrastrar y dejar caer puede no soportarse en todos y de esa forma el cursor 133 se transforma al símbolo "no permitido" cuando en esta área de interfase de usuario 104. Al ingresar a la ventana aplicación 112W, puede presentarse un efecto para dejar caer predeterminado para aplicación 112 (por ejemplo, de copia). El método 200 incluye un acto de un componente de cliente que detecta que el cursor de ventana de escritorio se movió desde fuera hacia dentro de los límites de una ventana de aplicación para una aplicación remota (acto 203). Por ejemplo, el componente de cliente 106 puede detectar que el cursor 133 se movió desde fuera hacia dentro de los límites de ventana de aplicación 112W. (La línea punteada en la Figura 1B indica la ruta del cursor 133 desde la ventana de aplicación 102W, a través de la ventana de escritorio 123 y el escritorio remoto 113, a la ventana de aplicación 112W). Los actos 201, 202, y 203 pueden incluirse en la configuración de una operación de arrastre y dejar caer para transferir un objeto desde una aplicación local hacia una aplicación remota. Cuando el cursor 134 flota sobre la ventana de aplicación 112W, el componente de cliente 106 puede invocar a un método de Ingresar Arrastre. A través de un método de Ingresar Arrastre, el componente de cliente 106 (que actúa como un proxy objetivo para dejar caer) puede indicar hacia tras la aplicación 102 si puede aceptar el objeto 126. Los parámetros de un método de Ingresar Arrastre pueden ser del formato: HRESULTADO lngresarArrastre( Objetol Datos* ObjetopDatos, //Objeto de datos de fuente (por . ejemplo objeto 126) DWORD dwEstadoClave //Estado de teclado y ratón, POINTL pt, //Posición de cursor. DWORD* pdwEfectodeDejarCaer //Efecto para dejar caer resultante.
) A través de un método de Ingresar Arrastre, un objetivo (u objetivo de proxy) puede indicar si será capaz de aceptar una caída posible al actualizar el parámetro pdwEfectodeDejarCaer. Este parámetro inicialmente puede contener el grupo de efectos de dejar caer que permite la fuente. El efecto de dejar caer resultante se basa en parte en los formatos proporcionados por el objeto de datos y también puede influenciarse por el estado de teclado y ratón actual, y potencialmente incluso en la posición de ratón. Subsecuentemente, el componente de cliente 106 puede enviar un mensaje de INICIAR_ARRASTRE_DEJAR CAER en el canal virtual 121 (por ejemplo, un canal virtual de portapapeles) al componente de servidor 116. El mensaje de I I CIAR _ARRASTRE_DEJAR CAER puede incluir los nombres de formato que describen los contenidos de objeto 126 y los efectos de dejar caer permitidos de aplicación 102. Después que se envío mensaje, un controlador de entrada en el sistema de cómputo 101 se informa (por ejemplo, a través de un evento de sistema operativo) que comenzó una operación de arrastre y dejar caer. En respuesta a este evento, el controlador de entrada puedes deshabilitar gancho de teclado y sincronización de entrada.
Para asegurarse que las solicitudes de los datos de formato pueden cumplirse antes que se lleve a cabo la caída, puede almacenarse el objeto 126. Cuando se recibe el mensaje de INICIAR_ARRASTRE_DEJAR CAER en el componente de servidor 116, los nombres de formato que describen el contenido de objeto 126 y los efectos de dejar caer permitidos de la aplicación 102 se extraen. En respuesta, el objeto de datos de proxy 136 se crea y se crea una ventana para el componente de servidor 116. La ventana puede ser transparente (o otra forma oculta) y puede ser de un tamaño muy pequeño (por ejemplo, de tamaño de uno por uno píxeles). La ventana será enfoque y se eleva a la parte superior del orden z. De esa forma, la entrada puede dirigirse (sujetarse) a la ventana para dirigir la entrada al componente de servidor 116. Como tal, la entrada puede dirigirse al componente de servidor 116 sin alterar significativamente la ventana de escritorio 123. Por ejemplo, una ventana transparente de 1 x1 es potencialmente imperceptible por un usuario. En respuesta a un evento de desplazamiento hacia abajo de ratón recibido, el componente de servidor 116 (la fuente de dejar caer de proxy) indica un método de Hacer Arrastre Dejar caer los parámetros de un método de Hacer Arrastre Dejar Caer puede ser del formato: HRESU LTADO HacerArrastreDejarCaer( ObjetolDatos* ObjetopDatos, //Objeto de datos de fuente. IFuentedeDejarCaer* pFuentedeDejarCaer //Interfase de fuente para dejar caer. DWORD dwEfectosdeDejarCaerPermitidos //Efectos para dejar caer permitidos. DWORD* pdwEfectodeDejarCaerFinal //Efecto para dejar caer final .
) Un método de Hacer Arrastre Dejar Caer puede incluirse en un giro de modo utilizado para facilitar una operación de arrastre y dejar caer. Generalmente, para iniciar la operación de arrastre y dejar caer, un componente llama a Hacer Arrastre Dejar Caer con parámetros apropiados. Hacer Arrastre Dejar Caer captura el ratón que utiliza una API de Establecer Captura y entonces ingresa un giro. Para dirigir la entrada al componente de servidor 116, un controlador de entrada envía un evento de desplazamiento hacia abajo de ratón al componente de cliente 106 y debido a que el ratón puede sujetarse a la ventana (potencialmente pequeña y transparente) para el componente de servidor 116, el evento de desplazamiento hacia debajo de ratón termina al enviarse al componente de servidor 116 de la fila de entrada. La recepción del evento de desplazamiento hacia abajo de ratón puede utilizarse para configurar una ventana oculta de Enlace e Inserción de Objeto ("OLE") para recibir mensajes de evento de ratón amplios del sistema. La recepción del INICIAR_ARRASTRAR_DEJAR CAER_RESPUESTA también activa conmutación de marca de Boolean con los métodos en el componente de cliente 106 de revisión antes de ejecución. Esto aumenta la probabilidad de enviar mensajes cuando un componente de servidor 116 está activo. Mientras el cursor 133 se arrastra sobre la ventana de aplicación 112W, se llama un método de Arrastrar Sobre. Los parámetros de método de Hacer Arrastre Dejar Caer pueden ser del formato: HRESULTADO Arrastrar Sobre( DWORD dwEstadoC la ve //Estado de teclado y ratón. POINTL pt, //Posición de cursor. DWORD* pdwEfectodeDejarCaer //Efecto para dejar caer resultante.
) Durante las llamadas para Arrastrar Sobre la posición de ratón actual, el estado de botón de ratón, y el estado de teclado pueden revisarse por cambios. Si se detectan cambios, el controlador de entrada para el componente de cliente 106 envía un movimiento de ratón apropiado, botón hacia arriba o hacia debajo de ratón, o mensaje de botón hacia arriba o hacia debajo de teclado al componente de servidor 116. El componente de servidor 166 (la fuente de dejar caer de proxy) puede llamar continuamente a un método de Consultar Arrastre Continuo. Los parámetros de un método de Consultar Arrastre Continuo pueden ser del formato: H RESULTADO ConsultarArrastreContinuo( BOOL fSalirOprimido //VERDADERO si ESC se oprimió.
DWORD dwEstadoClave //Estado de teclado y ratón.
) El método de Consultar Arrastre Continuo puede utilizarse para informar a la fuente de dejar caer (o fuente de dejar caer de proxy) del teclado actual y estado de ratón. Basándose en esta entrada, la fuente de dejar caer (o fuente de dejar caer de proxy) puede decidir continuar con arrastrar, cancelar el arrastré, o permitir que se lleve a cabo una caída. La fuente de dejar caer indica su decisión a través del valor de regreso de H RESULTADO. Por ejemplo, S_ACEPTAR puede indicar continuar, ARRASTRAR DEJAR CAER_S_CANCELAR puede indicar cancelar y ARRASTRE DEJAR CAER_S_DEJAR CAER puede permitir la caída. Mientras el cursor 133 flota sobre la ventana de aplicación 112W, Consultar Arrastre Continuo puede regresar S_ACEPTAR debido a que la operación de cancelar o dejar caer no se llevó a cabo. El componente de servidor 116 también puede invocar un método de Dar Retroalimentación para regresar el efecto de dejar caer (mover, copiar, enlace, etc.) de la aplicación 112 al componente de cliente 106. Los parámetros de un método de Dar Realimentación pueden ser del formato: HRESULTADO DarReatimentac¡ón( DWORD dwEfectode DejarCaer //Objetivo actual (o ejemplo, aplicación 112) //efecto de dejar caer. ) Generalmente, un método de Dar ReaMmentación informa a una fuente de dejar caer (o fuente de dejar caer de proxy) del efecto para dejar caer actual para que pueda dar realimentación visual apropiada. La realimentación visual se indica a través del valor de regreso H resultado. Un valor de S_ACEPTAR significa que la fuente estableció el cursor apropiadamente, mientras ARRASTRAR DEJAR CAER_S_UTILIZAR CURSORES PREDETERMINADOS indica que la fuente se satisface al utilizar cursores predeterminados proporcionados por OLE. Cuando el componente de servidor 116 llama a Dar Realimentación, el efecto de dejar caer de la aplicación 112 es enviado del componente de servidor 116 al componente de cliente 106 en el canal virtual 112 en un mensaje de ACTUALIZA R_ DEJAR CAER_EFECTO. El componente de cliente 106 almacena el efecto de dejar caer y regresa el efecto de dejar caer a la aplicación 102 (por ejemplo, al invocar un método de Arrastrar Sobre). Basándose en el estado de ratón y teclado en el sistema de computadora 101, la aplicación 102 eventualmente puede decidir cancelar la operación de arrastre o permitir que ocurra una caída. De esa forma en algunas modalidades, se cancela una operación de arrastre (y de esa forma no ocurre caída). Si se lleva a cabo una cancelación, el componente de cliente 106 (el objetivo de dejar caer de proxy) se informa a través de un método de Dejar Arrastre, por ejemplo, del formato: HRESULTADO Dejar Arrastre (); Un controlador de evento para el componente de servidor 116 puede almacenar el resultado de cancelación indicado en un mensaje de DETENER_ARRASTRAR_DEJAR CAER. De esa forma, la siguiente vez que se llame a Consultar Arrastre Continuo, regresa ARRASTRAR DEJAR CAER_S_CANCELAR, que causa que la operación de arrastre termine en el sistema de computadora 111. En otras modalidades, ocurre una caída. Por consiguiente, el método 200 incluyen un acto de iniciar una operación de dejar caer (acto 204). Por ejemplo, la aplicación 102 puede iniciar una operación de dejar caer para transferir el objeto 126 a la aplicación 112. Un usuario puede manipular un dispositivo de entrada para causar que se inicie una caída. Por ejemplo, un usuario puede liberar el botón de ratón izquierdo de un ratón mientras el cursor 133 flota sobre la ventana de aplicación 112W. El método 200 incluye un acto de recibir una notificación de dejar caer que indica que un objeto de arrastrar y dejar caer se va a transferir a una aplicación remota (acto 205). Por ejemplo, el componente de cliente 106 puede recibir la notificación de dejar caer que indica que el objeto 126 se va a transferir a la aplicación 112 como parte de la operación de arrastrar y dejar caer pendiente. El método 200 incluye un acto de enviar una solicitud para transferir el objeto de arrastrar y dejar caer junto con la ubicación de coordenada de la ventana de cursor de escritorio (acto 206). Por ejemplo, en respuesta a recibir la notificación de dejar caer, el componente de cliente 106 puede enviar un mensaje de HACER_ARRASTRAR_DE J AR CAER al componente de servidor 116 para solicitar transferencia de objeto 126 a la aplicación 112. El mensaje de HACER_ARRASTRAR_DE J AR CAER puede enviarse en el canal virtual 121 y puede incluir la ubicación de coordenada del cursor 133. El método 200 incluye un acto de recibir una solicitud para transferir el arrastre y dejar caer y la ubicación de coordenadas del cursor de ventana de escritorio (acto 207). Por ejemplo, el componente de servidor 116 puede recibir el mensaje de HACER _ARRASTRAR_DEJAR CAER que solicita transferencia de objeto 126 a la aplicación 112. Cuando el mensaje de H ACER_AR RASTRA R_DE JAR CAER llega en el componente de servidor 116, el controlador de evento almacena una indicación que una caída va a ocurrir. De esa forma, cuando se llama después a Consultar Arrastre Continuo, Consultar Arrastre Continuo regresa ARRASTRAR DEJAR CAER_S_DEJAR CAER (indicativo que va a ocurrir una caída). Sin embargo, antes de regresar a este valor, puede enviarse un mensaje de DAR_ENFOQUE al componente de cliente 106. En la recepción del mensaje de DAR_ENFOQUE, el componente de cliente 106 puede obtener enfoque de entrada al llamar una API de Establecer Ventana de Primer plano. El componente de servidor 116 también puede enviar mensaje de HACER_ARRASTRAR_DEJAR C AE R_R E S P U E STA al componente de cliente 106 en el canal virtual 121. El método 200 incluye un acto de dirigir la notificación de transferencia de objeto de arrastrar y dejar caer a la aplicación correspondiente (acto 208). Por ejemplo, el componente de servidor 116 puede dirigir la notificación de dejar caer para el objeto 126 a la aplicación 112, basándose en la ubicación de coordenada del cursor 133 (por ejemplo, flotar sobre la ventana de aplicación 112W). El método 200 incluye un acto de recibir una notificación de transferencia de objeto de arrastrar y dejar caer (acto 209). Por ejemplo, la aplicación 112 puede recibir la notificación de dejar caer para el objeto 126 desde el componente de servidor 116. El método 200 incluye un acto de solicitar el objeto de arrastrar y dejar caer (acto 210). Por ejemplo, la aplicación 112 puede solicitar el objeto 126 desde el componente de servidor 116. El método 200 incluye un acto de recibir una solicitud del objeto de arrastrar y dejar caer desde la aplicación correspondiente (acto 211). Por ejemplo, el componente de servidor 116 puede recibir una solicitud por el objeto 126 de la aplicación 112. El componente de servidor 116 puede detectar la llamada de Obtener Datos en el objeto de proxy 136. El método 200 incluye un acto de enviar la solicitud del objeto de arrastrar y dejar caer al componente de cliente (acto 212). Por ejemplo, el componente de servidor 116 puede enviar un mensaje de FORMATO_DATOS_SOLICITUD al componente de cliente 106 en el canal virtual 121. El mensaje de FORMATO_DATOS_SOLICITUD solicita el objeto 126 para aplicación 102. El método 200 incluye un acto de recibir una solicitud para el objeto de arrastrar y dejar caer del componente de servidor (acto 213). Por ejemplo, el componente de cliente 106 puede recibir el mensaje de FORMATO_DATOS_SOLICITUD del componente de servidor 116 en el canal virtual 121. El método 200 incluye un acto de dirigir la solicitud para el objeto de arrastrar y dejar caer a la aplicación local (acto 214). Por ejemplo, el componente de cliente 106 puede dirigir la solicitud para el objeto 126 a la aplicación 102. El método 200 incluye acto de recibir una solicitud para el objeto de arrastrar y dejar caer (acto 215). Por ejemplo, la aplicación 102 puede recibir la solicitud por el objeto 126. En algunas modalidades, el controlador de evento para el mensaje de FORMATO_DATOS_SOLICITUD utiliza una referencia para un objeto de arrastrar y dejar caer almacenado en un método de Ingresar Arrastre para realizar una llamada de Obtener Datos. Cuando los datos de formato se recuperaron, se codifican aproximadamente. El método 200 incluye un acto de enviar el objeto de arrastrar y dejar caer (acto 216). Por ejemplo, después que se reciben los formatos regresados y los efectos de dejar caer, la aplicación 102 puede enviar el objeto 126 al componente de cliente 106. El método 200 incluye un acto de recibir el objeto de arrastrar y dejar caer de la aplicación local (acto 217). Por ejemplo, el componente de cliente 217 puede recibir el objeto 126 de la aplicación 102. El método 200 incluye un acto de enviar el objeto para arrastrar y dejar caer al componente de servidor (acto 218). Por ejemplo, el componente de cliente 106 puede enviar un mensaje de FORMATO_DATOS_RES PUESTA, que incluye datos del objeto 126, al componente de servidor 116 en el canal virtual 121. El método 200 incluye un acto de recibir el objeto de arrastrar y dejar caer del componente de cliente (acto 219). Por ejemplo, el componente de servidor 116 puede recibir el mensaje de FORMATO_DATOS_ RES PUESTA, que incluye datos de objeto 126, del componente de cliente 106 en el canal virtual 121. El método 200 incluye un acto de dirigir el objeto de arrastrar y dejar caer a la aplicación remota (acto 220). Por ejemplo, el componente de servidor 116 puede dirigir datos del objeto 126 a la aplicación 112. El método 200 incluye un acto de recibir el objeto de arrastrar y dejar caer (acto 221). Por ejemplo, la aplicación 112 puede recibir datos del objeto 126. Por consiguiente, dependiendo del efecto de caída seleccionado, los datos del objeto 126 se mueven, copian, enlazan, hipervinculan, o cortan la aplicación 102 para aplicación 112. En algunas modalidades, datos apropiadamente codificados se transmiten subsecuentemente en el cable en un mensaje de FORMATO_DATOS_RES PUESTA. Con la recepción de este mensaje de FORMATO_DATOS_RESPUESTA en el componente de servidor 116), un controlador de evento apropiado se llama y los datos formateados se extraen y descodifican. Una vez que el controlador de evento completa la ejecución, los datos formateados se regresan al objetivo de caída, lo que resulta en la llamada de método de Dejar caer del objetivo de dejar caer local que se completa. Cuando se termina la llamada de Dejar caer, el giro de Hacer Arrastre Dejar Caer termina y se regresa el efecto de dejar caer (por ejemplo, al componente de servidor 116). Se consulta al objeto de arrastrar y dejar caer para el Efecto de Dejar Caer realizado y el Efecto de Dejar Caer hay realizado lógico. Estos dos formatos, así como el efecto de dejar caer final y HRESULTADO de Hacer Arrastre Dejar Caer, se envían locales al componente de cliente 106 en un mensaje de HACER_ARRASTRE_DE JAR CAER_RESPUESTA. El componente de cliente 116 regresa estos resultados a su método de Dejar caer de proxy. Con la recepción del mensaje de HACER _ARRASTRE_DEJAR C AE R_R E S P U E STA, un controlador de evento en el componente de cliente 106 almacena los resultados. El método de Dejar caer de proxy de componente de cliente 116 continúa la ejecución, que inicia el objeto 126 con los formatos regresados y regresa el efecto de dejar caer y HRESULTADO del subsistema de OLE. El componente de cliente 106 (el objetivo de dejar caer de proxy) y componente de servidor 116 (la fuente de dejar caer de proxy) pueden configurarse en varias formas diferentes para facilitar la ¡mplementación del método 200. Por ejemplo, el componente de cliente 106 (el objetivo de dejar caer de proxy) puede configurarse para indicar cuándo va a iniciar el giro de modo de arrastrar y dejar caer el componente de cliente 106 puede enviar un mensaje de I N I C I 0_ ARRASTRE_DE JAR CAER en el canal virtual 121 para el componente de servidor 116. Cuando se procesa INICIO _ARRASTRAR_DEJAR CAER, el componente de servidor 116 (la fuente de dejar caer de proxy) puede iniciar un giro de modelo de arrastre y dejar caer para la aplicación 112 (el objetivo de dejar caer). El componente de cliente 106 también puede configurarse para enviar listas de formatos que puede soportar la aplicación 102 (fuente para dejar caer). Uno de los parámetros a un método de Ingresar Arrastre es un indicador al objeto de datos que contiene los datos que la aplicación 102 es capaz de proporcionar. Al utilizar un enumerador de formato, los nombres de formato se extraen de este objeto de datos, se codifican y entonces se envían como un parámetro a un mensaje de INICIO_ARRASTRAR_DEJAR CAER para que un objeto de datos de proxy pueda crearse por el componente de servidor 116. El componente de cliente 106 también puede configurarse para actualizar la posición de ratón remota, estado de clave y estado de teclado. Justo antes de iniciar el giro de modo de arrastre y dejar caer, el componente de servidor 116 puede enviar un mensaje de INICIO_ARRASTRAR_DEJAR C AE R_R E S P U E STA en el canal virtual 121. Cuando este mensaje se recibe por el componente de cliente 106, el método de Arrastrar Sobre de componente de cliente 106 se libera para iniciar el envío de actualizaciones de la posición de ratón actual, estado de clave de ratón y estado de teclado al componente de servidor 116. Los estados de clave tanto para el ratón y para el teclado se obtienen de los parámetros pasados a un método de Arrastrar sobre. Estas actualizaciones compensan la aplicación 102 que tiene enfoque de entrada y captura de ratón. El componente de cliente 106 también puede configurarse para regresar el último efecto de caída recibido del componente de servidor 116. El componente de servidor 116 puede enviar mensajes de ACTUALIZAR_DEJAR CAER_EFECTO al componente de cliente 106 en cualquier momento que la aplicación 112 se cambia al efecto de dejar caer. Como parte del procesamiento de Arrastrar sobre, los efectos de dejar caer actualizados se regresan al subsistema de OLE del sistema de computadora 101 para informar a la aplicación 102 del efecto de dejar caer actual. El componente de cliente 106 también puede configurarse para actualizar el componente de servidor 116 con respecto al estado de la operación de arrastre actual. Si un método de Dejar Arrastre se llamó, entonces la aplicación 102 decidió cancelar la operación de arrastrar y dejar caer. Por consiguiente, la aplicación 112 debe hacer lo mismo y llamar a su método de Dejar Arrastre. El componente de cliente 106 puede confiar en la información apropiada al componente de servidor 116 para causar que la aplicación 112 llame a su método de Dejar Arrastre. El componente de cliente 106 también puede configurarse para almacenar un indicador para el objeto 126 si ocurre una caída. Si se lleva a cabo una caída, entonces la aplicación 112 puede solicitar el objeto 126. Para ayudar a asegurar que el objeto 126 puede regresarse, el componente de cliente 106 puede almacenar un indicador al objeto 126 recibido en la llamada de Dejar caer. De esa forma cuando una solicitud para el objeto se recibe en la forma de un mensaje de FORMATO_DATOS_SOLICITUD, el componente de cliente 116 puede proporcionar los datos de formato apropiados al realizar una llamada de Obtener Datos en el objeto guardado 126, y regresar los datos en un mensaje de FORMATO_DATOS_RES PUESTA. El componente de servidor 116 puede configurarse para crear un objeto de datos de proxy que anuncian los nombres de formatos correctos. Uno de los parámetros de mensaje de INICIO_ARRASTRE_DEJAR CAER es analista de formatos que la aplicación 112 es capaz de proporcionar. Antes que se inicie el giro de modo remoto, se crea un objeto de datos de proxy y se llena con estos nombres de formato. El objeto de datos creado entonces pasar al subsistema de OLE del sistema de computadora 111 como un parámetro en la llamada de Hacer Arrastre Dejar Caer. De esa forma, los objetivos para dejar caer dentro de la sesión remota serán capaces de consultar los formatos y recuperar los datos sí ocurre una caída. El componente de servidor 116 también puede configurarse para confiar el efecto de caída actual al componente de cliente 106. El efecto de caída que la aplicación 112 regresa al subsistema de OLE del sistema de computadora 111 pasa al componente de cliente 106 como parte de una llamada de Dar Realimentación. Este efecto de caer se envía en el canal virtual 121 al sistema de computadora 101 en un mensaje de ACTUALIZAR_DE JAR CAER_E FECTO para que el componente de cliente 106 pueda regresar este efecto de dejar caer cuando se llama método de Arrastrar Sobre. El componente de servidor 116 también puede configurarse para iniciar una cancelación o una caída cuando se instruye por el componente de cliente 106. Cuando una operación de dejar caer o cancelación se lleva a cabo en el sistema de computadora 101, el método de Dejar Caer o Dejar Arrastre del componente de cliente 106 puede llamarse. Cuando esto sucede, se envía un mensaje al componente de servidor 116 para que la siguiente vez que se llama a Consultar Arrastre continuo, se regrese el HRESULTADO correcto al subsistema de OLE del sistema de computadora 111. Si se recibió el mensaje de DETENER_ARRASTRE_DEJAR CAER, entonces se regresa ARRASTRE DEJAR CAER_S_CANCELAR. El ARRASTRE DEJAR CAER_S_DEJAR CAER se regresa si se recibió el mensaje de HACER_ARRASTRE_DE JAR CAER. De otra forma, el S_ACEPTAR regresa y el giro de modo continúa.
El objeto de proxy 136 puede crearse cuando se recibe un mensaje de I N I Cl 0_ARRASTRE_DE J AR CAER. El objeto de proxy 136 esencialmente imita el objeto 126 al regresar los mismos formatos anunciados por el objeto 126. Cuando los datos se solicitan del objeto de proxy 136, envía un mensaje de FORMATO_DATOS_SOLICITUD al sistema de computadora 101. El componente de cliente 106 entonces puede recuperar los datos del objeto 126 y envía los datos de regreso en un mensaje de FORMATO_DATOS_RES PUESTA. Por consiguiente, las modalidades de la presente invención pueden facilitar arrastrar y dejar caer objetos desde un módulo remoto hacia un módulo local. La Figura 3A ilustra una arquitectura de computadora ilustrativa 300 que facilita arrastrar y dejar caer un objeto desde un módulo de escritorio remoto hacia un módulo de escritorio local. El sistema de computadora 301 (por ejemplo, un cliente) y sistema de computadora 311 (por ejemplo, un servidor). Los sistemas de computadora 301 y 311 pueden conectarse a una red, tal como, por ejemplo, una Red de Area Local ("LAN"), una Red de Area Ancha ("WAN"), o incluso Internet. De esa forma, los varios componentes en los sistemas de computadora 301 y 311 pueden recibir datos desde y enviar datos entre sí, así como otros componentes conectados a la red. Por consiguiente, los componentes pueden crear datos relacionados con mensaje e intercambiar datos relacionados con mensaje en la red (por ejemplo, datagramas de Protocolo de Internet ("IP") y otros protocolos de capa superior que utilizan datagramas de IP, tal como, Protocolo de Control de Transmisión ("TCP"), Protocolo de Escritorio Remoto ("RDP"), Protocolo de Transferencia de Hipertexto ("HTTP"), Protocolo de Transferencia de Correo Simple ("SMTP"), Arquitectura de Cómputo Independiente ("ICA"), etc.). Como se ilustró el sistema de computadora 301 incluye la aplicación 302, módulo de cliente 306, e interfase de usuario 304 y sistema de computadora 111 incluye aplicación 312, y módulo de servidor 316. El sistema de computadora 301 y el sistema de computadora 311 están en comunicación entre sí a través de la sesión de servidor de terminal 331 (por ejemplo, una sesión de RDP) establecida en la red. El componente de cliente 306 y componente de servidor 316 pueden interoperar para facilitar manejo de sesión de servidor de terminal 331. Por ejemplo, transferir entrada de usuario recibida en la interfase de usuario 304 del sistema de computadora 301 al sistema de computadora 311, dirigir entrada de usuario a aplicaciones remotas apropiadas en el sistema de computadora 311, recibir salida de las aplicaciones remotas en el sistema de computadora 311, transferir salida de aplicación remota del sistema de computadora 311 al sistema de computadora 301, y sacar salida de aplicación remota en la interfase de usuario 304. De esa forma, para aplicaciones remotas (desde la perspectiva de interfase de usuario 304), la entrada se recibe y la salida se presenta en el sistema de computadora 301, mientras realmente ocurre el procesamiento en el sistema de computadora 311.
El canal virtual 321 puede ser un canal configurado para transferir objetos de arrastre y dejar caer del sistema de computadora 311 al sistema de computadora 301. El canal virtual 321 puede conectarse a una secuencia de arrastrar y dejar caer en el componente de cliente 306 para una secuencia de arrastrar y dejar caer en el componente servidor 316 y viceversa. Por consiguiente, el componente de cliente 306 y el componente de servidor 316 pueden interoperar para transferir datos de arrastre de caída en el canal virtual 321 entre aplicaciones apropiadas en el sistema de computadora 301 y sistemas de computadora 311. La Figura 3B ilustra una ventana de escritorio ilustrativa 323 que ilustra una operación de arrastrar y dejar caer de un módulo local a un módulo remoto. Como se ¡lustró, la ventana de escritorio 323 es una porción de la interfase de usuario 304 e incluye ventana de aplicación 302W y escritorio remoto 313. La ventana de aplicación 302W corresponde a la aplicación 302 y se configura para recibir entrada de usuario para aplicación 302 y presentar salida de la aplicación 302 a un usuario. El escritorio remoto 313 incluye ventanas de aplicación para cualquiera de las aplicaciones que son remotas del sistema de computadora 311. Por ejemplo, la ventana de aplicación 312W corresponde a la aplicación 312 y se configura para recibir entrada de usuario para aplicación 312 y presentar salida de la aplicación 312 a un usuario. Las Figuras 4A-4C ilustran un cuadro de flujo de un método Ilustrativo 400 para arrastrar y dejar caer un objeto desde un módulo remoto hacía un módulo local. El método 400 se describirá con respecto a los componentes y datos en la arquitectura de computadora 300. El método 400 incluye un acto de seleccionar un objeto de arrastrar y dejar caer de una ventana de aplicación remota (acto 401). Por ejemplo, un usuario del sistema de computadora 301 puede seleccionar el objeto 326 desde dentro de la ventana de aplicación 312W. El objeto 326 puede ser virtualmente cualquier objeto seleccionable en el sistema de computadora, tal como, por ejemplo, una porción de texto, gráficos, o datos de sonido, una celda de hoja de cálculo, una entrada de base de datos, un mensaje electrónico, etc. El método 400 incluye un acto de modificar un cursor de ventana de escritorio para representar visualmente que se selecciona un objeto de dejar caer y dejar caer (acto 402). Por ejemplo, después de la selección del objeto 326, el cursor 333 puede modificarse para incluir indicador de efecto de dejar caer 334. Los efectos de dejar caer pueden incluir cualquiera de mover, copiar, enlazar, crear un hipervínculo a, y crear un atajo al objeto seleccionado. El cursor 333 puede modificarse o complementarse en formas diferentes para indicar diferentes efectos de caídas. Por ejemplo, el indicador de defecto de caída 334 puede presentarse para indicar que se va a mover el efecto de caída. Un efecto de caída puede seleccionarse de los efectos de caída disponibles para una aplicación. Un cursor 333 transita entre diferentes ventanas de ventana de escritorio 323, el indicador de efecto de dejar caer presentado puede cambiar. Por ejemplo, mientras el cursor 333 puede estar dentro de los límites de la ventana de aplicación 312W, un efecto de caída predeterminado para aplicación 312 (por ejemplo, de movimiento) puede presentarse. Cuando el cursor 333 está fuera de los límites de cualquier ventana de aplicación, un efecto de caída predeterminado para la ventana de escritorio 323 (por ejemplo, el sistema operativo) puede presentarse. Por ejemplo para la ventana de escritorio 323, la funcionalidad de arrastrar y dejar caer puede no soportarse en todos y de esa forma el cursor 333 se transforma al símbolo "no permitido" cuando está en esta área de ¡nterfase de usuario 304. Al ingresar a la ventana de aplicación 302W, un efecto de dejar caer predeterminado para la aplicación 302 (por ejemplo, de movimiento) puede presentarse. El método 400 incluye un acto de un componente de cliente que detecta que un cursor de ventana de escritorio se movió desde el exterior hacia dentro de los límites de una ventana de aplicación remota (acto 403). Por ejemplo, el componente de cliente 306 puede detectar que el cursor 333 se movió desde el exterior hacia dentro de los límites de la ventana de aplicación 302W. (La línea punteada en la Figura 3B indica la ruta de cursor 333 de la ventana de aplicación 312W, a través del escritorio remoto 313 y la ventana de escritorio 323, a la ventana de aplicación 302W). El método 400 incluye un acto de enviar un mensaje que indica que el cursor de ventana de escritorio se movió (acto 404). Por ejemplo, el componente de cliente 306 puede enviar un mensaje de RATÓN_SE_FUE al componente de servidor 316 en el canal virtual 321. El mensaje de RATÓN_SE_FUE indica que el cursor 333 se movió fuera de la ventana de aplicación 312W (y/o fuera del escritorio remoto 313). El método 400 incluye un acto de recibir un mensaje que indica que el cursor de ventana de escritorio se movió (acto 405). Por ejemplo, el componente de servidor 316 puede recibir el mensaje de RATÓN_SE_FUE en el canal virtual 321 del componente de cliente 306. El método 400 incluye un acto de determinar qué movimiento del cursor de ventana de escritorio se asocia con una operación de arrastre y caída pendiente (acto 406). Por ejemplo, el componente de servidor 316 puede determinar que el cursor de movimiento fuera de los limites de la ventana de aplicación 313 se asocie con una operación de arrastre y caída para el objeto 326. El componente de servidor 316 puede llamar a una API de Modelo de Objeto Común ("COM") para consultar si una operación de arrastre y caída real está pendiente o si el ratón se mueve por otras razones. Los actos 401, 402, 403, 404 y 405 pueden incluirse como parte de configurar una operación de arrastrar y dejar caer de un módulo remoto a un módulo local. Por ejemplo, cuando un usuario oprime un botón de ratón en la ventana de cliente, el ratón se captura por una ventana de controlador de entrada. Mientras el ratón se arrastra, el ratón puede realizarse repetidamente para determinar si flota sobre la ventana de controlador de entrada. Si el ratón no flota sobre la ventana de controlador de entrada, entonces un arrastre tiene la posibilidad de iniciarse desde un módulo remoto hacia un módulo local. Después que se detectó que el ratón dejó el módulo remoto, un mensaje de RATÓN_SE_FUE se envía al componente de servidor 316 en el canal virtual. Al recibir este mensaje, el componente de servidor 316 transita para volverse un objetivo de caída de proxy. Una transición del objetivo de caída de proxy puede realizarse utilizando al menos dos mecanismos diferentes. Un mecanismo incluye maximizar una ventana de arrastre y caída mezclada alfa para llenar el estado real de la pantalla de sesión completa, y entonces forzar a la ventana de arrastrar y dejar caer mezclada alfa a la parte superior del orden z. Otro mecanismo incluye llamar APIs de OLE. Después de transitar a un servidor objetivo de caída de proxy, el componente 316 puede actuar como un objetivo de caída de proxy en la sesión remota. Por ejemplo, al volverse un objetivo de caída de proxy, un método de Ingresar Arrastre para el componente de servidor 316 puede llamarse. El método de Ingresar Arrastre causa que el objeto 326 se almacene y se envía un mensaje de lníciar_ARRASTRE_DEJAR CAER al componente de cliente 306. El mensaje de INICIAR _ARRASTRE_DEJAR CAER puede procesarse por un controlador de evento en el componente de cliente 306. El controlador de evento puede extraer los nombres de formato y efectos de caída permitidos. En respuesta, el componente de cliente 306 puede iniciar un evento de HAC ER_MODO_ARO para informar a un controlador de entrada del sistema de computadora 301 que se va a iniciar el giro de arrastre y caída local. Al recibir el evento de H ACER_MODO_ARO, el controlador de entrada construye el objeto de proxy 328 y redirige los eventos de notificación de arrastre y caída al componente de cliente 306. De esa forma, causa que el componente de cliente 306 transite a una fuente de caída de proxy. El evento de notificación de arrastre y caída puede dirigirse al deshabilitar las pilas en una secuencia de arrastre caída, y habilitar pilas de evento especialmente creadas para el componente de cliente 306. Antes que se inicie el aro de modo de Hacer Arrastre de Caída, la secuencia de arrastre y caída puede señalarse para informar que el aro va a iniciar. En respuesta, el comentario de cliente 306 puede enviar un mensaje de INICIAR_ARRASTRE_DEJAR CAER_RESPUESTA al componente de servidor 316. En recepción de mensaje de I N I C 10_AR R ASTRE_DE J AR CAER_RESPUESTA, el componente de servidor 316 se libera para enviar mensajes de arrastrar y dejar caer, tal como, por ejemplo, mensajes de H ACER_ARRASTRE_DE JAR CAER y DETENER_AR ASTRE_DE JAR CAER, al componente de cliente 306. Sin embargo, mientras el ratón se arrastra alrededor de la ventana de aplicación 302W, varios eventos de botón de ratón y teclado pueden ser de interés. Una Consultar Arrastre Continuo en la aplicación 312 (la aplicación remota) puede utilizarse para obtener actualizaciones a esta información. Para actualizar el componente de servidor 316 con el estado de entrada actual un controlador de entrada envía un botón hacia arriba o hacia debajo de ratón apropiado y botón hacia arriba o hacia debajo de teclado. Un método de Dar Realimentación se llama en el componente de cliente 306 para actualizar el componente de servidor 316 con el efecto de dejar caer regresado por la aplicación 302, al elevar el mensaje de ACTUALIZAR_DEJAR CAER_EFECTO. En el sistema de computadora 311, en efecto de dejar caer se almacena y posteriormente se regresa en un método de Arrastrar Sobreinvocado por el componente de servidor 316. Basándose en el estado de ratón y teclado en el sistema de computadora 301, la aplicación 312 puede decidir eventualmente cancelar la operación de arrastre o permitir una caída para ocurrir. De esa forma en algunas modalidades, se cancela una operación de arrastre (y de esa forma no ocurre caída). Si se lleva a cabo una cancelación, el componente de servidor 316 (el objetivo de caída de proxy) se informa a través de un método de Dejar Arrastre. En respuesta a una cancelación, el componente de servidor 316 también puede enviar un mensaje de DETENER_ARRASTRE_DEJAR CAER al componente de cliente 306. Después que se envía un mensaje de DETENER_ARRASTRE_DEJAR CAER, el objeto 326 puede liberarse. Un controlador de evento para el componente de cliente 3066 puede almacenar el resultado de cancelación indicado en un mensaje de DETENER_ARRASTRE_DEJAR CAER. De esa forma, la siguiente vez que se llama a la Consulta de Arrastre continuo, regresa ARRASTRE DEJAR CAER_S_CANCELAR, lo que causa que la operación de arrastre termine en el sistema de computadora 301. En otras modalidades, ocurre una caída. Mientras un usuario mueve un ratón alrededor de la ventana de aplicación local 302W el usuario puede liberar un botón de ratón. Cuando se libera el botón de ratón, el componente de cliente 306 indica la liberación al componente de servidor 316 sobre el canal virtual 321. En respuesta, el componente servidor 316 puede enviar un mensaje de HACER_ARRASTRE_DEJAR CAER al componente de cliente 306 para solicitar transferencia de objeto 326 a la aplicación 302. El componente de servidor 316 puede enviar una indicación del mensaje de HACER_ARRASTRE_DEJAR CAER a la aplicación 302. El componente de cliente 306 puede enviar un mensaje de HACER _ARRASTRE_DEJAR CAER_RESPUESTA al componente de servidor 316 en el canal virtual 321. El método 400 incluye un acto de enviar una consulta para un objeto de arrastre y dejar caer (acto 407). Por ejemplo, en respuesta a la indicación del mensaje de HACER _ARRASTRE_DEJAR CAER, la aplicación 302 puede consultar objetos de proxy 328. El método 400 incluye un acto de recibir una consulta por un objeto de arrastre y dejar caer de una aplicación local (acto 408). Por ejemplo, el componente de cliente 306 puede recibir una consulta por el objeto 326 de la aplicación 302. El método 400 incluye un acto de enviar una solicitud para el objeto de arrastre y caída al componente de servidor (acto 409). Por ejemplo, el componente de cliente 306 puede enviar un mensaje de FORMATO_DATOS_SOLICITUD al componente de servidor 316 en el canal virtual 321. El mensaje de FORMATO_DATOS_SOLICITUD solicita el objeto 326 para la aplicación 312. El método 400 incluye un acto de recibir una solicitud para un objeto de arrastre y caída del componente de cliente (acto 410). Por ejemplo, el componente de servidor 316 puede recibir el mensaje de FORMATO_DATOS_SOLICITUD del componente de cliente 306 en el canal virtual 321. El método 400 incluye un acto de dirigir la solicitud para el objeto de arrastre y caída a la aplicación remota (acto 411). Por ejemplo, el componente de servidor 316 puede dirigir la solicitud por el objeto 326 a la aplicación 312. El método 400 incluye un acto de recibir una solicitud para un objeto de arrastre y caída (acto 412). Por ejemplo, la aplicación 312 puede recibir la solicitud del objeto 326 del componente de servidor 316. El método 400 incluye un acto de enviar el objeto de arrastre y caída (acto 413). Por ejemplo, la aplicación 312 puede enviar el objetó 326 al componente de servidor 316. El método 400 incluye un acto de recibir el objeto de arrastre y caída de la aplicación remota (acto 414). Por ejemplo, el componente de servidor 316 puede recibir el objeto 326 de la aplicación 312. El método 400 incluye un acto de enviar el objeto de arrastre y caída al componente de cliente (acto 415). Por ejemplo, el componente de servidor 316 puede enviar un mensaje de FORMATO_DATOS_ RES PUESTA, que incluye objeto de forma de datos 326, al componente de cliente 306 en el canal virtual 321. El método 400 incluye un acto de recibir el objeto de arrastre y caída del componente de servidor (acto 416). Por ejemplo, el componente de cliente 306 puede recibir el mensaje de FORMATO_DAT OS _ RESPUESTA, que incluye datos del objeto 326, del componente de servidor 306 en el canal virtual 321. El método 400 incluye un acto de dirigir el componente de arrastre y caída a la aplicación local (acto 417). Por ejemplo, el componente de cliente 306 puede dirigir datos del objeto 326 a la aplicación 312. E! método 400 incluye un acto de recibir el objeto de arrastre y caída (acto 418). Por ejemplo, la aplicación 302 puede recibir datos del objeto 306 del componente de cliente 306. Por consiguiente, dependiendo del efecto de caída seleccionado, los datos del objeto 326 se mueven, copian, enlazan, hipervínculan, o forman un atajo desde la aplicación 312 a la aplicación 302. El componente de cliente 306 (la fuente de caída de proxy) y el componente servidor 316 (el objetivo de caída de proxy) puede configurarse en varias formas diferentes para facilitar la implementación del método 400. Por ejemplo, el componente de cliente 306 (la fuente de caída de proxy) puede configurarse apara crear un objeto de datos de proxy que anuncia los nombres de formato correctos, confía el efecto de caída actual al componente servidor 316, indican una cancelación o caída cuando se instruye por el componente servidor 316, y actualiza estado de clave de ratón y estado de teclado dentro de la ventana de aplicación 312W. Un método de arrastrar Consulta Continua puede utilizarse para recibir un vector de estado de clave que contiene tecla de teclado y estados de botón de ratón. Las teclas del teclado y estados de botón de ratón pueden enviarse al componente de servidor 316 a través del canal virtual 321. El componente de servidor 316 (el objetivo de caída de proxy) puede configurarse para indicar cuándo va a iniciar el aro de modo de arrastre y caída, enviar la lista de formatos que la aplicación 312 puede proporcionar, regresar el último efecto de caída recibido del componente de cliente 306 a la aplicación 312, actualizar componente de cliente 306 con respecto al estado de una operación de arrastre caída pendiente, y almacenar un objeto de indicador 326 sí ocurre una caída. El objeto de datos de proxy 328 puede crearse cuando se recibe un mensaje de INICIO_ARRASTRE_DEJAR CAER. El objeto de datos de proxy 328 esencialmente imita el objeto 326 al regresar los mismos formatos anunciados por el objeto 326. Cuando los datos se solicitan del objeto de datos de proxy 328, envía un mensaje de FORMATO_DATOS_SOLICITUD al sistema de computadora 311. El componente de servidor 316 entonces puede recuperar los datos del objeto 326 y envía los datos de regreso en un mensaje de FORMATO_DATOS_RES PUESTA. Por consiguiente, las modalidades de la presente invención pueden facilitar arrastrar y dejar caer objetos de un módulo remoto a un módulo local. La presente invención puede representarse en otras formas específicas sin apartarse de su espíritu o características esenciales. Las modalidades descritas se van a considerar en todo los aspectos sólo como ilustrativas y no restrictivas. El alcance de la invención, por lo tanto, se indica por la reivindicaciones anexas en lugar de por la descripción anterior. Todos los cambios que vienen dentro del significado y alcance de equivalencia de las reivindicaciones van a abarcarse dentro de su alcance.

Claims (1)

  1. REIVINDICACIONES 1.- Un sistema de computadora (101), el sistema de computadora incluye una aplicación local (102) que corre en el sistema de computadora (101) y un componente de cliente (106), el componente de cliente (106) participa a través de una sesión de servidor de terminal (131) con un componente de servidor (116) en un sistema de computadora de servidor (111), un método para utilizar arrastre y caída para transferir un objeto de la aplicación local (102) a un módulo remoto en el sistema de computadora de servidor (111), el método comprende: un acto del componente de cliente (106) que detecta que un cursor de ventana de escritorio (133) se movió desde fuera hacia dentro de los límites de una ventana de aplicación (112W) para una aplicación remota (112); un acto del componente de cliente (106) que recibe una notificación de caída que indica una operación de arrastre y caída pendiente, la notificación de caída indicando que un objeto de arrastre y caída (126) se va a transferir a la aplicación remota (112); un acto del componente de cliente (106) que envía una solicitud para transferir el objeto de arrastre y caída (126) junto con una ubicación de coordenada del cursor de ventana de escritorio (133) al sistema de computadora de servidor (111) a través de la sesión de servidor de terminal (131) en respuesta a recibir la notificación de caída; un acto del componente de cliente (106) que recibe una solicitud para el objeto de arrastre y caída del sistema de computadora de servidor (111) a través de la sesión de servidor de terminal (131); el componente de cliente (106) que actúa como un objetivo de caída de proxy a beneficio de la aplicación remota (112) en respuesta a recibir la solicitud para el objeto de arrastre y caída (126), que incluye: un acto de dirigir la solicitud para el objeto de arrastre y caída (126) a la aplicación local (102); y un acto de recibir el objeto de arrastre y caída (126) de la aplicación local (102) enviada en respuesta a la solicitud para el objeto de arrastre y caída (126); y un acto de componente de cliente (106) que envía el objeto de arrastre y caída (126) al sistema de computadora de servidor (111) a través de la sesión de servidor de terminal (131) para entrega a la aplicación remota (112). 2. - El método de acuerdo con la reivindicación 1, que además comprende: un acto de configurar el componente de cliente como un objetivo de caída de proxy para que el componente de cliente pueda recibir objetos de arrastre y caída de la aplicación local. 3. - El método de acuerdo con la reivindicación 1, que además comprende: un acto de recibir entrada de usuario que selecciona un objeto de arrastre y caída desde dentro de la ventana de aplicación local, la ventana de aplicación local representando una interfase de usuario para la aplicación local; y un acto de modificar un cursor de ventana de escritorio para usualmente representar que se seleccionó un objeto de arrastre y caída. 4. - El método de acuerdo con la reivindicación 1, en donde el acto de detectar que un cursor de ventana de escritorio se movió desde fuera hacia dentro de los límites de una ventana de aplicación para una aplicación remota comprende un acto de detectar que el cursor de ventana de escritorio se movió desde dentro de los límites de una ventana de aplicación hacia dentro de los límites de la ventana de aplicación para la aplicación remota. 5. - El método de acuerdo con la reivindicación 1, en donde el acto del componente de cliente que recibe una notificación de caída indicando una operación de arrastre y caída pendiente comprende un acto de detectar un cambio en el estado de botones en un dispositivo de entrada. 6. - El método de acuerdo con la reivindicación 1, en donde el acto del componente de cliente que envía una solicitud para transferir el objeto de arrastre y caída junto con una ubicación de coordenada del cursor de ventana de escritorio al sistema de computadora de servidor a través de la sesión de servidor de terminal comprende un acto de enviar un mensaje a través de un canal virtual de la sesión de servidor de terminal. 7. - El método de acuerdo con la reivindicación 1, en donde el acto de componente de cliente que envía una solicitud para transferir el objeto de arrastre y caída junto con una ubicación de coordenada del cursor de ventana de escritorio al sistema de computadora de servidor a través de la sesión de servidor de terminal comprende un acto de enviar un mensaje a través de una sesión de Protocolo de Escritorio Remoto. 8. - En un sistema de computadora (111), el sistema de computadora (111) incluye una o más aplicaciones remotas (112) que corren en el sistema de computadora (111) y un componente de servidor (116), el componente de servidor (116) participa a través de una sesión de servidor de terminal (131) con un componente de cliente (106) en un sistema de computadora de cliente (101), una o más aplicaciones remotas (112) corren en el sistema de computadora (111) configurado para accederse remotamente a través de la sesión de servidor de terminal (131) por el sistema de computadora de cliente (101), un método para utilizar arrastre y caída para transferir un objeto a una o más aplicaciones remotas (112) desde un módulo en el sistema de computadora de cliente (101), el método comprende: un acto del componente de servidor (116) que recibe una solicitud para transferir un objeto de arrastre y caída (126) al sistema de computadora (111) y una ubicación de coordenada que indica la ubicación de cursor de ventana de escritorio (133) en el sistema de computadora de cliente (110), la solicitud y la ubicación de coordenada enviadas a través de la sesión de servidor de terminal (131); un acto del componente de servidor (116) que dirige una notificación de transferencia de objeto de arrastre y caída a una aplicación remota que corresponde a la ubicación de coordenada; el componente de servidor (116) que actúa como una fuente de caída de proxy a beneficio de una aplicación (102) en el sistema de computadora de cliente (101) en respuesta a recibir la solicitud para transferir un objeto de arrastre y caída (126), que incluye un acto del componente de servidor (116) que recibe una solicitud para el objeto de arrastre y caída (126) de la aplicación remota (112); un acto del componente de servidor (116) que dirige la solicitud para el objeto de arrastre y caída (126) al componente de cliente (106) a través de la sesión de servidor de terminal (131); un acto del componente de servidor (116) que recibe el objeto de arrastre y caída (126) del componente de cliente (106) a través de la sesión de servidor de terminal (131); y el componente de servidor (116) que actúa como una fuente de caída de proxy a beneficio de la aplicación (102) en el sistema de computadora de cliente (101) en respuesta a recibir el objeto de arrastre y caída (126), que incluye un acto del componente de servidor (116) que envía el objeto de arrastre y caída (126) a la aplicación remota (112). 9.- El método de acuerdo con la reivindicación 8, en donde el acto del componente servidor que recibe una solicitud para transferir un objeto de arrastre y caída al sistema de computadora y la ubicación de coordenada que indica la ubicación de cursor de ventana de escritorio en el sistema de computadora de cliente comprende un acto de recibir un mensaje a través de un canal virtual de la sesión de servidor de terminal. 10.- El método de acuerdo con la reivindicación 8, que además comprende: un acto de crear un objeto de proxy para imitar los formatos anunciados por el objeto de arrastre y caída. 11.- El método de acuerdo con la reivindicación 8, que además comprende: un acto de configurar el componente de servidor como una fuente de caída de proxy para que el componente de servidor pueda proporcionar objetos de arrastre y caída a la aplicación remota. 12 - El método de acuerdo con la reivindicación 8, que además comprende: un acto del componente de servidor que inicia un aro de modo de arrastre y caída. 13.- En un sistema de computadora (301), el sistema de computadora (301) que incluye una aplicación local (302) que corre en el sistema de computadora (301) y un componente de cliente (306), el componente de cliente (306) participa a través de una sesión de servidor de terminal (331) con un componente de servidor (316) en un sistema de computadora de servidor (311), un método para utilizar arrastre y caída para transferir un objeto de un módulo remoto en el sistema de computadora de servidor a la aplicación local (302), el método comprende: un acto del componente de cliente (306) que detecta que un cursor de ventana de escritorio (333) se movió desde dentro hacia fuera de los límites de una ventana de aplicación (312W) para una aplicación remota (312); un acto del componente de cliente (306) que envía un mensaje al componente de servidor (316) a través de la sesión de servidor de terminal (331), el mensaje indica al componente de servidor (316) que el cursor de ventana de escritorio (333) se movió desde dentro hacia fuera de los límites de la ventana de aplicación (312W) para la aplicación remota (312); el componente de cliente (306) actúa como una fuente de caída de proxy a beneficio de la aplicación remota (312) en respuesta a recibir la solicitud del objeto de arrastre y caída (326), incluye un acto del componente de cliente (306) que recibe una consulta para un objeto de arrastre y caída de la aplicación local (302), la consulta indicativa de una notificación de caída en la aplicación local (302) representa que el objeto de arrastre y caída (326) se va a transferir a la aplicación local (302); un acto del componente de cliente (302) que envía una solicitud para el objeto de arrastre y caída (326) al componente de servidor (316), la solicitud enviada a través de la sesión de servidor de terminal (331) en respuesta a la consulta, la solicitud indica al componente de servidor (316) que la aplicación local (302) solicita el objeto de arrastre y caída (326); un acto del componente de cliente (306) que recibe el objeto de arrastre y caída (326) del sistema del computadora de servidor (311) a través de la conexión de servidor de terminal (311); y el componente de cliente (306) que actúa como una fuente de caída de proxy a beneficio de la aplicación remota (312) en respuesta a recibir el objeto de arrastre y caída (326), incluye un acto del componente de cliente (306) que envía el objeto de arrastre y caída (326) a la aplicación local (302). 14.- El método de acuerdo con la reivindicación 13, en donde el acto del componente de cliente que detecta que un cursor de ventana de escritorio se movió desde dentro hacia fuera de los límites de una ventana de aplicación para un aplicación remota comprende un acto de detectar que la ventana de cursor de escritorio se movió desde la aplicación para una aplicación remota a una ventana de aplicación local para la aplicación local. 15. - El método de acuerdo con la reivindicación 13, que además comprende: un acto de crear un objeto de proxy para imitar los formatos anunciados por el objeto de arrastre y caída. 16. - El método de acuerdo con la reivindicación 13, que además comprende: un acto de configurar el componente de cliente como una fuente de caída de proxy para que el componente de cliente pueda proporcionar objetos de arrastre y caída al componente de cliente. 17.- El método de acuerdo con la reivindicación 13, que además comprende: un acto de recibir entrada de usuario que selecciona un objeto de arrastre y caída desde dentro de una ventana de aplicación para una aplicación remota, la ventana de aplicación representa una ¡nterfase de usuario para la aplicación remota; y un acto de modificar un cursor de ventana de escritorio para representar visualmente que se seleccionó un objeto de arrastre y caída. 18.- En un sistema de computadora (311), el sistema de computadora (311) incluye una o más aplicaciones remotas (312) que corren en el sistema de computadora (311) y un componente de servidor (316), el componente de servidor (316) participa a través de una sesión de servidor de terminal (331) con un componente de cliente (306) en un sistema de computadora de cliente (301), que una o más aplicaciones remotas (312) que corren en el sistema de computadora (311) configurado para accederse remotamente a través de la sesión de servidor de terminal (331) por el sistema de computadora de cliente (301), un método para utilizar arrastre y caída para transferir un objeto de una aplicación remota (312) a un módulo en el sistema de computadora de cliente (301), el método comprende: un acto del componente de servidor (316) que recibe un mensaje del componente de cliente (306) a través de la sesión de servidor de terminal (331), el mensaje indica al componente de servidor (316) que un curso de ventana de escritorio (333) se movió desde dentro hacia fuera de los límites de la ventana de aplicación (312W) que corresponde a la aplicación remota (312) en el sistema de computadora de cliente (311), un acto del componente de servidor (316) que determina que el movimiento del cursor de ventana de escritorio (333) se asocia con una operación de arrastre y caída pendiente; un acto del componente de servidor (316) que recibe una solicitud para un objeto de arrastre y caída (326) del componente de cliente (306), la solicitud enviada a través de la sesión de servidor de terminal (331) en respuesta a una consulta para el objeto de arrastre y caída (326) desde una aplicación (302) en el sistema de computadora de cliente (301), la solicitud indicando al componente de servidor (316) que la aplicación (302) en el componente de cliente (306) está solicitando el objeto de arrastre y caída (326) desde la aplicación remota (312); el componente de servidor (316) que actúa como un objetivo de caída de proxy a beneficio de la aplicación (316) en el sistema de computadora de cliente (311) en respuesta a recibir la solicitud para el objeto de arrastre y caída (326), que incluye: un acto de dirigir la solicitud para el objeto de arrastre y caída (326) a la aplicación remota (312); y un acto de recibir el objeto de arrastre caída (126) de la aplicación remota (312) enviada en respuesta a la solicitud para el objeto de arrastre y caída (326); y un acto del componente de servidor (316) que envía el objeto de arrastre y caída (326) al sistema de computadora de cliente (310) a través de la sesión de servidor de terminal (331) para entrega a la aplicación (302) en el sistema de computadora de cliente (301). 19. - El método de acuerdo con la reivindicación 18, que además comprende: un acto de configurar el componente de servidor como un objetivo de caída de proxy para que el componente de servidor pueda recibir objetos de arrastre y caída de la aplicación remota. 20. - El método de acuerdo con la reivindicación 18, en donde el componente de servidor que envía el objeto de arrastre y caída al sistema de computadora de cliente a través de la sesión de servidor de terminal comprende un acto del componente de servidor que envía el objeto de arrastre y caída a través de un canal virtual de la sesión de protocolo de escritorio remoto.
MX2008015484A 2006-06-09 2007-02-13 Arrastrar y dejar caer objetos entre modulos locales y remotos. MX2008015484A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/423,400 US7533349B2 (en) 2006-06-09 2006-06-09 Dragging and dropping objects between local and remote modules
PCT/US2007/003702 WO2007142708A1 (en) 2006-06-09 2007-02-13 Dragging and dropping objects between local and remote modules

Publications (1)

Publication Number Publication Date
MX2008015484A true MX2008015484A (es) 2009-03-06

Family

ID=38801780

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2008015484A MX2008015484A (es) 2006-06-09 2007-02-13 Arrastrar y dejar caer objetos entre modulos locales y remotos.

Country Status (12)

Country Link
US (2) US7533349B2 (es)
EP (1) EP2033107B1 (es)
JP (1) JP4482615B2 (es)
KR (1) KR20090027624A (es)
CN (1) CN101467139B (es)
AU (1) AU2007257440A1 (es)
BR (1) BRPI0712350A2 (es)
CA (1) CA2654040A1 (es)
MX (1) MX2008015484A (es)
RU (1) RU2430405C2 (es)
TW (1) TW200807948A (es)
WO (1) WO2007142708A1 (es)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715252B2 (en) 2011-08-24 2017-07-25 Z124 Unified desktop docking behavior for window stickiness
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US20130080143A1 (en) * 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop docking behavior with device as master
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
PT1844390E (pt) * 2005-01-31 2012-10-09 Cortado Ag Processo e disposição para imprimir através de um servidor de aplicação assim como um programa de computador correspondente e um meio de armazenamento legível por computador correspondente
US7533349B2 (en) * 2006-06-09 2009-05-12 Microsoft Corporation Dragging and dropping objects between local and remote modules
US10503342B2 (en) 2006-08-04 2019-12-10 Apple Inc. User interface spaces
US8117555B2 (en) * 2006-12-07 2012-02-14 Sap Ag Cooperating widgets
US20080215998A1 (en) * 2006-12-07 2008-09-04 Moore Dennis B Widget launcher and briefcase
US8248636B1 (en) 2006-12-29 2012-08-21 Google Inc. WYSIWYG printing for web based applications
US8612547B1 (en) 2006-12-29 2013-12-17 Google Inc. Container interrupt services
US9391826B1 (en) 2006-12-29 2016-07-12 Google Inc. Collaborative web based applications
US9384346B1 (en) 2006-12-29 2016-07-05 Google Inc. Local service access within a web based application framework
US7895296B1 (en) 2006-12-29 2011-02-22 Google, Inc. Local storage for web based native applications
US8335817B1 (en) * 2006-12-29 2012-12-18 Google Inc. Message passing within a web based application framework
US8539073B1 (en) 2006-12-29 2013-09-17 Google Inc. Startup of container applications
US20090094561A1 (en) * 2007-10-05 2009-04-09 International Business Machines Corporation Displaying Personalized Documents To Users Of A Surface Computer
US9134904B2 (en) * 2007-10-06 2015-09-15 International Business Machines Corporation Displaying documents to a plurality of users of a surface computer
US8139036B2 (en) * 2007-10-07 2012-03-20 International Business Machines Corporation Non-intrusive capture and display of objects based on contact locality
US20090091539A1 (en) * 2007-10-08 2009-04-09 International Business Machines Corporation Sending A Document For Display To A User Of A Surface Computer
US8024185B2 (en) 2007-10-10 2011-09-20 International Business Machines Corporation Vocal command directives to compose dynamic display text
US9619304B2 (en) * 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US8370519B2 (en) 2008-02-12 2013-02-05 Microsoft Corporation Copying data onto an expandable memory in a wireless device using a desktop interface
US20090237363A1 (en) * 2008-03-20 2009-09-24 Microsoft Corporation Plural temporally overlapping drag and drop operations
US20140040862A1 (en) * 2008-04-03 2014-02-06 Adobe Systems Incorporated Copying Reusable Components from a Remote Source
US20090300131A1 (en) * 2008-05-27 2009-12-03 Supportspace Ltd. Simultaneous remote and local control of computer desktop
EP2131271A1 (en) * 2008-06-04 2009-12-09 NEC Corporation Method for enabling a mobile user equipment to drag and drop data objects between distributed applications
US8458363B2 (en) * 2008-06-08 2013-06-04 Apple Inc. System and method for simplified data transfer
US11258652B2 (en) 2008-06-08 2022-02-22 Apple Inc. System and method for placeshifting media playback
US9626363B2 (en) * 2008-06-08 2017-04-18 Apple Inc. System and method for placeshifting media playback
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
EP2184679A1 (en) * 2008-10-30 2010-05-12 Alcatel Lucent Method for operating an ending web-widget with data retrieved from a starting web-widget
TW201020901A (en) 2008-11-20 2010-06-01 Ibm Visual feedback for drag-and-drop operation with gravitational force model
KR20100081577A (ko) * 2009-01-06 2010-07-15 삼성전자주식회사 휴대단말에서 오브젝트의 내비게이션 방법 및 장치
US8650634B2 (en) 2009-01-14 2014-02-11 International Business Machines Corporation Enabling access to a subset of data
US8169904B1 (en) * 2009-02-26 2012-05-01 Sprint Communications Company L.P. Feedback for downlink sensitivity
US8612883B2 (en) 2009-06-08 2013-12-17 Apple Inc. User interface for managing the display of multiple display regions
US9141412B2 (en) * 2009-06-16 2015-09-22 Microsoft Technology Licensing, Llc Terminal services application virtualization for compatibility
US8239781B2 (en) * 2009-06-30 2012-08-07 Sap Ag Drag and drop of an application component to desktop
US9277021B2 (en) 2009-08-21 2016-03-01 Avaya Inc. Sending a user associated telecommunication address
JP5433375B2 (ja) * 2009-10-23 2014-03-05 楽天株式会社 端末装置、機能実行方法、機能実行プログラム及び情報処理システム
US20110119609A1 (en) * 2009-11-16 2011-05-19 Apple Inc. Docking User Interface Elements
US8441702B2 (en) 2009-11-24 2013-05-14 International Business Machines Corporation Scanning and capturing digital images using residue detection
US8610924B2 (en) 2009-11-24 2013-12-17 International Business Machines Corporation Scanning and capturing digital images using layer detection
KR20110064674A (ko) 2009-12-08 2011-06-15 삼성전자주식회사 동적 로컬 기능 결합 장치 및 방법
US20130174062A1 (en) * 2009-12-23 2013-07-04 Nokia Corporation Method and Apparatus for Display Device
US9009219B2 (en) * 2010-01-27 2015-04-14 Vmware, Inc. Native viewer use for service results from a remote desktop
US9274821B2 (en) 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
CN102262528B (zh) * 2010-05-26 2016-06-22 腾讯科技(深圳)有限公司 即时通讯客户端及其内嵌网页页面实现拖拽的方法
US8335991B2 (en) * 2010-06-11 2012-12-18 Microsoft Corporation Secure application interoperation via user interface gestures
US20120030664A1 (en) * 2010-07-30 2012-02-02 Sap Ag Processing of software objects moved into a dropzone region of an application
US8527891B2 (en) 2010-08-13 2013-09-03 International Business Machines Corporation Enabling user interactions between user interface components
US20120131483A1 (en) * 2010-11-22 2012-05-24 International Business Machines Corporation Drag-and-drop actions for web applications using an overlay and a set of placeholder elements
CN102566983B (zh) * 2010-12-07 2016-04-20 腾讯科技(深圳)有限公司 基于Windows系统的对象拖拽实现方法及其系统
US9811528B2 (en) 2010-12-09 2017-11-07 Yosef Benraz Systems and methods for providing continuing access to a remote computer program
TW201227489A (en) * 2010-12-31 2012-07-01 Hon Hai Prec Ind Co Ltd System and method for processing image
US8554897B2 (en) * 2011-01-24 2013-10-08 Lg Electronics Inc. Data sharing between smart devices
US9367224B2 (en) * 2011-04-29 2016-06-14 Avaya Inc. Method and apparatus for allowing drag-and-drop operations across the shared borders of adjacent touch screen-equipped devices
WO2012160561A1 (en) * 2011-05-23 2012-11-29 Tako Technology Ltd. Computerized system and method for remote accessto a computer program
US8489680B1 (en) 2011-08-18 2013-07-16 Google Inc. Transmission of input values using an unreliable communication link
US20130080932A1 (en) 2011-09-27 2013-03-28 Sanjiv Sirpal Secondary single screen mode activation through user interface toggle
EP2581824A1 (en) * 2011-10-13 2013-04-17 Gface GmbH Smart drag and drop
KR101943987B1 (ko) * 2011-12-06 2019-04-17 삼성전자주식회사 디바이스 간의 페이지 공유 시스템 및 방법
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
CN103186430A (zh) * 2011-12-30 2013-07-03 联想(北京)有限公司 文件操作装置及方法,和对应的数字处理设备和数字处理系统
CN103186421A (zh) * 2011-12-31 2013-07-03 联想(北京)有限公司 一种在混合系统远程桌面实现数据交互的方法和装置
WO2013175770A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US8970492B2 (en) 2012-06-08 2015-03-03 Microsoft Technology Licensing, Llc Remote session control using multi-touch inputs
US8943582B1 (en) * 2012-07-18 2015-01-27 Amazon Technologies, Inc. Transferring information among devices using cameras
US20140047368A1 (en) * 2012-08-13 2014-02-13 Magnet Systems Inc. Application development tool
KR102017631B1 (ko) * 2012-09-03 2019-09-03 삼성전자주식회사 데이터 통신을 위한 단말 장치 및 방법
CN104571782A (zh) * 2013-10-18 2015-04-29 腾讯科技(深圳)有限公司 远程控制方法、系统、操控终端及被控终端
CN103955328B (zh) * 2014-04-29 2017-01-18 广东威创视讯科技股份有限公司 操作端查阅拼接墙中显示内容的方法和系统
US10417247B2 (en) 2014-09-25 2019-09-17 Oracle International Corporation Techniques for semantic searching
US10664488B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation Semantic searches in a business intelligence system
US10516980B2 (en) 2015-10-24 2019-12-24 Oracle International Corporation Automatic redisplay of a user interface including a visualization
US10082941B2 (en) * 2015-05-20 2018-09-25 Vmware, Inc. Optimizing window move actions for remoted applications
CN108139803B (zh) 2015-10-08 2021-04-20 Pcms控股公司 用于动态显示器配置的自动校准的方法及系统
US10088981B2 (en) * 2015-12-29 2018-10-02 Sap Se User engagement application across user interface applications
US10564829B2 (en) 2016-03-25 2020-02-18 Vmware, Inc. Optimizing window resize actions for remoted applications
US10884604B2 (en) 2017-05-16 2021-01-05 Apple Inc. Drag and drop for touchscreen devices
US11614857B2 (en) 2017-06-02 2023-03-28 Oracle International Corporation Importing, interpreting, and presenting data
US10956237B2 (en) * 2017-06-02 2021-03-23 Oracle International Corporation Inter-application sharing of business intelligence data
US10917587B2 (en) 2017-06-02 2021-02-09 Oracle International Corporation Importing and presenting data
JP6961402B2 (ja) 2017-06-22 2021-11-05 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US11301124B2 (en) * 2017-08-18 2022-04-12 Microsoft Technology Licensing, Llc User interface modification using preview panel
US11237699B2 (en) 2017-08-18 2022-02-01 Microsoft Technology Licensing, Llc Proximal menu generation
US10783012B2 (en) 2018-04-20 2020-09-22 CopyBucket, Inc. Systems and methods for efficient inter-device data exchange
WO2020112900A2 (en) 2018-11-30 2020-06-04 Pcms Holdings, Inc. Method for mirroring 3d objects to light field displays
US20200192539A1 (en) * 2018-12-13 2020-06-18 Vmware, Inc. System and method for operating system event redirection
CN109782976B (zh) * 2019-01-15 2020-12-22 Oppo广东移动通信有限公司 文件处理方法、装置、终端及存储介质
CN114089900A (zh) * 2020-07-29 2022-02-25 华为技术有限公司 一种跨设备的对象拖拽方法及设备
CN111752722A (zh) * 2020-05-28 2020-10-09 西安万像电子科技有限公司 数据传输方法及设备
TWI761056B (zh) * 2021-02-01 2022-04-11 宏正自動科技股份有限公司 資料傳送方法與資料傳送裝置
US11402964B1 (en) * 2021-02-08 2022-08-02 Facebook Technologies, Llc Integrating artificial reality and other computing devices
CN114138145A (zh) * 2021-11-30 2022-03-04 武汉噢易云计算股份有限公司 应用虚拟化的文件拖拽方法、装置、设备及可读存储介质
CN114928524B (zh) * 2022-05-20 2024-03-26 浪潮思科网络科技有限公司 一种web端与交换机的交互方法、设备及介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272715A (ja) * 1995-03-31 1996-10-18 Canon Inc 情報転送方法および掲示板装置
US5767851A (en) * 1996-01-29 1998-06-16 Sun Microsystems, Inc. Method and apparatus for emulating an environment's drag and drop functionality in a host environment
US6138150A (en) * 1997-09-03 2000-10-24 International Business Machines Corporation Method for remotely controlling computer resources via the internet with a web browser
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
TW559699B (en) * 2000-01-12 2003-11-01 Sony Corp Image display device and method
US6941382B1 (en) * 2000-02-07 2005-09-06 Raja Tuli Portable high speed internet or desktop device
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7546602B2 (en) * 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US6920461B2 (en) * 2001-07-10 2005-07-19 Microsoft Corp. Application program interface for network software platform
JP2003091489A (ja) * 2001-09-14 2003-03-28 Sony Corp ネットワーク情報処理システム及び情報処理方法
US20030093466A1 (en) * 2001-11-15 2003-05-15 Jarman James D. Drag and drop technology for remote control tool
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US20050091359A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Systems and methods for projecting content from computing devices
US7721254B2 (en) * 2003-10-24 2010-05-18 Microsoft Corporation Programming interface for a computer platform
US7590750B2 (en) * 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
KR100611255B1 (ko) * 2004-10-15 2006-08-10 한국과학기술연구원 작업 공간을 공유하는 원격 회의 방법
JP4738805B2 (ja) * 2004-12-16 2011-08-03 株式会社リコー 画面共有システム、画面共有方法、画面共有プログラム
US8769127B2 (en) * 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US7533349B2 (en) * 2006-06-09 2009-05-12 Microsoft Corporation Dragging and dropping objects between local and remote modules

Also Published As

Publication number Publication date
US20070288599A1 (en) 2007-12-13
RU2430405C2 (ru) 2011-09-27
EP2033107A1 (en) 2009-03-11
CN101467139A (zh) 2009-06-24
CN101467139B (zh) 2012-05-30
TW200807948A (en) 2008-02-01
AU2007257440A1 (en) 2007-12-13
JP4482615B2 (ja) 2010-06-16
RU2008148326A (ru) 2010-06-20
EP2033107A4 (en) 2017-03-29
US7802195B2 (en) 2010-09-21
US7533349B2 (en) 2009-05-12
WO2007142708A1 (en) 2007-12-13
JP2009540428A (ja) 2009-11-19
CA2654040A1 (en) 2007-12-13
EP2033107B1 (en) 2019-08-07
US20090210811A1 (en) 2009-08-20
KR20090027624A (ko) 2009-03-17
BRPI0712350A2 (pt) 2012-05-29

Similar Documents

Publication Publication Date Title
MX2008015484A (es) Arrastrar y dejar caer objetos entre modulos locales y remotos.
US7196712B2 (en) Dynamic, live surface and model elements for visualization and modeling
EP1292875B1 (en) Single window navigation methods and systems
US9531840B2 (en) Method and system for changing execution environments during application execution
US5287447A (en) Method and system for providing container object attributes to a non-container object
JP3602532B2 (ja) 増分コマンド・オブジェクトを有する並行処理装置
US8578277B2 (en) Integrating charts in documents
CN104035683B (zh) 一种通讯终端分屏多任务交互方法
CN110769048B (zh) 本地与远程虚拟桌面的无缝衔接方法及系统
US20060248447A1 (en) Indicating loading status of information from a computer network
US20070055932A1 (en) Application programming interfaces for graphical user interfaces
US20060090138A1 (en) Method and apparatus for providing DHTML accessibility
US20070260749A1 (en) Configuring user interfaces in electronic devices
KR20160140932A (ko) 확장 가능한 애플리케이션 표시 및 콘텐트 전송
JP2011503680A (ja) リレーショナルモデルのインテリジェントな編集
US8656293B1 (en) Configuring mobile devices
US20240020466A1 (en) Interactive form editor with concurrent automatic creation of schema files
KR102049805B1 (ko) 기존의 어플리케이션에 연동되는 프로토타입의 테스트 방법
CN101061453A (zh) 控制上下文菜单的方法和系统
JP2685133B2 (ja) 文書作成方法およびその装置
WO1998002823A2 (en) Program modules and parameter files in a network
CN116955289A (zh) 一种文件处理方法、装置、电子设备和存储介质
WO1994023362A1 (en) Behavior objects

Legal Events

Date Code Title Description
FA Abandonment or withdrawal