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.

777 lines
22 KiB

  1. #include "headers.hxx"
  2. #include "constants.hpp"
  3. #include "global.hpp"
  4. #include <set>
  5. using namespace std;
  6. const long LOCALE409[] = {0x409,0};
  7. const long LOCALEIDS[] =
  8. {
  9. // a list of all the non-english locale IDs that we support
  10. 0x401,
  11. 0x404,
  12. 0x405,
  13. 0x406,
  14. 0x407,
  15. 0x408,
  16. 0x40b,
  17. 0x40c,
  18. 0x40d,
  19. 0x40e,
  20. 0x410,
  21. 0x411,
  22. 0x412,
  23. 0x413,
  24. 0x414,
  25. 0x415,
  26. 0x416,
  27. 0x419,
  28. 0x41d,
  29. 0x41f,
  30. 0x804,
  31. 0x816,
  32. 0xc0a,
  33. 0
  34. };
  35. const wchar_t *NEW_XP_OBJECTS[] =
  36. {
  37. // New objects on windows XP
  38. L"msMQ-Custom-Recipient-Display",
  39. L"msMQ-Group-Display",
  40. L"msCOM-PartitionSet-Display",
  41. L"msCOM-Partition-Display",
  42. L"lostAndFound-Display",
  43. L"inetOrgPerson-Display",
  44. L"",
  45. };
  46. // In CHANGE_LIST, the entries for REPLACE_W2K_MULTIPLE_VALUE and
  47. // REPLACE_W2K_SINGLE_VALUE will start with a character representing
  48. // the index to replaceW2KStrs where to find the W2K string.
  49. // For REPLACE_W2K_MULTIPLE_VALUE, after the index, there will be
  50. // two additional semicolon separated strings ending with colon.
  51. // The first string is the beginning of the W2K value and the second
  52. // is the beginning of the Whistler value. They are used to distinguish
  53. // the multiple value from others and they end in colon to make sure
  54. // we have a correct match
  55. // Since replaceW2KStrs has the whole W2K value we will not need
  56. // the beginning of the W2K value for the update. We will needed it
  57. // to get the value that is stored in replaceW2KStrs.
  58. // These values, with the exception of 409 entries, are generated
  59. // by the W2KStrs companion tool (preBuild folder)
  60. // and pasted in setReplaceW2KStrs further bellow.
  61. const struct sChangeList CHANGE_LIST[] =
  62. {
  63. // List of changes in objects that existed in W2K and
  64. // stil exist in XP.
  65. // This list is a 1 to 1 map of the specification table
  66. {
  67. L"DS-UI-Default-Settings",
  68. {
  69. {
  70. L"dSUIAdminNotification",
  71. L"2,{a00e1768-4a9b-4d97-afc6-99d329f605f2}",
  72. ADD_GUID
  73. },
  74. {
  75. L"msDS-FilterContainers",
  76. L"",
  77. ADD_ALL_CSV_VALUES
  78. },
  79. {
  80. L"msDS-Non-Security-Group-Extra-Classes",
  81. L"",
  82. ADD_ALL_CSV_VALUES
  83. },
  84. { L"",L"",NOP },
  85. }
  86. },
  87. {
  88. L"domainDNS-Display",
  89. {
  90. {
  91. L"attributeDisplayNames",
  92. L"\x0;cn,;dc,", //cn,Name in 409
  93. REPLACE_W2K_MULTIPLE_VALUE
  94. },
  95. { L"",L"",NOP },
  96. }
  97. },
  98. {
  99. L"computer-Display",
  100. {
  101. {
  102. L"adminPropertyPages",
  103. L"7,{B52C1E50-1DD2-11D1-BC43-00C04FC31FD3}",
  104. ADD_GUID
  105. },
  106. { L"",L"",NOP },
  107. }
  108. },
  109. {
  110. L"organizationalUnit-Display",
  111. {
  112. {
  113. L"adminPropertyPages",
  114. L"6,{FA3E1D55-16DF-446d-872E-BD04D4F39C93}",
  115. ADD_GUID
  116. },
  117. { L"",L"",NOP },
  118. }
  119. },
  120. {
  121. L"container-Display",
  122. {
  123. {
  124. L"adminContextMenu",
  125. L"3,{EEBD2F15-87EE-4F93-856F-6AD7E31787B3}",
  126. ADD_GUID
  127. },
  128. {
  129. L"adminContextMenu",
  130. L"4,{AB790AA1-CDC1-478a-9351-B2E05CFCAD09}",
  131. ADD_GUID
  132. },
  133. { L"",L"",NOP },
  134. }
  135. },
  136. {
  137. L"pKICertificateTemplate-Display",
  138. {
  139. {
  140. L"adminPropertyPages",
  141. L"1,{9bff616c-3e02-11d2-a4ca-00c04fb93209}",
  142. REMOVE_GUID
  143. },
  144. {
  145. L"adminPropertyPages",
  146. L"1,{11BDCE06-D55C-44e9-BC0B-8655F89E8CC5}",
  147. ADD_GUID
  148. },
  149. {
  150. L"adminPropertyPages",
  151. L"3,{4e40f770-369c-11d0-8922-00a024ab2dbb}",
  152. REMOVE_GUID
  153. },
  154. {
  155. L"shellPropertyPages",
  156. L"1,{9bff616c-3e02-11d2-a4ca-00c04fb93209}",
  157. REMOVE_GUID
  158. },
  159. {
  160. L"shellPropertyPages",
  161. L"1,{11BDCE06-D55C-44e9-BC0B-8655F89E8CC5}",
  162. ADD_GUID
  163. },
  164. {
  165. L"contextMenu",
  166. L"0,{9bff616c-3e02-11d2-a4ca-00c04fb93209}",
  167. REMOVE_GUID
  168. },
  169. {
  170. L"contextMenu",
  171. L"0,{11BDCE06-D55C-44e9-BC0B-8655F89E8CC5}",
  172. ADD_GUID
  173. },
  174. {
  175. L"adminContextMenu",
  176. L"0,{9bff616c-3e02-11d2-a4ca-00c04fb93209}",
  177. REMOVE_GUID
  178. },
  179. {
  180. L"adminContextMenu",
  181. L"0,{11BDCE06-D55C-44e9-BC0B-8655F89E8CC5}",
  182. ADD_GUID
  183. },
  184. {
  185. L"iconPath",
  186. L"\x1",
  187. // In 409 "capesnpn.dll,-227" will be replaced by
  188. // "0,certtmpl.dll,-144"
  189. REPLACE_W2K_SINGLE_VALUE
  190. },
  191. { L"",L"",NOP },
  192. }
  193. },
  194. {
  195. L"default-Display",
  196. {
  197. {
  198. L"adminMultiselectPropertyPages",
  199. L"1,{50d30563-9911-11d1-b9af-00c04fd8d5b0}",
  200. ADD_GUID
  201. },
  202. {
  203. L"extraColumns",
  204. L"",
  205. ADD_ALL_CSV_VALUES
  206. },
  207. { L"",L"",NOP },
  208. }
  209. },
  210. {
  211. L"nTDSService-Display",
  212. {
  213. {
  214. L"classDisplayName",
  215. L"\x2",
  216. // In 409 "Service" will be replaced by
  217. // "Active Directory Service"
  218. REPLACE_W2K_SINGLE_VALUE
  219. },
  220. { L"",L"",NOP },
  221. }
  222. },
  223. {
  224. L"user-Display",
  225. {
  226. {
  227. L"adminMultiselectPropertyPages",
  228. L"1,{50d30564-9911-11d1-b9af-00c04fd8d5b0}",
  229. ADD_GUID
  230. },
  231. {
  232. L"adminPropertyPages",
  233. L"9,{FA3E1D55-16DF-446d-872E-BD04D4F39C93}",
  234. ADD_GUID
  235. },
  236. {
  237. L"attributeDisplayNames",
  238. L"\x3;internationalISDNNumber,;internationalISDNNumber,",
  239. REPLACE_W2K_MULTIPLE_VALUE
  240. },
  241. {
  242. L"attributeDisplayNames",
  243. L"\x4;otherHomePhone;otherHomePhone",
  244. REPLACE_W2K_MULTIPLE_VALUE
  245. },
  246. { L"",L"",NOP },
  247. }
  248. },
  249. {L"",{ L"",L"",NOP }},
  250. };
  251. // All REPLACE entries in CHANGE_LIST
  252. // will have the first wchar_t as an index to this table
  253. sReplaceW2KStrs replaceW2KStrs;
  254. void setReplaceW2KStrs()
  255. {
  256. LOG_FUNCTION(setReplaceW2KStrs);
  257. replaceW2KStrs.clear();
  258. pair<long,long> tmpIndxLoc;
  259. // Computer generated code bellow (W2KStrs.exe in the preBuild folder)
  260. tmpIndxLoc.first=0;
  261. tmpIndxLoc.second=0x401;
  262. replaceW2KStrs[tmpIndxLoc]=L"cn,&0627&0644&0627&0633&0645";
  263. tmpIndxLoc.first=1;
  264. tmpIndxLoc.second=0x401;
  265. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  266. tmpIndxLoc.first=2;
  267. tmpIndxLoc.second=0x401;
  268. replaceW2KStrs[tmpIndxLoc]=L"&062e&062f&0645&0629 Active Directory";
  269. tmpIndxLoc.first=3;
  270. tmpIndxLoc.second=0x401;
  271. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&0631&0642&0645 ISDN &0627&0644&062f&0648&0644&064a (&0622&062e&0631)";
  272. tmpIndxLoc.first=4;
  273. tmpIndxLoc.second=0x401;
  274. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&0631&0642&0645 &0647&0627&062a&0641 &0627&0644&0645&0646&0632&0644 (&0622&062e&0631)";
  275. tmpIndxLoc.first=0;
  276. tmpIndxLoc.second=0x404;
  277. replaceW2KStrs[tmpIndxLoc]=L"cn,&540d&7a31";
  278. tmpIndxLoc.first=1;
  279. tmpIndxLoc.second=0x404;
  280. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  281. tmpIndxLoc.first=2;
  282. tmpIndxLoc.second=0x404;
  283. replaceW2KStrs[tmpIndxLoc]=L"Active Directory &670d&52d9";
  284. tmpIndxLoc.first=3;
  285. tmpIndxLoc.second=0x404;
  286. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&570b&969b ISDN &865f&78bc (&5176&4ed6)";
  287. tmpIndxLoc.first=4;
  288. tmpIndxLoc.second=0x404;
  289. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&4f4f&5b85&96fb&8a71&865f&78bc (&5176&4ed6)";
  290. tmpIndxLoc.first=0;
  291. tmpIndxLoc.second=0x405;
  292. replaceW2KStrs[tmpIndxLoc]=L"cn,Jm&00e9no";
  293. tmpIndxLoc.first=1;
  294. tmpIndxLoc.second=0x405;
  295. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  296. tmpIndxLoc.first=2;
  297. tmpIndxLoc.second=0x405;
  298. replaceW2KStrs[tmpIndxLoc]=L"Slu&017eba Active Directory";
  299. tmpIndxLoc.first=3;
  300. tmpIndxLoc.second=0x405;
  301. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Mezin&00e1rodn&00ed &010d&00edslo ISDN (dal&0161&00ed &010d&00edsla)";
  302. tmpIndxLoc.first=4;
  303. tmpIndxLoc.second=0x405;
  304. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Telefonn&00ed &010d&00edslo dom&016f (dal&0161&00ed &010d&00edsla)";
  305. tmpIndxLoc.first=0;
  306. tmpIndxLoc.second=0x406;
  307. replaceW2KStrs[tmpIndxLoc]=L"cn,Navn";
  308. tmpIndxLoc.first=1;
  309. tmpIndxLoc.second=0x406;
  310. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  311. tmpIndxLoc.first=2;
  312. tmpIndxLoc.second=0x406;
  313. replaceW2KStrs[tmpIndxLoc]=L"Active Directory-tjeneste";
  314. tmpIndxLoc.first=3;
  315. tmpIndxLoc.second=0x406;
  316. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Internationalt ISDN-nummer (andre)";
  317. tmpIndxLoc.first=4;
  318. tmpIndxLoc.second=0x406;
  319. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Telefonnummer, privat (andre)";
  320. tmpIndxLoc.first=0;
  321. tmpIndxLoc.second=0x407;
  322. replaceW2KStrs[tmpIndxLoc]=L"cn,Name";
  323. tmpIndxLoc.first=1;
  324. tmpIndxLoc.second=0x407;
  325. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  326. tmpIndxLoc.first=2;
  327. tmpIndxLoc.second=0x407;
  328. replaceW2KStrs[tmpIndxLoc]=L"Active Directory-Dienst";
  329. tmpIndxLoc.first=3;
  330. tmpIndxLoc.second=0x407;
  331. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Internationale ISDN-Nummer (Andere)";
  332. tmpIndxLoc.first=4;
  333. tmpIndxLoc.second=0x407;
  334. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Privatrufnummer (Andere)";
  335. tmpIndxLoc.first=0;
  336. tmpIndxLoc.second=0x408;
  337. replaceW2KStrs[tmpIndxLoc]=L"cn,&039f&03bd&03bf&03bc&03b1&03c4&03b5&03c0&03ce&03bd&03c5&03bc&03bf";
  338. tmpIndxLoc.first=1;
  339. tmpIndxLoc.second=0x408;
  340. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  341. tmpIndxLoc.first=2;
  342. tmpIndxLoc.second=0x408;
  343. replaceW2KStrs[tmpIndxLoc]=L"&03a5&03c0&03b7&03c1&03b5&03c3&03af&03b1 &03ba&03b1&03c4&03b1&03bb&03cc&03b3&03bf&03c5 Active Directory";
  344. tmpIndxLoc.first=3;
  345. tmpIndxLoc.second=0x408;
  346. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&0394&03b9&03b5&03b8&03bd&03ae&03c2 &03b1&03c1&03b9&03b8&03bc&03cc&03c2 ISDN (&03ac&03bb&03bb&03bf&03b9)";
  347. tmpIndxLoc.first=4;
  348. tmpIndxLoc.second=0x408;
  349. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&03a4&03b7&03bb&03ad&03c6&03c9&03bd&03bf &03bf&03b9&03ba&03af&03b1&03c2 (&03ac&03bb&03bb&03b1)";
  350. tmpIndxLoc.first=0;
  351. tmpIndxLoc.second=0x40b;
  352. replaceW2KStrs[tmpIndxLoc]=L"cn,Nimi";
  353. tmpIndxLoc.first=1;
  354. tmpIndxLoc.second=0x40b;
  355. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  356. tmpIndxLoc.first=2;
  357. tmpIndxLoc.second=0x40b;
  358. replaceW2KStrs[tmpIndxLoc]=L"Active Directory -palvelu";
  359. tmpIndxLoc.first=3;
  360. tmpIndxLoc.second=0x40b;
  361. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Kansainv&00e4linen ISDN-numero (muut)";
  362. tmpIndxLoc.first=4;
  363. tmpIndxLoc.second=0x40b;
  364. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Kotipuhelinnumero (muut)";
  365. tmpIndxLoc.first=0;
  366. tmpIndxLoc.second=0x40c;
  367. replaceW2KStrs[tmpIndxLoc]=L"cn,Nom";
  368. tmpIndxLoc.first=1;
  369. tmpIndxLoc.second=0x40c;
  370. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  371. tmpIndxLoc.first=2;
  372. tmpIndxLoc.second=0x40c;
  373. replaceW2KStrs[tmpIndxLoc]=L"Service Active Directory";
  374. tmpIndxLoc.first=3;
  375. tmpIndxLoc.second=0x40c;
  376. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Num&00e9ro RNIS international (Autres)";
  377. tmpIndxLoc.first=4;
  378. tmpIndxLoc.second=0x40c;
  379. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Num&00e9ro de t&00e9l&00e9phone domicile (Autres)";
  380. tmpIndxLoc.first=0;
  381. tmpIndxLoc.second=0x40d;
  382. replaceW2KStrs[tmpIndxLoc]=L"cn,&05e9&05dd";
  383. tmpIndxLoc.first=1;
  384. tmpIndxLoc.second=0x40d;
  385. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  386. tmpIndxLoc.first=2;
  387. tmpIndxLoc.second=0x40d;
  388. replaceW2KStrs[tmpIndxLoc]=L"&05e9&05d9&05e8&05d5&05ea Active Directory";
  389. tmpIndxLoc.first=3;
  390. tmpIndxLoc.second=0x40d;
  391. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&05de&05e1&05e4&05e8 ISDN &05d1&05d9&05e0&05dc&05d0&05d5&05de&05d9 (&05d0&05d7&05e8&05d9&05dd)&200f";
  392. tmpIndxLoc.first=4;
  393. tmpIndxLoc.second=0x40d;
  394. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&05de&05e1&05e4&05e8 &05d8&05dc&05e4&05d5&05df &05d1&05d1&05d9&05ea (&05d0&05d7&05e8&05d9&05dd)&200f";
  395. tmpIndxLoc.first=0;
  396. tmpIndxLoc.second=0x40e;
  397. replaceW2KStrs[tmpIndxLoc]=L"cn,N&00e9v";
  398. tmpIndxLoc.first=1;
  399. tmpIndxLoc.second=0x40e;
  400. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  401. tmpIndxLoc.first=2;
  402. tmpIndxLoc.second=0x40e;
  403. replaceW2KStrs[tmpIndxLoc]=L"Active Directory szolg&00e1ltat&00e1s";
  404. tmpIndxLoc.first=3;
  405. tmpIndxLoc.second=0x40e;
  406. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Nemzetk&00f6zi ISDN-sz&00e1m (egy&00e9b)";
  407. tmpIndxLoc.first=4;
  408. tmpIndxLoc.second=0x40e;
  409. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Otthoni telefonsz&00e1m (egy&00e9b)";
  410. tmpIndxLoc.first=0;
  411. tmpIndxLoc.second=0x410;
  412. replaceW2KStrs[tmpIndxLoc]=L"cn,Nome utente";
  413. tmpIndxLoc.first=1;
  414. tmpIndxLoc.second=0x410;
  415. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  416. tmpIndxLoc.first=2;
  417. tmpIndxLoc.second=0x410;
  418. replaceW2KStrs[tmpIndxLoc]=L"Servizio Active Directory";
  419. tmpIndxLoc.first=3;
  420. tmpIndxLoc.second=0x410;
  421. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Numero ISDN internazionale (altri)";
  422. tmpIndxLoc.first=4;
  423. tmpIndxLoc.second=0x410;
  424. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Numero telefono abitazione (altri)";
  425. tmpIndxLoc.first=0;
  426. tmpIndxLoc.second=0x411;
  427. replaceW2KStrs[tmpIndxLoc]=L"cn,&540d&524d";
  428. tmpIndxLoc.first=1;
  429. tmpIndxLoc.second=0x411;
  430. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  431. tmpIndxLoc.first=2;
  432. tmpIndxLoc.second=0x411;
  433. replaceW2KStrs[tmpIndxLoc]=L"Active Directory &30b5&30fc&30d3&30b9";
  434. tmpIndxLoc.first=3;
  435. tmpIndxLoc.second=0x411;
  436. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&56fd&969b ISDN &756a&53f7 (&305d&306e&4ed6)";
  437. tmpIndxLoc.first=4;
  438. tmpIndxLoc.second=0x411;
  439. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&81ea&5b85&96fb&8a71&756a&53f7 (&305d&306e&4ed6)";
  440. tmpIndxLoc.first=0;
  441. tmpIndxLoc.second=0x412;
  442. replaceW2KStrs[tmpIndxLoc]=L"cn,&c774&b984";
  443. tmpIndxLoc.first=1;
  444. tmpIndxLoc.second=0x412;
  445. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  446. tmpIndxLoc.first=2;
  447. tmpIndxLoc.second=0x412;
  448. replaceW2KStrs[tmpIndxLoc]=L"Active Directory &c11c&be44&c2a4";
  449. tmpIndxLoc.first=3;
  450. tmpIndxLoc.second=0x412;
  451. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&ad6d&c81c ISDN &bc88&d638 (&ae30&d0c0)";
  452. tmpIndxLoc.first=4;
  453. tmpIndxLoc.second=0x412;
  454. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&c9d1 &c804&d654 &bc88&d638(&ae30&d0c0)";
  455. tmpIndxLoc.first=0;
  456. tmpIndxLoc.second=0x413;
  457. replaceW2KStrs[tmpIndxLoc]=L"cn,Naam";
  458. tmpIndxLoc.first=1;
  459. tmpIndxLoc.second=0x413;
  460. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  461. tmpIndxLoc.first=2;
  462. tmpIndxLoc.second=0x413;
  463. replaceW2KStrs[tmpIndxLoc]=L"Active Directory-service";
  464. tmpIndxLoc.first=3;
  465. tmpIndxLoc.second=0x413;
  466. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Internationaal ISDN-nummer (overig)";
  467. tmpIndxLoc.first=4;
  468. tmpIndxLoc.second=0x413;
  469. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Telefoonnummer priv&00e9 (overig)";
  470. tmpIndxLoc.first=0;
  471. tmpIndxLoc.second=0x414;
  472. replaceW2KStrs[tmpIndxLoc]=L"cn,Navn";
  473. tmpIndxLoc.first=1;
  474. tmpIndxLoc.second=0x414;
  475. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  476. tmpIndxLoc.first=2;
  477. tmpIndxLoc.second=0x414;
  478. replaceW2KStrs[tmpIndxLoc]=L"Active Directory-tjeneste";
  479. tmpIndxLoc.first=3;
  480. tmpIndxLoc.second=0x414;
  481. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Internasjonalt ISDN-nummer (andre)";
  482. tmpIndxLoc.first=4;
  483. tmpIndxLoc.second=0x414;
  484. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Telefonnummer, privat (andre)";
  485. tmpIndxLoc.first=0;
  486. tmpIndxLoc.second=0x415;
  487. replaceW2KStrs[tmpIndxLoc]=L"cn,Nazwa";
  488. tmpIndxLoc.first=1;
  489. tmpIndxLoc.second=0x415;
  490. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  491. tmpIndxLoc.first=2;
  492. tmpIndxLoc.second=0x415;
  493. replaceW2KStrs[tmpIndxLoc]=L"Us&0142uga Active Directory";
  494. tmpIndxLoc.first=3;
  495. tmpIndxLoc.second=0x415;
  496. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Mi&0119dzynarodowy numer sieciowy ISDN (inne)";
  497. tmpIndxLoc.first=4;
  498. tmpIndxLoc.second=0x415;
  499. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Numer telefonu domowego (inne)";
  500. tmpIndxLoc.first=0;
  501. tmpIndxLoc.second=0x416;
  502. replaceW2KStrs[tmpIndxLoc]=L"cn,Nome";
  503. tmpIndxLoc.first=1;
  504. tmpIndxLoc.second=0x416;
  505. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  506. tmpIndxLoc.first=2;
  507. tmpIndxLoc.second=0x416;
  508. replaceW2KStrs[tmpIndxLoc]=L"Servi&00e7o Active Directory";
  509. tmpIndxLoc.first=3;
  510. tmpIndxLoc.second=0x416;
  511. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,N&00famero ISDN internacional (outros)";
  512. tmpIndxLoc.first=4;
  513. tmpIndxLoc.second=0x416;
  514. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,N&00famero de telefone residencial (outros)";
  515. tmpIndxLoc.first=0;
  516. tmpIndxLoc.second=0x419;
  517. replaceW2KStrs[tmpIndxLoc]=L"cn,&041f&043e&043b&043d&043e&0435 &0438&043c&044f";
  518. tmpIndxLoc.first=1;
  519. tmpIndxLoc.second=0x419;
  520. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  521. tmpIndxLoc.first=2;
  522. tmpIndxLoc.second=0x419;
  523. replaceW2KStrs[tmpIndxLoc]=L"&0421&043b&0443&0436&0431&0430 &043a&0430&0442&0430&043b&043e&0433&043e&0432 Active Directory";
  524. tmpIndxLoc.first=3;
  525. tmpIndxLoc.second=0x419;
  526. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&041c&0435&0436&0434&0443&043d&0430&0440&043e&0434&043d&044b&0439 &043d&043e&043c&0435&0440 ISDN (&043f&0440&043e&0447&0438&0435)";
  527. tmpIndxLoc.first=4;
  528. tmpIndxLoc.second=0x419;
  529. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&0414&043e&043c&0430&0448&043d&0438&0439 &0442&0435&043b&0435&0444&043e&043d (&043f&0440&043e&0447&0438&0435)";
  530. tmpIndxLoc.first=0;
  531. tmpIndxLoc.second=0x41d;
  532. replaceW2KStrs[tmpIndxLoc]=L"cn,Namn";
  533. tmpIndxLoc.first=1;
  534. tmpIndxLoc.second=0x41d;
  535. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  536. tmpIndxLoc.first=2;
  537. tmpIndxLoc.second=0x41d;
  538. replaceW2KStrs[tmpIndxLoc]=L"Active Directory-tj&00e4nst";
  539. tmpIndxLoc.first=3;
  540. tmpIndxLoc.second=0x41d;
  541. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,ISDN-nummer (alternativ)";
  542. tmpIndxLoc.first=4;
  543. tmpIndxLoc.second=0x41d;
  544. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Telefonnummer, hem (alternativ)";
  545. tmpIndxLoc.first=0;
  546. tmpIndxLoc.second=0x41f;
  547. replaceW2KStrs[tmpIndxLoc]=L"cn,Ad&0131";
  548. tmpIndxLoc.first=1;
  549. tmpIndxLoc.second=0x41f;
  550. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  551. tmpIndxLoc.first=2;
  552. tmpIndxLoc.second=0x41f;
  553. replaceW2KStrs[tmpIndxLoc]=L"Active Directory Hizmeti";
  554. tmpIndxLoc.first=3;
  555. tmpIndxLoc.second=0x41f;
  556. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,Uluslararas&0131 ISDN Numaras&0131 (Di&011ferleri)";
  557. tmpIndxLoc.first=4;
  558. tmpIndxLoc.second=0x41f;
  559. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,Ev Telefonu Numaras&0131 (Di&011ferleri)";
  560. tmpIndxLoc.first=0;
  561. tmpIndxLoc.second=0x804;
  562. replaceW2KStrs[tmpIndxLoc]=L"cn,&540d&79f0";
  563. tmpIndxLoc.first=1;
  564. tmpIndxLoc.second=0x804;
  565. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  566. tmpIndxLoc.first=2;
  567. tmpIndxLoc.second=0x804;
  568. replaceW2KStrs[tmpIndxLoc]=L"Active Directory &670d&52a1";
  569. tmpIndxLoc.first=3;
  570. tmpIndxLoc.second=0x804;
  571. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,&56fd&9645 ISDN &53f7&7801(&5176&5b83)";
  572. tmpIndxLoc.first=4;
  573. tmpIndxLoc.second=0x804;
  574. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,&5bb6&5ead&7535&8bdd&53f7&7801 (&5176&5b83)";
  575. tmpIndxLoc.first=0;
  576. tmpIndxLoc.second=0x816;
  577. replaceW2KStrs[tmpIndxLoc]=L"cn,Nome";
  578. tmpIndxLoc.first=1;
  579. tmpIndxLoc.second=0x816;
  580. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  581. tmpIndxLoc.first=2;
  582. tmpIndxLoc.second=0x816;
  583. replaceW2KStrs[tmpIndxLoc]=L"Servi&00e7o do Active Directory";
  584. tmpIndxLoc.first=3;
  585. tmpIndxLoc.second=0x816;
  586. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,N&00famero RDIS internacional (outros)";
  587. tmpIndxLoc.first=4;
  588. tmpIndxLoc.second=0x816;
  589. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,N&00famero de telefone da resid&00eancia (outros)";
  590. tmpIndxLoc.first=0;
  591. tmpIndxLoc.second=0xc0a;
  592. replaceW2KStrs[tmpIndxLoc]=L"cn,Nombre";
  593. tmpIndxLoc.first=1;
  594. tmpIndxLoc.second=0xc0a;
  595. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  596. tmpIndxLoc.first=2;
  597. tmpIndxLoc.second=0xc0a;
  598. replaceW2KStrs[tmpIndxLoc]=L"Servicio de Active Directory";
  599. tmpIndxLoc.first=3;
  600. tmpIndxLoc.second=0xc0a;
  601. replaceW2KStrs[tmpIndxLoc]=L"internationalISDNNumber,N&00famero ISDN (RDSI) internacional (otros)";
  602. tmpIndxLoc.first=4;
  603. tmpIndxLoc.second=0xc0a;
  604. replaceW2KStrs[tmpIndxLoc]=L"otherHomePhone,N&00famero de tel&00e9fono particular (otros)";
  605. // End of generated code (W2KStrs.exe in the preBuild folder)
  606. sReplaceW2KStrs::iterator begin=replaceW2KStrs.begin();
  607. sReplaceW2KStrs::iterator end=replaceW2KStrs.end();
  608. while(begin!=end)
  609. {
  610. tmpIndxLoc.first=begin->first.first;
  611. tmpIndxLoc.second=begin->first.second;
  612. replaceW2KStrs[tmpIndxLoc]=unEscape(begin->second);
  613. begin++;
  614. }
  615. // Now we add the 409 Strings
  616. tmpIndxLoc.first=0;
  617. tmpIndxLoc.second=0x409;
  618. replaceW2KStrs[tmpIndxLoc]=L"cn,Name";
  619. tmpIndxLoc.first=1;
  620. tmpIndxLoc.second=0x409;
  621. replaceW2KStrs[tmpIndxLoc]=L"0,capesnpn.dll,-227";
  622. tmpIndxLoc.first=2;
  623. tmpIndxLoc.second=0x409;
  624. replaceW2KStrs[tmpIndxLoc]=L"Service";
  625. tmpIndxLoc.first=3;
  626. tmpIndxLoc.second=0x409;
  627. replaceW2KStrs[tmpIndxLoc]=
  628. L"internationalISDNNumber, International ISDN Number (Others)";
  629. tmpIndxLoc.first=4;
  630. tmpIndxLoc.second=0x409;
  631. replaceW2KStrs[tmpIndxLoc]= L"otherHomePhone,Home Phone (Others)";
  632. }