DoDefaultPenInput 

2.0     

Initiates default handling of pen input.

int DoDefaultPenInput( HWND hwnd, UINT wEventRef )

Parameters

hwnd

Handle to the window initiating the default processing.

wEventRef

An identifier of a pen event in the input stream, from which input is begun. This identifier is the value returned from the GetMessageExtraInfo3P040HC function.

Return Value

Returns one of the following values:

Constant

Description

PCMR_OK

Pen collection was successfully started.

PCMR_ALREADYCOLLECTING

StartPenInput1AOCU6 has already been called for this session.

PCMR_APPTERMINATED

The application aborted input.

PCMR_ERROR

Illegal parameter or unspecified error.

PCMR_INVALID_PACKETID

Invalid packet identifier.

PCMR_SELECT

Press-and-hold was detected. Collection is not started.

PCMR_TAP

A pen tap was detected. Collection is not started.

 

Comments

DoDefaultPenInput simplifies the pen input process by including the following capabilities in a single call:

    Starts pen input by calling StartPenInput1AOCU6

    Starts inking by calling StartInking232HBED

    Saves the screen background overwritten by the ink

    Collects the pen input data

    Stops inking by calling StopInking1AOCU7

    Stops pen input by calling StopPenInput1AOCU8

    Targets the pen input data to windows

    Recognizes results

    Sends the recognition results to the targets

 

The default processing proceeds in three phases: initialization, data gathering, and termination. A set of submessages corresponds to each of the three phases.

    During the initialization phase, the system sends the WM_PENEVENT sub-message PE_SETTARGETS and potentially several PE_GETPCMINFO and PE_GETINKINGINFO messages. After the target or the DefWindowProc32D1NBH function handles these messages and returns a value of PCMR_OK to indicate success, the data-gathering phase begins.

    During the data-gathering phase, the window specified by the hwnd parameter starts to receive the core pen-input submessages PE_PENDOWN, PE_PENUP, and PE_PENMOVE. The window should let these submessages fall through to DefWindowProc, which translates them into the higher-level messages PE_BEGINDATA and PE_MOREDATA. These are sent to one of the windows specified in the htrgTarget members of the TARGET1AOCY_ structures if targeting is in progress; otherwise, the messages are sent to hwnd.

    The termination phase begins when the pen input terminates. The target window should let the core termination messages PE_TERMINATING and PE_TERMINATED fall through to DefWindowProc32D1NBH. The PE_ENDDATA, PE_RESULT, and PE_ENDINPUT submessages are sent by DefWindowProc while processing PE_TERMINATED.

 

A return value of LRET_ABORT to any of the WM_PENEVENT submessages aborts the entire process of default input.

See Also

WM_PENEVENT, , StartPenInput, StartInking, StopPenInput, StopInking