IsPacketPropertySupported Method
IsPacketPropertySupported Method |
Determines whether a property of a tablet device or a collection of tablet devices, identified with a globally unique identifier (GUID), is supported.
For example, use this method to determine if all of the tablets in a collection support tangential pressure from a pen.
Declaration
[C++]
HRESULT IsPacketPropertySupported (
[in] BSTR packetProperty,
[out, retval] VARIANT_BOOL *Supported
);
[Microsoft® Visual Basic® 6.0]
Public Function IsPacketPropertySupported( _
packetProperty As String _
) As Boolean;
Parameters
packetProperty
[in] The GUID for the PacketProperty of the tablet or tablets that is requested. Use a defined BSTR constant from the PacketProperty constants.
For more information about the BSTR data type, see Using the Automation Library.
Supported
[out] Returns the Boolean value that indicates whether a known property is supported by the tablet or tablets. The value is TRUE if the property is supported; otherwise, FALSE.
Return Value
HRESULT value | Description |
---|---|
S_OK | Success. |
E_POINTER | A parameter contained an invalid pointer. |
CO_E_CLASSSTRING | Invalid GUID format. |
E_INK_EXCEPTION | An exception occurred while processing. |
E_INVALIDARG | The flag is invalid. |
Remarks
Note: When this method is called on the InkTablets collection, it queries all of the tablets on the system. If any of them does not support the property, it returns FALSE. Call IsPacketPropertySupported on an individual IInkTablet object to determine whether the device supports a known property.
Example
[Visual Basic 6.0]
This Visual Basic 6.0 example reports on the properties in each tablet that are available in the InkTablets collection.
Dim theInkCollector As InkCollector
Private Sub Command1_Click()
Text1.Text = ReportOnEachTablet()
End Sub
Private Sub Form_Load()
Set theInkCollector = New InkCollector
theInkCollector.hWnd = Me.hWnd
theInkCollector.Enabled = True
End Sub
Public Function ReportOnEachTablet() As String
Dim theTablets As InkTablets
Set theTablets = New InkTablets
Dim theReport As String
theReport = vbCrLf
'Iterate over the tablets in the collection,
'reporting on each one.
Dim theTablet As IInkTablet
For Each theTablet In theTablets
theReport = theReport & "Tablet Name: " & theTablet.name & vbCrLf
If theTablets.DefaultTablet.name = theTablet.name Then
theReport = theReport & "(Default)" & vbCrLf
End If
theReport = theReport & "PlugAndPlayId: " & _
theTablet.PlugAndPlayId & vbCrLf
theReport = theReport & "HardwareCapabilities: " & _
theTablet.HardwareCapabilities & vbCrLf
If (theTablet.HardwareCapabilities And _
THWC_CursorMustTouch) <> 0 Then
theReport = theReport & " CursorMustTouch" & vbCrLf
End If
If (theTablet.HardwareCapabilities And _
THWC_CursorsHavePhysicalIds) <> 0 Then
theReport = theReport & " CursorsHavePhysicalIds" & vbCrLf
End If
If (theTablet.HardwareCapabilities And _
THWC_HardProximity) <> 0 Then
theReport = theReport & " HardProximity" & vbCrLf
End If
If (theTablet.HardwareCapabilities And _
THWC_Integrated) <> 0 Then
theReport = theReport & " Integrated" & vbCrLf
End If
On Error Resume Next
theReport = theReport & "MaximumInputRectangle " & _
theTablet.MaximumInputRectangle & vbCrLf
'Report on each supported Packet Property.
theReport = theReport & "IsPacketPropertySupported:" & vbCrLf
theReport = theReport & GetProperty(theTablet, _
AltitudeOrientation, _
"AltitudeOrientation")
theReport = theReport & GetProperty(theTablet, _
AzimuthOrientation, _
"AzimuthOrientation")
theReport = theReport & GetProperty(theTablet, _
ButtonPressure, "ButtonPressure")
theReport = theReport & GetProperty(theTablet, _
NormalPressure, "NormalPressure")
theReport = theReport & GetProperty(theTablet, _
PacketStatus, "PacketStatus")
theReport = theReport & GetProperty(theTablet, _
PitchRotation, "PitchRotation")
theReport = theReport & GetProperty(theTablet, _
RollRotation, "RollRotation")
theReport = theReport & GetProperty(theTablet, _
SerialNumber, "SerialNumber")
theReport = theReport & GetProperty(theTablet, _
TangentPressure, "TangentPressure")
theReport = theReport & GetProperty(theTablet, _
TimerTick, "TimerTick")
theReport = theReport & GetProperty(theTablet, _
TwistOrientation, "TwistOrientation")
theReport = theReport & GetProperty(theTablet, X, "X")
theReport = theReport & GetProperty(theTablet, _
XTiltOrientation, "XTiltOrientation")
theReport = theReport & GetProperty(theTablet, Y, "Y")
theReport = theReport & GetProperty(theTablet, _
YawRotation, "YawRotation")
theReport = theReport & GetProperty(theTablet, _
YTiltOrientation, "YTiltOrientation")
theReport = theReport & GetProperty(theTablet, Z, "Z")
theReport = theReport & vbCrLf
Next
ReportOnEachTablet = theReport
End Function
Public Function GetProperty( _
ByVal theTablet As IInkTablet, _
ByVal theGuid As String, _
ByVal name As String) _
As String
Dim theReport As String
Dim theMin As Long
Dim theMax As Long
Dim theUnits As TabletPropertyMetricUnit
Dim theResolution As Single
' If this particular property is supported,
' report the name and property metrics information.
If theTablet.IsPacketPropertySupported(theGuid) Then
theTablet.GetPropertyMetrics _
theGuid, theMin, theMax, theUnits, theResolution
theReport = " " & name & vbCrLf & _
" Max: " & theMax & vbCrLf & _
" Min: " & theMin & vbCrLf & _
" Resolution: " & theResolution & _
vbCrLf & _
" Units: " & theUnits & vbCrLf
End If
GetProperty = theReport
End Function