PARSE.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4.     Parse.h
  5. Abstract:
  6. Author:
  7. Environment:
  8.     User mode
  9. Revision History :
  10. --*/
  11. #ifndef _PARSE_H_
  12. #define _PARSE_H_
  13. #define MAX_TOKEN_LENGTH       80
  14. #define MAX_KEYWORDS           14
  15. typedef struct _kwdlist {
  16.     DWORD   dwTokenId;
  17.     LPWSTR  Keyword;
  18. } KWDLIST, *PKWDLIST;
  19. class FAR CLexer
  20. {
  21. public:
  22.     CLexer(LPWSTR szBuffer);
  23.     ~CLexer();
  24.     BOOL
  25.     CLexer::IsKeyword(LPWSTR szToken, LPDWORD pdwToken);
  26.     WCHAR
  27.     CLexer::NextChar();
  28.     void
  29.     CLexer::PushbackChar();
  30.     HRESULT
  31.     CLexer::GetNextToken(LPWSTR szToken, LPDWORD pdwToken);
  32.     HRESULT
  33.     CLexer::PushBackToken();
  34. private:
  35.     LPWSTR _ptr;
  36.     LPWSTR _Buffer;
  37.     DWORD  _dwLastTokenLength;
  38.     DWORD  _dwLastToken;
  39.     DWORD  _dwEndofString;
  40. };
  41. HRESULT
  42. ADsObject(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  43. HRESULT
  44. SampleDSObject(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  45. HRESULT
  46. DsPathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  47. HRESULT
  48. PathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  49. HRESULT
  50. Component(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  51. HRESULT
  52. Type(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  53. HRESULT
  54. ProviderName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  55. HRESULT
  56. AddRootRDN(POBJECTINFO pObjectInfo, LPWSTR szToken);
  57. HRESULT
  58. SetType(POBJECTINFO pObjectInfo, DWORD dwToken);
  59. HRESULT
  60. SchemaPathName(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  61. HRESULT
  62. SchemaComponent(CLexer * pTokenizer, POBJECTINFO pObjectInfo);
  63. #endif