You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
907 lines
15 KiB
907 lines
15 KiB
/*++ BUILD Version: 0000 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 1994-1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
tb.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the TAPI Browser util
|
|
|
|
Author:
|
|
|
|
Dan Knudson (DanKn) 23-Aug-1994
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#include <windows.h>
|
|
#include <tapi.h>
|
|
|
|
#if INTERNAL_3_0
|
|
#include <tapimmc.h>
|
|
#endif
|
|
|
|
|
|
//
|
|
// Symbolic constants
|
|
//
|
|
|
|
#define DS_NONZEROFIELDS 0x00000001
|
|
#define DS_ZEROFIELDS 0x00000002
|
|
#define DS_BYTEDUMP 0x00000004
|
|
|
|
#define WT_LINEAPP 1
|
|
#define WT_LINE 2
|
|
#define WT_CALL 3
|
|
#define WT_PHONEAPP 4
|
|
#define WT_PHONE 5
|
|
|
|
#define PT_DWORD 1
|
|
#define PT_FLAGS 2
|
|
#define PT_POINTER 3
|
|
#define PT_STRING 4
|
|
#define PT_CALLPARAMS 5
|
|
#define PT_FORWARDLIST 6
|
|
#define PT_ORDINAL 7
|
|
|
|
#define FT_DWORD 1
|
|
#define FT_FLAGS 2
|
|
#define FT_ORD 3
|
|
#define FT_SIZE 4
|
|
#define FT_OFFSET 5
|
|
|
|
#define MAX_STRING_PARAM_SIZE 96
|
|
|
|
#define MAX_USER_BUTTONS 6
|
|
|
|
#define MAX_USER_BUTTON_TEXT_SIZE 8
|
|
|
|
#define MAX_LINEFORWARD_ENTRIES 5
|
|
|
|
#define TABSIZE 4
|
|
|
|
#if TAPI_2_0
|
|
#define LAST_LINEERR LINEERR_DIALVOICEDETECT
|
|
#else
|
|
#define LAST_LINEERR LINEERR_NOMULTIPLEINSTANCE
|
|
#endif
|
|
|
|
|
|
//
|
|
//
|
|
//
|
|
|
|
typedef LONG (WINAPI *PFN1)(ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN2)(ULONG_PTR, ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN3)(ULONG_PTR, ULONG_PTR, ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN4)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN5)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN6)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN7)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR, ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN8)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN9)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN10)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR);
|
|
typedef LONG (WINAPI *PFN12)(ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR,
|
|
ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR);
|
|
|
|
|
|
typedef struct _MYWIDGET
|
|
{
|
|
DWORD dwType;
|
|
|
|
struct _MYWIDGET *pNext;
|
|
|
|
} MYWIDGET, *PMYWIDGET;
|
|
|
|
|
|
typedef struct _MYLINEAPP
|
|
{
|
|
MYWIDGET Widget;
|
|
|
|
HLINEAPP hLineApp;
|
|
|
|
} MYLINEAPP, *PMYLINEAPP;
|
|
|
|
|
|
typedef struct _MYLINE
|
|
{
|
|
MYWIDGET Widget;
|
|
|
|
HLINE hLine;
|
|
|
|
HLINEAPP hLineApp;
|
|
|
|
DWORD dwDevID;
|
|
|
|
DWORD dwPrivileges;
|
|
|
|
DWORD dwMediaModes;
|
|
|
|
DWORD dwAPIVersion;
|
|
|
|
PMYLINEAPP pLineApp;
|
|
|
|
} MYLINE, *PMYLINE;
|
|
|
|
|
|
typedef struct _MYCALL
|
|
{
|
|
MYWIDGET Widget;
|
|
|
|
HCALL hCall;
|
|
|
|
DWORD dwCallState;
|
|
|
|
LONG lMakeCallReqID;
|
|
|
|
LONG lDropReqID;
|
|
|
|
DWORD dwCompletionID;
|
|
|
|
DWORD dwNumGatheredDigits;
|
|
|
|
char *lpsGatheredDigits;
|
|
|
|
PMYLINE pLine;
|
|
|
|
BOOL bMonitor;
|
|
|
|
} MYCALL, *PMYCALL;
|
|
|
|
|
|
typedef struct _MYPHONEAPP
|
|
{
|
|
MYWIDGET Widget;
|
|
|
|
HPHONEAPP hPhoneApp;
|
|
|
|
} MYPHONEAPP, *PMYPHONEAPP;
|
|
|
|
|
|
typedef struct _MYPHONE
|
|
{
|
|
MYWIDGET Widget;
|
|
|
|
HPHONE hPhone;
|
|
|
|
HPHONEAPP hPhoneApp;
|
|
|
|
DWORD dwDevID;
|
|
|
|
DWORD dwPrivilege;
|
|
|
|
DWORD dwAPIVersion;
|
|
|
|
PMYPHONEAPP pPhoneApp;
|
|
|
|
} MYPHONE, *PMYPHONE;
|
|
|
|
|
|
typedef struct _LOOKUP
|
|
{
|
|
DWORD dwVal;
|
|
|
|
char lpszVal[20];
|
|
|
|
} LOOKUP, *PLOOKUP;
|
|
|
|
|
|
typedef enum
|
|
{
|
|
lAccept,
|
|
#if TAPI_1_1
|
|
lAddProvider,
|
|
#if TAPI_2_0
|
|
lAddProviderW,
|
|
#endif
|
|
#endif
|
|
lAddToConference,
|
|
#if TAPI_2_0
|
|
lAgentSpecific,
|
|
#endif
|
|
lAnswer,
|
|
lBlindTransfer,
|
|
#if TAPI_2_0
|
|
lBlindTransferW,
|
|
#endif
|
|
lClose,
|
|
lCompleteCall,
|
|
lCompleteTransfer,
|
|
lConfigDialog,
|
|
#if TAPI_2_0
|
|
lConfigDialogW,
|
|
#endif
|
|
#if TAPI_1_1
|
|
lConfigDialogEdit,
|
|
#if TAPI_2_0
|
|
lConfigDialogEditW,
|
|
#endif
|
|
lConfigProvider,
|
|
#endif
|
|
lDeallocateCall,
|
|
lDevSpecific,
|
|
lDevSpecificFeature,
|
|
lDial,
|
|
#if TAPI_2_0
|
|
lDialW,
|
|
#endif
|
|
lDrop,
|
|
lForward,
|
|
#if TAPI_2_0
|
|
lForwardW,
|
|
#endif
|
|
lGatherDigits,
|
|
#if TAPI_2_0
|
|
lGatherDigitsW,
|
|
#endif
|
|
lGenerateDigits,
|
|
#if TAPI_2_0
|
|
lGenerateDigitsW,
|
|
#endif
|
|
lGenerateTone,
|
|
lGetAddressCaps,
|
|
#if TAPI_2_0
|
|
lGetAddressCapsW,
|
|
#endif
|
|
lGetAddressID,
|
|
#if TAPI_2_0
|
|
lGetAddressIDW,
|
|
#endif
|
|
lGetAddressStatus,
|
|
#if TAPI_2_0
|
|
lGetAddressStatusW,
|
|
lGetAgentActivityList,
|
|
lGetAgentActivityListW,
|
|
lGetAgentCaps,
|
|
lGetAgentGroupList,
|
|
lGetAgentStatus,
|
|
#endif
|
|
#if TAPI_1_1
|
|
lGetAppPriority,
|
|
#if TAPI_2_0
|
|
lGetAppPriorityW,
|
|
#endif
|
|
#endif
|
|
lGetCallInfo,
|
|
#if TAPI_2_0
|
|
lGetCallInfoW,
|
|
#endif
|
|
lGetCallStatus,
|
|
lGetConfRelatedCalls,
|
|
#if TAPI_1_1
|
|
lGetCountry,
|
|
#if TAPI_2_0
|
|
lGetCountryW,
|
|
#endif
|
|
#endif
|
|
lGetDevCaps,
|
|
#if TAPI_2_0
|
|
lGetDevCapsW,
|
|
#endif
|
|
lGetDevConfig,
|
|
#if TAPI_2_0
|
|
lGetDevConfigW,
|
|
#endif
|
|
lGetIcon,
|
|
#if TAPI_2_0
|
|
lGetIconW,
|
|
#endif
|
|
lGetID,
|
|
#if TAPI_2_0
|
|
lGetIDW,
|
|
#endif
|
|
lGetLineDevStatus,
|
|
#if TAPI_2_0
|
|
lGetLineDevStatusW,
|
|
lGetMessage,
|
|
#endif
|
|
lGetNewCalls,
|
|
lGetNumRings,
|
|
#if TAPI_1_1
|
|
lGetProviderList,
|
|
#if TAPI_2_0
|
|
lGetProviderListW,
|
|
#endif
|
|
#endif
|
|
lGetRequest,
|
|
#if TAPI_2_0
|
|
lGetRequestW,
|
|
#endif
|
|
lGetStatusMessages,
|
|
lGetTranslateCaps,
|
|
#if TAPI_2_0
|
|
lGetTranslateCapsW,
|
|
#endif
|
|
lHandoff,
|
|
#if TAPI_2_0
|
|
lHandoffW,
|
|
#endif
|
|
lHold,
|
|
lInitialize,
|
|
#if TAPI_2_0
|
|
lInitializeEx,
|
|
lInitializeExW,
|
|
#endif
|
|
lMakeCall,
|
|
#if TAPI_2_0
|
|
lMakeCallW,
|
|
#endif
|
|
lMonitorDigits,
|
|
lMonitorMedia,
|
|
lMonitorTones,
|
|
lNegotiateAPIVersion,
|
|
lNegotiateExtVersion,
|
|
lOpen,
|
|
#if TAPI_2_0
|
|
lOpenW,
|
|
#endif
|
|
lPark,
|
|
#if TAPI_2_0
|
|
lParkW,
|
|
#endif
|
|
lPickup,
|
|
#if TAPI_2_0
|
|
lPickupW,
|
|
#endif
|
|
lPrepareAddToConference,
|
|
#if TAPI_2_0
|
|
lPrepareAddToConferenceW,
|
|
lProxyMessage,
|
|
lProxyResponse,
|
|
#endif
|
|
lRedirect,
|
|
#if TAPI_2_0
|
|
lRedirectW,
|
|
#endif
|
|
lRegisterRequestRecipient,
|
|
#if TAPI_1_1
|
|
lReleaseUserUserInfo,
|
|
#endif
|
|
lRemoveFromConference,
|
|
#if TAPI_1_1
|
|
lRemoveProvider,
|
|
#endif
|
|
lSecureCall,
|
|
lSendUserUserInfo,
|
|
#if TAPI_2_0
|
|
lSetAgentActivity,
|
|
lSetAgentGroup,
|
|
lSetAgentState,
|
|
#endif
|
|
#if TAPI_1_1
|
|
lSetAppPriority,
|
|
#if TAPI_2_0
|
|
lSetAppPriorityW,
|
|
#endif
|
|
#endif
|
|
lSetAppSpecific,
|
|
#if TAPI_2_0
|
|
lSetCallData,
|
|
#endif
|
|
lSetCallParams,
|
|
lSetCallPrivilege,
|
|
#if TAPI_2_0
|
|
lSetCallQualityOfService,
|
|
lSetCallTreatment,
|
|
#endif
|
|
lSetCurrentLocation,
|
|
lSetDevConfig,
|
|
#if TAPI_2_0
|
|
lSetDevConfigW,
|
|
lSetLineDevStatus,
|
|
#endif
|
|
lSetMediaControl,
|
|
lSetMediaMode,
|
|
lSetNumRings,
|
|
lSetStatusMessages,
|
|
lSetTerminal,
|
|
lSetTollList,
|
|
#if TAPI_2_0
|
|
lSetTollListW,
|
|
#endif
|
|
lSetupConference,
|
|
#if TAPI_2_0
|
|
lSetupConferenceW,
|
|
#endif
|
|
lSetupTransfer,
|
|
#if TAPI_2_0
|
|
lSetupTransferW,
|
|
#endif
|
|
lShutdown,
|
|
lSwapHold,
|
|
lTranslateAddress,
|
|
#if TAPI_2_0
|
|
lTranslateAddressW,
|
|
#endif
|
|
#if TAPI_1_1
|
|
lTranslateDialog,
|
|
#if TAPI_2_0
|
|
lTranslateDialogW,
|
|
#endif
|
|
#endif
|
|
lUncompleteCall,
|
|
lUnhold,
|
|
lUnpark,
|
|
#if TAPI_2_0
|
|
lUnparkW,
|
|
#endif
|
|
|
|
#if INTERNAL_3_0
|
|
mmcAddProvider,
|
|
mmcConfigProvider,
|
|
mmcGetAvailableProviders,
|
|
mmcGetLineInfo,
|
|
mmcGetLineStatus,
|
|
mmcGetPhoneInfo,
|
|
mmcGetPhoneStatus,
|
|
mmcGetProviderList,
|
|
mmcGetServerConfig,
|
|
mmcInitialize,
|
|
mmcRemoveProvider,
|
|
mmcSetLineInfo,
|
|
mmcSetPhoneInfo,
|
|
mmcSetServerConfig,
|
|
mmcShutdown,
|
|
#endif
|
|
|
|
pClose,
|
|
pConfigDialog,
|
|
#if TAPI_2_0
|
|
pConfigDialogW,
|
|
#endif
|
|
pDevSpecific,
|
|
pGetButtonInfo,
|
|
#if TAPI_2_0
|
|
pGetButtonInfoW,
|
|
#endif
|
|
pGetData,
|
|
pGetDevCaps,
|
|
#if TAPI_2_0
|
|
pGetDevCapsW,
|
|
#endif
|
|
pGetDisplay,
|
|
pGetGain,
|
|
pGetHookSwitch,
|
|
pGetIcon,
|
|
#if TAPI_2_0
|
|
pGetIconW,
|
|
#endif
|
|
pGetID,
|
|
#if TAPI_2_0
|
|
pGetIDW,
|
|
#endif
|
|
pGetLamp,
|
|
#if TAPI_2_0
|
|
pGetMessage,
|
|
#endif
|
|
pGetRing,
|
|
pGetStatus,
|
|
#if TAPI_2_0
|
|
pGetStatusW,
|
|
#endif
|
|
pGetStatusMessages,
|
|
pGetVolume,
|
|
pInitialize,
|
|
#if TAPI_2_0
|
|
pInitializeEx,
|
|
pInitializeExW,
|
|
#endif
|
|
pOpen,
|
|
pNegotiateAPIVersion,
|
|
pNegotiateExtVersion,
|
|
pSetButtonInfo,
|
|
#if TAPI_2_0
|
|
pSetButtonInfoW,
|
|
#endif
|
|
pSetData,
|
|
pSetDisplay,
|
|
pSetGain,
|
|
pSetHookSwitch,
|
|
pSetLamp,
|
|
pSetRing,
|
|
pSetStatusMessages,
|
|
pSetVolume,
|
|
pShutdown,
|
|
|
|
tGetLocationInfo,
|
|
#if TAPI_2_0
|
|
tGetLocationInfoW,
|
|
#endif
|
|
tRequestDrop,
|
|
tRequestMakeCall,
|
|
#if TAPI_2_0
|
|
tRequestMakeCallW,
|
|
#endif
|
|
tRequestMediaCall,
|
|
#if TAPI_2_0
|
|
tRequestMediaCallW,
|
|
#endif
|
|
|
|
OpenAllLines,
|
|
OpenAllPhones,
|
|
CloseHandl,
|
|
DumpBuffer,
|
|
#if (INTERNAL_VER >= 0x20000)
|
|
iNewLocationW,
|
|
#endif
|
|
|
|
MiscBegin,
|
|
|
|
DefValues,
|
|
lCallParams,
|
|
lForwardList
|
|
|
|
} FUNC_INDEX;
|
|
|
|
|
|
typedef struct _FUNC_PARAM
|
|
{
|
|
char far *szName;
|
|
|
|
DWORD dwType;
|
|
|
|
ULONG_PTR dwValue;
|
|
|
|
union
|
|
{
|
|
LPVOID pLookup;
|
|
|
|
char far *buf;
|
|
|
|
LPVOID ptr;
|
|
|
|
ULONG_PTR dwDefValue;
|
|
|
|
} u;
|
|
|
|
} FUNC_PARAM, *PFUNC_PARAM;
|
|
|
|
|
|
typedef struct _FUNC_PARAM_HEADER
|
|
{
|
|
DWORD dwNumParams;
|
|
|
|
FUNC_INDEX FuncIndex;
|
|
|
|
PFUNC_PARAM aParams;
|
|
|
|
union
|
|
{
|
|
PFN1 pfn1;
|
|
PFN2 pfn2;
|
|
PFN3 pfn3;
|
|
PFN4 pfn4;
|
|
PFN5 pfn5;
|
|
PFN6 pfn6;
|
|
PFN7 pfn7;
|
|
PFN8 pfn8;
|
|
PFN9 pfn9;
|
|
PFN10 pfn10;
|
|
PFN12 pfn12;
|
|
|
|
} u;
|
|
|
|
} FUNC_PARAM_HEADER, *PFUNC_PARAM_HEADER;
|
|
|
|
|
|
typedef struct _STRUCT_FIELD
|
|
{
|
|
char far *szName;
|
|
|
|
DWORD dwType;
|
|
|
|
DWORD dwValue;
|
|
|
|
LPVOID pLookup;
|
|
|
|
} STRUCT_FIELD, *PSTRUCT_FIELD;
|
|
|
|
|
|
typedef struct _STRUCT_FIELD_HEADER
|
|
{
|
|
LPVOID pStruct;
|
|
|
|
char far *szName;
|
|
|
|
DWORD dwNumFields;
|
|
|
|
PSTRUCT_FIELD aFields;
|
|
|
|
} STRUCT_FIELD_HEADER, *PSTRUCT_FIELD_HEADER;
|
|
|
|
|
|
//
|
|
// Func prototypes
|
|
//
|
|
|
|
INT_PTR
|
|
CALLBACK
|
|
MainWndProc(
|
|
HWND hwnd,
|
|
UINT msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
void
|
|
FAR
|
|
ShowStr(
|
|
LPCSTR format,
|
|
...
|
|
);
|
|
|
|
void
|
|
ShowBytes(
|
|
DWORD dwSize,
|
|
LPVOID lp,
|
|
DWORD dwNumTabs
|
|
);
|
|
|
|
VOID
|
|
CALLBACK
|
|
tapiCallback(
|
|
DWORD hDevice,
|
|
DWORD dwMsg,
|
|
ULONG_PTR CallbackInstance,
|
|
ULONG_PTR Param1,
|
|
ULONG_PTR Param2,
|
|
ULONG_PTR Param3
|
|
);
|
|
|
|
INT_PTR
|
|
CALLBACK
|
|
ParamsDlgProc(
|
|
HWND hwnd,
|
|
UINT msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
INT_PTR
|
|
CALLBACK
|
|
AboutDlgProc(
|
|
HWND hwnd,
|
|
UINT msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
INT_PTR
|
|
CALLBACK
|
|
IconDlgProc(
|
|
HWND hwnd,
|
|
UINT msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
BOOL
|
|
IsLineAppSelected(
|
|
void
|
|
);
|
|
|
|
BOOL
|
|
IsLineSelected(
|
|
void
|
|
);
|
|
|
|
BOOL
|
|
IsCallSelected(
|
|
void
|
|
);
|
|
|
|
BOOL
|
|
IsTwoCallsSelected(
|
|
void
|
|
);
|
|
|
|
BOOL
|
|
IsPhoneAppSelected(
|
|
void
|
|
);
|
|
|
|
BOOL
|
|
IsPhoneSelected(
|
|
void
|
|
);
|
|
|
|
LONG
|
|
DoFunc(
|
|
PFUNC_PARAM_HEADER pHeader
|
|
);
|
|
|
|
INT_PTR
|
|
LetUserMungeParams(
|
|
PFUNC_PARAM_HEADER pParamsHeader
|
|
);
|
|
|
|
void
|
|
ShowLineFuncResult(
|
|
LPSTR lpFuncName,
|
|
LONG lResult
|
|
);
|
|
|
|
void
|
|
FuncDriver(
|
|
FUNC_INDEX funcIndex
|
|
);
|
|
|
|
void
|
|
UpdateWidgetList(
|
|
void
|
|
);
|
|
|
|
void
|
|
InsertWidgetInList(
|
|
PMYWIDGET pNewWidget,
|
|
PMYWIDGET pWidgetInsertBefore
|
|
);
|
|
|
|
BOOL
|
|
RemoveWidgetFromList(
|
|
PMYWIDGET pWidgetToRemove
|
|
);
|
|
|
|
PMYLINEAPP
|
|
AllocLineApp(
|
|
void
|
|
);
|
|
|
|
PMYLINEAPP
|
|
GetLineApp(
|
|
HLINEAPP hLineApp
|
|
);
|
|
|
|
VOID
|
|
FreeLineApp(
|
|
PMYLINEAPP pLineApp
|
|
);
|
|
|
|
PMYLINE
|
|
AllocLine(
|
|
PMYLINEAPP pLineApp
|
|
);
|
|
|
|
PMYLINE
|
|
GetLine(
|
|
HLINE hLine
|
|
);
|
|
|
|
VOID
|
|
FreeLine(
|
|
PMYLINE pLine
|
|
);
|
|
|
|
PMYCALL
|
|
AllocCall(
|
|
PMYLINE pLine
|
|
);
|
|
|
|
PMYCALL
|
|
GetCall(
|
|
HCALL hCall
|
|
);
|
|
|
|
VOID
|
|
FreeCall(
|
|
PMYCALL pCall
|
|
);
|
|
|
|
VOID
|
|
MoveCallToLine(
|
|
PMYCALL pCall,
|
|
HLINE hLine
|
|
);
|
|
|
|
PMYPHONEAPP
|
|
AllocPhoneApp(
|
|
void
|
|
);
|
|
|
|
PMYPHONEAPP
|
|
GetPhoneApp(
|
|
HPHONEAPP hPhoneApp
|
|
);
|
|
|
|
VOID
|
|
FreePhoneApp(
|
|
PMYPHONEAPP pPhoneApp
|
|
);
|
|
|
|
PMYPHONE
|
|
AllocPhone(
|
|
PMYPHONEAPP pPhoneApp
|
|
);
|
|
|
|
PMYPHONE
|
|
GetPhone(
|
|
HPHONE hPhone
|
|
);
|
|
|
|
VOID
|
|
FreePhone(
|
|
PMYPHONE pPhone
|
|
);
|
|
|
|
int
|
|
GetWidgetIndex(
|
|
PMYWIDGET pWidget
|
|
);
|
|
|
|
void
|
|
SelectWidget(
|
|
PMYWIDGET pWidget
|
|
);
|
|
|
|
void
|
|
UpdateResults(
|
|
BOOL bBegin
|
|
);
|
|
|
|
INT_PTR
|
|
CALLBACK
|
|
UserButtonsDlgProc(
|
|
HWND hwnd,
|
|
UINT msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
void
|
|
ErrorAlert(
|
|
void
|
|
);
|
|
|
|
//
|
|
// Macros
|
|
//
|
|
|
|
#define CHK_LINEAPP_SELECTED() \
|
|
if (!IsLineAppSelected()) \
|
|
{ \
|
|
break; \
|
|
}
|
|
|
|
#define CHK_LINE_SELECTED() \
|
|
if (!IsLineSelected()) \
|
|
{ \
|
|
break; \
|
|
}
|
|
|
|
#define CHK_CALL_SELECTED() \
|
|
if (!IsCallSelected()) \
|
|
{ \
|
|
break; \
|
|
}
|
|
|
|
#define CHK_TWO_CALLS_SELECTED() \
|
|
if (!IsTwoCallsSelected()) \
|
|
{ \
|
|
break; \
|
|
}
|
|
|
|
#define CHK_PHONEAPP_SELECTED() \
|
|
if (!IsPhoneAppSelected()) \
|
|
{ \
|
|
break; \
|
|
}
|
|
|
|
#define CHK_PHONE_SELECTED() \
|
|
if (!IsPhoneSelected()) \
|
|
{ \
|
|
break; \
|
|
}
|