www.pudn.com > Acd.rar > AcdSmpl.h


#ifndef _ACDSMPL_ 
#define _ACDSMPL_ 
 
#include  
#include  
#include  
#include  
 
/////////////////////////////////////////////////////////////////////////// 
// 
//  STRUCTURES 
// 
/////////////////////////////////////////////////////////////////////////// 
 
typedef struct _tagLISTITEM; 
 
typedef struct 
{ 
    DWORD                   dwState; 
    DWORD                   dwNextState; 
    DWORD                   dwActivity; 
     
} ADDRESSINFO, * PADDRESSINFO; 
 
typedef struct _tagAGENT 
{ 
    DWORD                   dwKey; 
    DWORD                   dwSize; 
    struct _tagAGENT *      pNext; 
    struct _tagAGENT *      pPrev; 
    LPTSTR                  lpszName; 
    LPTSTR                  lpszNumber; 
    HTREEITEM               hItem; 
    DWORD                   dwDeviceID; 
    DWORD                   dwPermID; 
    HLINE                   hLine; 
    DWORD                   dwNumAddresses; 
    PADDRESSINFO            pAddressInfo; 
     
}   AGENT, * PAGENT; 
 
typedef struct _tagGROUP 
{ 
    DWORD                   dwKey; 
    DWORD                   dwSize; 
    struct _tagGROUP *      pNext; 
    struct _tagGROUP *      pPrev; 
    LPTSTR                  lpszName; 
    HTREEITEM               hItem; 
    HLINE                   hLine; 
    DWORD                   dwDeviceID; 
    DWORD                   dwAddress; 
    struct _tagLISTITEM *   pAgentList; 
     
}   GROUP, * PGROUP; 
 
typedef struct _tagGENERICSTRUCT 
{ 
    DWORD                       dwKey; 
    DWORD                       dwSize; 
    struct _tagGENERICSTRUCT *  pNext; 
    struct _tagGENERICSTRUCT *  pPrev; 
     
}  GENERICSTRUCT, * PGENERICSTRUCT; 
 
typedef struct _tagLISTITEM 
{ 
    DWORD                   dwKey; 
    DWORD                   dwSize; 
    struct _tagLISTITEM *   pNext; 
    struct _tagLISTITEM *   pPrev; 
    PAGENT                  pAgent; 
    BOOL                    bLoggedIn; 
    DWORD                   dwAddress; 
     
}   LISTITEM, * PLISTITEM; 
 
 
typedef struct _tagACDGLOBALS 
{ 
    PAGENT         pAgents; 
    PGROUP         pGroups; 
    DWORD          dwNumAgents; 
    DWORD          dwNumGroups; 
    LPDWORD        pdwPermIDs; 
    HINSTANCE      hInstance; 
    HLINEAPP       hLineApp; 
    DWORD          dwNumDevs; 
    HWND           hMainWnd; 
    HWND           hTreeWnd; 
    HWND           hLogWnd; 
    BOOL           bGroupView; 
    DWORD          dwBarLocation; 
    HTREEITEM      hAgentParent; 
    HTREEITEM      hGroupParent; 
    HTREEITEM      hTreeItemWithMenu; 
     
} ACDGLOBALS, * LPACDGLOBALS; 
 
 
//////////////////////////////////////////////////////////////////////////////////////////////// 
// 
//  PROTOTYPES 
// 
//////////////////////////////////////////////////////////////////////////////////////////////// 
 
// memory 
LPVOID ACDAlloc(DWORD dwSize); 
 
void ACDFree(LPVOID pBuf); 
 
LPVOID ACDReAlloc(LPVOID pBuf, 
                  DWORD dwSize); 
 
// tapi utils 
LINEADDRESSCAPS * LineGetAddressCaps (HLINEAPP hLineApp, 
                                      DWORD    dwDeviceID, 
                                      DWORD    dwAddressID); 
 
LINECALLINFO * LineGetCallInfo (HCALL hCall); 
 
LINEDEVCAPS * LineGetDevCaps (HLINEAPP hLineApp, 
                              DWORD    dwDeviceID); 
 
VARSTRING * LineGetID (HLINE  hLine, 
                       DWORD  dwAddressID, 
                       HCALL  hCall, 
                       DWORD  dwSelect, 
                       LPCTSTR lpszDeviceClass); 
 
LINECALLSTATUS * LineGetCallStatus (HCALL hCall); 
 
// list utils 
BOOL InsertStruct(PGENERICSTRUCT * ppRoot, 
                  PGENERICSTRUCT pStruct); 
 
BOOL DeleteStruct(PGENERICSTRUCT * ppRoot, 
                  PGENERICSTRUCT pStruct); 
 
PGROUP AddGroup(LPTSTR lpszName, 
                 DWORD dwDeviceID, 
                 DWORD dwAddress); 
 
PAGENT AddAgent(LPTSTR lpszName, 
                LPTSTR lpszNumber, 
                DWORD dwDeviceID); 
 
BOOL DeleteAgent(PAGENT pAgent); 
 
BOOL DeleteGroup(PGROUP pGroup); 
 
BOOL InsertIntoGroupList(PGROUP pGroup, 
                         PAGENT pAgent); 
 
BOOL RemoveFromGroupList(PGROUP pGroup, 
                         PAGENT pAgent); 
 
DWORD GetDeviceID(DWORD dwPermID); 
 
PAGENT GetAgentFromhLine(HLINE hLine); 
 
PAGENT GetAgentFromName(LPTSTR lpszName); 
 
PLISTITEM IsAgentInList(PLISTITEM pList, 
                        PAGENT pAgent); 
 
/////////////////////////////////////////////////////////////////////////// 
// 
//  DEFINES 
// 
/////////////////////////////////////////////////////////////////////////// 
 
#define TOTALACTIVITIES     10 
#define NUMGROUPENTRIES     10 
#define NAMESIZE            128 
 
// structure keys 
#define GROUPROOTKEY        'GRRT' 
#define AGENTROOTKEY        'AGRT' 
#define AGENTKEY            'AGNT' 
#define GROUPKEY            'GROU' 
#define LISTKEY             'LIST' 
 
 
// window control defines 
#define SIZEBAR             3 
#define WINDOWSCALEFACTOR   15 
 
#define SZAPPNAME           TEXT("ACD Sample") 
 
#endif