import "oaidl.idl"; import "ocidl.idl"; // Constants typedef enum RenameOption { admtDoNotRename, admtRenameWithPrefix, admtRenameWithSuffix, } RenameOption; typedef enum PasswordOption { admtPasswordFromName, admtComplexPassword, admtCopyPassword, } PasswordOption; typedef enum ConflictOptions { admtIgnoreConflicting = 0x00, admtReplaceConflicting = 0x01, admtRenameConflictingWithPrefix = 0x02, admtRenameConflictingWithSuffix = 0x03, admtRemoveExistingUserRights = 0x10, admtRemoveExistingMembers = 0x20, admtMoveReplacedAccounts = 0x40, } ConflictOptions; typedef enum DisableOption { admtEnableTarget = 0x00, admtDisableSource = 0x01, admtDisableTarget = 0x02, admtTargetSameAsSource = 0x04, } DisableOption; typedef enum SourceExpiration { admtNoExpiration = -1 } SourceExpiration; typedef enum TranslateOption { admtTranslateReplace, admtTranslateAdd, admtTranslateRemove, } TranslateOption; typedef enum ReportType { admtReportMigratedAccounts, admtReportMigratedComputers, admtReportExpiredComputers, admtReportAccountReferences, admtReportNameConflicts, } ReportType; typedef enum DataOptions { admtNone, admtData, admtFile, admtDomain, admtRecurse = 0x0100, admtFlattenHierarchy = 0x0000, admtMaintainHierarchy = 0x0200, } DataOptions; // forward references interface IUserMigration; interface IGroupMigration; interface IComputerMigration; interface ISecurityTranslation; interface IServiceAccountEnumeration; interface IReportGeneration; // IMigration [ object, uuid(FFA0E908-9849-4CFC-803E-F6A8ACF704A6), dual, helpstring("IMigration Interface"), pointer_default(unique) ] interface IMigration : IDispatch { [id( 1), propput] HRESULT TestMigration([in] VARIANT_BOOL bTest); [id( 1), propget] HRESULT TestMigration([out, retval] VARIANT_BOOL* pbTest); [id( 2), propput] HRESULT IntraForest([in] VARIANT_BOOL bIntraForest); [id( 2), propget] HRESULT IntraForest([out, retval] VARIANT_BOOL* pbIntraForest); [id( 3), propput] HRESULT SourceDomain([in] BSTR bstrDomain); [id( 3), propget] HRESULT SourceDomain([out, retval] BSTR* pbstrDomain); [id( 4), propput] HRESULT SourceOu([in] BSTR bstrOu); [id( 4), propget] HRESULT SourceOu([out, retval] BSTR* pbstrOu); [id( 5), propput] HRESULT TargetDomain([in] BSTR bstrDomain); [id( 5), propget] HRESULT TargetDomain([out, retval] BSTR* pbstrDomain); [id( 6), propput] HRESULT TargetOu([in] BSTR bstrOu); [id( 6), propget] HRESULT TargetOu([out, retval] BSTR* pbstrOu); [id( 7), propput] HRESULT RenameOption([in] long lOption); [id( 7), propget] HRESULT RenameOption([out, retval] long* plOption); [id( 8), propput] HRESULT RenamePrefixOrSuffix([in] BSTR bstrPrefixOrSuffix); [id( 8), propget] HRESULT RenamePrefixOrSuffix([out, retval] BSTR* pbstrPrefixOrSuffix); [id( 9), propput] HRESULT PasswordOption([in] long lOption); [id( 9), propget] HRESULT PasswordOption([out, retval] long* plOption); [id(10), propput] HRESULT PasswordServer([in] BSTR bstrServer); [id(10), propget] HRESULT PasswordServer([out, retval] BSTR* pbstrServer); [id(11), propput] HRESULT PasswordFile([in] BSTR bstrPath); [id(11), propget] HRESULT PasswordFile([out, retval] BSTR* pbstrPath); [id(12), propput] HRESULT ConflictOptions([in] long lOptions); [id(12), propget] HRESULT ConflictOptions([out, retval] long* plOptions); [id(13), propput] HRESULT ConflictPrefixOrSuffix([in] BSTR bstrPrefixOrSuffix); [id(13), propget] HRESULT ConflictPrefixOrSuffix([out, retval] BSTR* pbstrPrefixOrSuffix); [id(14), propput] HRESULT UserPropertiesToExclude([in] BSTR bstrProperties); [id(14), propget] HRESULT UserPropertiesToExclude([out, retval] BSTR* pbstrProperties); [id(15), propput] HRESULT GroupPropertiesToExclude([in] BSTR bstrProperties); [id(15), propget] HRESULT GroupPropertiesToExclude([out, retval] BSTR* pbstrProperties); [id(16), propput] HRESULT ComputerPropertiesToExclude([in] BSTR bstrProperties); [id(16), propget] HRESULT ComputerPropertiesToExclude([out, retval] BSTR* pbstrProperties); [id(17)] HRESULT CreateUserMigration([out, retval] IUserMigration** pitfUserMigration); [id(18)] HRESULT CreateGroupMigration([out, retval] IGroupMigration** pitfGroupMigration); [id(19)] HRESULT CreateComputerMigration([out, retval] IComputerMigration** pitfComputerMigration); [id(20)] HRESULT CreateSecurityTranslation([out, retval] ISecurityTranslation** pitfSecurityTranslation); [id(21)] HRESULT CreateServiceAccountEnumeration([out, retval] IServiceAccountEnumeration** pitfServiceAccountEnumeration); [id(22)] HRESULT CreateReportGeneration([out, retval] IReportGeneration** pitfReportGeneration); }; // IUserMigration [ object, uuid(ED07BCE9-5968-4BE8-BE85-E976C93AD2CC), dual, helpstring("IUserMigration Interface"), pointer_default(unique) ] interface IUserMigration : IDispatch { [id(1), propput] HRESULT DisableOption([in] long lOption); [id(1), propget] HRESULT DisableOption([out, retval] long* plOption); [id(2), propput] HRESULT SourceExpiration([in] long lExpiration); [id(2), propget] HRESULT SourceExpiration([out, retval] long* plExpiration); [id(3), propput] HRESULT MigrateSIDs([in] VARIANT_BOOL bMigrate); [id(3), propget] HRESULT MigrateSIDs([out, retval] VARIANT_BOOL* pbMigrate); [id(4), propput] HRESULT TranslateRoamingProfile([in] VARIANT_BOOL bTranslate); [id(4), propget] HRESULT TranslateRoamingProfile([out, retval] VARIANT_BOOL* pbTranslate); [id(5), propput] HRESULT UpdateUserRights([in] VARIANT_BOOL bUpdate); [id(5), propget] HRESULT UpdateUserRights([out, retval] VARIANT_BOOL* pbUpdate); [id(6), propput] HRESULT MigrateGroups([in] VARIANT_BOOL bMigrate); [id(6), propget] HRESULT MigrateGroups([out, retval] VARIANT_BOOL* pbMigrate); [id(7), propput] HRESULT UpdatePreviouslyMigratedObjects([in] VARIANT_BOOL bUpdate); [id(7), propget] HRESULT UpdatePreviouslyMigratedObjects([out, retval] VARIANT_BOOL* pbUpdate); [id(8), propput] HRESULT FixGroupMembership([in] VARIANT_BOOL bFix); [id(8), propget] HRESULT FixGroupMembership([out, retval] VARIANT_BOOL* pbFix); [id(9)] HRESULT Migrate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude); [id(10), propput] HRESULT MigrateServiceAccounts([in] VARIANT_BOOL bMigrate); [id(10), propget] HRESULT MigrateServiceAccounts([out, retval] VARIANT_BOOL* pbMigrate); }; // IGroupMigration [ object, uuid(A29D4925-B16A-4E89-9328-BF50999C8EDD), dual, helpstring("IGroupMigration Interface"), pointer_default(unique) ] interface IGroupMigration : IDispatch { [id(1), propput] HRESULT MigrateSIDs([in] VARIANT_BOOL bMigrate); [id(1), propget] HRESULT MigrateSIDs([out, retval] VARIANT_BOOL* pbMigrate); [id(2), propput] HRESULT UpdateGroupRights([in] VARIANT_BOOL bUpdate); [id(2), propget] HRESULT UpdateGroupRights([out, retval] VARIANT_BOOL* pbUpdate); [id(3), propput] HRESULT UpdatePreviouslyMigratedObjects([in] VARIANT_BOOL bUpdate); [id(3), propget] HRESULT UpdatePreviouslyMigratedObjects([out, retval] VARIANT_BOOL* pbUpdate); [id(4), propput] HRESULT FixGroupMembership([in] VARIANT_BOOL bFix); [id(4), propget] HRESULT FixGroupMembership([out, retval] VARIANT_BOOL* pbFix); [id(5), propput] HRESULT MigrateMembers([in] VARIANT_BOOL bMigrate); [id(5), propget] HRESULT MigrateMembers([out, retval] VARIANT_BOOL* pbMigrate); [id(6), propput] HRESULT DisableOption([in] long lOption); [id(6), propget] HRESULT DisableOption([out, retval] long* plOption); [id(7), propput] HRESULT SourceExpiration([in] long lExpiration); [id(7), propget] HRESULT SourceExpiration([out, retval] long* plExpiration); [id(8), propput] HRESULT TranslateRoamingProfile([in] VARIANT_BOOL bTranslate); [id(8), propget] HRESULT TranslateRoamingProfile([out, retval] VARIANT_BOOL* pbTranslate); [id(9)] HRESULT Migrate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude); }; // IComputerMigration [ object, uuid(FE808F47-442A-48E0-B9BB-471843C01018), dual, helpstring("IComputerMigration Interface"), pointer_default(unique) ] interface IComputerMigration : IDispatch { [id( 1), propput] HRESULT TranslationOption([in] long lOption); [id( 1), propget] HRESULT TranslationOption([out, retval] long* plOption); [id( 2), propput] HRESULT TranslateFilesAndFolders([in] VARIANT_BOOL bTranslate); [id( 2), propget] HRESULT TranslateFilesAndFolders([out, retval] VARIANT_BOOL* pbTranslate); [id( 3), propput] HRESULT TranslateLocalGroups([in] VARIANT_BOOL bTranslate); [id( 3), propget] HRESULT TranslateLocalGroups([out, retval] VARIANT_BOOL* pbTranslate); [id( 4), propput] HRESULT TranslatePrinters([in] VARIANT_BOOL bTranslate); [id( 4), propget] HRESULT TranslatePrinters([out, retval] VARIANT_BOOL* pbTranslate); [id( 5), propput] HRESULT TranslateRegistry([in] VARIANT_BOOL bTranslate); [id( 5), propget] HRESULT TranslateRegistry([out, retval] VARIANT_BOOL* pbTranslate); [id( 6), propput] HRESULT TranslateShares([in] VARIANT_BOOL bTranslate); [id( 6), propget] HRESULT TranslateShares([out, retval] VARIANT_BOOL* pbTranslate); [id( 7), propput] HRESULT TranslateUserProfiles([in] VARIANT_BOOL bTranslate); [id( 7), propget] HRESULT TranslateUserProfiles([out, retval] VARIANT_BOOL* pbTranslate); [id( 8), propput] HRESULT TranslateUserRights([in] VARIANT_BOOL bTranslate); [id( 8), propget] HRESULT TranslateUserRights([out, retval] VARIANT_BOOL* pbTranslate); [id( 9), propput] HRESULT RestartDelay([in] long lTime); [id( 9), propget] HRESULT RestartDelay([out, retval] long* plTime); [id(10)] HRESULT Migrate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude); }; // ISecurityTranslation [ object, uuid(E7330F07-E140-43C3-A082-9DDE98CED9F4), dual, helpstring("ISecurityTranslation Interface"), pointer_default(unique) ] interface ISecurityTranslation : IDispatch { [id( 1), propput] HRESULT TranslationOption([in] long lOption); [id( 1), propget] HRESULT TranslationOption([out, retval] long* lOption); [id( 2), propput] HRESULT TranslateFilesAndFolders([in] VARIANT_BOOL bTranslate); [id( 2), propget] HRESULT TranslateFilesAndFolders([out, retval] VARIANT_BOOL* bTranslate); [id( 3), propput] HRESULT TranslateLocalGroups([in] VARIANT_BOOL bTranslate); [id( 3), propget] HRESULT TranslateLocalGroups([out, retval] VARIANT_BOOL* bTranslate); [id( 4), propput] HRESULT TranslatePrinters([in] VARIANT_BOOL bTranslate); [id( 4), propget] HRESULT TranslatePrinters([out, retval] VARIANT_BOOL* bTranslate); [id( 5), propput] HRESULT TranslateRegistry([in] VARIANT_BOOL bTranslate); [id( 5), propget] HRESULT TranslateRegistry([out, retval] VARIANT_BOOL* bTranslate); [id( 6), propput] HRESULT TranslateShares([in] VARIANT_BOOL bTranslate); [id( 6), propget] HRESULT TranslateShares([out, retval] VARIANT_BOOL* bTranslate); [id( 7), propput] HRESULT TranslateUserProfiles([in] VARIANT_BOOL bTranslate); [id( 7), propget] HRESULT TranslateUserProfiles([out, retval] VARIANT_BOOL* bTranslate); [id( 8), propput] HRESULT TranslateUserRights([in] VARIANT_BOOL bTranslate); [id( 8), propget] HRESULT TranslateUserRights([out, retval] VARIANT_BOOL* bTranslate); [id( 9), propput] HRESULT SidMappingFile([in] BSTR bstrFile); [id( 9), propget] HRESULT SidMappingFile([out, retval] BSTR* pbstrFile); [id(10)] HRESULT Translate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude); }; // IServiceAccountEnumeration [ object, uuid(4AC4E39B-A2E8-4CA4-B54F-6BE9D8046C9B), dual, helpstring("IServiceAccountEnumeration Interface"), pointer_default(unique) ] interface IServiceAccountEnumeration : IDispatch { [id(1)] HRESULT Enumerate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude); }; // IReportGeneration [ object, uuid(146D20A6-2093-4A58-97EC-E4D092124410), dual, helpstring("IReportGeneration Interface"), pointer_default(unique) ] interface IReportGeneration : IDispatch { [id(1), propput] HRESULT Type([in] long lType); [id(1), propget] HRESULT Type([out, retval] long* plType); [id(2), propput] HRESULT Folder([in] BSTR bstrFolder); [id(2), propget] HRESULT Folder([out, retval] BSTR* pbstrFolder); [id(3)] HRESULT Generate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude); }; [ uuid(28214D84-FBA0-4E65-A511-829AFC114191), version(1.0), helpstring("ADMT 1.0") ] library ADMT { importlib("stdole32.tlb"); importlib("stdole2.tlb"); enum RenameOption; enum PasswordOption; enum ConflictOptions; enum DisableOption; enum SourceExpiration; enum TranslateOption; enum ReportType; enum DataOptions; [ uuid(285029CC-5048-4D90-8B38-22D304F513DC), helpstring("Migration Class") ] coclass Migration { [default] interface IMigration; }; };