Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

205 lines
7.2 KiB

/////////////////////////////////////////////////////////////////////////////
//
// Copyright(C) 1997-1998 Microsoft Corporation all rights reserved.
//
// Module: sdohelperfuncs.h
//
// Project: Everest
//
// Description: Helper Functions
//
// Log:
//
// When Who What
// ---- --- ----
// 6/08/98 TLP Initial Version
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __INC_IAS_SDO_HELPER_FUNCS_H
#define __INC_IAS_SDO_HELPER_FUNCS_H
#include <ias.h>
#include <iaslimits.h>
#include <sdoiaspriv.h>
#include <winsock2.h>
//////////////////////////////////////////////////////////////////////////////
// SDO HELPER FUNCTIONS
//
// TODO: Wrap these in a seperate name space
//
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// SDO Collection Helpers
/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
HRESULT SDOGetCollectionEnumerator(
/*[in]*/ ISdo* pSdo,
/*[in]*/ LONG lPropertyId,
/*[out]*/ IEnumVARIANT** ppEnum
);
///////////////////////////////////////////////////////////////////
HRESULT SDONextObjectFromCollection(
/*[in]*/ IEnumVARIANT* pEnum,
/*[out]*/ ISdo** ppSdo
);
///////////////////////////////////////////////////////////////////
HRESULT SDOGetComponentFromCollection(
/*[in]*/ ISdo* pSdoService,
/*[in]*/ LONG lCollectionPropertyId,
/*[in]*/ LONG lComponentId,
/*[out]*/ ISdo** ppSdo
);
/////////////////////////////////////////////////////////////////////////////
// Core Helpers
/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
HRESULT SDOConfigureComponentFromObject(
/*[in]*/ ISdo* pSdo,
/*[in]*/ IIasComponent* pComponent
);
///////////////////////////////////////////////////////////////////
HRESULT SDOGetComponentIdFromObject(
/*[in]*/ ISdo* pSdo,
/*[out]*/ PLONG pComponentId
);
///////////////////////////////////////////////////////////////////
HRESULT SDOCreateComponentFromObject(
/*[in]*/ ISdo* pSdo,
/*[out]*/ IIasComponent** ppComponent
);
/////////////////////////////////////////////////////////////////////////////
// Data Store Helpers
/////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
HRESULT SDOGetContainedObject(
/*[in]*/ BSTR bstrObjectName,
/*[in]*/ IDataStoreObject* pDSObject,
/*[out]*/ IDataStoreObject** ppDSObject
);
//////////////////////////////////////////////////////////////////////////////
HRESULT SDOGetContainerEnumerator(
/*[in]*/ IDataStoreObject* pDSObject,
/*[out]*/ IEnumVARIANT** ppObjectEnumerator
);
//////////////////////////////////////////////////////////////////////////////
HRESULT SDONextObjectFromContainer(
/*[in]*/ IEnumVARIANT* pEnumVariant,
/*[out]*/ IDataStoreObject** ppDSObject
);
//////////////////////////////////////////////////////////////////////////////
HRESULT SDOGetObjectPropertyEnumerator(
/*[in]*/ IDataStoreObject* pDSObject,
/*[out]*/ IEnumVARIANT** ppPropertyEnumerator
);
//////////////////////////////////////////////////////////////////////////////
HRESULT SDONextPropertyFromObject(
/*[in]*/ IEnumVARIANT* pEnumVariant,
/*[out]*/ IDataStoreProperty** ppDSProperty
);
/////////////////////////////////////////////////////////////////////////////
// Schema Helpers
/////////////////////////////////////////////////////////////////////////////
typedef enum _CLASSPROPERTYSET
{
PROPERTY_SET_REQUIRED,
PROPERTY_SET_OPTIONAL
} CLASSPROPERTYSET;
//////////////////////////////////////////////////////////////////////////////
HRESULT SDOGetClassPropertyEnumerator(
/*[in]*/ CLASSPROPERTYSET ePropertySet,
/*[in]*/ ISdoClassInfo* pSdoClassInfo,
/*[out]*/ IEnumVARIANT** ppPropertyEnumerator
);
//////////////////////////////////////////////////////////////////////////////
HRESULT SDONextPropertyFromClass(
/*[in]*/ IEnumVARIANT* pEnumVariant,
/*[out]*/ ISdoPropertyInfo** ppSdoPropertyInfo
);
/////////////////////////////////////////////////////////////////////////////
// Misc Helpers
/////////////////////////////////////////////////////////////////////////////
HRESULT SDOGetLogFileDirectory(
/*[in]*/ LPCWSTR lpszComputerName,
/*[in]*/ DWORD dwLogFileDirectorySize,
/*[out*/ PWCHAR pLogFileDirectory
);
//////////////////////////////////////////////////////////////////////////////
BOOL SDOIsNameUnique(
/*[in]*/ ISdoCollection* pSdoCollection,
/*[in]*/ VARIANT* pName
);
/////////////////////////////////////////////////////////////////////////////
HRESULT ValidateDNSName(
/*[in]*/ VARIANT* pAddressValue
);
///////////////////////////////////////////////////////////////////////////////
// Data Store Class to SDO Prog ID Map
///////////////////////////////////////////////////////////////////////////////
typedef struct _CLASSTOPROGID
{
LPWSTR pDatastoreClass;
LPWSTR pSdoProgId;
} CLASSTOPROGID, *PCLASSTOPROGID;
#define BEGIN_CLASSTOPROGID_MAP(x) \
static CLASSTOPROGID x[] = {
#define DEFINE_CLASSTOPROGID_ENTRY(x,y) \
{ \
x, \
y \
},
#define END_CLASSTOPROGID_MAP() \
{ \
NULL, \
NULL \
} \
};
///////////////////////////////////////////////////////////////////////////////
LPWSTR GetDataStoreClass(
/*[in]*/ LPCWSTR lpszSdoProgId
);
HRESULT SDOGetProductLimits(
IUnknown* source,
IAS_PRODUCT_LIMITS* result
) throw ();
#endif // __INC_IAS_SDO_HELPER_FUNCS_H