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