windows-nt/Source/XPSP1/NT/net/tapi/sp/esp/exe/espexe.h
2020-09-26 16:20:57 +08:00

417 lines
13 KiB
C

/*++ BUILD Version: 0000 // Increment this if a change has global effects
Copyright (c) 1995-1998 Microsoft Corporation
Module Name:
espexe.h
Abstract:
Author:
Dan Knudson (DanKn) 15-Sep-1995
Revision History:
--*/
#include "windows.h"
#include "tapi.h"
#include "tspi.h"
#include "..\tsp\intrface.h"
#include "resource.h"
#include "espidl.h"
#define MAX_STRING_PARAM_SIZE 32
#define PT_DWORD 1
#define PT_FLAGS 2
#define PT_STRING 3
#define PT_ORDINAL 4
typedef struct _MYWIDGET
{
DWORD dwWidgetID;
DWORD dwWidgetType;
ULONG_PTR hdXxx;
ULONG_PTR htXxx;
DWORD dwCallState;
DWORD dwCallAddressID;
struct _MYWIDGET *pPrev;
struct _MYWIDGET *pNext;
} MYWIDGET, *PMYWIDGET;
typedef struct _LOOKUP
{
DWORD dwVal;
char far *pszVal;
} LOOKUP, *PLOOKUP;
typedef struct _PBXSETTING
{
DWORD dwNumber;
LPCSTR pszEvent;
DWORD dwTime;
} PBXSETTING, *PPBXSETTING;
typedef struct _EVENT_PARAM
{
char far *szName;
DWORD dwType;
ULONG_PTR dwValue;
union
{
PLOOKUP pLookup;
char far *buf;
LPVOID ptr;
ULONG_PTR dwDefValue;
};
} EVENT_PARAM, far *PEVENT_PARAM;
typedef struct _EVENT_PARAM_HEADER
{
DWORD dwNumParams;
LPSTR pszDlgTitle;
DWORD dwEventType;
PEVENT_PARAM aParams;
} EVENT_PARAM_HEADER, far *PEVENT_PARAM_HEADER;
LOOKUP aPBXNumbers[] =
{
{ 0, "0" },
{ 1, "1" },
{ 2, "2" },
{ 5, "5" },
{ 10, "10" },
{ 20, "20" },
{ 50, "50" },
{ 100, "100" },
{ 200, "200" },
{ 500, "500" },
{ 1000, "1000" },
{ 0, NULL }
};
LOOKUP aPBXTimes[] =
{
{ 1000, "second" },
{ 60000, "minute" },
{ 3600000, "hour" },
{ 86400000, "day" },
{ 604800000, "week" },
{ 0, NULL }
};
#define NUM_PBXSETTINGS 2
PBXSETTING gPBXSettings[NUM_PBXSETTINGS] =
{
{ 0, "incoming calls", 0 },
{ 0, "disconnections", 0 }
};
LOOKUP aCallStates[] =
{
{ LINECALLSTATE_IDLE ,"IDLE" },
{ LINECALLSTATE_OFFERING ,"OFFERING" },
{ LINECALLSTATE_ACCEPTED ,"ACCEPTED" },
{ LINECALLSTATE_DIALTONE ,"DIALTONE" },
{ LINECALLSTATE_DIALING ,"DIALING" },
{ LINECALLSTATE_RINGBACK ,"RINGBACK" },
{ LINECALLSTATE_BUSY ,"BUSY" },
{ LINECALLSTATE_SPECIALINFO ,"SPECIALINFO" },
{ LINECALLSTATE_CONNECTED ,"CONNECTED" },
{ LINECALLSTATE_PROCEEDING ,"PROCEEDING" },
{ LINECALLSTATE_ONHOLD ,"ONHOLD" },
{ LINECALLSTATE_CONFERENCED ,"CONFERENCED" },
{ LINECALLSTATE_ONHOLDPENDCONF ,"ONHOLDPENDCONF" },
{ LINECALLSTATE_ONHOLDPENDTRANSFER ,"ONHOLDPENDTRANSFER" },
{ LINECALLSTATE_DISCONNECTED ,"DISCONNECTED" },
{ LINECALLSTATE_UNKNOWN ,"UNKNOWN" },
{ 0xffffffff ,"" }
};
LOOKUP aLineErrs[] =
{
{ 0 ,"<SUCCESS>" },
{ LINEERR_ALLOCATED ,"ALLOCATED" },
{ LINEERR_BADDEVICEID ,"BADDEVICEID" },
{ LINEERR_BEARERMODEUNAVAIL ,"BEARERMODEUNAVAIL" },
{ LINEERR_CALLUNAVAIL ,"CALLUNAVAIL" },
{ LINEERR_COMPLETIONOVERRUN ,"COMPLETIONOVERRUN" },
{ LINEERR_CONFERENCEFULL ,"CONFERENCEFULL" },
{ LINEERR_DIALBILLING ,"DIALBILLING" },
{ LINEERR_DIALDIALTONE ,"DIALDIALTONE" },
{ LINEERR_DIALPROMPT ,"DIALPROMPT" },
{ LINEERR_DIALQUIET ,"DIALQUIET" },
{ LINEERR_INCOMPATIBLEAPIVERSION ,"INCOMPATIBLEAPIVERSION" },
{ LINEERR_INCOMPATIBLEEXTVERSION ,"INCOMPATIBLEEXTVERSION" },
{ LINEERR_INIFILECORRUPT ,"INIFILECORRUPT" },
{ LINEERR_INUSE ,"INUSE" },
{ LINEERR_INVALADDRESS ,"INVALADDRESS" },
{ LINEERR_INVALADDRESSID ,"INVALADDRESSID" },
{ LINEERR_INVALADDRESSMODE ,"INVALADDRESSMODE" },
{ LINEERR_INVALADDRESSSTATE ,"INVALADDRESSSTATE" },
{ LINEERR_INVALAPPHANDLE ,"INVALAPPHANDLE" },
{ LINEERR_INVALAPPNAME ,"INVALAPPNAME" },
{ LINEERR_INVALBEARERMODE ,"INVALBEARERMODE" },
{ LINEERR_INVALCALLCOMPLMODE ,"INVALCALLCOMPLMODE" },
{ LINEERR_INVALCALLHANDLE ,"INVALCALLHANDLE" },
{ LINEERR_INVALCALLPARAMS ,"INVALCALLPARAMS" },
{ LINEERR_INVALCALLPRIVILEGE ,"INVALCALLPRIVILEGE" },
{ LINEERR_INVALCALLSELECT ,"INVALCALLSELECT" },
{ LINEERR_INVALCALLSTATE ,"INVALCALLSTATE" },
{ LINEERR_INVALCALLSTATELIST ,"INVALCALLSTATELIST" },
{ LINEERR_INVALCARD ,"INVALCARD" },
{ LINEERR_INVALCOMPLETIONID ,"INVALCOMPLETIONID" },
{ LINEERR_INVALCONFCALLHANDLE ,"INVALCONFCALLHANDLE" },
{ LINEERR_INVALCONSULTCALLHANDLE ,"INVALCONSULTCALLHANDLE" },
{ LINEERR_INVALCOUNTRYCODE ,"INVALCOUNTRYCODE" },
{ LINEERR_INVALDEVICECLASS ,"INVALDEVICECLASS" },
{ LINEERR_INVALDEVICEHANDLE ,"INVALDEVICEHANDLE" },
{ LINEERR_INVALDIALPARAMS ,"INVALDIALPARAMS" },
{ LINEERR_INVALDIGITLIST ,"INVALDIGITLIST" },
{ LINEERR_INVALDIGITMODE ,"INVALDIGITMODE" },
{ LINEERR_INVALDIGITS ,"INVALDIGITS" },
{ LINEERR_INVALEXTVERSION ,"INVALEXTVERSION" },
{ LINEERR_INVALGROUPID ,"INVALGROUPID" },
{ LINEERR_INVALLINEHANDLE ,"INVALLINEHANDLE" },
{ LINEERR_INVALLINESTATE ,"INVALLINESTATE" },
{ LINEERR_INVALLOCATION ,"INVALLOCATION" },
{ LINEERR_INVALMEDIALIST ,"INVALMEDIALIST" },
{ LINEERR_INVALMEDIAMODE ,"INVALMEDIAMODE" },
{ LINEERR_INVALMESSAGEID ,"INVALMESSAGEID" },
{ LINEERR_INVALPARAM ,"INVALPARAM" },
{ LINEERR_INVALPARKID ,"INVALPARKID" },
{ LINEERR_INVALPARKMODE ,"INVALPARKMODE" },
{ LINEERR_INVALPOINTER ,"INVALPOINTER" },
{ LINEERR_INVALPRIVSELECT ,"INVALPRIVSELECT" },
{ LINEERR_INVALRATE ,"INVALRATE" },
{ LINEERR_INVALREQUESTMODE ,"INVALREQUESTMODE" },
{ LINEERR_INVALTERMINALID ,"INVALTERMINALID" },
{ LINEERR_INVALTERMINALMODE ,"INVALTERMINALMODE" },
{ LINEERR_INVALTIMEOUT ,"INVALTIMEOUT" },
{ LINEERR_INVALTONE ,"INVALTONE" },
{ LINEERR_INVALTONELIST ,"INVALTONELIST" },
{ LINEERR_INVALTONEMODE ,"INVALTONEMODE" },
{ LINEERR_INVALTRANSFERMODE ,"INVALTRANSFERMODE" },
{ LINEERR_LINEMAPPERFAILED ,"LINEMAPPERFAILED" },
{ LINEERR_NOCONFERENCE ,"NOCONFERENCE" },
{ LINEERR_NODEVICE ,"NODEVICE" },
{ LINEERR_NODRIVER ,"NODRIVER" },
{ LINEERR_NOMEM ,"NOMEM" },
{ LINEERR_NOREQUEST ,"NOREQUEST" },
{ LINEERR_NOTOWNER ,"NOTOWNER" },
{ LINEERR_NOTREGISTERED ,"NOTREGISTERED" },
{ LINEERR_OPERATIONFAILED ,"OPERATIONFAILED" },
{ LINEERR_OPERATIONUNAVAIL ,"OPERATIONUNAVAIL" },
{ LINEERR_RATEUNAVAIL ,"RATEUNAVAIL" },
{ LINEERR_RESOURCEUNAVAIL ,"RESOURCEUNAVAIL" },
{ LINEERR_REQUESTOVERRUN ,"REQUESTOVERRUN" },
{ LINEERR_STRUCTURETOOSMALL ,"STRUCTURETOOSMALL" },
{ LINEERR_TARGETNOTFOUND ,"TARGETNOTFOUND" },
{ LINEERR_TARGETSELF ,"TARGETSELF" },
{ LINEERR_UNINITIALIZED ,"UNINITIALIZED" },
{ LINEERR_USERUSERINFOTOOBIG ,"USERUSERINFOTOOBIG" },
{ LINEERR_REINIT ,"REINIT" },
{ LINEERR_ADDRESSBLOCKED ,"ADDRESSBLOCKED" },
{ LINEERR_BILLINGREJECTED ,"BILLINGREJECTED" },
{ LINEERR_INVALFEATURE ,"INVALFEATURE" },
{ LINEERR_NOMULTIPLEINSTANCE ,"NOMULTIPLEINSTANCE" },
{ 0xffffffff ,"" }
};
LOOKUP aLineMsgs[] =
{
{ LINE_ADDRESSSTATE ,"ADDRESSSTATE" },
{ LINE_CALLDEVSPECIFIC ,"CALLDEVSPECIFIC" },
{ LINE_CALLDEVSPECIFICFEATURE ,"CALLDEVSPECIFICFEATURE" },
{ LINE_CREATEDIALOGINSTANCE ,"CREATEDIALOGINSTANCE" },
{ LINE_CLOSE ,"CLOSE" },
{ LINE_DEVSPECIFIC ,"DEVSPECIFIC" },
{ LINE_DEVSPECIFICFEATURE ,"DEVSPECIFICFEATURE" },
{ LINE_GATHERDIGITS ,"GATHERDIGITS" },
{ LINE_GENERATE ,"GENERATE" },
{ LINE_LINEDEVSTATE ,"LINEDEVSTATE" },
{ LINE_MONITORDIGITS ,"MONITORDIGITS" },
{ LINE_MONITORMEDIA ,"MONITORMEDIA" },
{ LINE_MONITORTONE ,"MONITORTONE" },
{ LINE_CREATE ,"CREATE" },
{ LINE_REMOVE ,"REMOVE" },
{ LINE_SENDDIALOGINSTANCEDATA ,"SENDDIALOGINSTANCEDATA" },
{ 0xffffffff ,"" }
};
LOOKUP aPhoneMsgs[] =
{
{ PHONE_BUTTON ,"BUTTON" },
{ PHONE_CLOSE ,"CLOSE" },
{ PHONE_DEVSPECIFIC ,"DEVSPECIFIC" },
{ PHONE_STATE ,"STATE" },
{ PHONE_CREATE ,"CREATE" },
{ PHONE_REMOVE ,"REMOVE" },
{ 0xffffffff ,"" }
};
LOOKUP aVersions[] =
{
{ 0x00010003 ,"1.0" },
{ 0x00010004 ,"1.4" },
{ 0x00020000 ,"2.0" },
{ 0x00020001 ,"2.1" },
{ 0x00020002 ,"2.2" },
{ 0x00030000 ,"3.0" },
{ 0x00030001 ,"3.1" },
{ 0xffffffff ,"" }
};
BOOL gbESPLoaded = FALSE;
gbPBXThreadRunning,
gbAutoClose,
gbDisableUI;
LONG cxList1,
cxWnd;
HWND ghwndMain,
ghwndList1,
ghwndList2,
ghwndEdit;
DWORD gdwTSPIVersion,
gdwNumLines,
gdwNumAddrsPerLine,
gdwNumCallsPerAddr,
gdwNumPhones,
gdwDebugOptions,
gdwCompletionMode,
gbAutoGatherGenerateMsgs;
HMENU ghMenu;
HINSTANCE ghInstance;
PMYWIDGET gpWidgets;
char szMySection[] = "ESP32";
INT_PTR
CALLBACK
MainWndProc(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
);
INT_PTR
CALLBACK
PBXConfigDlgProc(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
);
INT_PTR
CALLBACK
AboutDlgProc(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
);
INT_PTR
CALLBACK
HelpDlgProc(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
);
void
ProcessWidgetEvent(
PWIDGETEVENT pEvent
);
void
UpdateESPOptions(
void
);
void
SaveIniFileSettings(
void
);
void
xxxShowStr(
char *psz
);
void
ShowStr(
char *pszFormat,
...
);
LPVOID
MyAlloc(
size_t numBytes
);
void
MyFree(
LPVOID p
);
INT_PTR
CALLBACK
ValuesDlgProc(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
);