Direct Manipulation

Overview of the Direct Manipulation technology.

To develop Direct Manipulation, you need these headers:

For programming guidance for this technology, see:

Enumerations

Title Description
DIRECTMANIPULATION_AUTOSCROLL_CONFIGURATION Determines the type and direction of automatic scrolling animation to apply.
DIRECTMANIPULATION_CONFIGURATION Defines the interaction configuration states available in Direct Manipulation.
DIRECTMANIPULATION_DRAG_DROP_CONFIGURATION Defines behaviors for the drag-drop interaction.
DIRECTMANIPULATION_DRAG_DROP_STATUS Defines the drag-and-drop interaction states for the viewport.
DIRECTMANIPULATION_GESTURE_CONFIGURATION Defines the gestures that can be passed to SetManualGesture.
DIRECTMANIPULATION_HITTEST_TYPE Defines how hit testing is handled by Direct Manipulation when using a dedicated hit-test thread registered through RegisterHitTestTarget.
DIRECTMANIPULATION_HORIZONTALALIGNMENT Defines the horizontal alignment options for content within a viewport.
DIRECTMANIPULATION_INPUT_MODE Defines the threading behavior for SetInputMode or SetUpdateMode. The exact meaning of each constant depends on the method called.
DIRECTMANIPULATION_INTERACTION_TYPE Defines gestures recognized by Direct Manipulation.
DIRECTMANIPULATION_MOTION_TYPES Defines the Direct Manipulation motion type.
DIRECTMANIPULATION_SNAPPOINT_COORDINATE Defines the coordinate system for a collection of snap points.
DIRECTMANIPULATION_SNAPPOINT_TYPE Modifies how the final inertia end position is calculated.
DIRECTMANIPULATION_STATUS Defines the possible states of Direct Manipulation.
DIRECTMANIPULATION_VERTICALALIGNMENT Defines the vertical alignment settings for content within the viewport.
DIRECTMANIPULATION_VIEWPORT_OPTIONS Defines the input behavior options for the viewport.

Functions

Title Description
Abandon Releases all resources that are used by the viewport and prepares it for destruction from memory.
Activate Activates Direct Manipulation for processing input and handling callbacks on the specified window.
ActivateConfiguration Sets the configuration for input interaction.
AddBehavior Adds a behavior to the viewport and returns a cookie to the caller.
AddConfiguration Adds an interaction configuration for the viewport.
AddContent Associates content (owned by the caller) with the compositor, assigns a composition device to the content, and specifies the position of the content in the composition tree relative to other composition visuals.
AddContent Adds secondary content, such as a panning indicator, to a viewport.
AddContentWithCrossProcessChaining Associates content (owned by the component host) with the compositor, assigns a composition device to the content, and specifies the position of the content in the composition tree relative to other composition visuals.
AddEventHandler Adds a new event handler to listen for viewport events.
CancelContact Cancel all scheduled calls to SetContact for this pointerId.
CancelDeferral Cancel the deferral set in DeferContact and process the scheduled SetContact call for this pointerId.
CreateBehavior Factory method to create a behavior.
CreateContent The factory method that is used to create an instance of secondary content (such as a panning indicator) inside a viewport.
CreateViewport The factory method that is used to create a new IDirectManipulationViewport object.
Deactivate Deactivates Direct Manipulation for processing input and handling callbacks on the specified window.
DeferContact Specifies the amount of time to defer the execution of a call to SetContact for this pointerId.
Disable Stops input processing by the viewport.
Enable Starts or resumes input processing by the viewport.
Flush Commits all pending updates in the compositor to the system for rendering.
GetCenterPoint Retrieves the center point of the manipulation in content coordinates.
GetContentRect Retrieves the bounding rectangle of the content, relative to the bounding rectangle of the viewport (if defined).
GetContentTransform Retrieves the transform applied to the content.
GetInertiaEndTransform Gets the final transform, including inertia, of the primary content.
GetNextFrameInfo Retrieves the composition timing information from the compositor.
GetOutputTransform Gets the final transform applied to the content.
GetPrimaryContent Gets the primary content of a viewport that implements IDirectManipulationContent and IDirectManipulationPrimaryContent.
GetService Retrieves an IDirectManipulationDeferContactService object.
GetStatus Gets the status of the drag-drop interaction for the viewport this behavior is attached to.
GetStatus Gets the state of the viewport.
GetTag Retrieves the tag object set on this content.
GetTag Gets the tag value of a viewport.
GetUpdateManager Gets a pointer to an IDirectManipulationUpdateManager object that receives compositor updates.
GetViewport Retrieves the viewport that contains the content.
GetViewportRect Retrieves the rectangle for the viewport relative to the origin of the viewport coordinate system specified by SetViewportRect.
OnContentUpdated Called when content inside a viewport is updated.
OnDragDropStatusChange Called when a status change happens in the viewport that the drag-and-drop behavior is attached to.
OnInteraction Called when an interaction is detected.
OnViewportStatusChanged Called when the status of a viewport changes.
OnViewportUpdated Called after all content in the viewport has been updated.
ProcessInput Passes keyboard and mouse messages to the manipulation manager on the app's UI thread.
RegisterHitTestTarget Registers a dedicated thread for hit testing.
RegisterWaitHandleCallback Registers a callback that is triggered by a handle.
ReleaseAllContacts Removes all contacts that are associated with the viewport. Inertia is started if the viewport supports inertia.
ReleaseContact Removes a contact that is associated with a viewport.
RemoveAllBehaviors Removes all behaviors added to the viewport.
RemoveBehavior Removes a behavior from the viewport that matches the given cookie.
RemoveConfiguration Removes an interaction configuration for the viewport.
RemoveContent Removes content from the compositor.
RemoveContent Removes secondary content from a viewport.
RemoveEventHandler Removes an existing event handler from the viewport.
SetChaining Specifies the motion types supported in a viewport that can be chained to a parent viewport.
SetConfiguration Performs the auto-scroll animation for the viewport this behavior is attached to.
SetConfiguration Sets the configuration of the drag-drop interaction for the viewport this behavior is attached to.
SetContact Specifies an association between a contact and the viewport.
SetContentRect Specifies the bounding rectangle of the content, relative to its viewport.
SetHorizontalAlignment Sets the horizontal alignment of the primary content relative to the viewport.
SetInputMode Specifies if input is visible to the UI thread.
SetManualGesture Sets which gestures are ignored by Direct Manipulation.
SetSnapCoordinate Specifies the coordinate system for snap points or snap intervals.
SetSnapInterval Specifies snap points for the inertia end position at uniform intervals.
SetSnapPoints Specifies the snap points for the inertia rest position.
SetSnapType Specifies the type of snap point.
SetTag Specifies the tag object for the content.
SetTag Sets a viewport tag.
SetUpdateManager Sets the update manager used to send compositor updates to Direct Manipulation.
SetUpdateMode Specifies whether a viewport updates content manually instead of during an input event.
SetVerticalAlignment Specifies the vertical alignment of the primary content in the viewport.
SetViewportOptions Sets how the viewport handles input and output.
SetViewportRect Sets the bounding rectangle for the viewport, relative to the origin of the viewport coordinate system.
SetViewportTransform Specifies the transform from the viewport coordinate system to the window client coordinate system.
SetZoomBoundaries Specifies the minimum and maximum boundaries for zoom.
Stop Stops the manipulation and returns the viewport to a ready state.
SyncContentTransform Modifies the content transform while maintaining the output transform.
SyncDisplayTransform Specifies a display transform for the viewport, and synchronizes the output transform with the new value of the display transform.
UnregisterWaitHandleCallback Deregisters a callback.
Update Notifies the compositor when to update inertia animation.
Update Updates Direct Manipulation at the current time.
ZoomToRect Moves the viewport to a specific area of the primary content and specifies whether to animate the transition.

