<MetaLanguage>
<!-- 
Description: Rules to Override Core MetaLanguage mapping

Sample System MetaLanguage Configuration Override Script 
Modify this file to alter the default upgrade rules for VB6 intrinsics 
functions and controls.  

Contact GreatMigrations for assistance with using this file.
-->
<!-- 
Metalanguage rules to change On Error Resume Next to simple try-catch{}
-->
<Refactor id="Basic" >
<Replace id="Patterns">
   <pattern id="IFS">
      <subcode id="OpenResumeNext">
         <csh role="command" narg="0" code="try // UPGRADE_INFO: OnResumeNext \n{\p" />
      </subcode>
      <subcode id="CloseResumeNext">
         <csh role="command" narg="0" code="\q}\ncatch { } // END OERN\n"/>
      </subcode>
   </pattern>
</Replace>
</Refactor>
<!-- 
Metalanguage rules to change On Error Resume Next to simple try-catch{}
-->
<Refactor id="Basic" >
<Replace id="Patterns">
   <pattern id="TYP">
      <subcode id="OLE">
         <all role="define" narg="0" code="gmRTL.GUI.OleControl"/>
      </subcode>
   </pattern>
</Replace>
</Refactor>
<!--
Metalanguage rules to use gmRTL.GUI.ShapeControl.BorderWidth
-->
<Refactor id="Basic" >
<Replace id="Patterns">
   <pattern id="SHA">
         <subcode id="BorderWidth">
            <all role="property" narg="0" code="BorderWidth" />
         </subcode>
   </pattern>
</Replace>
<Migrate id="Shape.BorderWidth" type="Integer" status="ByVal"  />
</Refactor>
<!-- 
Metalanguage rules to change CopyArray to use byRef
-->
<Refactor id="Basic" >
   <Replace id="Patterns">
      <pattern id="USR">
         <subcode id="CopyTo">
            <all role="command" narg="2" code="%2d = gmRTL.Core.Utils.CopyArray(%1d)\c" />
         </subcode>
         <subcode id="CopyTo2">
            <all role="command" narg="2" code="%2d = gmRTL.Core.Utils.CopyArray(%1d)\c" />
         </subcode>
         <subcode id="CopyTo3">
            <all role="command" narg="2" code="%2d = gmRTL.Core.Utils.CopyArray(%1d)\c" />
         </subcode>   
      </pattern>
   </Replace>
</Refactor>
<!-- 
Metalanguage rules to assist with ErrorHandling migration analysis and cleanup
-->
<Refactor id="Basic" >
   <Replace id="Patterns">
      <pattern id="IOF">
         <subcode id="OnErrorResume">
            <csh role="command" narg="0" code="// UPGRADE_INFO: OnErrorResumeNext()\c"/>
         </subcode>
         <subcode id="OnErrorGoto">
            <csh role="command" narg="1" code="// UPGRADE_INFO: OnErrorGoto(%1d)\c"/>
         </subcode>
         <subcode id="OnErrorTurnOff">
            <csh role="command" narg="0" code="// UPGRADE_INFO: OnErrorTurnOff()\c"/>
         </subcode>
      </pattern>
      <pattern id="CMT">
         <subcode id="CommentOut">
           <csh narg="1" code="// UPGRADE_TODO: %1d (CMT.CommentOut)\n"/>
         </subcode>
         <subcode id="OnErrorResume">
            <csh role="command" narg="0" code="// UPGRADE_INFO: On Error Resume Next()\c"/>
         </subcode>
         <subcode id="OnErrorGoto">
            <csh role="command" narg="1" code="// UPGRADE_INFO: On Error Goto(%1d)\c"/>
         </subcode>
         <subcode id="OnErrorTurnOff">
            <csh role="command" narg="0" code="// UPGRADE_INFO: On Error TurnOff()\c"/>
         </subcode>
         <subcode id="Resume0">
            <csh role="command" narg="0" code="// UPGRADE_INFO: Resume\c"/>
         </subcode>
         <subcode id="ResumeNext">
            <csh role="command" narg="0" code="// UPGRADE_INFO: Resume Next\c"/>
         </subcode>
         <subcode id="ResumeLabel">
            <csh role="command" narg="1" code="// UPGRADE_INFO: Resume %1d\c"/>
         </subcode>
      </pattern>
      <pattern id="ERR">
         <subcode id="Resume0">
            <csh role="command" narg="0" code="// UPGRADE_INFO: Resume\c"/>
         </subcode>
         <subcode id="ResumeNext">
            <csh role="command" narg="0" code="// UPGRADE_INFO: Resume Next\c"/>
         </subcode>
         <subcode id="ResumeLabel">
            <csh role="command" narg="1" code="// UPGRADE_INFO: Resume %1d\c"/>
         </subcode>      
      </pattern>
   </Replace>
</Refactor>
<!-- 
Metalanguage rules to remove Help properties
-->
<Refactor id="Basic" >
  <Replace id="Patterns">
     <pattern id="APP">
         <subcode id="HelpFile">
            <all role="property" narg="0" status="delete" code="@gmRTL.Core.App@HelpFile"/>
         </subcode>
      </pattern>
      <pattern id="FOR">
         <subcode id="HelpContextID">
            <all role="property" narg="0" code="HelpContextID" status="Delete" />
         </subcode>
      </pattern>
   </Replace>
</Refactor>
<!-- 
Metalanguage rules migrate OptionButton_Click to CheckChanged
-->
<Refactor id="Basic" >
  <Replace id="Patterns">
     <pattern id="OBU">
         <subcode id="Click">
            <all role="event" narg="0" code="CheckedChanged" />
         </subcode>
      </pattern>
   </Replace> 
   <Migrate id="OptionButton.Click"
            vbnPattern="If Not CType(sender, RadioButton).Checked Then Return"
            cshPattern="if (!((RadioButton)(sender)).Checked) return;"
            migStatus="CallPattern" />
</Refactor>
<!-- 
Metalanguage rules migrate Shell to use custom overload #16437
-->
<Refactor id="Basic" >
  <Replace id="Patterns">
     <pattern id="VBF">
         <subcode id="Shell">
            <csh role="function" narg="2" code="gmRTL.Core.InteractionHelper.Shell(%1d,string.Empty,%2d)"/>
         </subcode>
      </pattern>
   </Replace> 
</Refactor>
<!-- 
Metalanguage rules migrate CheckBox_Click to CheckChanged
-->
<Refactor id="Basic" >
  <Replace id="Patterns">
     <pattern id="CBX">
         <subcode id="Click">
            <all role="event" narg="0" code="CheckedChanged" />
         </subcode>
      </pattern>
   </Replace> 
</Refactor>
<!-- 
Metalanguage rules alter migration of Split function
-->
<Refactor id="Basic" >
<Replace id="Vb6Function">
   <method id="Split" type="String" opcode="VBF.112">
      <argument id="Expression" type="String" status="ByVal"/>
      <argument id="Delimiter" type="String" status="ByVal" optional=" "/>
      <argument id="Limit" type="Integer" status="ByVal" optional="DEF.overload"/>
      <argument id="Compare" type="VbCompareMethod" status="ByVal" optional="DEF.overload"/>
   </method>
</Replace>
</Refactor>
<!-- 
Metalanguage rules migrate FOR.LinkTopic (removal)
-->
<Refactor id="Basic" >
  <Replace id="Patterns">
     <pattern id="FOR">
         <subcode id="LinkTopic">
            <all role="property" narg="0" code="LinkMode" status="NotImplemented" />
         </subcode>
      </pattern>
   </Replace> 
</Refactor>
</MetaLanguage>