InputObject Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Clase base para todos los objetos de entrada.
[WebHostHidden]
public ref class InputObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[WebHostHidden]
class InputObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class InputObject
Public Class InputObject
- Herencia
- Derivado
- Atributos
Comentarios
Todas las API de entrada del SDK de Aplicaciones para Windows derivan de la clase base InputObject común.
Modelo de subprocesos InputObject
Solo se puede tener acceso a InputObject desde el subproceso donde se creó. Cualquier llamada de función o acceso de propiedad en un subproceso diferente devolverá RPC_E_WRONG_THREAD (o el tipo de error proyectado equivalente). La única excepción a esto es al acceder a la propiedad InputObject DispatcherQueue . DispatcherQueue permite comprobar si el subproceso actual tiene acceso y, si no es así, poner en cola el trabajo en el subproceso definido.
Todas las devoluciones de llamada de eventos se generan en el subproceso DispatcherQueue asociado con InputObject.
En el ejemplo siguiente se muestra cómo determinar si inputObject pertenece al subproceso actual.
bool OnThread(Microsoft.UI.Input.InputObject inputObject)
{
return inputObject.DispatcherQueue.HasThreadAccess();
}
Comportamiento cuando se elimina
Cuando se elimina un InputObject, todos los controladores de eventos asociados se anulan automáticamente el registro. Las llamadas posteriores para anular el registro de un controlador de eventos se realizarán correctamente, pero no son necesarias.
Todas las llamadas de propiedad o función subsiguientes, incluida la propiedad DispatcherQueue, devolverán RO_E_CLOSED (o el error proyectado equivalente).
Nota
La memoria InputObject permanece válida hasta que se han liberado todas las referencias, pero todos los recursos se liberan cuando se eliminan.
Propiedades
DispatcherQueue |
Obtiene dispatcherQueue para InputObject. |