// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. FixHelpLinks(); function GetHelpCode(apiName) { switch (apiName.toLowerCase()) { case "msiadvertiseproduct": return 370056; case "msiadvertiseproductex": return 370057; case "msiapplymultiplepatches": return 370059; case "msiapplypatch": return 370060; case "msibegintransaction": return 736312; case "msiclosehandle": return 370067; case "msicollectuserinfo": return 370068; case "msiconfigurefeature": return 370069; case "msiconfigureproduct": return 370070; case "msiconfigureproductex": return 370071; case "msicreaterecord": return 370072; case "msicreatetransformsummaryinfo": return 370073; case "msidatabaseapplytransform": return 370074; case "msidatabasecommit": return 370075; case "msidatabaseexport": return 370076; case "msidatabasegeneratetransform": return 370077; case "msidatabasegetprimarykeys": return 370078; case "msidatabaseimport": return 370079; case "msidatabaseistablepersistent": return 370080; case "msidatabasemerge": return 370081; case "msidatabaseopenview": return 370082; case "msidetermineapplicablepatches": return 370084; case "msideterminepatchsequence": return 370085; case "msidoaction": return 370090; case "msienablelog": return 370091; case "msiendtransaction": return 736318; case "msienumclients": return 370094; case "msienumcomponentcosts": return 370095; case "msienumcomponentqualifiers": return 370096; case "msienumcomponents": return 370097; case "msienumfeatures": return 370098; case "msienumpatches": return 370099; case "msienumpatchesex": return 370100; case "msienumproducts": return 370101; case "msienumproductsex": return 370102; case "msienumrelatedproducts": return 370103; case "msievaluatecondition": return 370104; case "msiextractpatchxmldata": return 370105; case "msiformatrecord": return 370109; case "msigetactivedatabase": return 370110; case "msigetcomponentpath": return 370112; case "msigetcomponentstate": return 370113; case "msigetdatabasestate": return 370114; case "msigetfeaturecost": return 370115; case "msigetfeatureinfo": return 370116; case "msigetfeaturestate": return 370117; case "msigetfeatureusage": return 370118; case "msigetfeaturevalidstates": return 370119; case "msigetfilehash": return 370120; case "msigetfileversion": return 370122; case "msigetlanguage": return 370123; case "msigetlasterrorrecord": return 370124; case "msigetmode": return 370125; case "msigetpatchfilelist": return 370126; case "msigetpatchinfo": return 370127; case "msigetpatchinfoex": return 370128; case "msigetproductcode": return 370129; case "msigetproductinfo": return 370130; case "msigetproductinfoex": return 370131; case "msigetproductinfofromscript": return 370132; case "msigetproductproperty": return 370133; case "msigetproperty": return 370134; case "msigetshortcuttarget": return 370299; case "msigetsourcepath": return 370300; case "msigetsummaryinformation": return 370301; case "msigettargetpath": return 370303; case "msiinstallmissingcomponent": return 370311; case "msiinstallmissingfile": return 370313; case "msiinstallproduct": return 370315; case "msijointransaction": return 736319; case "msilocatecomponent": return 370320; case "msinotifysidchange": return 370328; case "msiopendatabase": return 370338; case "msiopenpackage": return 370339; case "msiopenpackageex": return 370340; case "msiopenproduct": return 370341; case "msiprocessadvertisescript": return 370353; case "msiprocessmessage": return 370354; case "msiprovideassembly": return 370355; case "msiprovidecomponent": return 370356; case "msiprovidequalifiedcomponent": return 370357; case "msiprovidequalifiedcomponentex":return 370358; case "msiquerycomponnetstate": return 370360; case "msiqueryfeaturestate": return 370361; case "msiqueryfeaturestateex": return 370362; case "msiqueryproductstate": return 370363; case "msirecordcleardata": return 370364; case "msirecorddatasize": return 370365; case "msirecordgetfieldcount": return 370366; case "msirecordgetinteger": return 370367; case "msirecordgetstring": return 370368; case "msirecordisnull": return 370369; case "msirecordreadstream": return 370370; case "msirecordsetinteger": return 370371; case "msirecordsetstream": return 370372; case "msirecordsetstring": return 370373; case "msireinstallfeature": return 370374; case "msireinstallproduct": return 370375; case "msiremovepatches": return 370376; case "msisequence": return 370382; case "msisetcomponentstate": return 370383; case "msisetexternalui": return 370384; case "msisetexternaluirecord": return 370385; case "msisetfeatureattributes": return 370386; case "msisetfeaturestate": return 370387; case "msisetinstalllevel": return 370388; case "msisetinternalui": return 370389; case "msisetmode": return 370390; case "msisetproperty": return 370391; case "msisettargetpath": return 370392; case "msisourcelistaddmediadisk": return 370394; case "msisourcelistaddsource": return 370395; case "msisourcelistaddsourceex": return 370396; case "msisourcelistclearall": return 370397; case "msisourcelistclearallex": return 370398; case "msisourcelistclearmediadisk": return 370399; case "msisourcelistclearsource": return 370401; case "msisourcelistenummediadisks": return 370402; case "msisourcelistenumsources": return 370403; case "msisourcelistforceresolution": return 370404; case "msisourcelistforceresolutionex":return 370405; case "msisourcelistgetinfo": return 370406; case "msisourcelistsetinfo": return 370407; case "msisummaryinfogetproperty": return 370409; case "msisummaryinfopersist": return 370490; case "msisummaryinfosetproperty": return 370491; case "msiusefeature": return 370502; case "msiusefeatureex": return 370503; case "msiverifydiskspace": return 370506; case "msiverifypackage": return 370508; case "msiviewexecute": return 370513; case "msiviewfetch": return 370514; case "msiviewgetcolumninfo": return 370516; case "msiviewgeterror": return 370518; case "msiviewmodify": return 370519; case "productid": return 370855; default: return 0; } } function GetHelpLink(apiName) { var helpCode = GetHelpCode(apiName); if (helpCode != 0) { // Found a direct link! var prefix = (helpCode < 500000 ? "aa" : "bb"); return "http://msdn2.microsoft.com/en-us/library/" + prefix + helpCode + ".aspx"; } else { // This link works, but goes through an annoying 5-sec redirect page. return "http://msdn.microsoft.com/library/en-us/msi/setup/" + apiName.toLowerCase() + ".asp"; } } // Change any MSI API help links from indirect MSDN references to direct references. function FixHelpLinks() { var msiLinkRegex = /msdn\.microsoft\.com\/library\/en-us\/msi\/setup\/([a-z]+)\.asp/i; var links = document.body.all.tags("a"); var i; for (i = 0; i < links.length; i++) { var linkElem = links(i); var match = msiLinkRegex.exec(linkElem.href); if (match) { var apiName = match[1]; linkElem.href = GetHelpLink(apiName); linkElem.target = "_blank"; linkElem.title = "MSDN Library"; } } }