The information in this article applies to:
- Microsoft Windows for Pen Computing version 1.0
SUMMARY
To pass ink between hedit controls, an application must capture the ink
when the hedit control's parent window receives the HN_ENDREC notification
message. Then the application does either of the following:
- Sends a WM_HEDITCTL message with wParam set to HE_SETINKMODE to begin
collecting ink, and sends a WM_HEDITCTL message with wParam set to
HE_STOPINKMODE to stop collecting ink.
- Specifies RCO_SAVEHPENDATA in the lRcOptions field of the RC data
structure.
INK2H is a file in the Microsoft Software Library that demonstrates
capturing ink and using the WM_HEDITCTL message.
Download INK2H.EXE from the Microsoft Software Library (MSL) on the
following services:
MORE INFORMATION
The recognizer returns ink in the hpendata field of the RCRESULT structure.
Passing ink between hedit controls is more difficult than using a normal
device context (DC). Perform the following four steps to save the ink:
- Perform either of the following:
a. Specify RCO_SAVEHPENDATA in the lRcOptions field of the RC data
structure.
b. Send the WM_HEDITCTL message to the hedit control with HE_SETINKMODE
in wParam to begin collecting ink. Send the WM_HEDITCTL message to
the hedit control with HE_STOPINKMODE to stop collecting ink.
- When the application receives an HN_ENDREC notification for the source
hedit control, retrieve the handle to the memory containing the ink.
(When recognition is complete, the recognizer sends a WM_COMMAND message
with the HN_ENDREC notification as the high-order word of lParam and the
ID of the hedit control in wParam.)
- Use the SendMessage function to send a WM_HEDITCTL message with
HE_GETINKHANDLE as the value for wParam. If the call is successful, the
low-order word of the returned value contains a handle to the memory
containing the ink.
- Depending on the choice made at step 1 above, perform the corresponding
step:
a. If the RCO_SAVEHPENDATA flag was set in step 1, Windows will not
delete the data after all corresponding WM_RCRESULT messages have
been sent. Therefore, call the DestroyPenData function to delete the
pen data when an HN_RCRESULT notification is received.
b. If HE_SETINKMODE is used, call the DuplicatePenData function to save
the ink into a block of memory allocated by the GlobalAlloc function.
The procedure to place the collected ink into another hedit control is very
similar. Send a WM_HEDITCTL message with wParam set to HE_SETINKMODE and
the low-order of lParam set to the handle to the memory block containing
the ink. Then send a WM_HEDITCTL message with wParam set to HE_STOPINKMODE.
The INK2H sample application demonstrates copying ink between hedit
controls using the HE_SETINKMODE and HE_STOPINKMODE values with a
WM_HEDITCTL message.