mirror of https://github.com/tongzx/nt5src
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.
254 lines
5.4 KiB
254 lines
5.4 KiB
#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
|