Jump to content

UniUpdateShiftState: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
Line 6: Line 6:
; shiftState - [[OS2 API:DataType:USHIFTSTATE|USHIFTSTATE]] - input : The shift state consists of 3 32-bit values.  These bit definitions define the actual, effective, and LED shift states.
; shiftState - [[OS2 API:DataType:USHIFTSTATE|USHIFTSTATE]] - input : The shift state consists of 3 32-bit values.  These bit definitions define the actual, effective, and LED shift states.
; vScan - [[OS2 API:DataType:VSCAN|VSCAN]] - input : [[OS2 API:PMI|Presentation Manager]] scan code.
; vScan - [[OS2 API:DataType:VSCAN|VSCAN]] - input : [[OS2 API:PMI|Presentation Manager]] scan code.
; makeBreak - [[OS2 API:DataType:BYTE|BYTE]] - input : Key make, break, repeat indicator.
; makeBreak - [[BYTE]] - input : Key make, break, repeat indicator.


=== Constants ===
=== Constants ===
Line 15: Line 15:
* [[OS2 API:Unicode:error#ULS_BADHANDLE|ULS_BADHANDLE]]
* [[OS2 API:Unicode:error#ULS_BADHANDLE|ULS_BADHANDLE]]
* [[OS2 API:Unicode:error#ULS_SUCCESS|ULS_SUCCESS]]
* [[OS2 API:Unicode:error#ULS_SUCCESS|ULS_SUCCESS]]
=== Module ===
=== Define (C/C++) ===
=== Export name/Ordinal ===


=== Calling conversion ===
=== Calling conversion ===
Line 29: Line 23:
  [[OS2 API:DataType:USHIFTSTATE|USHIFTSTATE]] shiftState;
  [[OS2 API:DataType:USHIFTSTATE|USHIFTSTATE]] shiftState;
  [[OS2 API:DataType:VSCAN|VSCAN]]      vScan;
  [[OS2 API:DataType:VSCAN|VSCAN]]      vScan;
  [[OS2 API:DataType:BYTE|BYTE]]        makeBreak;
  [[BYTE]]        makeBreak;
  integer    rc;
  integer    rc;
  ...
  ...
Line 36: Line 30:


=== Related Functions ===
=== Related Functions ===
[[OS2 API:UniResetShiftState|UniResetShiftState]]
*[[OS2 API:UniResetShiftState|UniResetShiftState]]


=== Notes ===
=== Notes ===
[[OS2_API:UniUpdateShiftState|UniUpdateShiftState]] modifies the shift state as dictated by the scan code, using the specified keyboard translation tables. The shift state consists of these three parts:
[[UniUpdateShiftState]] modifies the shift state as dictated by the scan code, using the specified keyboard translation tables. The shift state consists of these three parts:
 
* The actual shift state
* The actual shift state
* The effective shift state
* The effective shift state
Line 50: Line 43:
OS/2 Warp
OS/2 Warp


 
[[Category:Uni]]
 
[[OS2_API | Back to OS/2 API]]
 
 
[[Category:The OS/2 API Project]]

Revision as of 20:17, 2 November 2016

UniUpdateShiftState

UniUpdateShiftState(keyboardHndl, shiftState, vScan, makeBreak)
Update the effective and actual shift state and LED status.

Parameters

keyboardHndl - KHAND - input
The key board handle received from UniCreateKeyboard.
shiftState - USHIFTSTATE - input
The shift state consists of 3 32-bit values. These bit definitions define the actual, effective, and LED shift states.
vScan - VSCAN - input
Presentation Manager scan code.
makeBreak - BYTE - input
Key make, break, repeat indicator.

Constants

None

Returns

An integer with values of:

Calling conversion

Cdecl32

Example Code

KHAND       keyboardHndl;
USHIFTSTATE shiftState;
VSCAN       vScan;
BYTE        makeBreak;
integer     rc;
...
rc = UniUpdateShiftState(keyboardHndl, shiftState, vScan, makeBreak);
...

Related Functions

Notes

UniUpdateShiftState modifies the shift state as dictated by the scan code, using the specified keyboard translation tables. The shift state consists of these three parts:

  • The actual shift state
  • The effective shift state
  • The LED status

The effective shift is equal to the 16 lower bits of the actual shift, but when a lock state modifies an actual shift (such as caps lock affecting shift), the effective shift is modified. This means that the effective shift is only correct for the specified scan code.

OS Version Introduced

OS/2 Warp