OEMPENINFO
1.0 2.0
Structure
containing original equipment manufacturer (OEM) hardware information for the
pen or tablet.
typedef struct {
UINT wPdt;
UINT
wValueMax;
UINT
wDistinct;
} OEMPENINFO;
Members
wPdt
A combination
of PDT_ values.
wValueMax
The largest
value returned by the device.
wDistinct
The number of
distinct readings possible.
Comments
The OEMPENINFO
structure contains a description of the additional OEM information that the hardware
can generate. It is a component of the PENINFO3BE5AL5 structure.
Besides
capturing the x- and y- coordinates of the pen movement, a pen device has the
option of providing a number of other types of input data, such as pen
pressure, height of the pen tip above the tablet surface, angle of the pen, and
so on. A pen driver can capture up to MAXOEMDATAWORDS types of data, where
MAXOEMDATAWORDS is defined as six. An application can access the OEM data
through the GetPenInput
Each pen
event generates a packet of information from the pen driver that contains the
current pen position and, optionally, other types of OEM information. The cbOemData
member of the PENINFO structure specifies the width of the optional OEM
data in bytes. Each type of data is one word wide. The type of data in the nth
word of the OEM data packet is given by the nth element of the rgoempeninfo
member (an array of OEMPENINFO structures) in the PENINFO
structure.
For the wPdt
member, PDT_NULL indicates no data. Values greater than PDT_OEMSPECIFIC are
reserved for private use by drivers for data types not currently defined as
standard. The wValueMax member contains the largest variable size the
device can return for that data type. The wDistinct member is the number
of distinct readings the device can take between 0 and wValueMax.
For a list of
values for the wPdt member, see the entry for PDT_ values in Chapter 13,
Pen Application Programming Interface Constants.
Example
As an example
of how to use OEMPENINFO, consider a device that can sense both the
height above the tablet surface and the Z-angle of the pen. Assume the device
can sense 256 levels of height in a range from 0 to 10 centimeters and has a
resolution of 1 degree on the angle of the pen. The two additional words of OEM
information occupy 4 bytes, so the cbOemData and rgoempeninfo
members of PENINFO
peninfo.cbOemData = 4
peninfo.rgoempeninfo[MAXOEMDATAWORDS] = {
{ PDT_HEIGHT,
1000, 256},
{ PDT_ANGLEZ,
1800, 180},
{ PDT
NULL, 0, 0},
{ PDT_NULL,
0, 0},
{ PDT_NULL,
0, 0},
{ PDT_NULL,
0, 0} };
This optional
information is saved by the pen driver in the same manner as the x- and y-
coordinate data. There must be a one-to-one correspondence between the OEM
event data and the coordinate data.
Figure 11.5
shows the pen in a position where both the Xy-angle and Z-angle are
approximately 45 degrees.
{bmc bm73.BMP}
See Also