CreatePenData  
1.0     2.0     
Creates an
empty HPENDATA block.
Note  This function
is provided only for compatibility with version 1.0 of the Pen API and will not
be supported in future versions. Use CreatePenDataEx instead.
HPENDATA CreatePenData( LPPENINFO lppeninfo,
int cbOem, UINT uScale, UINT gmemFlags
)
Parameters
lppeninfo
Address of
tablet information to be inserted into the PENINFO structure in the pen data
header. If this parameter is NULL, the current tablet settings are retrieved
from the hardware instead. If there is no tablet, the pen data will not have an
embedded PENINFO section and the wPndts member in PENDATAHEADER will have the
PDTS_NOPENINFO flag set.
cbOem
Width of OEM
data packet. If this value is greater than or equal to 0, the OEM data
overrides the contents of the PENINFO structure, if present; otherwise,
a negative value such as -1 can be
used to specify that the system should calculate the size of the OEM data
packet.
uScale
Data-scaling
metric value. This parameter can be one of the following values:
| 
   Constant  | 
  
   Description  | 
 
| 
   PDTS_LOMETRIC  | 
  
   Each
  logical unit is mapped to 0.1 millimeter. Positive x is to the right;
  positive y is down.  | 
 
| 
   PDTS_HIMETRIC  | 
  
   Each
  logical unit is mapped to 0.01 millimeter. Positive x is to the right;
  positive y is down.  | 
 
| 
   PDTS_HIENGLISH  | 
  
   Each
  logical unit is mapped to 0.001 inch. Positive x is to the right; positive y
  is down.  | 
 
| 
   PDTS_ARBITRARY  | 
  
   The
  application has done its own scaling of the data point.  | 
 
| 
   PDTS_STANDARDSCALE  | 
  
   The
  standard scaling metric; equivalent to PDTS_HIENGLISH.  | 
 
 
gmemFlags
Flag that
specifies whether or not the Windows GlobalAlloc function should create a
shared memory object when the pen data object is created. This should be either
0 or GMEM_DDESHARE. The GMEM_MOVEABLE and GMEM_ZEROINIT flags are added to this
value, and other GMEM_ flags are ignored.
Return Value
Returns a
handle to a new and empty pen data object if successful; otherwise, it returns
NULL.
Comments
The
application provides the PENINFO structure for the header, the real size of any OEM data
stored with each coordinate, and the scale of the coordinates.
The uScale
parameter specifies scaling values that are also used in the MetricScalePenData function and in the PENDATAHEADER structure member wPndts.
The scaling values do not behave in the same way as the Windows scaling units
with similar names. For example, a 1-inch line in MM_HIENGLISH will not
necessarily be an inch long on the screen because GDI does not know the size of
the monitor. However, with PDTS_HIENGLISH in MetricScalePenData, a line
drawn an inch long is actually an inch long.
If lppeninfo
is NULL, and if there is no tablet on the system (that is, if SendDriverMessage
fails), it returns NULL.
The cbOem
value must be less than or equal to 12, depending on the size of the OEM data
packet. A value of 0 explicitly sets the amount of OEM information to none. A
negative value indicates that the size of the OEM data packet is to be
calculated by the system. Any existing value for the cbOemData member of
PENINFO can
be overwritten.
See Also