_IManipulationEvents::ManipulationDelta method (manipulations.h)
Handles events that happen when a manipulated object changes.
Syntax
HRESULT ManipulationDelta(
[in] FLOAT x,
[in] FLOAT y,
[in] FLOAT translationDeltaX,
[in] FLOAT translationDeltaY,
[in] FLOAT scaleDelta,
[in] FLOAT expansionDelta,
[in] FLOAT rotationDelta,
[in] FLOAT cumulativeTranslationX,
[in] FLOAT cumulativeTranslationY,
[in] FLOAT cumulativeScale,
[in] FLOAT cumulativeExpansion,
[in] FLOAT cumulativeRotation
);
Parameters
[in] x
The origin x-coordinate in user-defined coordinates.
[in] y
The origin y-coordinate in user-defined coordinates.
[in] translationDeltaX
The translation change about the x-axis in user-defined coordinates since the last event.
[in] translationDeltaY
The translation change about the y-axis in user-defined coordinates since the last event.
[in] scaleDelta
The scale change since the previous event as a percentage of the previous scale.
[in] expansionDelta
The expansion change since the previous event in user-defined coordinates.
[in] rotationDelta
The rotation change since the previous event in radians.
[in] cumulativeTranslationX
The translation about the x-axis since the beginning of the manipulation in user-defined coordinates.
[in] cumulativeTranslationY
The translation about the y-axis since the beginning of the manipulation in user-defined coordinates.
[in] cumulativeScale
The scale change since the beginning of the manipulation as a percentage of the original size.
[in] cumulativeExpansion
The expansion change since the beginning of the manipulation in user-defined coordinates.
[in] cumulativeRotation
The rotation change since the beginning of the manipulation in radians.
Return value
If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.
Remarks
Manipulation events are generated for both the IInertiaProcessor and IManipulationProcessor interfaces. If you are using the values from the TOUCHINPUT structure in calls to ProcessMove, the coordinates will be in hundredths of a pixel.
Examples
The following code shows an implementation of the ManipulationDelta method.
HRESULT STDMETHODCALLTYPE CManipulationEventSink::ManipulationDelta(
/* [in] */ FLOAT x,
/* [in] */ FLOAT y,
/* [in] */ FLOAT translationDeltaX,
/* [in] */ FLOAT translationDeltaY,
/* [in] */ FLOAT scaleDelta,
/* [in] */ FLOAT expansionDelta,
/* [in] */ FLOAT rotationDelta,
/* [in] */ FLOAT cumulativeTranslationX,
/* [in] */ FLOAT cumulativeTranslationY,
/* [in] */ FLOAT cumulativeScale,
/* [in] */ FLOAT cumulativeExpansion,
/* [in] */ FLOAT cumulativeRotation)
{
m_cDeltaEventCount ++;
// Place your code handler here to do any operations based on the manipulation.
return S_OK;
}
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 7 [desktop apps only] |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Target Platform | Windows |
Header | manipulations.h (include Manipulations.h) |
See also
Adding Manipulation Support to Unmanaged Code