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