168 lines
5 KiB
C
168 lines
5 KiB
C
/*
|
|
- 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
|
|
|