/*++ Copyright (c) 1997 Microsoft Corporation Module Name: stiapi.h Abstract: Prototypes for RPC based interface between client and server sides of STI Author: Vlad Sadovsky (vlads) 26-Jan-1997 Revision History: 26-Jan-1997 VladS created --*/ #ifndef _STIAPI_H_ #define _STIAPI_h_ # ifdef __cplusplus extern "C" { # endif // __cplusplus #ifndef STI_DEVICE_HANDLE typedef HANDLE STI_DEVICE_HANDLE; #endif // // Custom STI monitor messages. Used by monitor internally or // by control panel in cases when we don't want to use RPC APIs // #define STIMON_WINDOW_CLASS TEXT("STIExe_Window_Class") #define STISVC_WINDOW_CLASS TEXT("STISvcHiddenWindow") #define STIMON_MSG_REFRESH WM_USER+201 #define STIMON_MSG_ADD_DEVICE WM_USER+202 #define STIMON_MSG_REMOVE_DEVICE WM_USER+203 #define STIMON_MSG_SET_PARAMETERS WM_USER+204 #define STIMON_MSG_LOG_MESSAGE WM_USER+205 #define STIMON_MSG_VISUALIZE WM_USER+206 #define STIMON_MSG_ENABLE_NOTIFICATIONS WM_USER+207 // // Subcommand values for main message // Passed via wParam ( should fit WORD) // #define STIMON_MSG_SET_TIMEOUT 1 #define STIMON_MSG_REFRESH_REREAD 2 #define STIMON_MSG_REFRESH_SUSPEND 3 #define STIMON_MSG_REFRESH_RESUME 4 #define STIMON_MSG_REFRESH_SET_FLAG 5 #define STIMON_MSG_REFRESH_CLEAR_FLAG 6 #define STIMON_MSG_REFRESH_PURGE 7 #define STIMON_MSG_REFRESH_DEV_INFO 8 #define STIMON_MSG_NOTIF_ENABLE 1 #define STIMON_MSG_NOTIF_DISABLE 2 #define STIMON_MSG_NOTIF_QUERY 3 #define STIMON_MSG_NOTIF_SET_INACTIVE 5 // // Bit flags for refresh message // Passed via lParam ( should fit WORD) // #define STIMON_MSG_REFRESH_NEW 0x0001 #define STIMON_MSG_REFRESH_EXISTING 0x0002 #define STIMON_MSG_PURGE_REMOVED 0x0004 #define STIMON_MSG_BOOT 0x0008 // DWORD RpcStiApiGetVersion( LPCWSTR pszServer, DWORD dwReserved, DWORD *pdwVersion ); DWORD WINAPI RpcStiApiOpenDevice( IN LPCWSTR pszServer, IN LPCWSTR pdeviceName, IN DWORD dwMode, IN DWORD dwAccessRequired, IN DWORD dwProcessId, OUT STI_DEVICE_HANDLE *pHandle ); DWORD WINAPI RpcStiApiCloseDevice( IN LPCWSTR pszServer, IN STI_DEVICE_HANDLE hDevice ); DWORD WINAPI RpcStiApiSubscribe( IN STI_DEVICE_HANDLE Handle, IN LPSTISUBSCRIBE lpSubscribe ); DWORD WINAPI RpcStiApiGetLastNotificationData( IN STI_DEVICE_HANDLE Handle, OUT LPSTINOTIFY lpNotify ); DWORD WINAPI RpcStiApiUnSubscribe( IN STI_DEVICE_HANDLE Handle ); DWORD WINAPI RpcStiApiEnableHwNotifications( IN LPCWSTR pszServer, IN LPCWSTR pdeviceName, IN BOOL bNewState ) ; DWORD WINAPI RpcStiApiGetHwNotificationState( IN LPCWSTR pszServer, IN LPCWSTR pdeviceName, OUT LPDWORD pState ); DWORD WINAPI RpcStiApiLaunchApplication( IN LPCWSTR pszServer, IN LPCWSTR pdeviceName, IN LPCWSTR pAppName, IN LPSTINOTIFY pStiNotify ); DWORD WINAPI RpcStiApiLockDevice( IN LPCWSTR pdeviceName, IN DWORD dwWait, IN BOOL bInServerProcess ); DWORD WINAPI RpcStiApiUnlockDevice( IN LPCWSTR pdeviceName, IN BOOL bInServerProcess ); /////////////////////////////////////////////////////////////// DWORD RpcStiApiRegisterDeviceNotification( ); DWORD RpcStiApiUnregisterDeviceNotification( ); DWORD RpcStiApiGetDeviceNotification( ); DWORD RpcStiApiEnableDeviceNotifications( BOOL fEnable ); DWORD RpcStiApiEnumerateDevices( ); DWORD RpcStiApiReadDeviceData( ); DWORD RpcStiApiWriteDeviceData( ); DWORD RpcStiApiReadDeviceCommand( ); DWORD RpcStiApiWriteDeviceCommand( ); DWORD RpcStiApiReadDeviceValue( ); DWORD RpcStiApiWriteDeviceValue( ); DWORD RpcStiApiDeviceEscape( ); DWORD RpcStiApiGetDeviceStatus( ); DWORD RpcStiApiGetDeviceLastError( ); DWORD RpcStiApiResetDevice( ); VOID WINAPI MigrateRegisteredSTIAppsForWIAEvents( HWND hWnd, HINSTANCE hInst, PTSTR pszCommandLine, INT iParam ); # ifdef __cplusplus }; # endif // __cplusplus #endif // _STIAPI_H_