Source code of Windows XP (NT5)
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.

324 lines
13 KiB

  1. import "oaidl.idl";
  2. import "ocidl.idl";
  3. // Constants
  4. typedef enum RenameOption
  5. {
  6. admtDoNotRename,
  7. admtRenameWithPrefix,
  8. admtRenameWithSuffix,
  9. }
  10. RenameOption;
  11. typedef enum PasswordOption
  12. {
  13. admtPasswordFromName,
  14. admtComplexPassword,
  15. admtCopyPassword,
  16. }
  17. PasswordOption;
  18. typedef enum ConflictOptions
  19. {
  20. admtIgnoreConflicting = 0x00,
  21. admtReplaceConflicting = 0x01,
  22. admtRenameConflictingWithPrefix = 0x02,
  23. admtRenameConflictingWithSuffix = 0x03,
  24. admtRemoveExistingUserRights = 0x10,
  25. admtRemoveExistingMembers = 0x20,
  26. admtMoveReplacedAccounts = 0x40,
  27. }
  28. ConflictOptions;
  29. typedef enum DisableOption
  30. {
  31. admtEnableTarget = 0x00,
  32. admtDisableSource = 0x01,
  33. admtDisableTarget = 0x02,
  34. admtTargetSameAsSource = 0x04,
  35. }
  36. DisableOption;
  37. typedef enum SourceExpiration
  38. {
  39. admtNoExpiration = -1
  40. }
  41. SourceExpiration;
  42. typedef enum TranslateOption
  43. {
  44. admtTranslateReplace,
  45. admtTranslateAdd,
  46. admtTranslateRemove,
  47. }
  48. TranslateOption;
  49. typedef enum ReportType
  50. {
  51. admtReportMigratedAccounts,
  52. admtReportMigratedComputers,
  53. admtReportExpiredComputers,
  54. admtReportAccountReferences,
  55. admtReportNameConflicts,
  56. }
  57. ReportType;
  58. typedef enum DataOptions
  59. {
  60. admtNone,
  61. admtData,
  62. admtFile,
  63. admtDomain,
  64. admtRecurse = 0x0100,
  65. admtFlattenHierarchy = 0x0000,
  66. admtMaintainHierarchy = 0x0200,
  67. }
  68. DataOptions;
  69. // forward references
  70. interface IUserMigration;
  71. interface IGroupMigration;
  72. interface IComputerMigration;
  73. interface ISecurityTranslation;
  74. interface IServiceAccountEnumeration;
  75. interface IReportGeneration;
  76. // IMigration
  77. [
  78. object,
  79. uuid(FFA0E908-9849-4CFC-803E-F6A8ACF704A6),
  80. dual,
  81. helpstring("IMigration Interface"),
  82. pointer_default(unique)
  83. ]
  84. interface IMigration : IDispatch
  85. {
  86. [id( 1), propput] HRESULT TestMigration([in] VARIANT_BOOL bTest);
  87. [id( 1), propget] HRESULT TestMigration([out, retval] VARIANT_BOOL* pbTest);
  88. [id( 2), propput] HRESULT IntraForest([in] VARIANT_BOOL bIntraForest);
  89. [id( 2), propget] HRESULT IntraForest([out, retval] VARIANT_BOOL* pbIntraForest);
  90. [id( 3), propput] HRESULT SourceDomain([in] BSTR bstrDomain);
  91. [id( 3), propget] HRESULT SourceDomain([out, retval] BSTR* pbstrDomain);
  92. [id( 4), propput] HRESULT SourceOu([in] BSTR bstrOu);
  93. [id( 4), propget] HRESULT SourceOu([out, retval] BSTR* pbstrOu);
  94. [id( 5), propput] HRESULT TargetDomain([in] BSTR bstrDomain);
  95. [id( 5), propget] HRESULT TargetDomain([out, retval] BSTR* pbstrDomain);
  96. [id( 6), propput] HRESULT TargetOu([in] BSTR bstrOu);
  97. [id( 6), propget] HRESULT TargetOu([out, retval] BSTR* pbstrOu);
  98. [id( 7), propput] HRESULT RenameOption([in] long lOption);
  99. [id( 7), propget] HRESULT RenameOption([out, retval] long* plOption);
  100. [id( 8), propput] HRESULT RenamePrefixOrSuffix([in] BSTR bstrPrefixOrSuffix);
  101. [id( 8), propget] HRESULT RenamePrefixOrSuffix([out, retval] BSTR* pbstrPrefixOrSuffix);
  102. [id( 9), propput] HRESULT PasswordOption([in] long lOption);
  103. [id( 9), propget] HRESULT PasswordOption([out, retval] long* plOption);
  104. [id(10), propput] HRESULT PasswordServer([in] BSTR bstrServer);
  105. [id(10), propget] HRESULT PasswordServer([out, retval] BSTR* pbstrServer);
  106. [id(11), propput] HRESULT PasswordFile([in] BSTR bstrPath);
  107. [id(11), propget] HRESULT PasswordFile([out, retval] BSTR* pbstrPath);
  108. [id(12), propput] HRESULT ConflictOptions([in] long lOptions);
  109. [id(12), propget] HRESULT ConflictOptions([out, retval] long* plOptions);
  110. [id(13), propput] HRESULT ConflictPrefixOrSuffix([in] BSTR bstrPrefixOrSuffix);
  111. [id(13), propget] HRESULT ConflictPrefixOrSuffix([out, retval] BSTR* pbstrPrefixOrSuffix);
  112. [id(14), propput] HRESULT UserPropertiesToExclude([in] BSTR bstrProperties);
  113. [id(14), propget] HRESULT UserPropertiesToExclude([out, retval] BSTR* pbstrProperties);
  114. [id(15), propput] HRESULT GroupPropertiesToExclude([in] BSTR bstrProperties);
  115. [id(15), propget] HRESULT GroupPropertiesToExclude([out, retval] BSTR* pbstrProperties);
  116. [id(16), propput] HRESULT ComputerPropertiesToExclude([in] BSTR bstrProperties);
  117. [id(16), propget] HRESULT ComputerPropertiesToExclude([out, retval] BSTR* pbstrProperties);
  118. [id(17)] HRESULT CreateUserMigration([out, retval] IUserMigration** pitfUserMigration);
  119. [id(18)] HRESULT CreateGroupMigration([out, retval] IGroupMigration** pitfGroupMigration);
  120. [id(19)] HRESULT CreateComputerMigration([out, retval] IComputerMigration** pitfComputerMigration);
  121. [id(20)] HRESULT CreateSecurityTranslation([out, retval] ISecurityTranslation** pitfSecurityTranslation);
  122. [id(21)] HRESULT CreateServiceAccountEnumeration([out, retval] IServiceAccountEnumeration** pitfServiceAccountEnumeration);
  123. [id(22)] HRESULT CreateReportGeneration([out, retval] IReportGeneration** pitfReportGeneration);
  124. };
  125. // IUserMigration
  126. [
  127. object,
  128. uuid(ED07BCE9-5968-4BE8-BE85-E976C93AD2CC),
  129. dual,
  130. helpstring("IUserMigration Interface"),
  131. pointer_default(unique)
  132. ]
  133. interface IUserMigration : IDispatch
  134. {
  135. [id(1), propput] HRESULT DisableOption([in] long lOption);
  136. [id(1), propget] HRESULT DisableOption([out, retval] long* plOption);
  137. [id(2), propput] HRESULT SourceExpiration([in] long lExpiration);
  138. [id(2), propget] HRESULT SourceExpiration([out, retval] long* plExpiration);
  139. [id(3), propput] HRESULT MigrateSIDs([in] VARIANT_BOOL bMigrate);
  140. [id(3), propget] HRESULT MigrateSIDs([out, retval] VARIANT_BOOL* pbMigrate);
  141. [id(4), propput] HRESULT TranslateRoamingProfile([in] VARIANT_BOOL bTranslate);
  142. [id(4), propget] HRESULT TranslateRoamingProfile([out, retval] VARIANT_BOOL* pbTranslate);
  143. [id(5), propput] HRESULT UpdateUserRights([in] VARIANT_BOOL bUpdate);
  144. [id(5), propget] HRESULT UpdateUserRights([out, retval] VARIANT_BOOL* pbUpdate);
  145. [id(6), propput] HRESULT MigrateGroups([in] VARIANT_BOOL bMigrate);
  146. [id(6), propget] HRESULT MigrateGroups([out, retval] VARIANT_BOOL* pbMigrate);
  147. [id(7), propput] HRESULT UpdatePreviouslyMigratedObjects([in] VARIANT_BOOL bUpdate);
  148. [id(7), propget] HRESULT UpdatePreviouslyMigratedObjects([out, retval] VARIANT_BOOL* pbUpdate);
  149. [id(8), propput] HRESULT FixGroupMembership([in] VARIANT_BOOL bFix);
  150. [id(8), propget] HRESULT FixGroupMembership([out, retval] VARIANT_BOOL* pbFix);
  151. [id(9)] HRESULT Migrate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude);
  152. [id(10), propput] HRESULT MigrateServiceAccounts([in] VARIANT_BOOL bMigrate);
  153. [id(10), propget] HRESULT MigrateServiceAccounts([out, retval] VARIANT_BOOL* pbMigrate);
  154. };
  155. // IGroupMigration
  156. [
  157. object,
  158. uuid(A29D4925-B16A-4E89-9328-BF50999C8EDD),
  159. dual,
  160. helpstring("IGroupMigration Interface"),
  161. pointer_default(unique)
  162. ]
  163. interface IGroupMigration : IDispatch
  164. {
  165. [id(1), propput] HRESULT MigrateSIDs([in] VARIANT_BOOL bMigrate);
  166. [id(1), propget] HRESULT MigrateSIDs([out, retval] VARIANT_BOOL* pbMigrate);
  167. [id(2), propput] HRESULT UpdateGroupRights([in] VARIANT_BOOL bUpdate);
  168. [id(2), propget] HRESULT UpdateGroupRights([out, retval] VARIANT_BOOL* pbUpdate);
  169. [id(3), propput] HRESULT UpdatePreviouslyMigratedObjects([in] VARIANT_BOOL bUpdate);
  170. [id(3), propget] HRESULT UpdatePreviouslyMigratedObjects([out, retval] VARIANT_BOOL* pbUpdate);
  171. [id(4), propput] HRESULT FixGroupMembership([in] VARIANT_BOOL bFix);
  172. [id(4), propget] HRESULT FixGroupMembership([out, retval] VARIANT_BOOL* pbFix);
  173. [id(5), propput] HRESULT MigrateMembers([in] VARIANT_BOOL bMigrate);
  174. [id(5), propget] HRESULT MigrateMembers([out, retval] VARIANT_BOOL* pbMigrate);
  175. [id(6), propput] HRESULT DisableOption([in] long lOption);
  176. [id(6), propget] HRESULT DisableOption([out, retval] long* plOption);
  177. [id(7), propput] HRESULT SourceExpiration([in] long lExpiration);
  178. [id(7), propget] HRESULT SourceExpiration([out, retval] long* plExpiration);
  179. [id(8), propput] HRESULT TranslateRoamingProfile([in] VARIANT_BOOL bTranslate);
  180. [id(8), propget] HRESULT TranslateRoamingProfile([out, retval] VARIANT_BOOL* pbTranslate);
  181. [id(9)] HRESULT Migrate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude);
  182. };
  183. // IComputerMigration
  184. [
  185. object,
  186. uuid(FE808F47-442A-48E0-B9BB-471843C01018),
  187. dual,
  188. helpstring("IComputerMigration Interface"),
  189. pointer_default(unique)
  190. ]
  191. interface IComputerMigration : IDispatch
  192. {
  193. [id( 1), propput] HRESULT TranslationOption([in] long lOption);
  194. [id( 1), propget] HRESULT TranslationOption([out, retval] long* plOption);
  195. [id( 2), propput] HRESULT TranslateFilesAndFolders([in] VARIANT_BOOL bTranslate);
  196. [id( 2), propget] HRESULT TranslateFilesAndFolders([out, retval] VARIANT_BOOL* pbTranslate);
  197. [id( 3), propput] HRESULT TranslateLocalGroups([in] VARIANT_BOOL bTranslate);
  198. [id( 3), propget] HRESULT TranslateLocalGroups([out, retval] VARIANT_BOOL* pbTranslate);
  199. [id( 4), propput] HRESULT TranslatePrinters([in] VARIANT_BOOL bTranslate);
  200. [id( 4), propget] HRESULT TranslatePrinters([out, retval] VARIANT_BOOL* pbTranslate);
  201. [id( 5), propput] HRESULT TranslateRegistry([in] VARIANT_BOOL bTranslate);
  202. [id( 5), propget] HRESULT TranslateRegistry([out, retval] VARIANT_BOOL* pbTranslate);
  203. [id( 6), propput] HRESULT TranslateShares([in] VARIANT_BOOL bTranslate);
  204. [id( 6), propget] HRESULT TranslateShares([out, retval] VARIANT_BOOL* pbTranslate);
  205. [id( 7), propput] HRESULT TranslateUserProfiles([in] VARIANT_BOOL bTranslate);
  206. [id( 7), propget] HRESULT TranslateUserProfiles([out, retval] VARIANT_BOOL* pbTranslate);
  207. [id( 8), propput] HRESULT TranslateUserRights([in] VARIANT_BOOL bTranslate);
  208. [id( 8), propget] HRESULT TranslateUserRights([out, retval] VARIANT_BOOL* pbTranslate);
  209. [id( 9), propput] HRESULT RestartDelay([in] long lTime);
  210. [id( 9), propget] HRESULT RestartDelay([out, retval] long* plTime);
  211. [id(10)] HRESULT Migrate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude);
  212. };
  213. // ISecurityTranslation
  214. [
  215. object,
  216. uuid(E7330F07-E140-43C3-A082-9DDE98CED9F4),
  217. dual,
  218. helpstring("ISecurityTranslation Interface"),
  219. pointer_default(unique)
  220. ]
  221. interface ISecurityTranslation : IDispatch
  222. {
  223. [id( 1), propput] HRESULT TranslationOption([in] long lOption);
  224. [id( 1), propget] HRESULT TranslationOption([out, retval] long* lOption);
  225. [id( 2), propput] HRESULT TranslateFilesAndFolders([in] VARIANT_BOOL bTranslate);
  226. [id( 2), propget] HRESULT TranslateFilesAndFolders([out, retval] VARIANT_BOOL* bTranslate);
  227. [id( 3), propput] HRESULT TranslateLocalGroups([in] VARIANT_BOOL bTranslate);
  228. [id( 3), propget] HRESULT TranslateLocalGroups([out, retval] VARIANT_BOOL* bTranslate);
  229. [id( 4), propput] HRESULT TranslatePrinters([in] VARIANT_BOOL bTranslate);
  230. [id( 4), propget] HRESULT TranslatePrinters([out, retval] VARIANT_BOOL* bTranslate);
  231. [id( 5), propput] HRESULT TranslateRegistry([in] VARIANT_BOOL bTranslate);
  232. [id( 5), propget] HRESULT TranslateRegistry([out, retval] VARIANT_BOOL* bTranslate);
  233. [id( 6), propput] HRESULT TranslateShares([in] VARIANT_BOOL bTranslate);
  234. [id( 6), propget] HRESULT TranslateShares([out, retval] VARIANT_BOOL* bTranslate);
  235. [id( 7), propput] HRESULT TranslateUserProfiles([in] VARIANT_BOOL bTranslate);
  236. [id( 7), propget] HRESULT TranslateUserProfiles([out, retval] VARIANT_BOOL* bTranslate);
  237. [id( 8), propput] HRESULT TranslateUserRights([in] VARIANT_BOOL bTranslate);
  238. [id( 8), propget] HRESULT TranslateUserRights([out, retval] VARIANT_BOOL* bTranslate);
  239. [id( 9), propput] HRESULT SidMappingFile([in] BSTR bstrFile);
  240. [id( 9), propget] HRESULT SidMappingFile([out, retval] BSTR* pbstrFile);
  241. [id(10)] HRESULT Translate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude);
  242. };
  243. // IServiceAccountEnumeration
  244. [
  245. object,
  246. uuid(4AC4E39B-A2E8-4CA4-B54F-6BE9D8046C9B),
  247. dual,
  248. helpstring("IServiceAccountEnumeration Interface"),
  249. pointer_default(unique)
  250. ]
  251. interface IServiceAccountEnumeration : IDispatch
  252. {
  253. [id(1)] HRESULT Enumerate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude);
  254. };
  255. // IReportGeneration
  256. [
  257. object,
  258. uuid(146D20A6-2093-4A58-97EC-E4D092124410),
  259. dual,
  260. helpstring("IReportGeneration Interface"),
  261. pointer_default(unique)
  262. ]
  263. interface IReportGeneration : IDispatch
  264. {
  265. [id(1), propput] HRESULT Type([in] long lType);
  266. [id(1), propget] HRESULT Type([out, retval] long* plType);
  267. [id(2), propput] HRESULT Folder([in] BSTR bstrFolder);
  268. [id(2), propget] HRESULT Folder([out, retval] BSTR* pbstrFolder);
  269. [id(3)] HRESULT Generate([in] long lOptions, [in, optional] VARIANT vntInclude, [in, optional] VARIANT vntExclude);
  270. };
  271. [
  272. uuid(28214D84-FBA0-4E65-A511-829AFC114191),
  273. version(1.0),
  274. helpstring("ADMT 1.0")
  275. ]
  276. library ADMT
  277. {
  278. importlib("stdole32.tlb");
  279. importlib("stdole2.tlb");
  280. enum RenameOption;
  281. enum PasswordOption;
  282. enum ConflictOptions;
  283. enum DisableOption;
  284. enum SourceExpiration;
  285. enum TranslateOption;
  286. enum ReportType;
  287. enum DataOptions;
  288. [
  289. uuid(285029CC-5048-4D90-8B38-22D304F513DC),
  290. helpstring("Migration Class")
  291. ]
  292. coclass Migration
  293. {
  294. [default] interface IMigration;
  295. };
  296. };