Interfaces

Title Description
IDirectManipulationAutoScrollBehavior Represents the auto-scroll animation behavior of content as it approaches the boundary of a given axis or axes.
IDirectManipulationCompositor Represents a compositor object that associates manipulated content with a drawing surface, such as canvas (Windows app using JavaScript) or Canvas (Windows Store app using C++, C#, or Visual Basic).
IDirectManipulationCompositor2 Represents a compositor object that associates manipulated content with drawing surfaces across multiple processes.
IDirectManipulationContent Encapsulates content inside a viewport, where content represents a visual surface clipped inside the viewport.
IDirectManipulationDeferContactService Represents a service for managing associations between a contact and a viewport.
IDirectManipulationDragDropBehavior Represents behaviors for drag and drop interactions, which are triggered by cross-slide or press-and-hold gestures.
IDirectManipulationDragDropEventHandler Defines methods to handle drag-drop behavior events.
IDirectManipulationFrameInfoProvider Represents a time-keeping object that measures the latency of the composition infrastructure used by the application and provides this data to Direct Manipulation.
IDirectManipulationInteractionEventHandler Defines methods to handle interactions when they are detected.
IDirectManipulationManager Provides access to all the Direct Manipulation features and APIs available to the client application.
IDirectManipulationManager2 Extends the IDirectManipulationManager interface that provides access to all the Direct Manipulation features and APIs available to the client application.
IDirectManipulationManager3 Extends the IDirectManipulationManager2 interface that provides access to all the Direct Manipulation features and APIs available to the client application.
IDirectManipulationPrimaryContent Encapsulates the primary content inside a viewport.
IDirectManipulationUpdateHandler Defines methods for handling manipulation update events.
IDirectManipulationUpdateManager Manages how compositor updates are sent to Direct Manipulation.
IDirectManipulationViewport Defines a region within a window (referred to as a viewport) that is able to receive and process input from user interactions.
IDirectManipulationViewport2 Provides management of behaviors on a viewport. A behavior affects the functionality of a particular part of the Direct Manipulation workflow.
IDirectManipulationViewportEventHandler Defines methods for handling status and update events for the viewport.