Leaked source code of windows server 2003
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.
 
 
 
 
 
 

68 lines
1.6 KiB

/*==========================================================================
*
* Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
*
* File: ClassFac.cpp
* Content: Parsing engine
*@@BEGIN_MSINTERNAL
* History:
* Date By Reason
* ==== == ======
* 02/04/2000 rmt Created
* 02/21/2000 rmt Updated to make core Unicode and remove ANSI calls
*@@END_MSINTERNAL
*
***************************************************************************/
#ifndef __ADDPARSE_H
#define __ADDPARSE_H
#include "Addcore.h"
class DP8ADDRESSPARSE
{
protected:
typedef enum {
DP8AP_IDLE,
DP8AP_KEY,
DP8AP_VALUE,
DP8AP_USERDATA
} DP8AP_STATE;
public:
DP8ADDRESSPARSE();
~DP8ADDRESSPARSE();
HRESULT ParseURL( DP8ADDRESSOBJECT *pdp8aObject, WCHAR *pstrURL );
protected:
BOOL IsValidHex( WCHAR ch );
static BOOL IsValidKeyChar(WCHAR ch);
static BOOL IsValidKeyTerminator(WCHAR ch);
BOOL IsValidValueChar(WCHAR ch);
BOOL IsValidValueTerminator(WCHAR ch);
static BOOL IsValidNumber(WCHAR ch );
static WCHAR HexToChar( const WCHAR *sz );
HRESULT FSM_Key();
HRESULT FSM_Value();
HRESULT FSM_UserData();
HRESULT FSM_CommitEntry(DP8ADDRESSOBJECT *pdp8aObject);
WCHAR *m_pwszCurrentLocation; // Current Location in string
WCHAR *m_pwszCurrentKey; // Key will be placed here as we build
WCHAR *m_pwszCurrentValue; // Value will be placed here as we build
BYTE *m_pbUserData;
DWORD m_dwUserDataSize;
DP8AP_STATE m_dp8State; // Current State
BOOL m_fNonNumeric;
DWORD m_dwLenURL;
DWORD m_dwValueLen;
};
#endif // __ADDPARSE_H