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

Windows编程

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4.     GetObj.h
  5. Abstract:
  6. Author:
  7. Environment:
  8.     User mode
  9. Revision History :
  10. --*/
  11. #ifndef _GETOBJ_H_
  12. #define _GETOBJ_H_
  13. #define MAXCOMPONENTS               20
  14. #define TOKEN_IDENTIFIER                1
  15. #define TOKEN_COMMA                     2
  16. #define TOKEN_BSLASH                    3
  17. #define TOKEN_END                       4
  18. #define TOKEN_OU                        5
  19. #define TOKEN_USER                      6
  20. #define TOKEN_GROUP                     7
  21. #define TOKEN_ATSIGN                   11
  22. #define TOKEN_EXCLAMATION              12
  23. #define TOKEN_COLON                    13
  24. #define TOKEN_FSLASH                   14
  25. #define TOKEN_PROVIDER                 15
  26. #define TOKEN_SCHEMA                   17
  27. #define TOKEN_CLASS                    18
  28. #define TOKEN_PROPERTY                 21
  29. #define TOKEN_SYNTAX                   22
  30. #define TOKEN_PERIOD                   24
  31. #define TOKEN_EQUAL                    25
  32. #define TOKEN_NAMESPACE                26
  33. #define TOKEN_DSOBJECT                 28
  34. typedef struct _component {
  35.     LPWSTR szComponent;
  36.     LPWSTR szValue;
  37. }COMPONENT, *PCOMPONENT;
  38. typedef struct _objectinfo {
  39.     LPWSTR  ProviderName;
  40.     LPWSTR  RootRDN;
  41.     DWORD   ObjectType;
  42.     DWORD   NumComponents;
  43.     COMPONENT  ComponentArray[MAXCOMPONENTS];
  44. } OBJECTINFO, *POBJECTINFO;
  45. HRESULT
  46. RelativeGetObject(
  47.     BSTR ADsPath,
  48.     BSTR ClassName,
  49.     BSTR RelativeName,
  50.     IDispatch* FAR* ppObject,
  51.     BOOL bNamespaceRelative
  52.     );
  53. HRESULT
  54. GetObject(
  55.     LPWSTR szBuffer,
  56.     LPVOID * ppObject
  57.     );
  58. HRESULT
  59. GetNamespaceObject(
  60.     POBJECTINFO pObjectInfo,
  61.     LPVOID * ppObject
  62.     );
  63. HRESULT
  64. ValidateNamespaceObject(
  65.     POBJECTINFO pObjectInfo
  66.     );
  67. HRESULT
  68. GetSchemaObject(
  69.     POBJECTINFO pObjectInfo,
  70.     LPVOID * ppObject
  71.     );
  72. HRESULT
  73. ValidateSchemaObject(
  74.     POBJECTINFO pObjectInfo,
  75.     PDWORD pdwObjectType
  76.     );
  77. HRESULT
  78. ValidateProvider(
  79.     POBJECTINFO pObjectInfo
  80.     );
  81. HRESULT
  82. AddComponent(
  83.     POBJECTINFO pObjectInfo,
  84.     LPWSTR szComponent,
  85.     LPWSTR szValue
  86.     );
  87. HRESULT
  88. AddProviderName(
  89.     POBJECTINFO pObjectInfo,
  90.     LPWSTR szToken
  91.     );
  92. HRESULT
  93. BuildADsParentPath(
  94.     LPWSTR szBuffer,
  95.     LPWSTR szParent,
  96.     LPWSTR szCommonName
  97.     );
  98. HRESULT
  99. BuildDSPathFromADsPath(
  100.     LPWSTR szADsPathName,
  101.     LPWSTR szSampleDSPathName
  102.     );
  103. HRESULT
  104. BuildADsParentPath(
  105.     POBJECTINFO pObjectInfo,
  106.     LPWSTR szParent,
  107.     LPWSTR szCommonName
  108.     );
  109. HRESULT
  110. BuildDSTreeNameFromADsPath(
  111.     LPWSTR szBuffer,
  112.     LPWSTR szSampleDSTreeName
  113.     );
  114. HRESULT
  115. ValidateObjectType(
  116.     POBJECTINFO pObjectInfo
  117.     );
  118. HRESULT
  119. BuildSampleDSRootRDNFromADsPath(
  120.     LPWSTR szBuffer,
  121.     LPWSTR szDSTreeName
  122.     );
  123. HRESULT
  124. AppendComponent(
  125.    LPWSTR szDSPathName,
  126.    PCOMPONENT pComponent
  127.    );
  128. HRESULT
  129. BuildDSPathFromADsPath(
  130.     LPWSTR szADsPathName,
  131.     LPWSTR szDSRootName,
  132.     LPWSTR szDSPathName
  133.     );
  134. HRESULT
  135. InstantiateDerivedObject(
  136.     IADs FAR * pADs,
  137.     REFIID riid,
  138.     void  ** ppObject
  139.     );
  140. #endif