/* - nameres.h - * Microsoft Internet Phone user interface * Name Resolution exported header * * Revision History: * * When Who What * -------- ------------------ --------------------------------------- * 11.25.95 Yoram Yaacovi Created * Sunita Added name service functions and ipa macros */ #ifndef _NAMERES_H #define _NAMERES_H #ifdef __cplusplus extern "C" { #endif //definitions //external #define BY_HOST_NAME 1 #define BY_USER_NAME 2 #define MPNS_PROMPT 0x0001 #define MPNS_SHOWDIR 0x0002 #define MPNS_RETURNHTML 0x0004 #define MPNS_GETADDR 0x0008 #define MPNS_SAVE 0x0010 #define MPNS_GETDETAILS 0x0020 #define MPNS_ALLOWSAVE 0x0040 //internal #define MAXSERVERNAMELEN 256 #define MAXIPAFILESIZE 4096 #define MAXSERVERDLLNAMELEN 256 #define MAXIPALINELEN 512 #define MAXREGISTEREDNAMELEN 256 #define MAXIPAACTIONLEN 16 #define MAXIPAPAIRSPERLINE 3 #define MAXIPARESULTLEN 64 #define MAXSEARCHEXPLEN 256 #define MAXDIRECTORYLEN 1000 #define MAX_IP_ADDRESS_STRING_SIZE 16 #define LITTLE_STRING_BUFFER_SIZE 8 #define MAXUSERINFOSIZE MAXREGISTEREDNAMELEN // version defines. #define CURRENT_CLIENT_VERSION "0001" // keep-alive periods. #define CLIENT_KEEP_ALIVE_PERIOD 20000 // 20 seconds. #define SERVER_KEEP_ALIVE_PERIOD 30000 // 30 seconds. #define LOWER_TIME_LIMIT 1000 // 1 second. #define UPPER_TIME_LIMIT 900000 // 15 minutes. //for now we just call in char #ifdef UNICODE typedef TCHAR REGISTEREDNAME[MAXREGISTEREDNAMELEN]; #else typedef char REGISTEREDNAME[MAXREGISTEREDNAMELEN*2]; #endif //!UNICODE #ifdef UNICODE typedef struct USERDETAILS{ REGISTEREDNAME szRegName; TCHAR szFullName[MAXUSERINFOSIZE]; TCHAR szLocation[MAXUSERINFOSIZE]; TCHAR szHostName[MAXUSERINFOSIZE]; TCHAR szEmailName[MAXUSERINFOSIZE]; TCHAR szHomePage[MAXUSERINFOSIZE]; TCHAR szComments[MAXUSERINFOSIZE]; }USERDETAILS, *PUSERDETAILS; #else typedef struct USERDETAILS{ REGISTEREDNAME szRegName; char szFullName[MAXUSERINFOSIZE*2]; char szLocation[MAXUSERINFOSIZE*2]; char szHostName[MAXUSERINFOSIZE*2]; char szEmailName[MAXUSERINFOSIZE*2]; char szHomePage[MAXUSERINFOSIZE*2]; char szComments[MAXUSERINFOSIZE*2]; }USERDETAILS, *PUSERDETAILS; #endif typedef struct _CALLEE_ID { REGISTEREDNAME strCalleeName; TCHAR strIPAddress[MAX_IP_ADDRESS_STRING_SIZE + 1]; TCHAR strPort[LITTLE_STRING_BUFFER_SIZE + 1]; TCHAR strAppName[MAX_PATH + 1]; TCHAR strGUID[LITTLE_STRING_BUFFER_SIZE + 1]; }CALLEE_ID; typedef CALLEE_ID *PCALLEE_ID; //typedef REGISTEREDNAME *PREGISTEREDNAME,*LPREGISTEREDNAME; typedef struct _SEARCHCRITERIA{ WORD cbStruct; //size of the struct }SEARCHCRITERIA; typedef SEARCHCRITERIA *pSEARCHCRITERIA,*LPSEARCHCRITERIA; #pragma warning (disable : 4200) typedef struct _NAMEDIR{ DWORD cbStruct; //size of the struct DWORD dwNumEntries; //number of entries in the directory REGISTEREDNAME RegNames[]; //pointer to an array of registerednames }NAMEDIR,*PNAMEDIR,*LPNAMEDIR; #pragma warning (default : 4200) typedef DWORD HNSSESSION; #define TOKENBEGINCHAR '<' #define TOKENENDCHAR '>' #define HEADSTARTSTR "HEAD" #define HEADENDSTR "/HEAD" #define URL_SPACE_CHARACTER '.' //exported functions typedef HNSSESSION (WINAPI *NAMESERVICEINITIALIZE)(HWND,LPTSTR); typedef BOOL (WINAPI *NAMESERVICEDEINITIALIZE)(HNSSESSION); typedef BOOL (WINAPI *NAMESERVICEREGISTER)(HNSSESSION, HWND,LPTSTR); typedef BOOL (WINAPI *NAMESERVICEUNREGISTER)(HNSSESSION,LPTSTR); typedef BOOL (WINAPI *NAMESERVICERESOLVE)(HNSSESSION, LPTSTR, DWORD, CALLEE_ID *); typedef BOOL (WINAPI *NAMESERVICEGETDIRECTORY)(HNSSESSION, HWND, LPSEARCHCRITERIA, DWORD, LPNAMEDIR *,LPTSTR, PCALLEE_ID); typedef BOOL (WINAPI *NAMESERVICELOGON)(HNSSESSION, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR); typedef BOOL (WINAPI *NAMESERVICELOGOFF)(HNSSESSION, LPTSTR); typedef BOOL (WINAPI *CALLEEIDFROMIPABUF)(LPBYTE, DWORD, PCALLEE_ID); typedef void (WINAPI *NAMESERVICEFREEMEM)(LPVOID); typedef BOOL (WINAPI *NAMESERVICEUSERDETAILS)(HWND, DWORD, PUSERDETAILS); //exported function prototypes extern BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID); extern HNSSESSION WINAPI NameServiceInitialize(HWND, LPTSTR); extern BOOL WINAPI NameServiceDeinitialize(HNSSESSION); extern BOOL WINAPI NameServiceRegister(HNSSESSION, HWND, LPTSTR); extern BOOL WINAPI NameServiceUnregister(HNSSESSION, LPTSTR); extern BOOL WINAPI NameServiceLogon(HNSSESSION, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPTSTR); extern BOOL WINAPI NameServiceLogoff(HNSSESSION, LPTSTR); extern BOOL WINAPI NameServiceResolve(HNSSESSION, LPTSTR, DWORD, CALLEE_ID *); extern BOOL WINAPI NameServiceGetDirectory(HNSSESSION, HWND, LPSEARCHCRITERIA, DWORD, LPNAMEDIR *, LPTSTR, PCALLEE_ID); extern BOOL WINAPI NameServiceUserDetails(HWND, DWORD, PUSERDETAILS); extern BOOL WINAPI CalleeIdFromIpaBuf(LPBYTE, DWORD, PCALLEE_ID); extern void WINAPI NameServiceFreeMem(LPVOID); #ifdef __cplusplus } #endif #endif //#ifndef _NAMERES_H