/*++ BUILD Version: 0000 // Increment this if a change has global effects Copyright (c) 1995 Microsoft Corporation Module Name: phone.h Abstract: Header file for Author: Dan Knudson (DanKn) dd-Mmm-1995 Revision History: --*/ #define ANY_RT_HPHONE 1 #define ANY_RT_HPHONE_CLOSE 2 #define ANY_RT_HPHONEAPP 3 #define DEVICE_ID 4 #define DEVICE_ID_OPEN 5 #define AllPhoneStates1_0 \ (PHONESTATE_OTHER | \ PHONESTATE_CONNECTED | \ PHONESTATE_DISCONNECTED | \ PHONESTATE_OWNER | \ PHONESTATE_MONITORS | \ PHONESTATE_DISPLAY | \ PHONESTATE_LAMP | \ PHONESTATE_RINGMODE | \ PHONESTATE_RINGVOLUME | \ PHONESTATE_HANDSETHOOKSWITCH | \ PHONESTATE_HANDSETVOLUME | \ PHONESTATE_HANDSETGAIN | \ PHONESTATE_SPEAKERHOOKSWITCH | \ PHONESTATE_SPEAKERVOLUME | \ PHONESTATE_SPEAKERGAIN | \ PHONESTATE_HEADSETHOOKSWITCH | \ PHONESTATE_HEADSETVOLUME | \ PHONESTATE_HEADSETGAIN | \ PHONESTATE_SUSPEND | \ PHONESTATE_RESUME | \ PHONESTATE_DEVSPECIFIC | \ PHONESTATE_REINIT) #define AllPhoneStates1_4 \ (PHONESTATE_OTHER | \ PHONESTATE_CONNECTED | \ PHONESTATE_DISCONNECTED | \ PHONESTATE_OWNER | \ PHONESTATE_MONITORS | \ PHONESTATE_DISPLAY | \ PHONESTATE_LAMP | \ PHONESTATE_RINGMODE | \ PHONESTATE_RINGVOLUME | \ PHONESTATE_HANDSETHOOKSWITCH | \ PHONESTATE_HANDSETVOLUME | \ PHONESTATE_HANDSETGAIN | \ PHONESTATE_SPEAKERHOOKSWITCH | \ PHONESTATE_SPEAKERVOLUME | \ PHONESTATE_SPEAKERGAIN | \ PHONESTATE_HEADSETHOOKSWITCH | \ PHONESTATE_HEADSETVOLUME | \ PHONESTATE_HEADSETGAIN | \ PHONESTATE_SUSPEND | \ PHONESTATE_RESUME | \ PHONESTATE_DEVSPECIFIC | \ PHONESTATE_REINIT | \ PHONESTATE_CAPSCHANGE | \ PHONESTATE_REMOVED) #define AllButtonModes \ (PHONEBUTTONMODE_DUMMY | \ PHONEBUTTONMODE_CALL | \ PHONEBUTTONMODE_FEATURE | \ PHONEBUTTONMODE_KEYPAD | \ PHONEBUTTONMODE_LOCAL | \ PHONEBUTTONMODE_DISPLAY) #define AllButtonStates1_0 \ (PHONEBUTTONSTATE_UP | \ PHONEBUTTONSTATE_DOWN) #define AllButtonStates1_4 \ (PHONEBUTTONSTATE_UP | \ PHONEBUTTONSTATE_DOWN | \ PHONEBUTTONSTATE_UNKNOWN | \ PHONEBUTTONSTATE_UNAVAIL) #if DBG #define PHONEPROLOG(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \ PhoneProlog(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) #define PHONEEPILOGSYNC(a1,a2,a3,a4) PhoneEpilogSync(a1,a2,a3,a4) #define PHONEEPILOGASYNC(a1,a2,a3,a4,a5,a6) PhoneEpilogAsync(a1,a2,a3,a4,a5,a6) #else #define PHONEPROLOG(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) \ PhoneProlog(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) #define PHONEEPILOGSYNC(a1,a2,a3,a4) PhoneEpilogSync(a1,a2,a3) #define PHONEEPILOGASYNC(a1,a2,a3,a4,a5,a6) PhoneEpilogAsync(a1,a2,a3,a4,a5) #endif typedef struct _PPHONECLOSE_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; OUT DWORD dwCallbackInstance; } PHONECLOSE_PARAMS, *PPHONECLOSE_PARAMS; typedef struct _PHONECONFIGDIALOG_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwDeviceID; }; union { IN HWND hwndOwner; }; union { IN DWORD dwDeviceClassOffset; // valid offset or // TAPI_NO_DATA }; } PHONECONFIGDIALOG_PARAMS, *PPHONECONFIGDIALOG_PARAMS; typedef struct _PHONEDEVSPECIFIC_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; IN DWORD hfnPostProcessProc; union { IN HPHONE hPhone; }; // IN ULONG_PTR lpParams; // pointer to client buffer IN DWORD hpParams; // pointer to client buffer union { IN DWORD dwParamsOffset; }; union { IN DWORD dwParamsSize; }; } PHONEDEVSPECIFIC_PARAMS, *PPHONEDEVSPECIFIC_PARAMS; typedef struct _PHONEGETBUTTONINFO_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwButtonLampID; }; union { IN DWORD dwButtonInfoTotalSize; // size of client buffer OUT DWORD dwButtonInfoOffset; // valid offset on success }; } PHONEGETBUTTONINFO_PARAMS, *PPHONEGETBUTTONINFO_PARAMS; typedef struct _PHONEGETDATA_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwDataID; }; union { OUT DWORD dwDataOffset; }; union { IN DWORD dwSize; }; } PHONEGETDATA_PARAMS, *PPHONEGETDATA_PARAMS; typedef struct _PHONEGETDEVCAPS_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONEAPP hPhoneApp; }; union { IN DWORD dwDeviceID; }; union { IN DWORD dwAPIVersion; }; union { IN DWORD dwExtVersion; }; union { IN DWORD dwPhoneCapsTotalSize; // size of client buffer OUT DWORD dwPhoneCapsOffset; // valid offset on success }; } PHONEGETDEVCAPS_PARAMS, *PPHONEGETDEVCAPS_PARAMS; typedef struct _PHONEGETDISPLAY_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwDisplayTotalSize; // size of client buffer OUT DWORD dwDisplayOffset; // valid offset on success }; } PHONEGETDISPLAY_PARAMS, *PPHONEGETDISPLAY_PARAMS; typedef struct _PHONEGETGAIN_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwHookSwitchDev; }; union { OUT DWORD dwGain; }; } PHONEGETGAIN_PARAMS, *PPHONEGETGAIN_PARAMS; typedef struct _PHONEGETHOOKSWITCH_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { OUT DWORD dwHookSwitchDevs; }; } PHONEGETHOOKSWITCH_PARAMS, *PPHONEGETHOOKSWITCH_PARAMS; typedef struct _PHONEGETICON_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwDeviceID; }; union { IN DWORD dwDeviceClassOffset; // valid offset or // TAPI_NO_DATA }; union { OUT HICON hIcon; }; } PHONEGETICON_PARAMS, *PPHONEGETICON_PARAMS; typedef struct _PHONEGETID_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwDeviceIDTotalSize; // size of client buffer OUT DWORD dwDeviceIDOffset; // valid offset on success }; union { IN DWORD dwDeviceClassOffset; // always valid offset }; } PHONEGETID_PARAMS, *PPHONEGETID_PARAMS; typedef struct _PHONEGETLAMP_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwButtonLampID; }; union { OUT DWORD dwLampMode; }; } PHONEGETLAMP_PARAMS, *PPHONEGETLAMP_PARAMS; typedef struct _PHONEGETRING_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { OUT DWORD dwRingMode; }; union { OUT DWORD dwVolume; }; } PHONEGETRING_PARAMS, *PPHONEGETRING_PARAMS; typedef struct _PHONEGETSTATUS_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwPhoneStatusTotalSize; // size of client buffer OUT DWORD dwPhoneStatusOffset; // valid offset on success }; } PHONEGETSTATUS_PARAMS, *PPHONEGETSTATUS_PARAMS; typedef struct _PHONEGETSTATUSMESSAGES_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { OUT DWORD dwPhoneStates; }; union { OUT DWORD dwButtonModes; }; union { OUT DWORD dwButtonStates; }; } PHONEGETSTATUSMESSAGES_PARAMS, *PPHONEGETSTATUSMESSAGES_PARAMS; typedef struct _PHONEGETVOLUME_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwHookSwitchDev; }; union { OUT DWORD dwVolume; }; } PHONEGETVOLUME_PARAMS, *PPHONEGETVOLUME_PARAMS; typedef struct _PHONEINITIALIZE_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { OUT HPHONEAPP hPhoneApp; }; union { IN DWORD hInstance; }; union { IN DWORD InitContext; }; union { IN DWORD dwFriendlyNameOffset; // always valid offset }; union { OUT DWORD dwNumDevs; }; union { IN DWORD dwModuleNameOffset; // always valid offset }; union { IN DWORD dwAPIVersion; }; } PHONEINITIALIZE_PARAMS, *PPHONEINITIALIZE_PARAMS; typedef struct _PHONENEGOTIATEAPIVERSION_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONEAPP hPhoneApp; }; union { IN DWORD dwDeviceID; }; union { IN DWORD dwAPILowVersion; }; union { IN DWORD dwAPIHighVersion; }; union { OUT DWORD dwAPIVersion; }; union { OUT DWORD dwExtensionIDOffset; // valid offset if success }; union { IN OUT DWORD dwSize; }; } PHONENEGOTIATEAPIVERSION_PARAMS, *PPHONENEGOTIATEAPIVERSION_PARAMS; typedef struct _PHONENEGOTIATEEXTVERSION_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONEAPP hPhoneApp; }; union { IN DWORD dwDeviceID; }; union { IN DWORD dwAPIVersion; }; union { IN DWORD dwExtLowVersion; }; union { IN DWORD dwExtHighVersion; }; union { OUT DWORD dwExtVersion; }; } PHONENEGOTIATEEXTVERSION_PARAMS, *PPHONENEGOTIATEEXTVERSION_PARAMS; typedef struct _PHONEOPEN_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONEAPP hPhoneApp; }; union { IN DWORD dwDeviceID; }; union { OUT HPHONE hPhone; }; union { IN DWORD dwAPIVersion; }; union { IN DWORD dwExtVersion; }; DWORD OpenContext; union { IN DWORD dwPrivilege; }; // // The following is a "remote phone handle". When the client is // remotesp.tsp running on a remote machine, this will be some // non-NULL value, and tapisrv should use this handle in status/etc // indications to the client rather than the std hPhone. If the // client is not remote.tsp thne this value will be NULL. // union { IN HPHONE hRemotePhone; }; } PHONEOPEN_PARAMS, *PPHONEOPEN_PARAMS; typedef struct _PHONESELECTEXTVERSION_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwExtVersion; }; } PHONESELECTEXTVERSION_PARAMS, *PPHONESELECTEXTVERSION_PARAMS; typedef struct _PHONESETBUTTONINFO_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwButtonLampID; }; union { IN DWORD dwButtonInfoOffset; // always valid offset }; } PHONESETBUTTONINFO_PARAMS, *PPHONESETBUTTONINFO_PARAMS; typedef struct _PHONESETDATA_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwDataID; }; union { IN DWORD dwDataOffset; // always valid offset }; union { IN DWORD dwSize; }; } PHONESETDATA_PARAMS, *PPHONESETDATA_PARAMS; typedef struct _PHONESETDISPLAY_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwRow; }; union { IN DWORD dwColumn; }; union { IN DWORD dwDisplayOffset; // always valid offset }; union { IN DWORD dwSize; }; } PHONESETDISPLAY_PARAMS, *PPHONESETDISPLAY_PARAMS; typedef struct _PHONESETGAIN_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwHookSwitchDev; }; union { IN DWORD dwGain; }; } PHONESETGAIN_PARAMS, *PPHONESETGAIN_PARAMS; typedef struct _PHONESETHOOKSWITCH_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwHookSwitchDevs; }; union { IN DWORD dwHookSwitchMode; }; } PHONESETHOOKSWITCH_PARAMS, *PPHONESETHOOKSWITCH_PARAMS; typedef struct _PHONESETLAMP_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwButtonLampID; }; union { IN DWORD dwLampMode; }; } PHONESETLAMP_PARAMS, *PPHONESETLAMP_PARAMS; typedef struct _PHONESETRING_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwRingMode; }; union { IN DWORD dwVolume; }; } PHONESETRING_PARAMS, *PPHONESETRING_PARAMS; typedef struct _PHONESETSTATUSMESSAGES_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONE hPhone; }; union { IN DWORD dwPhoneStates; }; union { IN DWORD dwButtonModes; }; union { IN DWORD dwButtonStates; }; } PHONESETSTATUSMESSAGES_PARAMS, *PPHONESETSTATUSMESSAGES_PARAMS; typedef struct _PHONESETVOLUME_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN DWORD dwRemoteRequestID; }; union { IN HPHONE hPhone; }; union { IN DWORD dwHookSwitchDev; }; union { IN DWORD dwVolume; }; } PHONESETVOLUME_PARAMS, *PPHONESETVOLUME_PARAMS; typedef struct _PHONESHUTDOWN_PARAMS { union { OUT LONG lResult; }; DWORD dwUnused; union { IN HPHONEAPP hPhoneApp; }; } PHONESHUTDOWN_PARAMS, *PPHONESHUTDOWN_PARAMS;