Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The CommonDialog control is a one-to-many migration: In COM, the CommonDialog control is a "jack of all trades" has a complex interface supporting several use cases. In .NET, there are several different Dialog components (PrintDialog, OpenDialog, SaveDialog, ColorDialog, FontDialog) and you use the one you need depending on the desire use case.

In addition, the COM CommonDialog was an "invisible control". It could be placed on a VB6 form and declared in logic. In .NET, the control Common Dialog is a Componentset of Components.

Sample Application Analysis

...

Notice that each instance of CommonDialog is used for only one type of Show operation. This simplifies things and means we can migrate each instance to a specific .NET replacement.

Migrating CommonDialog to different

...

Winforms Common dialog components

The migration has three steps:

1) Declare the different types and add migration rules map them to .NET replavementreplacement. These rules will be placed in a RefactorLibrary, comdlg32.ocx.WinForms.Refactor.xml. A copy of this file is attached to the gmStudio Extensions page.  Notiuce Notice that some of the API members are marked with migStatus=NotImplemented which will result in their being commented out in the translated logic.

...

3) Load your ScriptRules using a command in your translation script (line 76):

Code Block
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Migration.tran.xml
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
   72 <ScriptRule id="SYSINFO.OCX" FileName="..\usr\SysInfo.ocx.Rules.xml" />
   73 <ScriptRule id="mswinsck.ocx" FileName="..\usr\mswinsck.ocx.Rules.xml" />
   74 <ScriptRule id="msado15.dll" FileName="..\usr\msado15.dll.Custom.Rules.xml" />
   75 <ScriptRule id="RICHTX32.ocx" FileName="..\usr\RICHTX32.OCX.Rules.xml" />
>  76 <ScriptRule id="comdlg32.ocx" FileName="..\usr\comdlg32.ocx.Rules.xml" />
   77 <ScriptRule id="ieframe.dll" FileName="..\usr\ieframe.dll.Rules.xml" />
   78 <ScriptRule id="mscomm32.ocx" FileName="..\usr\mscomm32.ocx.Rules.xml" />
   79 
   80 <Compile Project="%SrcPath%" Resx="%ResxFolder%"/>
...