Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*----------------------------------------------------------------------------
pbserver.h
CPhoneBkServer class definition Copyright (c) 1997-1998 Microsoft Corporation All rights reserved.
Authors: byao Baogang Yao
History: 01/23/97 byao Created --------------------------------------------------------------------------*/ #ifndef _PBSVR_INCL_
#define _PBSVR_INCL_
#define VERSION_LEN 64
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <httpext.h>
// HTTP status code -- copied from 'afxisapi.h'
#define HTTP_STATUS_OK 200 // OK
#define HTTP_STATUS_CREATED 201 // created
#define HTTP_STATUS_ACCEPTED 202 // accepted
#define HTTP_STATUS_NO_CONTENT 204 // no content
#define HTTP_STATUS_REDIRECT 301 // moved permanently
#define HTTP_STATUS_TEMP_REDIRECT 302 // moved temporarily
#define HTTP_STATUS_NOT_MODIFIED 304 // not modified
#define HTTP_STATUS_BAD_REQUEST 400 // bad request
#define HTTP_STATUS_AUTH_REQUIRED 401 // unauthorized
#define HTTP_STATUS_FORBIDDEN 403 // forbidden
#define HTTP_STATUS_NOT_FOUND 404 // not found
#define HTTP_STATUS_SERVICE_NA 405 // service unavailable
#define HTTP_STATUS_SERVER_ERROR 500 // internal server error
#define HTTP_STATUS_NOT_IMPLEMENTED 501 // not implemented
#define HTTP_STATUS_BAD_GATEWAY 502 // bad gateway
#define NAME_VALUE_LEN 128
// If the query string is NULL, or there are invalid number of parameters in it,
// then treat it as an 'INVALID_QUERY_STRING'
#define INVALID_QUERY_STRING -1
typedef struct { char m_achName[NAME_VALUE_LEN]; char m_achVal[NAME_VALUE_LEN]; } PARAMETER_PAIR, *LPPARAMETER_PAIR;
// query parameter that will be passed from client to the ISA
typedef struct _query_parameter { int m_dOSArch; int m_dOSType; int m_dLCID; char m_achOSVer[VERSION_LEN]; char m_achCMVer[VERSION_LEN]; char m_achPB[VERSION_LEN]; int m_dPBVer; } QUERY_PARAMETER, *LPQUERY_PARAMETER;
class CPhoneBkServer { private: BOOL m_bInitialized; QUERY_PARAMETER m_QueryParameter;
public: BOOL GetExtensionVersion(LPHSE_VERSION_INFO pVer); DWORD HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpEcb);
protected:
BOOL GetQueryParameter(char *pszQuery, LPQUERY_PARAMETER lpQueryParamter); void FormSQLQuery(char *pszQuery, char *pszService, int dLCID, int dOSType, int dOSArch); void BuildStatusCode(LPTSTR pszResponse, DWORD dwCode); DWORD GetFileLength(LPSTR lpszFileName); BOOL SendFile(LPEXTENSION_CONTROL_BLOCK lpEcb, LPSTR lpszFileName, BOOL bWait); BOOL Virtual2Physical( LPEXTENSION_CONTROL_BLOCK lpEcb, char *pszVirtualPath, char *pszPhysicalPath ); int GetParameterPairs( char *pszInputString, LPPARAMETER_PAIR lpPairs, int dMaxPairs );
};
// helping functions
BOOL InitProcess(); BOOL CleanUpProcess(); BOOL InitDBNames(); BOOL UpdatePhoneBook(); BOOL InitializeSharedMem(SECURITY_ATTRIBUTES sa); //BOOL GrantPermissions( LPTSTR Object );
void CleanUpSharedMem(); BOOL GetSemaphore(); BOOL SetAclPerms(PACL * ppAcl); #endif
|