|
|
//---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1997
//
// File: common.hxx
//
// Contents: Microsoft ADs IIS Common routines
//
// History: 28-Feb-97 SophiaC Created.
//
//----------------------------------------------------------------------------
#define MAX_DWORD 0xFFFFFFFF
#define SCHEMA_NAME L"Schema"
HRESULT LoadTypeInfoEntry( CAggregatorDispMgr * pDispMgr, REFIID libid, REFIID iid, void * pIntf, DISPID SpecialId );
HRESULT ValidateOutParameter( BSTR * retval );
HRESULT BuildADsPath( BSTR Parent, BSTR Name, BSTR *pADsPath );
HRESULT BuildSchemaPath( BSTR bstrADsPath, BSTR bstrClass, BSTR *pSchemaPath );
HRESULT BuildADsGuid( REFCLSID clsid, BSTR *pADsClass );
//
// Accessing Well-known object types
//
typedef struct _filters { WCHAR szObjectName[MAX_PATH]; DWORD dwFilterId; } FILTERS, *PFILTERS;
extern PFILTERS gpFilters; extern DWORD gdwMaxFilters;
HRESULT BuildIISPathFromIISParentPath( LPWSTR szIISParentPathName, LPWSTR szIISObjectCommonName, LPWSTR szIISPathName );
typedef struct _KEYDATA { DWORD cTokens; LPWSTR pTokens[1]; } KEYDATA, *PKEYDATA;
//
// Get IIS Admin Base Object
//
HRESULT OpenAdminBaseKey( IN CCredentials& Credentials, IN LPWSTR pszServerName, IN LPWSTR pszPathName, IN DWORD dwAccessType, IN OUT IMSAdminBase **ppAdminBase, OUT METADATA_HANDLE *phHandle );
VOID CloseAdminBaseKey( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hHandle );
HRESULT MetaBaseGetAllData( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hObjHandle, IN LPWSTR pszIISPathName, IN DWORD dwMDAttributes, IN DWORD dwMDUserType, IN DWORD dwMDDataType, OUT PDWORD pdwMDNumDataEntries, OUT PDWORD pdwMDDataSetNumber, OUT LPBYTE *ppBuffer );
HRESULT MetaBaseGetDataPaths( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hObjHandle, IN DWORD dwMDMetaID, OUT LPBYTE *ppBuffer );
HRESULT MetaBaseSetAllData( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hObjHandle, IN LPWSTR pszIISPathName, IN PMETADATA_RECORD pMetaDataArray, IN DWORD dwNumEntries );
HRESULT MetaBaseDeleteObject( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hObjHandle, IN LPWSTR pszIISPathName );
HRESULT MetaBaseCreateObject( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hObjHandle, IN LPWSTR pszIISPathName );
HRESULT MetaBaseCopyObject( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hSrcObjHandle, IN LPWSTR pszIISSrcPathName, IN METADATA_HANDLE hDestObjHandle, IN LPWSTR pszIISDestPathName );
HRESULT MetaBaseMoveObject( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hSrcObjHandle, IN LPWSTR pszIISSrcPathName, IN METADATA_HANDLE hDestObjHandle, IN LPWSTR pszIISDestPathName );
HRESULT MetaBaseGetAdminACL( IN IMSAdminBase *pAdminBase, IN METADATA_HANDLE hObjHandle, IN LPWSTR pszIISPathName, OUT LPBYTE *ppBuffer );
HRESULT MetaBaseDetectKey( IN IMSAdminBase *pAdminBase, IN LPCWSTR pszIISPathName );
HRESULT MetaBaseGetADsClass( IN IMSAdminBase *pAdminBase, IN LPWSTR pszIISPathName, IN IIsSchema *pSchema, OUT LPWSTR pszDataBuffer, IN DWORD dwBufferLen );
HRESULT FreeMetaDataRecordArray( PMETADATA_RECORD pMetaDataArray, DWORD dwNumEntries );
HRESULT InitAdminBase( IN CCredentials& Credentials, IN LPWSTR pszServerName, OUT IMSAdminBase **ppAdminBase );
VOID UninitAdminBase( IN IMSAdminBase *pAdminBase );
HRESULT InitServerInfo( IN CCredentials& Credentials, IN LPWSTR pszServerName, OUT IMSAdminBase **ppObject, OUT IIsSchema **ppSchema );
HRESULT MakeVariantFromStringArray( LPWSTR pszStr, LPWSTR pszList, VARIANT *pvVariant );
HRESULT MakeVariantFromPathArray( LPWSTR pszStr, LPWSTR pszList, VARIANT *pvVariant );
HRESULT InitWamAdmin( IN LPWSTR pszServerName, OUT IWamAdmin2 **ppWamAdmin );
VOID UninitWamAdmin( IN IWamAdmin2 *pWamAdmin );
HRESULT ConvertArrayToVariantArray( VARIANT varSafeArray, PVARIANT * ppVarArray, PDWORD pdwNumVariants );
HRESULT ConvertDispatchToVariantArray( VARIANT varDispatch, PVARIANT * ppVarArray, PDWORD pdwNumVariants );
HRESULT MakeStringFromVariantArray( VARIANT *pvVariant, LPBYTE *ppBuffer );
HRESULT MakeMultiStringFromVariantArray( VARIANT *pvVariant, LPBYTE *ppBuffer );
typedef VARIANT_BOOL * PVARIANT_BOOL;
typedef VARIANT * PVARIANT;
HRESULT put_BSTR_Property( IADs * pADsObject, BSTR bstrPropertyName, BSTR pSrcStringProperty );
HRESULT get_BSTR_Property( IADs * pADsObject, BSTR bstrPropertyName, BSTR *ppDestStringProperty );
HRESULT put_LONG_Property( IADs * pADsObject, BSTR bstrPropertyName, LONG lSrcProperty );
HRESULT get_LONG_Property( IADs * pADsObject, BSTR bstrPropertyName, PLONG plDestProperty );
HRESULT put_VARIANT_BOOL_Property( IADs * pADsObject, BSTR bstrPropertyName, VARIANT_BOOL fSrcProperty );
HRESULT get_VARIANT_BOOL_Property( IADs * pADsObject, BSTR bstrPropertyName, PVARIANT_BOOL pfDestProperty );
HRESULT put_VARIANT_Property( IADs * pADsObject, BSTR bstrPropertyName, VARIANT vSrcProperty );
HRESULT get_VARIANT_Property( IADs * pADsObject, BSTR bstrPropertyName, PVARIANT pvDestProperty );
HRESULT MetaBaseGetStringData( IN IMSAdminBase * pAdminBase, IN METADATA_HANDLE hObjHandle, IN LPWSTR pszIISPathName, IN DWORD dwMetaId, OUT LPBYTE *ppBuffer );
HRESULT MetaBaseGetDwordData( IN IMSAdminBase * pAdminBase, IN METADATA_HANDLE hObjHandle, IN LPWSTR pszIISPathName, IN DWORD dwMetaId, OUT PDWORD pdwData );
HRESULT CheckVariantDataType( PVARIANT pVar, VARTYPE vt );
|