windows-nt/Source/XPSP1/NT/inetsrv/iis/admin/adsi/adsiis/getobj.hxx
2020-09-26 16:20:57 +08:00

184 lines
3.8 KiB
C++

//---------------------------------------------------------------------------
//
// 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
);