444 lines
9.9 KiB
C++
444 lines
9.9 KiB
C++
#include "stdafx.h"
|
|
#include "t3test.h"
|
|
#include "t3testD.h"
|
|
#include "calldlg.h"
|
|
#include "callnot.h"
|
|
#include "externs.h"
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseAddresses
|
|
//
|
|
// Release all the address objects in the address tree
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseAddresses()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
//
|
|
// get the first address
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghAddressesWnd,
|
|
ghAddressesRoot
|
|
);
|
|
|
|
//
|
|
// go through all the addresses
|
|
// and release
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
ITAddress * pAddress;
|
|
|
|
item.hItem = hItem;
|
|
|
|
TreeView_GetItem(
|
|
ghAddressesWnd,
|
|
&item
|
|
);
|
|
|
|
pAddress = (ITAddress *)item.lParam;
|
|
|
|
if (NULL != pAddress)
|
|
{
|
|
pAddress->Release();
|
|
}
|
|
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghAddressesWnd,
|
|
hItem
|
|
);
|
|
//
|
|
// delete the item
|
|
//
|
|
// TreeView_DeleteItem(
|
|
// ghAddressesWnd,
|
|
// hItem
|
|
// );
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
|
|
TreeView_DeleteAllItems(ghAddressesWnd);
|
|
}
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseMediaTypes
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseMediaTypes()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
BSTR pMediaType;
|
|
|
|
gbUpdatingStuff = TRUE;
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
|
|
//
|
|
// go through all the mediatypes
|
|
// and free the associated strings
|
|
// and delete the item from the
|
|
// tree
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghMediaTypesWnd,
|
|
ghMediaTypesRoot
|
|
);
|
|
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghMediaTypesWnd,
|
|
hItem
|
|
);
|
|
|
|
|
|
//
|
|
// delete the item
|
|
//
|
|
TreeView_DeleteItem(
|
|
ghMediaTypesWnd,
|
|
hItem
|
|
);
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
|
|
gbUpdatingStuff = FALSE;
|
|
}
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseListen
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseListen()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
|
|
//
|
|
// delete all the leave on the listen
|
|
// tree
|
|
// there are no resources associated with
|
|
// this, so nothing to free
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghListenWnd,
|
|
ghListenRoot
|
|
);
|
|
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghListenWnd,
|
|
hItem
|
|
);
|
|
|
|
TreeView_DeleteItem(
|
|
ghListenWnd,
|
|
hItem
|
|
);
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
|
|
}
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseTerminalClasses
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseTerminalClasses()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
|
|
//
|
|
// go through all the terminal classes
|
|
// free the memory allocated for the
|
|
// guid, and delete the item
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghClassesWnd,
|
|
ghClassesRoot
|
|
);
|
|
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
GUID * pGuid;
|
|
|
|
item.hItem = hItem;
|
|
|
|
TreeView_GetItem(
|
|
ghClassesWnd,
|
|
&item
|
|
);
|
|
|
|
pGuid = (GUID *)item.lParam;
|
|
delete pGuid;
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghClassesWnd,
|
|
hItem
|
|
);
|
|
|
|
TreeView_DeleteItem(
|
|
ghClassesWnd,
|
|
hItem
|
|
);
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseTerminalClasses
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseTerminals()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
|
|
//
|
|
// go though all the terminals, and
|
|
// free the terminals, and delete the
|
|
// item
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghTerminalsWnd,
|
|
ghTerminalsRoot
|
|
);
|
|
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
ITTerminal * pTerminal;
|
|
|
|
item.hItem = hItem;
|
|
|
|
TreeView_GetItem(
|
|
ghTerminalsWnd,
|
|
&item
|
|
);
|
|
|
|
pTerminal = (ITTerminal *)item.lParam;
|
|
|
|
pTerminal->Release();
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghTerminalsWnd,
|
|
hItem
|
|
);
|
|
|
|
|
|
TreeView_DeleteItem(
|
|
ghTerminalsWnd,
|
|
hItem
|
|
);
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
}
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseSelectedTerminals
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseSelectedTerminals()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
|
|
//
|
|
// go through all the selected terminals
|
|
// and free and delete
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghSelectedWnd,
|
|
ghSelectedRoot
|
|
);
|
|
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
ITTerminal * pTerminal;
|
|
|
|
item.hItem = hItem;
|
|
|
|
TreeView_GetItem(
|
|
ghSelectedWnd,
|
|
&item
|
|
);
|
|
|
|
pTerminal = (ITTerminal *)item.lParam;
|
|
|
|
pTerminal->Release();
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghSelectedWnd,
|
|
hItem
|
|
);
|
|
|
|
|
|
TreeView_DeleteItem(
|
|
ghSelectedWnd,
|
|
hItem
|
|
);
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseCalls
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseCalls()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
|
|
//
|
|
// go through all the calls, and
|
|
// release and delete
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghCallsWnd,
|
|
ghCallsRoot
|
|
);
|
|
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
ITCallInfo * pCallInfo;
|
|
|
|
|
|
item.hItem = hItem;
|
|
|
|
TreeView_GetItem(
|
|
ghCallsWnd,
|
|
&item
|
|
);
|
|
|
|
pCallInfo = (ITCallInfo *)item.lParam;
|
|
|
|
pCallInfo->Release();
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghCallsWnd,
|
|
hItem
|
|
);
|
|
|
|
|
|
TreeView_DeleteItem(
|
|
ghCallsWnd,
|
|
hItem
|
|
);
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
//
|
|
// ReleaseCalls
|
|
//
|
|
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
|
|
void CT3testDlg::ReleaseCreatedTerminals()
|
|
{
|
|
HTREEITEM hItem;
|
|
TV_ITEM item;
|
|
|
|
item.mask = TVIF_HANDLE | TVIF_PARAM;
|
|
|
|
|
|
//
|
|
// go through all the created terminals
|
|
// and release and delete
|
|
//
|
|
hItem = TreeView_GetChild(
|
|
ghCreatedWnd,
|
|
ghCreatedRoot
|
|
);
|
|
|
|
while (NULL != hItem)
|
|
{
|
|
HTREEITEM hNewItem;
|
|
ITTerminal * pTerminal;
|
|
|
|
|
|
item.hItem = hItem;
|
|
|
|
TreeView_GetItem(
|
|
ghCreatedWnd,
|
|
&item
|
|
);
|
|
|
|
pTerminal = (ITTerminal *)item.lParam;
|
|
|
|
pTerminal->Release();
|
|
|
|
hNewItem = TreeView_GetNextSibling(
|
|
ghCreatedWnd,
|
|
hItem
|
|
);
|
|
|
|
|
|
TreeView_DeleteItem(
|
|
ghCreatedWnd,
|
|
hItem
|
|
);
|
|
|
|
hItem = hNewItem;
|
|
}
|
|
}
|
|
|
|
|