windows-nt/Source/XPSP1/NT/net/tapi/skywalker/apps/t3testph/gets.cpp
2020-09-26 16:20:57 +08:00

556 lines
11 KiB
C++

#include "stdafx.h"
#include "t3test.h"
#include "t3testD.h"
#include "calldlg.h"
#include "callnot.h"
#include "externs.h"
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetMediaTypeName
//
// Convert the mediatype bstr to a string, like
// "audio in"
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
void CT3testDlg::GetMediaTypeName(
long lMediaType,
LPWSTR szString
)
{
if (lMediaType == (long)LINEMEDIAMODE_AUTOMATEDVOICE)
{
lstrcpyW(
szString,
L"Audio"
);
}
else if (lMediaType == (long)LINEMEDIAMODE_VIDEO)
{
lstrcpyW(
szString,
L"Video"
);
}
else if (lMediaType == (long)LINEMEDIAMODE_DATAMODEM)
{
lstrcpyW(
szString,
L"DataModem"
);
}
else if (lMediaType == (long)LINEMEDIAMODE_G3FAX)
{
lstrcpyW(
szString,
L"G3Fax"
);
}
else
{
lstrcpyW(
szString,
L"Unknown MediaType - "
);
}
}
LPWSTR CT3testDlg::GetCallPrivilegeName(
ITCallInfo * pCall
)
{
CALL_PRIVILEGE cp;
HRESULT hr;
hr = pCall->get_Privilege( &cp );
if ( SUCCEEDED(hr) )
{
if (CP_OWNER == cp)
{
return SysAllocString(L"OWNER");
}
else
{
return SysAllocString(L"MONITOR");
}
}
return NULL;
}
LPWSTR CT3testDlg::GetPhonePrivilegeName(
ITPhone * pPhone
)
{
PHONE_PRIVILEGE pp;
HRESULT hr;
hr = pPhone->get_Privilege( &pp );
if ( SUCCEEDED(hr) )
{
if (PP_OWNER == pp)
{
return SysAllocString(L"OWNER");
}
else
{
return SysAllocString(L"MONITOR");
}
}
return NULL;
}
LPWSTR CT3testDlg::GetCallStateName(
ITCallInfo * pCall
)
{
CALL_STATE cs;
//
// get the current call state
//
pCall->get_CallState( &cs );
//
// make the name
//
switch( cs )
{
case CS_INPROGRESS:
return SysAllocString( L"INPROGRESS" );
break;
case CS_CONNECTED:
return SysAllocString ( L"CONNECTED" );
break;
case CS_DISCONNECTED:
return SysAllocString ( L"DISCONNECTED" );
break;
case CS_OFFERING:
return SysAllocString ( L"OFFERING" );
break;
case CS_IDLE:
return SysAllocString( L"IDLE" );
break;
default:
return SysAllocString( L"<Unknown Call State>" );
break;
}
return NULL;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetAddress
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetAddress( ITAddress ** ppAddress )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghAddressesWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghAddressesWnd,
&item
);
*ppAddress = (ITAddress *)item.lParam;
if (NULL == *ppAddress)
{
// ::MessageBox(NULL, L"Select an Address", NULL, MB_OK);
return FALSE;
}
return TRUE;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetTerminal
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetTerminal( ITTerminal ** ppTerminal )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghTerminalsWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghTerminalsWnd,
&item
);
*ppTerminal = (ITTerminal *)item.lParam;
if (NULL == *ppTerminal)
{
::MessageBox(NULL, L"Select a Terminal", NULL, MB_OK);
return FALSE;
}
return TRUE;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetPhone
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetPhone( ITPhone ** ppPhone )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghPhonesWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghPhonesWnd,
&item
);
*ppPhone = (ITPhone *)item.lParam;
if (NULL == *ppPhone)
{
//::MessageBox(NULL, L"Select a Phone", NULL, MB_OK);
return FALSE;
}
return TRUE;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetCall
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetCall( ITCallInfo ** ppCallInfo )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghCallsWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghCallsWnd,
&item
);
*ppCallInfo = (ITCallInfo *)item.lParam;
if (NULL == *ppCallInfo)
{
//::MessageBox(NULL, L"Select a Call", NULL, MB_OK);
return FALSE;
}
return TRUE;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetMediaType
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetMediaType( long * plMediaType )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghMediaTypesWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghMediaTypesWnd,
&item
);
*plMediaType = (long)(item.lParam);
if (0 == *plMediaType)
{
return FALSE;
}
return TRUE;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetTerminalClass
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetTerminalClass( BSTR * pbstrClass )
{
HTREEITEM hItem;
TV_ITEM item;
GUID * pguid;
hItem = TreeView_GetSelection(
ghClassesWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghClassesWnd,
&item
);
pguid = (GUID *)item.lParam;
if (NULL == pguid)
{
return FALSE;
}
LPWSTR lphold;
StringFromIID(
*pguid,
&lphold
);
*pbstrClass = SysAllocString(lphold);
CoTaskMemFree(lphold);
return TRUE;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetCreatedTerminal
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetCreatedTerminal( ITTerminal ** ppTerminal )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghCreatedWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghCreatedWnd,
&item
);
*ppTerminal = (ITTerminal *)item.lParam;
if (NULL == *ppTerminal)
{
return FALSE;
}
return TRUE;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetSelectedTerminal
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetSelectedTerminal( ITTerminal ** ppTerminal )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghSelectedWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghSelectedWnd,
&item
);
*ppTerminal = (ITTerminal *)item.lParam;
if (NULL == *ppTerminal)
{
return FALSE;
}
return TRUE;
}
BSTR CT3testDlg::GetTerminalClassName( GUID * pguid )
{
if (IsEqualIID( *pguid, CLSID_VideoWindowTerm ))
{
return SysAllocString( L"Video" );
}
#ifdef ENABLE_DIGIT_DETECTION_STUFF
else if (IsEqualIID( *pguid, CLSID_DigitTerminal ))
{
return SysAllocString( L"Digit Terminal" );
}
else if (IsEqualIID( *pguid, CLSID_DataTerminal ))
{
return SysAllocString( L"Data Terminal" );
}
#endif // ENABLE_DIGIT_DETECTION_STUFF
else
{
return SysAllocString( L"Unknown Dynamic Type" );
}
return NULL;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
//
// GetSelectedCall
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
BOOL CT3testDlg::GetSelectedCall( ITCallInfo ** ppCall )
{
HTREEITEM hItem;
TV_ITEM item;
hItem = TreeView_GetSelection(
ghSelectedCallsWnd
);
if (NULL == hItem)
{
return FALSE;
}
item.mask = TVIF_HANDLE | TVIF_PARAM;
item.hItem = hItem;
TreeView_GetItem(
ghSelectedCallsWnd,
&item
);
*ppCall = (ITCallInfo *)item.lParam;
if (NULL == *ppCall)
{
//::MessageBox(NULL, L"Select a Call", NULL, MB_OK);
return FALSE;
}
return TRUE;
}