Interface implementation guidance
This section provides guidance for interface implementation.
In this section
There are three GPIO interfaces: one for each device. Each interface is referenced by a GUID.
This topic describes indicator implementation.
We recommend that you use a physical GPIO resource for both the buttons and state indicators.
The default state for all buttons that are supported by the inbox driver on load is in the UP position.
The first indication by using the interface toggled the specified button (by index) to a state of DOWN.
The default state of the laptop/slate mode indicator is SLATE.
The default state of the docked mode indicator is UNDOCKED.
The first indication by using the interface toggled the indicator to the other state.
To query the state, you can use the GetSystemMetric API as follows:
int WINAPI GetSystemMetrics( _In_ int nIndex );
Parameters that are available for indicators:
- SM_SYSTEMDOCKED for the docking state. The call returns 0 for Undocked Mode and non-zero otherwise.
- SM_CONVERTIBLESLATEMODE for the slate mode. The call returns 0 for Slate Mode and non-zero otherwise.
When either system metric SM_CONVERTIBLESLATEMODE or SM_SYSTEMDOCKED changes, a broadcast message is sent by the system by using WM_SETTINGCHANGE.
The LPARAM of the WM_SETTINGCHANGE message indicates which system metric has changed by using a string of either “ConvertibleSlateMode” or “SystemDockMode”.