//--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1996 - 1997 // // File: getobj.hxx // // Contents: ADSI GetObject functionality // // History: 25-Feb-97 SophiaC Created. // //---------------------------------------------------------------------------- #define MAXCOMPONENTS 32 #define MAX_PROVIDER_TOKEN_LENGTH 10 #define TOKEN_IDENTIFIER 1 #define TOKEN_COMMA 2 #define TOKEN_BSLASH 3 #define TOKEN_END 4 #define TOKEN_DOMAIN 5 #define TOKEN_USER 6 #define TOKEN_GROUP 7 #define TOKEN_PRINTER 8 #define TOKEN_COMPUTER 9 #define TOKEN_SERVICE 10 #define TOKEN_ATSIGN 11 #define TOKEN_EXCLAMATION 12 #define TOKEN_COLON 13 #define TOKEN_FSLASH 14 #define TOKEN_PROVIDER 15 #define TOKEN_FILESERVICE 16 #define TOKEN_SCHEMA 17 #define TOKEN_CLASS 18 #define TOKEN_FUNCTIONALSET 19 #define TOKEN_FUNCTIONALSETALIAS 20 #define TOKEN_PROPERTY 21 #define TOKEN_SYNTAX 22 #define TOKEN_FILESHARE 23 #define TOKEN_PERIOD 24 #define TOKEN_EQUAL 25 #define TOKEN_NAMESPACE 26 #define TOKEN_TREE 27 #define TOKEN_IISOBJECT 28 typedef struct _component { LPWSTR szComponent; LPWSTR szValue; }COMPONENT, *PCOMPONENT; typedef struct _objectinfo { LPWSTR ProviderName; LPWSTR TreeName; WCHAR ClassName[MAX_PATH+1]; DWORD ObjectType; DWORD NumComponents; DWORD MaxComponents; PCOMPONENT ComponentArray; } OBJECTINFO, *POBJECTINFO; HRESULT RelativeGetObject( BSTR ADsPath, BSTR ClassName, BSTR RelativeName, CCredentials& Credentials, IDispatch * FAR* ppObject, BOOL bNamespaceRelative ); HRESULT GetObject( LPWSTR szBuffer, CCredentials& Credentials, LPVOID * ppObject ); HRESULT AddComponent( POBJECTINFO pObjectInfo, LPWSTR szComponent, LPWSTR szValue ); HRESULT AddProviderName( POBJECTINFO pObjectInfo, LPWSTR szToken ); HRESULT BuildIISPathFromADsPath( LPWSTR szADsPathName, LPWSTR* pszIISPathName ); HRESULT BuildIISPathFromADsPath( POBJECTINFO pObjectInfo, LPWSTR pszIISPathName ); HRESULT BuildADsParentPath( LPWSTR szBuffer, LPWSTR szParent, LPWSTR szCommonName ); HRESULT BuildADsParentPath( POBJECTINFO pObjectInfo, LPWSTR szParent, LPWSTR szCommonName ); VOID FreeObjectInfo( POBJECTINFO pObjectInfo ); HRESULT GetNamespaceObject( POBJECTINFO pObjectInfo, CCredentials& Credentials, LPVOID * ppObject ); HRESULT GetSchemaObject( POBJECTINFO pObjectInfo, IIsSchema * pSchemaCache, LPVOID * ppObject ); HRESULT GetIntSchemaObject( POBJECTINFO pObjInfo, LPVOID * ppObject ); HRESULT GetClassObject( POBJECTINFO pObjInfo, IIsSchema * pSchemaCache, LPVOID * ppObject ); HRESULT GetSyntaxObject( POBJECTINFO pObjInfo, LPVOID * ppObject ); HRESULT GetPropertyObject( POBJECTINFO pObjInfo, IIsSchema * pSchemaCache, LPVOID * ppObject ); HRESULT ValidateObjectType( POBJECTINFO pObjectInfo ); HRESULT ValidateProvider( POBJECTINFO pObjectInfo ); HRESULT ValidateNamespaceObject( POBJECTINFO pObjectInfo ); HRESULT ValidateSchemaObject( POBJECTINFO pObjectInfo, PDWORD pdwObjectType );