WindowsXP-SP1/admin/dsutils/displayspecifierupgrade/analisys.hpp
2020-09-30 16:53:49 +02:00

254 lines
5.6 KiB
C++

#ifndef ANALISYS_HPP
#define ANALISYS_HPP
#include "AnalisysResults.hpp"
#include "dspecup.hpp"
class CSVDSReader;
struct sChangeList;
class Analisys
{
public:
Analisys(
const CSVDSReader& csvReader409_,
const CSVDSReader& csvReaderIntl_,
const String& ldapPrefix_,
const String& rootContainerDn_,
AnalisysResults &res,
const String &reportName_=L"",
void *caleeStruct_=NULL,
progressFunction stepIt_=NULL,
progressFunction totalSteps_=NULL
);
HRESULT run();
private:
const CSVDSReader& csvReader409;
const CSVDSReader& csvReaderIntl;
String ldapPrefix;
String rootContainerDn;
AnalisysResults& results;
String reportName;
void *caleeStruct;
progressFunction stepIt;
progressFunction totalSteps;
// add entry to result.createContainers if container is not present
// also returns flag isPresent
HRESULT
dealWithContainer(
const long locale,
bool &isPresent);
// add entries to results.conflictingXPObjects or
// results.createXPObject as necessary
HRESULT
dealWithXPObjects(const long locale);
// add entries to results.createW2KObjects and
// and results.objectActions as necessary
HRESULT
dealWithW2KObjects(const long locale);
// adds ordAndGuid to the property if Guid is not already there.
HRESULT
addGuid
(
IDirectoryObject *iDirObj,
const int locale,
const wchar_t *object,
const wchar_t *property,
const wchar_t *ordAndGuid
);
// adds all csv values still not on the property
HRESULT
addAllCsvValues
(
IDirectoryObject *iDirObj,
const long locale,
const wchar_t *object,
const wchar_t *property
);
// adds value to the property if it is not already there.
HRESULT
addValue
(
IDirectoryObject *iDirObj,
const int locale,
const wchar_t *object,
const wchar_t *property,
const wchar_t *value
);
HRESULT
getCsvSingleValue
(
const int locale,
const wchar_t *object,
const wchar_t *property,
String &csvValue
);
HRESULT
replaceW2KSingleValue
(
IDirectoryObject *iDirObj,
const int locale,
const wchar_t *object,
const wchar_t *property,
const wchar_t *value
);
HRESULT
getCsvMultipleValue
(
const int locale,
const wchar_t *object,
const wchar_t *property,
const wchar_t *value,
String &csvValue,
String &XPstart
);
HRESULT
replaceW2KMultipleValue(
IDirectoryObject *iDirObj,
const int locale,
const wchar_t *object,
const wchar_t *property,
const wchar_t *value);
// removes ordAndGuid from the property if Guid is there.
HRESULT
removeGuid(
IDirectoryObject *iDirObj,
const int locale,
const wchar_t *object,
const wchar_t *property,
const wchar_t *ordAndGuid);
// set previousSuccessfulRun reading from ADSI
HRESULT
setPreviousSuccessfullRun();
HRESULT
checkChanges
(
const long locale,
const sChangeList& changes,
IDirectoryObject *iDirObj
);
HRESULT
getADFirstValue
(
IDirectoryObject *iDirObj,
const String &property,
String &value
);
HRESULT
isADStartValuePresent
(
IDirectoryObject *iDirObj,
const String &property,
const String &valueStart,
String &value
);
HRESULT
isADValuePresent
(
IDirectoryObject *iDirObj,
const String &property,
const String &value
);
HRESULT
getADGuid
(
IDirectoryObject *iDirObj,
const String &property,
const String &guidValue,
String &guidFound
);
HRESULT
removeExtraneous
(
IDirectoryObject *iDirObj,
const int locale,
const String &object,
const String &property,
const String &keeper
);
HRESULT
removeExtraneous
(
IDirectoryObject *iDirObj,
const int locale,
const String &object,
const String &property,
const String &keeper,
const String &start1,
const String &start2
);
HRESULT
reportObjects
(
HANDLE file,
const ObjectIdList &list,
const String &header
);
HRESULT
reportContainers
(
HANDLE file,
const LongList &list,
const String &header
);
HRESULT
reportActions
(
HANDLE file,
const ObjectActions &list,
const String &header
);
HRESULT
reportValues
(
HANDLE file,
const SingleValueList &list,
const String &header
);
HRESULT
createReport(const String& reportName);
};
#endif