├── .gitattributes ├── .gitignore ├── AnyConvertVM-Installer └── AnyConvertVM-Installer.vdproj ├── AnyConvertVM.csproj ├── AnyConvertVM.sln ├── App.config ├── App.xaml ├── App.xaml.cs ├── Assets ├── Images │ └── logo.png ├── Symbol.ico └── Symbol.png ├── ConvertClassActions.cs ├── Installer └── V1.0 │ └── AnyConvertVM-Installer-V1.0.msi ├── LICENSE ├── MainWindow.xaml ├── MainWindow.xaml.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs └── Settings.settings ├── README.md ├── Symbol.ico ├── Tools └── qemu-img-win-x64-2_3_0 │ ├── libgcc_s_sjlj-1.dll │ ├── libglib-2.0-0.dll │ ├── libgthread-2.0-0.dll │ ├── libiconv-2.dll │ ├── libintl-8.dll │ ├── libssp-0.dll │ └── qemu-img.exe ├── Utils.cs ├── _config.yml └── packages.config /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | [Ll]og/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | project.fragment.lock.json 46 | artifacts/ 47 | 48 | *_i.c 49 | *_p.c 50 | *_i.h 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.tmp_proj 65 | *.log 66 | *.vspscc 67 | *.vssscc 68 | .builds 69 | *.pidb 70 | *.svclog 71 | *.scc 72 | 73 | # Chutzpah Test files 74 | _Chutzpah* 75 | 76 | # Visual C++ cache files 77 | ipch/ 78 | *.aps 79 | *.ncb 80 | *.opendb 81 | *.opensdf 82 | *.sdf 83 | *.cachefile 84 | *.VC.db 85 | *.VC.VC.opendb 86 | 87 | # Visual Studio profiler 88 | *.psess 89 | *.vsp 90 | *.vspx 91 | *.sap 92 | 93 | # TFS 2012 Local Workspace 94 | $tf/ 95 | 96 | # Guidance Automation Toolkit 97 | *.gpState 98 | 99 | # ReSharper is a .NET coding add-in 100 | _ReSharper*/ 101 | *.[Rr]e[Ss]harper 102 | *.DotSettings.user 103 | 104 | # JustCode is a .NET coding add-in 105 | .JustCode 106 | 107 | # TeamCity is a build add-in 108 | _TeamCity* 109 | 110 | # DotCover is a Code Coverage Tool 111 | *.dotCover 112 | 113 | # NCrunch 114 | _NCrunch_* 115 | .*crunch*.local.xml 116 | nCrunchTemp_* 117 | 118 | # MightyMoose 119 | *.mm.* 120 | AutoTest.Net/ 121 | 122 | # Web workbench (sass) 123 | .sass-cache/ 124 | 125 | # Installshield output folder 126 | [Ee]xpress/ 127 | 128 | # DocProject is a documentation generator add-in 129 | DocProject/buildhelp/ 130 | DocProject/Help/*.HxT 131 | DocProject/Help/*.HxC 132 | DocProject/Help/*.hhc 133 | DocProject/Help/*.hhk 134 | DocProject/Help/*.hhp 135 | DocProject/Help/Html2 136 | DocProject/Help/html 137 | 138 | # Click-Once directory 139 | publish/ 140 | 141 | # Publish Web Output 142 | *.[Pp]ublish.xml 143 | *.azurePubxml 144 | # TODO: Comment the next line if you want to checkin your web deploy settings 145 | # but database connection strings (with potential passwords) will be unencrypted 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 150 | # checkin your Azure Web App publish settings, but sensitive information contained 151 | # in these scripts will be unencrypted 152 | PublishScripts/ 153 | 154 | # NuGet Packages 155 | *.nupkg 156 | # The packages folder can be ignored because of Package Restore 157 | **/packages/* 158 | # except build/, which is used as an MSBuild target. 159 | !**/packages/build/ 160 | # Uncomment if necessary however generally it will be regenerated when needed 161 | #!**/packages/repositories.config 162 | # NuGet v3's project.json files produces more ignoreable files 163 | *.nuget.props 164 | *.nuget.targets 165 | 166 | # Microsoft Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Microsoft Azure Emulator 171 | ecf/ 172 | rcf/ 173 | 174 | # Windows Store app package directories and files 175 | AppPackages/ 176 | BundleArtifacts/ 177 | Package.StoreAssociation.xml 178 | _pkginfo.txt 179 | 180 | # Visual Studio cache files 181 | # files ending in .cache can be ignored 182 | *.[Cc]ache 183 | # but keep track of directories ending in .cache 184 | !*.[Cc]ache/ 185 | 186 | # Others 187 | ClientBin/ 188 | ~$* 189 | *~ 190 | *.dbmdl 191 | *.dbproj.schemaview 192 | *.jfm 193 | *.pfx 194 | *.publishsettings 195 | node_modules/ 196 | orleans.codegen.cs 197 | 198 | # Since there are multiple workflows, uncomment next line to ignore bower_components 199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 200 | #bower_components/ 201 | 202 | # RIA/Silverlight projects 203 | Generated_Code/ 204 | 205 | # Backup & report files from converting an old project file 206 | # to a newer Visual Studio version. Backup files are not needed, 207 | # because we have git ;-) 208 | _UpgradeReport_Files/ 209 | Backup*/ 210 | UpgradeLog*.XML 211 | UpgradeLog*.htm 212 | 213 | # SQL Server files 214 | *.mdf 215 | *.ldf 216 | 217 | # Business Intelligence projects 218 | *.rdl.data 219 | *.bim.layout 220 | *.bim_*.settings 221 | 222 | # Microsoft Fakes 223 | FakesAssemblies/ 224 | 225 | # GhostDoc plugin setting file 226 | *.GhostDoc.xml 227 | 228 | # Node.js Tools for Visual Studio 229 | .ntvs_analysis.dat 230 | 231 | # Visual Studio 6 build log 232 | *.plg 233 | 234 | # Visual Studio 6 workspace options file 235 | *.opt 236 | 237 | # Visual Studio LightSwitch build output 238 | **/*.HTMLClient/GeneratedArtifacts 239 | **/*.DesktopClient/GeneratedArtifacts 240 | **/*.DesktopClient/ModelManifest.xml 241 | **/*.Server/GeneratedArtifacts 242 | **/*.Server/ModelManifest.xml 243 | _Pvt_Extensions 244 | 245 | # Paket dependency manager 246 | .paket/paket.exe 247 | paket-files/ 248 | 249 | # FAKE - F# Make 250 | .fake/ 251 | 252 | # JetBrains Rider 253 | .idea/ 254 | *.sln.iml 255 | 256 | # CodeRush 257 | .cr/ 258 | 259 | # Python Tools for Visual Studio (PTVS) 260 | __pycache__/ 261 | *.pyc 262 | /Tools/qemu-img-win-x64-2_3_0.zip 263 | /Tools/qemu-img-win-x64-2_3_0/test.vdi 264 | -------------------------------------------------------------------------------- /AnyConvertVM-Installer/AnyConvertVM-Installer.vdproj: -------------------------------------------------------------------------------- 1 | "DeployProject" 2 | { 3 | "VSVersion" = "3:800" 4 | "ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" 5 | "IsWebType" = "8:FALSE" 6 | "ProjectName" = "8:AnyConvertVM-Installer" 7 | "LanguageId" = "3:1033" 8 | "CodePage" = "3:1252" 9 | "UILanguageId" = "3:1033" 10 | "SccProjectName" = "8:" 11 | "SccLocalPath" = "8:" 12 | "SccAuxPath" = "8:" 13 | "SccProvider" = "8:" 14 | "Hierarchy" 15 | { 16 | "Entry" 17 | { 18 | "MsmKey" = "8:_32F34522E38D49AA8861F3586FB69B1B" 19 | "OwnerKey" = "8:_UNDEFINED" 20 | "MsmSig" = "8:_UNDEFINED" 21 | } 22 | "Entry" 23 | { 24 | "MsmKey" = "8:_4630EC536E8C46BAB9330571FC97860C" 25 | "OwnerKey" = "8:_UNDEFINED" 26 | "MsmSig" = "8:_UNDEFINED" 27 | } 28 | "Entry" 29 | { 30 | "MsmKey" = "8:_59233F101FA04C49A7852FD648DFA3ED" 31 | "OwnerKey" = "8:_UNDEFINED" 32 | "MsmSig" = "8:_UNDEFINED" 33 | } 34 | "Entry" 35 | { 36 | "MsmKey" = "8:_6070DEF2B0284AD184BDA58DDCBAF6C7" 37 | "OwnerKey" = "8:_UNDEFINED" 38 | "MsmSig" = "8:_UNDEFINED" 39 | } 40 | "Entry" 41 | { 42 | "MsmKey" = "8:_6C21817468554F86A3E7A128FDE7DB68" 43 | "OwnerKey" = "8:_UNDEFINED" 44 | "MsmSig" = "8:_UNDEFINED" 45 | } 46 | "Entry" 47 | { 48 | "MsmKey" = "8:_6C7DA700AF7E7B08326AE2A60EE428E9" 49 | "OwnerKey" = "8:_32F34522E38D49AA8861F3586FB69B1B" 50 | "MsmSig" = "8:_UNDEFINED" 51 | } 52 | "Entry" 53 | { 54 | "MsmKey" = "8:_872C2F6E79488C7924D17B0DE5BA6348" 55 | "OwnerKey" = "8:_32F34522E38D49AA8861F3586FB69B1B" 56 | "MsmSig" = "8:_UNDEFINED" 57 | } 58 | "Entry" 59 | { 60 | "MsmKey" = "8:_AB0D29FAD20D47F9B6F423E954E47B47" 61 | "OwnerKey" = "8:_UNDEFINED" 62 | "MsmSig" = "8:_UNDEFINED" 63 | } 64 | "Entry" 65 | { 66 | "MsmKey" = "8:_B34AB54384CB4324B4660ACA5C876934" 67 | "OwnerKey" = "8:_UNDEFINED" 68 | "MsmSig" = "8:_UNDEFINED" 69 | } 70 | "Entry" 71 | { 72 | "MsmKey" = "8:_B47067ABFC1443258E9E92597F38A97C" 73 | "OwnerKey" = "8:_UNDEFINED" 74 | "MsmSig" = "8:_UNDEFINED" 75 | } 76 | "Entry" 77 | { 78 | "MsmKey" = "8:_C41DC7C8F0A341ABA25610D126BC5D7A" 79 | "OwnerKey" = "8:_UNDEFINED" 80 | "MsmSig" = "8:_UNDEFINED" 81 | } 82 | "Entry" 83 | { 84 | "MsmKey" = "8:_UNDEFINED" 85 | "OwnerKey" = "8:_872C2F6E79488C7924D17B0DE5BA6348" 86 | "MsmSig" = "8:_UNDEFINED" 87 | } 88 | "Entry" 89 | { 90 | "MsmKey" = "8:_UNDEFINED" 91 | "OwnerKey" = "8:_32F34522E38D49AA8861F3586FB69B1B" 92 | "MsmSig" = "8:_UNDEFINED" 93 | } 94 | "Entry" 95 | { 96 | "MsmKey" = "8:_UNDEFINED" 97 | "OwnerKey" = "8:_6C7DA700AF7E7B08326AE2A60EE428E9" 98 | "MsmSig" = "8:_UNDEFINED" 99 | } 100 | } 101 | "Configurations" 102 | { 103 | "Debug" 104 | { 105 | "DisplayName" = "8:Debug" 106 | "IsDebugOnly" = "11:TRUE" 107 | "IsReleaseOnly" = "11:FALSE" 108 | "OutputFilename" = "8:Debug\\AnyConvertVM-Installer.msi" 109 | "PackageFilesAs" = "3:2" 110 | "PackageFileSize" = "3:-2147483648" 111 | "CabType" = "3:1" 112 | "Compression" = "3:2" 113 | "SignOutput" = "11:FALSE" 114 | "CertificateFile" = "8:" 115 | "PrivateKeyFile" = "8:" 116 | "TimeStampServer" = "8:" 117 | "InstallerBootstrapper" = "3:2" 118 | } 119 | "Release" 120 | { 121 | "DisplayName" = "8:Release" 122 | "IsDebugOnly" = "11:FALSE" 123 | "IsReleaseOnly" = "11:TRUE" 124 | "OutputFilename" = "8:Release\\AnyConvertVM-Installer.msi" 125 | "PackageFilesAs" = "3:2" 126 | "PackageFileSize" = "3:-2147483648" 127 | "CabType" = "3:1" 128 | "Compression" = "3:2" 129 | "SignOutput" = "11:FALSE" 130 | "CertificateFile" = "8:" 131 | "PrivateKeyFile" = "8:" 132 | "TimeStampServer" = "8:" 133 | "InstallerBootstrapper" = "3:2" 134 | } 135 | } 136 | "Deployable" 137 | { 138 | "CustomAction" 139 | { 140 | } 141 | "DefaultFeature" 142 | { 143 | "Name" = "8:DefaultFeature" 144 | "Title" = "8:" 145 | "Description" = "8:" 146 | } 147 | "ExternalPersistence" 148 | { 149 | "LaunchCondition" 150 | { 151 | "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_48BFDCB21E5D40BCA97EB7ABD2EF784D" 152 | { 153 | "Name" = "8:.NET Framework" 154 | "Message" = "8:[VSDNETMSG]" 155 | "FrameworkVersion" = "8:.NETFramework,Version=v4.6.1" 156 | "AllowLaterVersions" = "11:FALSE" 157 | "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=671728" 158 | } 159 | } 160 | } 161 | "File" 162 | { 163 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4630EC536E8C46BAB9330571FC97860C" 164 | { 165 | "SourcePath" = "8:..\\Tools\\qemu-img-win-x64-2_3_0\\libintl-8.dll" 166 | "TargetName" = "8:libintl-8.dll" 167 | "Tag" = "8:" 168 | "Folder" = "8:_A58BC2EA1C874657931D24EBCBA0D47E" 169 | "Condition" = "8:" 170 | "Transitive" = "11:FALSE" 171 | "Vital" = "11:TRUE" 172 | "ReadOnly" = "11:FALSE" 173 | "Hidden" = "11:FALSE" 174 | "System" = "11:FALSE" 175 | "Permanent" = "11:FALSE" 176 | "SharedLegacy" = "11:FALSE" 177 | "PackageAs" = "3:1" 178 | "Register" = "3:1" 179 | "Exclude" = "11:FALSE" 180 | "IsDependency" = "11:FALSE" 181 | "IsolateTo" = "8:" 182 | } 183 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_59233F101FA04C49A7852FD648DFA3ED" 184 | { 185 | "SourcePath" = "8:..\\Tools\\qemu-img-win-x64-2_3_0\\libssp-0.dll" 186 | "TargetName" = "8:libssp-0.dll" 187 | "Tag" = "8:" 188 | "Folder" = "8:_A58BC2EA1C874657931D24EBCBA0D47E" 189 | "Condition" = "8:" 190 | "Transitive" = "11:FALSE" 191 | "Vital" = "11:TRUE" 192 | "ReadOnly" = "11:FALSE" 193 | "Hidden" = "11:FALSE" 194 | "System" = "11:FALSE" 195 | "Permanent" = "11:FALSE" 196 | "SharedLegacy" = "11:FALSE" 197 | "PackageAs" = "3:1" 198 | "Register" = "3:1" 199 | "Exclude" = "11:FALSE" 200 | "IsDependency" = "11:FALSE" 201 | "IsolateTo" = "8:" 202 | } 203 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6070DEF2B0284AD184BDA58DDCBAF6C7" 204 | { 205 | "SourcePath" = "8:..\\Tools\\qemu-img-win-x64-2_3_0\\libgcc_s_sjlj-1.dll" 206 | "TargetName" = "8:libgcc_s_sjlj-1.dll" 207 | "Tag" = "8:" 208 | "Folder" = "8:_A58BC2EA1C874657931D24EBCBA0D47E" 209 | "Condition" = "8:" 210 | "Transitive" = "11:FALSE" 211 | "Vital" = "11:TRUE" 212 | "ReadOnly" = "11:FALSE" 213 | "Hidden" = "11:FALSE" 214 | "System" = "11:FALSE" 215 | "Permanent" = "11:FALSE" 216 | "SharedLegacy" = "11:FALSE" 217 | "PackageAs" = "3:1" 218 | "Register" = "3:1" 219 | "Exclude" = "11:FALSE" 220 | "IsDependency" = "11:FALSE" 221 | "IsolateTo" = "8:" 222 | } 223 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6C21817468554F86A3E7A128FDE7DB68" 224 | { 225 | "SourcePath" = "8:..\\Tools\\qemu-img-win-x64-2_3_0\\libglib-2.0-0.dll" 226 | "TargetName" = "8:libglib-2.0-0.dll" 227 | "Tag" = "8:" 228 | "Folder" = "8:_A58BC2EA1C874657931D24EBCBA0D47E" 229 | "Condition" = "8:" 230 | "Transitive" = "11:FALSE" 231 | "Vital" = "11:TRUE" 232 | "ReadOnly" = "11:FALSE" 233 | "Hidden" = "11:FALSE" 234 | "System" = "11:FALSE" 235 | "Permanent" = "11:FALSE" 236 | "SharedLegacy" = "11:FALSE" 237 | "PackageAs" = "3:1" 238 | "Register" = "3:1" 239 | "Exclude" = "11:FALSE" 240 | "IsDependency" = "11:FALSE" 241 | "IsolateTo" = "8:" 242 | } 243 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6C7DA700AF7E7B08326AE2A60EE428E9" 244 | { 245 | "AssemblyRegister" = "3:1" 246 | "AssemblyIsInGAC" = "11:FALSE" 247 | "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 248 | "ScatterAssemblies" 249 | { 250 | "_6C7DA700AF7E7B08326AE2A60EE428E9" 251 | { 252 | "Name" = "8:System.Net.Http.dll" 253 | "Attributes" = "3:512" 254 | } 255 | } 256 | "SourcePath" = "8:System.Net.Http.dll" 257 | "TargetName" = "8:" 258 | "Tag" = "8:" 259 | "Folder" = "8:_8FD356DBECFA4D758F5A8A6D74397B3A" 260 | "Condition" = "8:" 261 | "Transitive" = "11:FALSE" 262 | "Vital" = "11:TRUE" 263 | "ReadOnly" = "11:FALSE" 264 | "Hidden" = "11:FALSE" 265 | "System" = "11:FALSE" 266 | "Permanent" = "11:FALSE" 267 | "SharedLegacy" = "11:FALSE" 268 | "PackageAs" = "3:1" 269 | "Register" = "3:1" 270 | "Exclude" = "11:FALSE" 271 | "IsDependency" = "11:TRUE" 272 | "IsolateTo" = "8:" 273 | } 274 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_872C2F6E79488C7924D17B0DE5BA6348" 275 | { 276 | "AssemblyRegister" = "3:1" 277 | "AssemblyIsInGAC" = "11:FALSE" 278 | "AssemblyAsmDisplayName" = "8:log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL" 279 | "ScatterAssemblies" 280 | { 281 | "_872C2F6E79488C7924D17B0DE5BA6348" 282 | { 283 | "Name" = "8:log4net.dll" 284 | "Attributes" = "3:512" 285 | } 286 | } 287 | "SourcePath" = "8:log4net.dll" 288 | "TargetName" = "8:" 289 | "Tag" = "8:" 290 | "Folder" = "8:_8FD356DBECFA4D758F5A8A6D74397B3A" 291 | "Condition" = "8:" 292 | "Transitive" = "11:FALSE" 293 | "Vital" = "11:TRUE" 294 | "ReadOnly" = "11:FALSE" 295 | "Hidden" = "11:FALSE" 296 | "System" = "11:FALSE" 297 | "Permanent" = "11:FALSE" 298 | "SharedLegacy" = "11:FALSE" 299 | "PackageAs" = "3:1" 300 | "Register" = "3:1" 301 | "Exclude" = "11:FALSE" 302 | "IsDependency" = "11:TRUE" 303 | "IsolateTo" = "8:" 304 | } 305 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_AB0D29FAD20D47F9B6F423E954E47B47" 306 | { 307 | "SourcePath" = "8:..\\Assets\\Symbol.ico" 308 | "TargetName" = "8:Symbol.ico" 309 | "Tag" = "8:" 310 | "Folder" = "8:_8FD356DBECFA4D758F5A8A6D74397B3A" 311 | "Condition" = "8:" 312 | "Transitive" = "11:FALSE" 313 | "Vital" = "11:TRUE" 314 | "ReadOnly" = "11:FALSE" 315 | "Hidden" = "11:TRUE" 316 | "System" = "11:FALSE" 317 | "Permanent" = "11:FALSE" 318 | "SharedLegacy" = "11:FALSE" 319 | "PackageAs" = "3:1" 320 | "Register" = "3:1" 321 | "Exclude" = "11:FALSE" 322 | "IsDependency" = "11:FALSE" 323 | "IsolateTo" = "8:" 324 | } 325 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B34AB54384CB4324B4660ACA5C876934" 326 | { 327 | "SourcePath" = "8:..\\Tools\\qemu-img-win-x64-2_3_0\\qemu-img.exe" 328 | "TargetName" = "8:qemu-img.exe" 329 | "Tag" = "8:" 330 | "Folder" = "8:_A58BC2EA1C874657931D24EBCBA0D47E" 331 | "Condition" = "8:" 332 | "Transitive" = "11:FALSE" 333 | "Vital" = "11:TRUE" 334 | "ReadOnly" = "11:FALSE" 335 | "Hidden" = "11:FALSE" 336 | "System" = "11:FALSE" 337 | "Permanent" = "11:FALSE" 338 | "SharedLegacy" = "11:FALSE" 339 | "PackageAs" = "3:1" 340 | "Register" = "3:1" 341 | "Exclude" = "11:FALSE" 342 | "IsDependency" = "11:FALSE" 343 | "IsolateTo" = "8:" 344 | } 345 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B47067ABFC1443258E9E92597F38A97C" 346 | { 347 | "SourcePath" = "8:..\\Tools\\qemu-img-win-x64-2_3_0\\libgthread-2.0-0.dll" 348 | "TargetName" = "8:libgthread-2.0-0.dll" 349 | "Tag" = "8:" 350 | "Folder" = "8:_A58BC2EA1C874657931D24EBCBA0D47E" 351 | "Condition" = "8:" 352 | "Transitive" = "11:FALSE" 353 | "Vital" = "11:TRUE" 354 | "ReadOnly" = "11:FALSE" 355 | "Hidden" = "11:FALSE" 356 | "System" = "11:FALSE" 357 | "Permanent" = "11:FALSE" 358 | "SharedLegacy" = "11:FALSE" 359 | "PackageAs" = "3:1" 360 | "Register" = "3:1" 361 | "Exclude" = "11:FALSE" 362 | "IsDependency" = "11:FALSE" 363 | "IsolateTo" = "8:" 364 | } 365 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C41DC7C8F0A341ABA25610D126BC5D7A" 366 | { 367 | "SourcePath" = "8:..\\Tools\\qemu-img-win-x64-2_3_0\\libiconv-2.dll" 368 | "TargetName" = "8:libiconv-2.dll" 369 | "Tag" = "8:" 370 | "Folder" = "8:_A58BC2EA1C874657931D24EBCBA0D47E" 371 | "Condition" = "8:" 372 | "Transitive" = "11:FALSE" 373 | "Vital" = "11:TRUE" 374 | "ReadOnly" = "11:FALSE" 375 | "Hidden" = "11:FALSE" 376 | "System" = "11:FALSE" 377 | "Permanent" = "11:FALSE" 378 | "SharedLegacy" = "11:FALSE" 379 | "PackageAs" = "3:1" 380 | "Register" = "3:1" 381 | "Exclude" = "11:FALSE" 382 | "IsDependency" = "11:FALSE" 383 | "IsolateTo" = "8:" 384 | } 385 | } 386 | "FileType" 387 | { 388 | } 389 | "Folder" 390 | { 391 | "{1525181F-901A-416C-8A58-119130FE478E}:_6E87063B06E145B49A9F7754F7B035C8" 392 | { 393 | "Name" = "8:#1916" 394 | "AlwaysCreate" = "11:FALSE" 395 | "Condition" = "8:" 396 | "Transitive" = "11:FALSE" 397 | "Property" = "8:DesktopFolder" 398 | "Folders" 399 | { 400 | } 401 | } 402 | "{3C67513D-01DD-4637-8A68-80971EB9504F}:_8FD356DBECFA4D758F5A8A6D74397B3A" 403 | { 404 | "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" 405 | "Name" = "8:#1925" 406 | "AlwaysCreate" = "11:TRUE" 407 | "Condition" = "8:" 408 | "Transitive" = "11:FALSE" 409 | "Property" = "8:TARGETDIR" 410 | "Folders" 411 | { 412 | "{9EF0B969-E518-4E46-987F-47570745A589}:_BF3A9CB02BF34466A372FB0CEB4503A8" 413 | { 414 | "Name" = "8:Tools" 415 | "AlwaysCreate" = "11:TRUE" 416 | "Condition" = "8:" 417 | "Transitive" = "11:FALSE" 418 | "Property" = "8:_3C99B555E68F420080CA1C79DDB5F7B1" 419 | "Folders" 420 | { 421 | "{9EF0B969-E518-4E46-987F-47570745A589}:_A58BC2EA1C874657931D24EBCBA0D47E" 422 | { 423 | "Name" = "8:qemu-img-win-x64-2_3_0" 424 | "AlwaysCreate" = "11:FALSE" 425 | "Condition" = "8:" 426 | "Transitive" = "11:FALSE" 427 | "Property" = "8:_4470B4DCF2B7437BA65383F064D72DD1" 428 | "Folders" 429 | { 430 | } 431 | } 432 | } 433 | } 434 | } 435 | } 436 | "{1525181F-901A-416C-8A58-119130FE478E}:_A671C423E2DC48A299928A77F540166C" 437 | { 438 | "Name" = "8:#1919" 439 | "AlwaysCreate" = "11:FALSE" 440 | "Condition" = "8:" 441 | "Transitive" = "11:FALSE" 442 | "Property" = "8:ProgramMenuFolder" 443 | "Folders" 444 | { 445 | } 446 | } 447 | } 448 | "LaunchCondition" 449 | { 450 | } 451 | "Locator" 452 | { 453 | } 454 | "MsiBootstrapper" 455 | { 456 | "LangId" = "3:1033" 457 | "RequiresElevation" = "11:FALSE" 458 | } 459 | "Product" 460 | { 461 | "Name" = "8:Microsoft Visual Studio" 462 | "ProductName" = "8:AnyConvertVM" 463 | "ProductCode" = "8:{A1F0B028-7D5C-4279-817D-776CB184420A}" 464 | "PackageCode" = "8:{08309A0B-67D1-49C6-991D-4BF0A0F93E9E}" 465 | "UpgradeCode" = "8:{227B5C7D-D06D-44BE-9696-B6C39AECDDC8}" 466 | "AspNetVersion" = "8:4.0.30319.0" 467 | "RestartWWWService" = "11:FALSE" 468 | "RemovePreviousVersions" = "11:TRUE" 469 | "DetectNewerInstalledVersion" = "11:TRUE" 470 | "InstallAllUsers" = "11:TRUE" 471 | "ProductVersion" = "8:1.0.0" 472 | "Manufacturer" = "8:Shyzon" 473 | "ARPHELPTELEPHONE" = "8:" 474 | "ARPHELPLINK" = "8:http://shyzon.com/" 475 | "Title" = "8:AnyConvertVM-Installer" 476 | "Subject" = "8:" 477 | "ARPCONTACT" = "8:Sunny Maringanti" 478 | "Keywords" = "8:" 479 | "ARPCOMMENTS" = "8:" 480 | "ARPURLINFOABOUT" = "8:" 481 | "ARPPRODUCTICON" = "8:_AB0D29FAD20D47F9B6F423E954E47B47" 482 | "ARPIconIndex" = "3:0" 483 | "SearchPath" = "8:" 484 | "UseSystemSearchPath" = "11:TRUE" 485 | "TargetPlatform" = "3:0" 486 | "PreBuildEvent" = "8:" 487 | "PostBuildEvent" = "8:" 488 | "RunPostBuildEvent" = "3:0" 489 | } 490 | "Registry" 491 | { 492 | "HKLM" 493 | { 494 | "Keys" 495 | { 496 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_14985E04AAA34CEA84906ED2ED111340" 497 | { 498 | "Name" = "8:Software" 499 | "Condition" = "8:" 500 | "AlwaysCreate" = "11:FALSE" 501 | "DeleteAtUninstall" = "11:FALSE" 502 | "Transitive" = "11:FALSE" 503 | "Keys" 504 | { 505 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4465C2671F4B47E4A7184497C1F90508" 506 | { 507 | "Name" = "8:[Manufacturer]" 508 | "Condition" = "8:" 509 | "AlwaysCreate" = "11:FALSE" 510 | "DeleteAtUninstall" = "11:FALSE" 511 | "Transitive" = "11:FALSE" 512 | "Keys" 513 | { 514 | } 515 | "Values" 516 | { 517 | } 518 | } 519 | } 520 | "Values" 521 | { 522 | } 523 | } 524 | } 525 | } 526 | "HKCU" 527 | { 528 | "Keys" 529 | { 530 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_97E0F33B961A4F3DB40B2012FB691796" 531 | { 532 | "Name" = "8:Software" 533 | "Condition" = "8:" 534 | "AlwaysCreate" = "11:FALSE" 535 | "DeleteAtUninstall" = "11:FALSE" 536 | "Transitive" = "11:FALSE" 537 | "Keys" 538 | { 539 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_425076A99EE44007848C5A8FFB4A7949" 540 | { 541 | "Name" = "8:[Manufacturer]" 542 | "Condition" = "8:" 543 | "AlwaysCreate" = "11:FALSE" 544 | "DeleteAtUninstall" = "11:FALSE" 545 | "Transitive" = "11:FALSE" 546 | "Keys" 547 | { 548 | } 549 | "Values" 550 | { 551 | } 552 | } 553 | } 554 | "Values" 555 | { 556 | } 557 | } 558 | } 559 | } 560 | "HKCR" 561 | { 562 | "Keys" 563 | { 564 | } 565 | } 566 | "HKU" 567 | { 568 | "Keys" 569 | { 570 | } 571 | } 572 | "HKPU" 573 | { 574 | "Keys" 575 | { 576 | } 577 | } 578 | } 579 | "Sequences" 580 | { 581 | } 582 | "Shortcut" 583 | { 584 | "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_14A6E32CCC0543EDB93079A730989480" 585 | { 586 | "Name" = "8:AnyConvertVM" 587 | "Arguments" = "8:" 588 | "Description" = "8:" 589 | "ShowCmd" = "3:1" 590 | "IconIndex" = "3:0" 591 | "Transitive" = "11:FALSE" 592 | "Target" = "8:_32F34522E38D49AA8861F3586FB69B1B" 593 | "Folder" = "8:_6E87063B06E145B49A9F7754F7B035C8" 594 | "WorkingFolder" = "8:_8FD356DBECFA4D758F5A8A6D74397B3A" 595 | "Icon" = "8:_AB0D29FAD20D47F9B6F423E954E47B47" 596 | "Feature" = "8:" 597 | } 598 | "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_8ACBA332A9324F25BEA620511F4A5674" 599 | { 600 | "Name" = "8:AnyConvertVM-V1.0" 601 | "Arguments" = "8:" 602 | "Description" = "8:" 603 | "ShowCmd" = "3:1" 604 | "IconIndex" = "3:0" 605 | "Transitive" = "11:FALSE" 606 | "Target" = "8:_32F34522E38D49AA8861F3586FB69B1B" 607 | "Folder" = "8:_A671C423E2DC48A299928A77F540166C" 608 | "WorkingFolder" = "8:_8FD356DBECFA4D758F5A8A6D74397B3A" 609 | "Icon" = "8:_AB0D29FAD20D47F9B6F423E954E47B47" 610 | "Feature" = "8:" 611 | } 612 | } 613 | "UserInterface" 614 | { 615 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_3952BC2A3CB840FB9589EE0E5352C118" 616 | { 617 | "Name" = "8:#1902" 618 | "Sequence" = "3:1" 619 | "Attributes" = "3:3" 620 | "Dialogs" 621 | { 622 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5AF8C3F4C9BF482495A9DBA934A01D10" 623 | { 624 | "Sequence" = "3:100" 625 | "DisplayName" = "8:Finished" 626 | "UseDynamicProperties" = "11:TRUE" 627 | "IsDependency" = "11:FALSE" 628 | "SourcePath" = "8:\\VsdFinishedDlg.wid" 629 | "Properties" 630 | { 631 | "BannerBitmap" 632 | { 633 | "Name" = "8:BannerBitmap" 634 | "DisplayName" = "8:#1001" 635 | "Description" = "8:#1101" 636 | "Type" = "3:8" 637 | "ContextData" = "8:Bitmap" 638 | "Attributes" = "3:4" 639 | "Setting" = "3:1" 640 | "UsePlugInResources" = "11:TRUE" 641 | } 642 | "UpdateText" 643 | { 644 | "Name" = "8:UpdateText" 645 | "DisplayName" = "8:#1058" 646 | "Description" = "8:#1158" 647 | "Type" = "3:15" 648 | "ContextData" = "8:" 649 | "Attributes" = "3:0" 650 | "Setting" = "3:1" 651 | "Value" = "8:#1258" 652 | "DefaultValue" = "8:#1258" 653 | "UsePlugInResources" = "11:TRUE" 654 | } 655 | } 656 | } 657 | } 658 | } 659 | "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_92990AD27AD044E8A890CE9E0D0C6816" 660 | { 661 | "UseDynamicProperties" = "11:FALSE" 662 | "IsDependency" = "11:FALSE" 663 | "SourcePath" = "8:\\VsdUserInterface.wim" 664 | } 665 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_9C7EEE4AC3914324805D7FD6D3ECE28C" 666 | { 667 | "Name" = "8:#1901" 668 | "Sequence" = "3:1" 669 | "Attributes" = "3:2" 670 | "Dialogs" 671 | { 672 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_34684DDFA37E4CA0A5964B17113AAB08" 673 | { 674 | "Sequence" = "3:100" 675 | "DisplayName" = "8:Progress" 676 | "UseDynamicProperties" = "11:TRUE" 677 | "IsDependency" = "11:FALSE" 678 | "SourcePath" = "8:\\VsdProgressDlg.wid" 679 | "Properties" 680 | { 681 | "BannerBitmap" 682 | { 683 | "Name" = "8:BannerBitmap" 684 | "DisplayName" = "8:#1001" 685 | "Description" = "8:#1101" 686 | "Type" = "3:8" 687 | "ContextData" = "8:Bitmap" 688 | "Attributes" = "3:4" 689 | "Setting" = "3:1" 690 | "UsePlugInResources" = "11:TRUE" 691 | } 692 | "ShowProgress" 693 | { 694 | "Name" = "8:ShowProgress" 695 | "DisplayName" = "8:#1009" 696 | "Description" = "8:#1109" 697 | "Type" = "3:5" 698 | "ContextData" = "8:1;True=1;False=0" 699 | "Attributes" = "3:0" 700 | "Setting" = "3:0" 701 | "Value" = "3:1" 702 | "DefaultValue" = "3:1" 703 | "UsePlugInResources" = "11:TRUE" 704 | } 705 | } 706 | } 707 | } 708 | } 709 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BA7B2E79A4634C00A5379AA938C18CAB" 710 | { 711 | "Name" = "8:#1901" 712 | "Sequence" = "3:2" 713 | "Attributes" = "3:2" 714 | "Dialogs" 715 | { 716 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0D730AD6A81C420A8ABDB11BCEED1C26" 717 | { 718 | "Sequence" = "3:100" 719 | "DisplayName" = "8:Progress" 720 | "UseDynamicProperties" = "11:TRUE" 721 | "IsDependency" = "11:FALSE" 722 | "SourcePath" = "8:\\VsdAdminProgressDlg.wid" 723 | "Properties" 724 | { 725 | "BannerBitmap" 726 | { 727 | "Name" = "8:BannerBitmap" 728 | "DisplayName" = "8:#1001" 729 | "Description" = "8:#1101" 730 | "Type" = "3:8" 731 | "ContextData" = "8:Bitmap" 732 | "Attributes" = "3:4" 733 | "Setting" = "3:1" 734 | "UsePlugInResources" = "11:TRUE" 735 | } 736 | "ShowProgress" 737 | { 738 | "Name" = "8:ShowProgress" 739 | "DisplayName" = "8:#1009" 740 | "Description" = "8:#1109" 741 | "Type" = "3:5" 742 | "ContextData" = "8:1;True=1;False=0" 743 | "Attributes" = "3:0" 744 | "Setting" = "3:0" 745 | "Value" = "3:1" 746 | "DefaultValue" = "3:1" 747 | "UsePlugInResources" = "11:TRUE" 748 | } 749 | } 750 | } 751 | } 752 | } 753 | "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_BB8210EBFBAC442E837661F6103E4CC7" 754 | { 755 | "UseDynamicProperties" = "11:FALSE" 756 | "IsDependency" = "11:FALSE" 757 | "SourcePath" = "8:\\VsdBasicDialogs.wim" 758 | } 759 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_C17F84AE7E634AC9B7A8C2B2DCFFDAC2" 760 | { 761 | "Name" = "8:#1902" 762 | "Sequence" = "3:2" 763 | "Attributes" = "3:3" 764 | "Dialogs" 765 | { 766 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_3CBABE486D67452D82226266BA1F51C2" 767 | { 768 | "Sequence" = "3:100" 769 | "DisplayName" = "8:Finished" 770 | "UseDynamicProperties" = "11:TRUE" 771 | "IsDependency" = "11:FALSE" 772 | "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" 773 | "Properties" 774 | { 775 | "BannerBitmap" 776 | { 777 | "Name" = "8:BannerBitmap" 778 | "DisplayName" = "8:#1001" 779 | "Description" = "8:#1101" 780 | "Type" = "3:8" 781 | "ContextData" = "8:Bitmap" 782 | "Attributes" = "3:4" 783 | "Setting" = "3:1" 784 | "UsePlugInResources" = "11:TRUE" 785 | } 786 | } 787 | } 788 | } 789 | } 790 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_C45FAE4FBAC1431DAE415138D2FD77F0" 791 | { 792 | "Name" = "8:#1900" 793 | "Sequence" = "3:1" 794 | "Attributes" = "3:1" 795 | "Dialogs" 796 | { 797 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_60036ED898B44ACEAB36E8382B417406" 798 | { 799 | "Sequence" = "3:100" 800 | "DisplayName" = "8:Welcome" 801 | "UseDynamicProperties" = "11:TRUE" 802 | "IsDependency" = "11:FALSE" 803 | "SourcePath" = "8:\\VsdWelcomeDlg.wid" 804 | "Properties" 805 | { 806 | "BannerBitmap" 807 | { 808 | "Name" = "8:BannerBitmap" 809 | "DisplayName" = "8:#1001" 810 | "Description" = "8:#1101" 811 | "Type" = "3:8" 812 | "ContextData" = "8:Bitmap" 813 | "Attributes" = "3:4" 814 | "Setting" = "3:1" 815 | "UsePlugInResources" = "11:TRUE" 816 | } 817 | "CopyrightWarning" 818 | { 819 | "Name" = "8:CopyrightWarning" 820 | "DisplayName" = "8:#1002" 821 | "Description" = "8:#1102" 822 | "Type" = "3:3" 823 | "ContextData" = "8:" 824 | "Attributes" = "3:0" 825 | "Setting" = "3:1" 826 | "Value" = "8:#1202" 827 | "DefaultValue" = "8:#1202" 828 | "UsePlugInResources" = "11:TRUE" 829 | } 830 | "Welcome" 831 | { 832 | "Name" = "8:Welcome" 833 | "DisplayName" = "8:#1003" 834 | "Description" = "8:#1103" 835 | "Type" = "3:3" 836 | "ContextData" = "8:" 837 | "Attributes" = "3:0" 838 | "Setting" = "3:1" 839 | "Value" = "8:#1203" 840 | "DefaultValue" = "8:#1203" 841 | "UsePlugInResources" = "11:TRUE" 842 | } 843 | } 844 | } 845 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7DD56D6406034A5BB64FA68251611664" 846 | { 847 | "Sequence" = "3:200" 848 | "DisplayName" = "8:Installation Folder" 849 | "UseDynamicProperties" = "11:TRUE" 850 | "IsDependency" = "11:FALSE" 851 | "SourcePath" = "8:\\VsdFolderDlg.wid" 852 | "Properties" 853 | { 854 | "BannerBitmap" 855 | { 856 | "Name" = "8:BannerBitmap" 857 | "DisplayName" = "8:#1001" 858 | "Description" = "8:#1101" 859 | "Type" = "3:8" 860 | "ContextData" = "8:Bitmap" 861 | "Attributes" = "3:4" 862 | "Setting" = "3:1" 863 | "UsePlugInResources" = "11:TRUE" 864 | } 865 | "InstallAllUsersVisible" 866 | { 867 | "Name" = "8:InstallAllUsersVisible" 868 | "DisplayName" = "8:#1059" 869 | "Description" = "8:#1159" 870 | "Type" = "3:5" 871 | "ContextData" = "8:1;True=1;False=0" 872 | "Attributes" = "3:0" 873 | "Setting" = "3:0" 874 | "Value" = "3:1" 875 | "DefaultValue" = "3:1" 876 | "UsePlugInResources" = "11:TRUE" 877 | } 878 | } 879 | } 880 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CD71958FBFAC423ABF7FD173F40FE395" 881 | { 882 | "Sequence" = "3:300" 883 | "DisplayName" = "8:Confirm Installation" 884 | "UseDynamicProperties" = "11:TRUE" 885 | "IsDependency" = "11:FALSE" 886 | "SourcePath" = "8:\\VsdConfirmDlg.wid" 887 | "Properties" 888 | { 889 | "BannerBitmap" 890 | { 891 | "Name" = "8:BannerBitmap" 892 | "DisplayName" = "8:#1001" 893 | "Description" = "8:#1101" 894 | "Type" = "3:8" 895 | "ContextData" = "8:Bitmap" 896 | "Attributes" = "3:4" 897 | "Setting" = "3:1" 898 | "UsePlugInResources" = "11:TRUE" 899 | } 900 | } 901 | } 902 | } 903 | } 904 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_E45E269D99034DF49315FAE0B94807C2" 905 | { 906 | "Name" = "8:#1900" 907 | "Sequence" = "3:2" 908 | "Attributes" = "3:1" 909 | "Dialogs" 910 | { 911 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_43EBC53D162C4C5F885ED085E0A418BF" 912 | { 913 | "Sequence" = "3:200" 914 | "DisplayName" = "8:Installation Folder" 915 | "UseDynamicProperties" = "11:TRUE" 916 | "IsDependency" = "11:FALSE" 917 | "SourcePath" = "8:\\VsdAdminFolderDlg.wid" 918 | "Properties" 919 | { 920 | "BannerBitmap" 921 | { 922 | "Name" = "8:BannerBitmap" 923 | "DisplayName" = "8:#1001" 924 | "Description" = "8:#1101" 925 | "Type" = "3:8" 926 | "ContextData" = "8:Bitmap" 927 | "Attributes" = "3:4" 928 | "Setting" = "3:1" 929 | "UsePlugInResources" = "11:TRUE" 930 | } 931 | } 932 | } 933 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_736C39FB3E9D48D19E1D331824A1F0CD" 934 | { 935 | "Sequence" = "3:100" 936 | "DisplayName" = "8:Welcome" 937 | "UseDynamicProperties" = "11:TRUE" 938 | "IsDependency" = "11:FALSE" 939 | "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" 940 | "Properties" 941 | { 942 | "BannerBitmap" 943 | { 944 | "Name" = "8:BannerBitmap" 945 | "DisplayName" = "8:#1001" 946 | "Description" = "8:#1101" 947 | "Type" = "3:8" 948 | "ContextData" = "8:Bitmap" 949 | "Attributes" = "3:4" 950 | "Setting" = "3:1" 951 | "UsePlugInResources" = "11:TRUE" 952 | } 953 | "CopyrightWarning" 954 | { 955 | "Name" = "8:CopyrightWarning" 956 | "DisplayName" = "8:#1002" 957 | "Description" = "8:#1102" 958 | "Type" = "3:3" 959 | "ContextData" = "8:" 960 | "Attributes" = "3:0" 961 | "Setting" = "3:1" 962 | "Value" = "8:#1202" 963 | "DefaultValue" = "8:#1202" 964 | "UsePlugInResources" = "11:TRUE" 965 | } 966 | "Welcome" 967 | { 968 | "Name" = "8:Welcome" 969 | "DisplayName" = "8:#1003" 970 | "Description" = "8:#1103" 971 | "Type" = "3:3" 972 | "ContextData" = "8:" 973 | "Attributes" = "3:0" 974 | "Setting" = "3:1" 975 | "Value" = "8:#1203" 976 | "DefaultValue" = "8:#1203" 977 | "UsePlugInResources" = "11:TRUE" 978 | } 979 | } 980 | } 981 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B9CB29C90D394FDDBAE5237BBC176C9A" 982 | { 983 | "Sequence" = "3:300" 984 | "DisplayName" = "8:Confirm Installation" 985 | "UseDynamicProperties" = "11:TRUE" 986 | "IsDependency" = "11:FALSE" 987 | "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" 988 | "Properties" 989 | { 990 | "BannerBitmap" 991 | { 992 | "Name" = "8:BannerBitmap" 993 | "DisplayName" = "8:#1001" 994 | "Description" = "8:#1101" 995 | "Type" = "3:8" 996 | "ContextData" = "8:Bitmap" 997 | "Attributes" = "3:4" 998 | "Setting" = "3:1" 999 | "UsePlugInResources" = "11:TRUE" 1000 | } 1001 | } 1002 | } 1003 | } 1004 | } 1005 | } 1006 | "MergeModule" 1007 | { 1008 | } 1009 | "ProjectOutput" 1010 | { 1011 | "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_32F34522E38D49AA8861F3586FB69B1B" 1012 | { 1013 | "SourcePath" = "8:..\\obj\\Release\\AnyConvertVM.exe" 1014 | "TargetName" = "8:" 1015 | "Tag" = "8:" 1016 | "Folder" = "8:_8FD356DBECFA4D758F5A8A6D74397B3A" 1017 | "Condition" = "8:" 1018 | "Transitive" = "11:FALSE" 1019 | "Vital" = "11:TRUE" 1020 | "ReadOnly" = "11:FALSE" 1021 | "Hidden" = "11:FALSE" 1022 | "System" = "11:FALSE" 1023 | "Permanent" = "11:FALSE" 1024 | "SharedLegacy" = "11:FALSE" 1025 | "PackageAs" = "3:1" 1026 | "Register" = "3:1" 1027 | "Exclude" = "11:FALSE" 1028 | "IsDependency" = "11:FALSE" 1029 | "IsolateTo" = "8:" 1030 | "ProjectOutputGroupRegister" = "3:1" 1031 | "OutputConfiguration" = "8:Release|Any CPU" 1032 | "OutputGroupCanonicalName" = "8:Built" 1033 | "OutputProjectGuid" = "8:{0516A2BA-A281-43D1-AC89-852AB289CCA3}" 1034 | "ShowKeyOutput" = "11:TRUE" 1035 | "ExcludeFilters" 1036 | { 1037 | } 1038 | } 1039 | "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_431083D82AF747E69D52CD58FDE002E3" 1040 | { 1041 | "SourcePath" = "8:" 1042 | "TargetName" = "8:" 1043 | "Tag" = "8:" 1044 | "Folder" = "8:_8FD356DBECFA4D758F5A8A6D74397B3A" 1045 | "Condition" = "8:" 1046 | "Transitive" = "11:FALSE" 1047 | "Vital" = "11:TRUE" 1048 | "ReadOnly" = "11:FALSE" 1049 | "Hidden" = "11:FALSE" 1050 | "System" = "11:FALSE" 1051 | "Permanent" = "11:FALSE" 1052 | "SharedLegacy" = "11:FALSE" 1053 | "PackageAs" = "3:1" 1054 | "Register" = "3:1" 1055 | "Exclude" = "11:FALSE" 1056 | "IsDependency" = "11:FALSE" 1057 | "IsolateTo" = "8:" 1058 | "ProjectOutputGroupRegister" = "3:1" 1059 | "OutputConfiguration" = "8:Release|Any CPU" 1060 | "OutputGroupCanonicalName" = "8:RuntimeImplementation" 1061 | "OutputProjectGuid" = "8:{0516A2BA-A281-43D1-AC89-852AB289CCA3}" 1062 | "ShowKeyOutput" = "11:TRUE" 1063 | "ExcludeFilters" 1064 | { 1065 | } 1066 | } 1067 | } 1068 | } 1069 | } 1070 | -------------------------------------------------------------------------------- /AnyConvertVM.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {0516A2BA-A281-43D1-AC89-852AB289CCA3} 8 | WinExe 9 | AnyConvertVM 10 | AnyConvertVM 11 | v4.6.2 12 | 512 13 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 14 | 4 15 | true 16 | publish\ 17 | true 18 | Disk 19 | false 20 | Foreground 21 | 7 22 | Days 23 | false 24 | false 25 | true 26 | 0 27 | 1.0.0.%2a 28 | false 29 | false 30 | true 31 | 32 | 33 | AnyCPU 34 | true 35 | full 36 | true 37 | bin\Debug\ 38 | TRACE 39 | prompt 40 | 4 41 | 42 | 43 | AnyCPU 44 | pdbonly 45 | true 46 | bin\Release\ 47 | TRACE 48 | prompt 49 | 4 50 | 51 | 52 | AnyConvertVM.App 53 | 54 | 55 | Symbol.ico 56 | 57 | 58 | true 59 | 60 | 61 | 4ECF7634D37FF17EDD0AB56AE9677A65610AA063 62 | 63 | 64 | false 65 | 66 | 67 | 68 | packages\log4net.2.0.8\lib\net45-full\log4net.dll 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 4.0 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | MSBuild:Compile 91 | Designer 92 | 93 | 94 | 95 | MSBuild:Compile 96 | Designer 97 | 98 | 99 | App.xaml 100 | Code 101 | 102 | 103 | 104 | MainWindow.xaml 105 | Code 106 | 107 | 108 | 109 | 110 | Code 111 | 112 | 113 | True 114 | True 115 | Resources.resx 116 | 117 | 118 | True 119 | Settings.settings 120 | True 121 | 122 | 123 | ResXFileCodeGenerator 124 | Resources.Designer.cs 125 | 126 | 127 | 128 | 129 | SettingsSingleFileGenerator 130 | Settings.Designer.cs 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | Always 139 | 140 | 141 | Always 142 | 143 | 144 | Always 145 | 146 | 147 | Always 148 | 149 | 150 | Always 151 | 152 | 153 | Always 154 | 155 | 156 | Always 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | False 169 | Microsoft .NET Framework 4.6.2 %28x86 and x64%29 170 | true 171 | 172 | 173 | False 174 | .NET Framework 3.5 SP1 175 | false 176 | 177 | 178 | 179 | -------------------------------------------------------------------------------- /AnyConvertVM.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2018 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnyConvertVM", "AnyConvertVM.csproj", "{0516A2BA-A281-43D1-AC89-852AB289CCA3}" 7 | EndProject 8 | Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "AnyConvertVM-Installer", "AnyConvertVM-Installer\AnyConvertVM-Installer.vdproj", "{0C905B41-571C-4A1B-B050-5CA424BFFF36}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {0516A2BA-A281-43D1-AC89-852AB289CCA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {0516A2BA-A281-43D1-AC89-852AB289CCA3}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {0516A2BA-A281-43D1-AC89-852AB289CCA3}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {0516A2BA-A281-43D1-AC89-852AB289CCA3}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {0C905B41-571C-4A1B-B050-5CA424BFFF36}.Debug|Any CPU.ActiveCfg = Debug 21 | {0C905B41-571C-4A1B-B050-5CA424BFFF36}.Release|Any CPU.ActiveCfg = Release 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | GlobalSection(ExtensibilityGlobals) = postSolution 27 | SolutionGuid = {F6A6F8AB-15B6-429C-B8D8-28C5C70CCA07} 28 | EndGlobalSection 29 | EndGlobal 30 | -------------------------------------------------------------------------------- /App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 |
5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace AnyConvertVM 10 | { 11 | /// 12 | /// Interaction logic for App.xaml 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/Images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maringantis/AnyConvertVM/d2b512dd660b4d5812a40e88704dad7c639b9d01/Assets/Images/logo.png -------------------------------------------------------------------------------- /Assets/Symbol.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maringantis/AnyConvertVM/d2b512dd660b4d5812a40e88704dad7c639b9d01/Assets/Symbol.ico -------------------------------------------------------------------------------- /Assets/Symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maringantis/AnyConvertVM/d2b512dd660b4d5812a40e88704dad7c639b9d01/Assets/Symbol.png -------------------------------------------------------------------------------- /ConvertClassActions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Text; 8 | using System.Threading; 9 | using System.Threading.Tasks; 10 | using System.Windows.Forms; 11 | using log4net; 12 | 13 | namespace AnyConvertVM 14 | { 15 | class ConvertClassActions 16 | { 17 | 18 | 19 | private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 20 | private const string TAG = "ConvertClassActions: "; 21 | 22 | public enum FormatType { VDI,VHDX,RAW,QCOW2,VMDK,VHD,QED }; 23 | 24 | public static bool ErrorFlag = false; 25 | public static int ConvertQEMU(FormatType fromFormat, FormatType toFormat, String FromFolderWithFile, String FileName,String SaveFolderPath) 26 | { 27 | 28 | try 29 | { 30 | //qemu-img convert -f raw -O qcow2 image.img image.qcow2 31 | // String args = null; 32 | 33 | Log.Debug(TAG+"Will start to convert " + fromFormat + " to " + toFormat); 34 | 35 | string fromFromatArgs = fromFormat.ToString().ToLower(); 36 | string toFromatArgs = toFormat.ToString().ToLower(); 37 | 38 | if (fromFromatArgs.Equals("vhd")) { fromFromatArgs = "vpc"; } 39 | if (toFromatArgs.Equals("vhd")) { toFromatArgs = "vpc"; } 40 | 41 | String Arguments = "/c Tools\\qemu-img-win-x64-2_3_0\\qemu-img.exe convert -f " + fromFromatArgs + " -O " + toFromatArgs 42 | + " " +"\""+ FromFolderWithFile +"\"" + " " + "\"" + SaveFolderPath+@"\"+FileName+"."+ toFormat.ToString().ToLower() + "\""; 43 | 44 | //Misc.Utils.StartProcess(Arguments,"Tools\\qemu-img-win-x64-2_3_0\\qemu-img.exe"); 45 | 46 | Log.Debug(TAG+"Command: " + Arguments); 47 | ErrorFlag = false; 48 | var proc = new Process 49 | { 50 | StartInfo = new ProcessStartInfo 51 | { 52 | FileName = "cmd.exe", 53 | Arguments = Arguments, 54 | } 55 | }; 56 | 57 | proc.StartInfo.UseShellExecute = false; 58 | proc.StartInfo.CreateNoWindow = true; 59 | proc.EnableRaisingEvents = true; 60 | proc.StartInfo.RedirectStandardOutput = true; 61 | proc.StartInfo.RedirectStandardError = true; 62 | proc.Start(); 63 | 64 | var std_out_error_reader = proc.StandardError; 65 | var std_out_data_reader = proc.StandardOutput; 66 | WriteToLog(std_out_data_reader, "d"); 67 | WriteToLog(std_out_error_reader, "e"); 68 | 69 | proc.WaitForExit(); 70 | 71 | if (ErrorFlag) 72 | { 73 | Log.Error(TAG+ "Failed to convert the disks."); 74 | return 1; 75 | } 76 | else 77 | { 78 | Log.Debug(TAG+ "Converted "+toFormat +" disk from "+fromFormat+". Converted disk saved at :" 79 | +SaveFolderPath + @"\" + FileName + "." + toFormat.ToString().ToLower()); 80 | 81 | MessageBox.Show("Converted "+toFormat +" disk from "+fromFormat+".Converted disk saved at: " 82 | + SaveFolderPath + @"\" + FileName + "." + toFormat.ToString().ToLower()); 83 | return 0; 84 | } 85 | 86 | } 87 | catch (Exception ex) 88 | { 89 | Misc.Utils.ExceptionHandleMsg(TAG, "Could not convert the image.", ex); 90 | Misc.Utils.ErrorBox("Could not convert the image.", ex); 91 | return 1; 92 | } 93 | 94 | } 95 | 96 | 97 | public static void WriteToLog(StreamReader std_out_reader, string level) 98 | { 99 | try 100 | { 101 | while (!std_out_reader.EndOfStream) 102 | { 103 | // the point is that the stream does not end until the process has 104 | // finished all of its output. 105 | var nextLine = std_out_reader.ReadLine(); 106 | string errorMsg = null; 107 | if (level.Equals("e")) 108 | { 109 | Log.Error(TAG + nextLine); 110 | ErrorFlag = true; 111 | //Misc.Utils.ErrorBox("Failed to convert the disks."); 112 | if ((nextLine.Contains("bad signature")) || (nextLine.Contains("Image not in"))) 113 | { 114 | errorMsg = "The selected disk is not in the correct format."; 115 | } 116 | else 117 | errorMsg = "Failed to convert the disks"; 118 | 119 | Misc.Utils.ErrorBox(errorMsg+"\nError message: " + nextLine); 120 | } 121 | else 122 | Log.Debug(TAG + nextLine); 123 | 124 | } 125 | } 126 | catch (Exception ex) 127 | { 128 | Misc.Utils.ExceptionHandleMsg(TAG, "Failed to write to Log", ex); 129 | //Misc.Utils.ErrorBox("Could not convert the image.", ex); 130 | } 131 | 132 | } 133 | 134 | 135 | } 136 | 137 | } 138 | -------------------------------------------------------------------------------- /Installer/V1.0/AnyConvertVM-Installer-V1.0.msi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maringantis/AnyConvertVM/d2b512dd660b4d5812a40e88704dad7c639b9d01/Installer/V1.0/AnyConvertVM-Installer-V1.0.msi -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 2.1, February 1999 3 | 4 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | [This is the first released version of the Lesser GPL. It also counts 10 | as the successor of the GNU Library Public License, version 2, hence 11 | the version number 2.1.] 12 | 13 | Preamble 14 | 15 | The licenses for most software are designed to take away your 16 | freedom to share and change it. By contrast, the GNU General Public 17 | Licenses are intended to guarantee your freedom to share and change 18 | free software--to make sure the software is free for all its users. 19 | 20 | This license, the Lesser General Public License, applies to some 21 | specially designated software packages--typically libraries--of the 22 | Free Software Foundation and other authors who decide to use it. You 23 | can use it too, but we suggest you first think carefully about whether 24 | this license or the ordinary General Public License is the better 25 | strategy to use in any particular case, based on the explanations below. 26 | 27 | When we speak of free software, we are referring to freedom of use, 28 | not price. Our General Public Licenses are designed to make sure that 29 | you have the freedom to distribute copies of free software (and charge 30 | for this service if you wish); that you receive source code or can get 31 | it if you want it; that you can change the software and use pieces of 32 | it in new free programs; and that you are informed that you can do 33 | these things. 34 | 35 | To protect your rights, we need to make restrictions that forbid 36 | distributors to deny you these rights or to ask you to surrender these 37 | rights. These restrictions translate to certain responsibilities for 38 | you if you distribute copies of the library or if you modify it. 39 | 40 | For example, if you distribute copies of the library, whether gratis 41 | or for a fee, you must give the recipients all the rights that we gave 42 | you. You must make sure that they, too, receive or can get the source 43 | code. If you link other code with the library, you must provide 44 | complete object files to the recipients, so that they can relink them 45 | with the library after making changes to the library and recompiling 46 | it. And you must show them these terms so they know their rights. 47 | 48 | We protect your rights with a two-step method: (1) we copyright the 49 | library, and (2) we offer you this license, which gives you legal 50 | permission to copy, distribute and/or modify the library. 51 | 52 | To protect each distributor, we want to make it very clear that 53 | there is no warranty for the free library. Also, if the library is 54 | modified by someone else and passed on, the recipients should know 55 | that what they have is not the original version, so that the original 56 | author's reputation will not be affected by problems that might be 57 | introduced by others. 58 | 59 | Finally, software patents pose a constant threat to the existence of 60 | any free program. We wish to make sure that a company cannot 61 | effectively restrict the users of a free program by obtaining a 62 | restrictive license from a patent holder. Therefore, we insist that 63 | any patent license obtained for a version of the library must be 64 | consistent with the full freedom of use specified in this license. 65 | 66 | Most GNU software, including some libraries, is covered by the 67 | ordinary GNU General Public License. This license, the GNU Lesser 68 | General Public License, applies to certain designated libraries, and 69 | is quite different from the ordinary General Public License. We use 70 | this license for certain libraries in order to permit linking those 71 | libraries into non-free programs. 72 | 73 | When a program is linked with a library, whether statically or using 74 | a shared library, the combination of the two is legally speaking a 75 | combined work, a derivative of the original library. The ordinary 76 | General Public License therefore permits such linking only if the 77 | entire combination fits its criteria of freedom. The Lesser General 78 | Public License permits more lax criteria for linking other code with 79 | the library. 80 | 81 | We call this license the "Lesser" General Public License because it 82 | does Less to protect the user's freedom than the ordinary General 83 | Public License. It also provides other free software developers Less 84 | of an advantage over competing non-free programs. These disadvantages 85 | are the reason we use the ordinary General Public License for many 86 | libraries. However, the Lesser license provides advantages in certain 87 | special circumstances. 88 | 89 | For example, on rare occasions, there may be a special need to 90 | encourage the widest possible use of a certain library, so that it becomes 91 | a de-facto standard. To achieve this, non-free programs must be 92 | allowed to use the library. A more frequent case is that a free 93 | library does the same job as widely used non-free libraries. In this 94 | case, there is little to gain by limiting the free library to free 95 | software only, so we use the Lesser General Public License. 96 | 97 | In other cases, permission to use a particular library in non-free 98 | programs enables a greater number of people to use a large body of 99 | free software. For example, permission to use the GNU C Library in 100 | non-free programs enables many more people to use the whole GNU 101 | operating system, as well as its variant, the GNU/Linux operating 102 | system. 103 | 104 | Although the Lesser General Public License is Less protective of the 105 | users' freedom, it does ensure that the user of a program that is 106 | linked with the Library has the freedom and the wherewithal to run 107 | that program using a modified version of the Library. 108 | 109 | The precise terms and conditions for copying, distribution and 110 | modification follow. Pay close attention to the difference between a 111 | "work based on the library" and a "work that uses the library". The 112 | former contains code derived from the library, whereas the latter must 113 | be combined with the library in order to run. 114 | 115 | GNU LESSER GENERAL PUBLIC LICENSE 116 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 117 | 118 | 0. This License Agreement applies to any software library or other 119 | program which contains a notice placed by the copyright holder or 120 | other authorized party saying it may be distributed under the terms of 121 | this Lesser General Public License (also called "this License"). 122 | Each licensee is addressed as "you". 123 | 124 | A "library" means a collection of software functions and/or data 125 | prepared so as to be conveniently linked with application programs 126 | (which use some of those functions and data) to form executables. 127 | 128 | The "Library", below, refers to any such software library or work 129 | which has been distributed under these terms. A "work based on the 130 | Library" means either the Library or any derivative work under 131 | copyright law: that is to say, a work containing the Library or a 132 | portion of it, either verbatim or with modifications and/or translated 133 | straightforwardly into another language. (Hereinafter, translation is 134 | included without limitation in the term "modification".) 135 | 136 | "Source code" for a work means the preferred form of the work for 137 | making modifications to it. For a library, complete source code means 138 | all the source code for all modules it contains, plus any associated 139 | interface definition files, plus the scripts used to control compilation 140 | and installation of the library. 141 | 142 | Activities other than copying, distribution and modification are not 143 | covered by this License; they are outside its scope. The act of 144 | running a program using the Library is not restricted, and output from 145 | such a program is covered only if its contents constitute a work based 146 | on the Library (independent of the use of the Library in a tool for 147 | writing it). Whether that is true depends on what the Library does 148 | and what the program that uses the Library does. 149 | 150 | 1. You may copy and distribute verbatim copies of the Library's 151 | complete source code as you receive it, in any medium, provided that 152 | you conspicuously and appropriately publish on each copy an 153 | appropriate copyright notice and disclaimer of warranty; keep intact 154 | all the notices that refer to this License and to the absence of any 155 | warranty; and distribute a copy of this License along with the 156 | Library. 157 | 158 | You may charge a fee for the physical act of transferring a copy, 159 | and you may at your option offer warranty protection in exchange for a 160 | fee. 161 | 162 | 2. You may modify your copy or copies of the Library or any portion 163 | of it, thus forming a work based on the Library, and copy and 164 | distribute such modifications or work under the terms of Section 1 165 | above, provided that you also meet all of these conditions: 166 | 167 | a) The modified work must itself be a software library. 168 | 169 | b) You must cause the files modified to carry prominent notices 170 | stating that you changed the files and the date of any change. 171 | 172 | c) You must cause the whole of the work to be licensed at no 173 | charge to all third parties under the terms of this License. 174 | 175 | d) If a facility in the modified Library refers to a function or a 176 | table of data to be supplied by an application program that uses 177 | the facility, other than as an argument passed when the facility 178 | is invoked, then you must make a good faith effort to ensure that, 179 | in the event an application does not supply such function or 180 | table, the facility still operates, and performs whatever part of 181 | its purpose remains meaningful. 182 | 183 | (For example, a function in a library to compute square roots has 184 | a purpose that is entirely well-defined independent of the 185 | application. Therefore, Subsection 2d requires that any 186 | application-supplied function or table used by this function must 187 | be optional: if the application does not supply it, the square 188 | root function must still compute square roots.) 189 | 190 | These requirements apply to the modified work as a whole. If 191 | identifiable sections of that work are not derived from the Library, 192 | and can be reasonably considered independent and separate works in 193 | themselves, then this License, and its terms, do not apply to those 194 | sections when you distribute them as separate works. But when you 195 | distribute the same sections as part of a whole which is a work based 196 | on the Library, the distribution of the whole must be on the terms of 197 | this License, whose permissions for other licensees extend to the 198 | entire whole, and thus to each and every part regardless of who wrote 199 | it. 200 | 201 | Thus, it is not the intent of this section to claim rights or contest 202 | your rights to work written entirely by you; rather, the intent is to 203 | exercise the right to control the distribution of derivative or 204 | collective works based on the Library. 205 | 206 | In addition, mere aggregation of another work not based on the Library 207 | with the Library (or with a work based on the Library) on a volume of 208 | a storage or distribution medium does not bring the other work under 209 | the scope of this License. 210 | 211 | 3. You may opt to apply the terms of the ordinary GNU General Public 212 | License instead of this License to a given copy of the Library. To do 213 | this, you must alter all the notices that refer to this License, so 214 | that they refer to the ordinary GNU General Public License, version 2, 215 | instead of to this License. (If a newer version than version 2 of the 216 | ordinary GNU General Public License has appeared, then you can specify 217 | that version instead if you wish.) Do not make any other change in 218 | these notices. 219 | 220 | Once this change is made in a given copy, it is irreversible for 221 | that copy, so the ordinary GNU General Public License applies to all 222 | subsequent copies and derivative works made from that copy. 223 | 224 | This option is useful when you wish to copy part of the code of 225 | the Library into a program that is not a library. 226 | 227 | 4. You may copy and distribute the Library (or a portion or 228 | derivative of it, under Section 2) in object code or executable form 229 | under the terms of Sections 1 and 2 above provided that you accompany 230 | it with the complete corresponding machine-readable source code, which 231 | must be distributed under the terms of Sections 1 and 2 above on a 232 | medium customarily used for software interchange. 233 | 234 | If distribution of object code is made by offering access to copy 235 | from a designated place, then offering equivalent access to copy the 236 | source code from the same place satisfies the requirement to 237 | distribute the source code, even though third parties are not 238 | compelled to copy the source along with the object code. 239 | 240 | 5. A program that contains no derivative of any portion of the 241 | Library, but is designed to work with the Library by being compiled or 242 | linked with it, is called a "work that uses the Library". Such a 243 | work, in isolation, is not a derivative work of the Library, and 244 | therefore falls outside the scope of this License. 245 | 246 | However, linking a "work that uses the Library" with the Library 247 | creates an executable that is a derivative of the Library (because it 248 | contains portions of the Library), rather than a "work that uses the 249 | library". The executable is therefore covered by this License. 250 | Section 6 states terms for distribution of such executables. 251 | 252 | When a "work that uses the Library" uses material from a header file 253 | that is part of the Library, the object code for the work may be a 254 | derivative work of the Library even though the source code is not. 255 | Whether this is true is especially significant if the work can be 256 | linked without the Library, or if the work is itself a library. The 257 | threshold for this to be true is not precisely defined by law. 258 | 259 | If such an object file uses only numerical parameters, data 260 | structure layouts and accessors, and small macros and small inline 261 | functions (ten lines or less in length), then the use of the object 262 | file is unrestricted, regardless of whether it is legally a derivative 263 | work. (Executables containing this object code plus portions of the 264 | Library will still fall under Section 6.) 265 | 266 | Otherwise, if the work is a derivative of the Library, you may 267 | distribute the object code for the work under the terms of Section 6. 268 | Any executables containing that work also fall under Section 6, 269 | whether or not they are linked directly with the Library itself. 270 | 271 | 6. As an exception to the Sections above, you may also combine or 272 | link a "work that uses the Library" with the Library to produce a 273 | work containing portions of the Library, and distribute that work 274 | under terms of your choice, provided that the terms permit 275 | modification of the work for the customer's own use and reverse 276 | engineering for debugging such modifications. 277 | 278 | You must give prominent notice with each copy of the work that the 279 | Library is used in it and that the Library and its use are covered by 280 | this License. You must supply a copy of this License. If the work 281 | during execution displays copyright notices, you must include the 282 | copyright notice for the Library among them, as well as a reference 283 | directing the user to the copy of this License. Also, you must do one 284 | of these things: 285 | 286 | a) Accompany the work with the complete corresponding 287 | machine-readable source code for the Library including whatever 288 | changes were used in the work (which must be distributed under 289 | Sections 1 and 2 above); and, if the work is an executable linked 290 | with the Library, with the complete machine-readable "work that 291 | uses the Library", as object code and/or source code, so that the 292 | user can modify the Library and then relink to produce a modified 293 | executable containing the modified Library. (It is understood 294 | that the user who changes the contents of definitions files in the 295 | Library will not necessarily be able to recompile the application 296 | to use the modified definitions.) 297 | 298 | b) Use a suitable shared library mechanism for linking with the 299 | Library. A suitable mechanism is one that (1) uses at run time a 300 | copy of the library already present on the user's computer system, 301 | rather than copying library functions into the executable, and (2) 302 | will operate properly with a modified version of the library, if 303 | the user installs one, as long as the modified version is 304 | interface-compatible with the version that the work was made with. 305 | 306 | c) Accompany the work with a written offer, valid for at 307 | least three years, to give the same user the materials 308 | specified in Subsection 6a, above, for a charge no more 309 | than the cost of performing this distribution. 310 | 311 | d) If distribution of the work is made by offering access to copy 312 | from a designated place, offer equivalent access to copy the above 313 | specified materials from the same place. 314 | 315 | e) Verify that the user has already received a copy of these 316 | materials or that you have already sent this user a copy. 317 | 318 | For an executable, the required form of the "work that uses the 319 | Library" must include any data and utility programs needed for 320 | reproducing the executable from it. However, as a special exception, 321 | the materials to be distributed need not include anything that is 322 | normally distributed (in either source or binary form) with the major 323 | components (compiler, kernel, and so on) of the operating system on 324 | which the executable runs, unless that component itself accompanies 325 | the executable. 326 | 327 | It may happen that this requirement contradicts the license 328 | restrictions of other proprietary libraries that do not normally 329 | accompany the operating system. Such a contradiction means you cannot 330 | use both them and the Library together in an executable that you 331 | distribute. 332 | 333 | 7. You may place library facilities that are a work based on the 334 | Library side-by-side in a single library together with other library 335 | facilities not covered by this License, and distribute such a combined 336 | library, provided that the separate distribution of the work based on 337 | the Library and of the other library facilities is otherwise 338 | permitted, and provided that you do these two things: 339 | 340 | a) Accompany the combined library with a copy of the same work 341 | based on the Library, uncombined with any other library 342 | facilities. This must be distributed under the terms of the 343 | Sections above. 344 | 345 | b) Give prominent notice with the combined library of the fact 346 | that part of it is a work based on the Library, and explaining 347 | where to find the accompanying uncombined form of the same work. 348 | 349 | 8. You may not copy, modify, sublicense, link with, or distribute 350 | the Library except as expressly provided under this License. Any 351 | attempt otherwise to copy, modify, sublicense, link with, or 352 | distribute the Library is void, and will automatically terminate your 353 | rights under this License. However, parties who have received copies, 354 | or rights, from you under this License will not have their licenses 355 | terminated so long as such parties remain in full compliance. 356 | 357 | 9. You are not required to accept this License, since you have not 358 | signed it. However, nothing else grants you permission to modify or 359 | distribute the Library or its derivative works. These actions are 360 | prohibited by law if you do not accept this License. Therefore, by 361 | modifying or distributing the Library (or any work based on the 362 | Library), you indicate your acceptance of this License to do so, and 363 | all its terms and conditions for copying, distributing or modifying 364 | the Library or works based on it. 365 | 366 | 10. Each time you redistribute the Library (or any work based on the 367 | Library), the recipient automatically receives a license from the 368 | original licensor to copy, distribute, link with or modify the Library 369 | subject to these terms and conditions. You may not impose any further 370 | restrictions on the recipients' exercise of the rights granted herein. 371 | You are not responsible for enforcing compliance by third parties with 372 | this License. 373 | 374 | 11. If, as a consequence of a court judgment or allegation of patent 375 | infringement or for any other reason (not limited to patent issues), 376 | conditions are imposed on you (whether by court order, agreement or 377 | otherwise) that contradict the conditions of this License, they do not 378 | excuse you from the conditions of this License. If you cannot 379 | distribute so as to satisfy simultaneously your obligations under this 380 | License and any other pertinent obligations, then as a consequence you 381 | may not distribute the Library at all. For example, if a patent 382 | license would not permit royalty-free redistribution of the Library by 383 | all those who receive copies directly or indirectly through you, then 384 | the only way you could satisfy both it and this License would be to 385 | refrain entirely from distribution of the Library. 386 | 387 | If any portion of this section is held invalid or unenforceable under any 388 | particular circumstance, the balance of the section is intended to apply, 389 | and the section as a whole is intended to apply in other circumstances. 390 | 391 | It is not the purpose of this section to induce you to infringe any 392 | patents or other property right claims or to contest validity of any 393 | such claims; this section has the sole purpose of protecting the 394 | integrity of the free software distribution system which is 395 | implemented by public license practices. Many people have made 396 | generous contributions to the wide range of software distributed 397 | through that system in reliance on consistent application of that 398 | system; it is up to the author/donor to decide if he or she is willing 399 | to distribute software through any other system and a licensee cannot 400 | impose that choice. 401 | 402 | This section is intended to make thoroughly clear what is believed to 403 | be a consequence of the rest of this License. 404 | 405 | 12. If the distribution and/or use of the Library is restricted in 406 | certain countries either by patents or by copyrighted interfaces, the 407 | original copyright holder who places the Library under this License may add 408 | an explicit geographical distribution limitation excluding those countries, 409 | so that distribution is permitted only in or among countries not thus 410 | excluded. In such case, this License incorporates the limitation as if 411 | written in the body of this License. 412 | 413 | 13. The Free Software Foundation may publish revised and/or new 414 | versions of the Lesser General Public License from time to time. 415 | Such new versions will be similar in spirit to the present version, 416 | but may differ in detail to address new problems or concerns. 417 | 418 | Each version is given a distinguishing version number. If the Library 419 | specifies a version number of this License which applies to it and 420 | "any later version", you have the option of following the terms and 421 | conditions either of that version or of any later version published by 422 | the Free Software Foundation. If the Library does not specify a 423 | license version number, you may choose any version ever published by 424 | the Free Software Foundation. 425 | 426 | 14. If you wish to incorporate parts of the Library into other free 427 | programs whose distribution conditions are incompatible with these, 428 | write to the author to ask for permission. For software which is 429 | copyrighted by the Free Software Foundation, write to the Free 430 | Software Foundation; we sometimes make exceptions for this. Our 431 | decision will be guided by the two goals of preserving the free status 432 | of all derivatives of our free software and of promoting the sharing 433 | and reuse of software generally. 434 | 435 | NO WARRANTY 436 | 437 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 438 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 439 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 440 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 441 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 442 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 443 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 444 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 445 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 446 | 447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 448 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 449 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 450 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 451 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 452 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 453 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 454 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 455 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 456 | DAMAGES. 457 | 458 | END OF TERMS AND CONDITIONS 459 | 460 | How to Apply These Terms to Your New Libraries 461 | 462 | If you develop a new library, and you want it to be of the greatest 463 | possible use to the public, we recommend making it free software that 464 | everyone can redistribute and change. You can do so by permitting 465 | redistribution under these terms (or, alternatively, under the terms of the 466 | ordinary General Public License). 467 | 468 | To apply these terms, attach the following notices to the library. It is 469 | safest to attach them to the start of each source file to most effectively 470 | convey the exclusion of warranty; and each file should have at least the 471 | "copyright" line and a pointer to where the full notice is found. 472 | 473 | 474 | Copyright (C) 475 | 476 | This library is free software; you can redistribute it and/or 477 | modify it under the terms of the GNU Lesser General Public 478 | License as published by the Free Software Foundation; either 479 | version 2.1 of the License, or (at your option) any later version. 480 | 481 | This library is distributed in the hope that it will be useful, 482 | but WITHOUT ANY WARRANTY; without even the implied warranty of 483 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 484 | Lesser General Public License for more details. 485 | 486 | You should have received a copy of the GNU Lesser General Public 487 | License along with this library; if not, write to the Free Software 488 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 489 | USA 490 | 491 | Also add information on how to contact you by electronic and paper mail. 492 | 493 | You should also get your employer (if you work as a programmer) or your 494 | school, if any, to sign a "copyright disclaimer" for the library, if 495 | necessary. Here is a sample; alter the names: 496 | 497 | Yoyodyne, Inc., hereby disclaims all copyright interest in the 498 | library `Frob' (a library for tweaking knobs) written by James Random 499 | Hacker. 500 | 501 | , 1 April 1990 502 | Ty Coon, President of Vice 503 | 504 | That's all there is to it! 505 | -------------------------------------------------------------------------------- /MainWindow.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |