GETOBJ.H
/*++ 
 
Copyright (c) 1996 Microsoft Corporation 
 
Module Name: 
 
    GetObj.h 
 
Abstract: 
 
Author: 
 
Environment: 
 
    User mode 
 
Revision History : 
 
--*/ 
#ifndef _GETOBJ_H_ 
#define _GETOBJ_H_ 
 
#define MAXCOMPONENTS               20 
 
#define TOKEN_IDENTIFIER                1 
#define TOKEN_COMMA                     2 
#define TOKEN_BSLASH                    3 
#define TOKEN_END                       4 
#define TOKEN_OU                        5 
#define TOKEN_USER                      6 
#define TOKEN_GROUP                     7 
 
#define TOKEN_ATSIGN                   11 
#define TOKEN_EXCLAMATION              12 
#define TOKEN_COLON                    13 
#define TOKEN_FSLASH                   14 
#define TOKEN_PROVIDER                 15 
 
#define TOKEN_SCHEMA                   17 
#define TOKEN_CLASS                    18 
#define TOKEN_PROPERTY                 21 
#define TOKEN_SYNTAX                   22 
 
#define TOKEN_PERIOD                   24 
#define TOKEN_EQUAL                    25 
#define TOKEN_NAMESPACE                26 
#define TOKEN_DSOBJECT                 28 
 
 
typedef struct _component { 
    LPWSTR szComponent; 
    LPWSTR szValue; 
}COMPONENT, *PCOMPONENT; 
 
typedef struct _objectinfo { 
    LPWSTR  ProviderName; 
    LPWSTR  RootRDN; 
    DWORD   ObjectType; 
    DWORD   NumComponents; 
    COMPONENT  ComponentArray[MAXCOMPONENTS]; 
} OBJECTINFO, *POBJECTINFO; 
 
HRESULT 
RelativeGetObject( 
    BSTR ADsPath, 
    BSTR ClassName, 
    BSTR RelativeName, 
    IDispatch* FAR* ppObject, 
    BOOL bNamespaceRelative 
    ); 
 
HRESULT 
GetObject( 
    LPWSTR szBuffer, 
    LPVOID * ppObject 
    ); 
 
HRESULT 
GetNamespaceObject( 
    POBJECTINFO pObjectInfo, 
    LPVOID * ppObject 
    ); 
 
HRESULT 
ValidateNamespaceObject( 
    POBJECTINFO pObjectInfo 
    ); 
 
HRESULT 
GetSchemaObject( 
    POBJECTINFO pObjectInfo, 
    LPVOID * ppObject 
    ); 
 
HRESULT 
ValidateSchemaObject( 
    POBJECTINFO pObjectInfo, 
    PDWORD pdwObjectType 
    ); 
 
HRESULT 
ValidateProvider( 
    POBJECTINFO pObjectInfo 
    ); 
 
HRESULT 
AddComponent( 
    POBJECTINFO pObjectInfo, 
    LPWSTR szComponent, 
    LPWSTR szValue 
    ); 
 
HRESULT 
AddProviderName( 
    POBJECTINFO pObjectInfo, 
    LPWSTR szToken 
    ); 
 
 
HRESULT 
BuildADsParentPath( 
    LPWSTR szBuffer, 
    LPWSTR szParent, 
    LPWSTR szCommonName 
    ); 
 
HRESULT 
BuildDSPathFromADsPath( 
    LPWSTR szADsPathName, 
    LPWSTR szSampleDSPathName 
    ); 
 
HRESULT 
BuildADsParentPath( 
    POBJECTINFO pObjectInfo, 
    LPWSTR szParent, 
    LPWSTR szCommonName 
    ); 
 
 
HRESULT 
BuildDSTreeNameFromADsPath( 
    LPWSTR szBuffer, 
    LPWSTR szSampleDSTreeName 
    ); 
 
HRESULT 
ValidateObjectType( 
    POBJECTINFO pObjectInfo 
    ); 
 
 
HRESULT 
BuildSampleDSRootRDNFromADsPath( 
    LPWSTR szBuffer, 
    LPWSTR szDSTreeName 
    ); 
 
 
HRESULT 
AppendComponent( 
   LPWSTR szDSPathName, 
   PCOMPONENT pComponent 
   ); 
 
HRESULT 
BuildDSPathFromADsPath( 
    LPWSTR szADsPathName, 
    LPWSTR szDSRootName, 
    LPWSTR szDSPathName 
    ); 
 
HRESULT 
InstantiateDerivedObject( 
    IADs FAR * pADs, 
    REFIID riid, 
    void  ** ppObject 
    ); 
#endif