<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
	<Package Name="CCExtractor" Language="1033" Version="$(AppVersion)" Manufacturer="CCExtractor development" UpgradeCode="e70dbe37-bb04-4c39-bedc-966a6b073bcf" InstallerVersion="500" Scope="perMachine">
		<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed."/>
		<MediaTemplate EmbedCab="yes"/>
		<Feature Id="CCX" Title="CCExtractor Setup" Level="1">
			<ComponentGroupRef Id="CCX_Components_MainFolder"/>
			<ComponentGroupRef Id="CCX_Components_tessdata"/>
			<ComponentGroupRef Id="CCX_Components_MainFolder_data"/>
			<ComponentGroupRef Id="CCX_Components_MainFolder_data_flutter_assets"/>
			<ComponentGroupRef Id="CCX_Components_MainFolder_data_flutter_assets_assets"/>
			<ComponentGroupRef Id="CCX_Components_MainFolder_data_flutter_assets_fonts"/>
			<ComponentGroupRef Id="CCX_Components_MainFolder_data_flutter_assets_shaders"/>
			<ComponentGroupRef Id="CCX_Components_MainFolder_data_flutter_assets_cupertino"/>
			<ComponentGroupRef Id="CCX_Components_MainFolder_data_flutter_assets_window_manager"/>
			<ComponentRef Id="ApplicationShortcutDesktop"/>
		</Feature>
		<Icon Id="ccxgui.exe" SourceFile="./installer/ccxgui.exe"/>
		<!-- Use custom UI without license dialog -->
		<UIRef Id="CustomInstallDirUI" />
		<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
		<!-- Skip path validation (avoids "must be on local hard drive" errors) -->
		<Property Id="WIXUI_DONTVALIDATEPATH" Value="1" />
	</Package>
	<Fragment>
		<StandardDirectory Id="DesktopFolder">
        <Component Id="ApplicationShortcutDesktop" Guid="*">
            <Shortcut Id="ApplicationDesktopShortcut"
                Name="CCExtractor"
                Description="Run CCExtractor"
                Target="[INSTALLFOLDER]ccxgui.exe"
                WorkingDirectory="INSTALLFOLDER"/>
            <RemoveFolder Id="RemoveDesktopShortcut" On="uninstall"/>
            <RegistryValue
                Root="HKCU"
                Key="Software\CCExtractor\ccextractor"
                Name="installed"
                Type="integer"
                Value="1"
                KeyPath="yes"/>
        </Component>
    </StandardDirectory>
		<StandardDirectory Id="ProgramFiles6432Folder">
			<Directory Id="INSTALLFOLDER" Name="CCExtractor">
				<Directory Id="CCX_tessdata" Name="tessdata"/>
				<Directory Id="CCX_data" Name="data">
					<Directory Id="CCX_data_flutter_assets" Name="flutter_assets">
						<Directory Id="CCX_data_flutter_assets_assets" Name="assets"/>
						<Directory Id="CCX_data_flutter_assets_fonts" Name="fonts"/>
						<Directory Id="CCX_data_flutter_assets_shaders" Name="shaders"/>
						<Directory Id="dirEE44DD2D485FE70BEAFB55755745AB6E" Name="packages">
							<Directory Id="dir382F01892F72FB688A688BE6E01B93A3" Name="cupertino_icons">
								<Directory Id="CCX_data_flutter_assets_cupertino" Name="assets"/>
							</Directory>
							<Directory Id="dirWindowManager" Name="window_manager">
								<Directory Id="dirWindowManagerImages" Name="images"/>
							</Directory>
						</Directory>
					</Directory>
				</Directory>
			</Directory>
		</StandardDirectory>
	</Fragment>
	<Fragment>
		<ComponentGroup Id="CCX_Components_MainFolder" Directory="INSTALLFOLDER">
			<!-- CCExtractor executable -->
			<Component Guid="{2D6CDFAD-A645-4929-9518-B43788B9E5F3}">
				<File Id="CCX_Full_executable" Source="./installer/ccextractorwinfull.exe" KeyPath="yes"/>
			</Component>
			<!-- FFmpeg libraries (version 60/58/9/7/4) -->
			<Component Guid="{5DA8F5F9-922B-45E1-B0A9-CB241996D9EE}">
				<File Id="CCX_avcodec" Source="./installer/avcodec-60.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{00E5F91A-D4D9-4A3D-B498-1CF45D18770F}">
				<File Id="CCX_avformat" Source="./installer/avformat-60.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{AA5FE610-7566-483C-84D0-70B0435E08B0}">
				<File Id="CCX_avutil" Source="./installer/avutil-58.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{334ABDD6-FDBB-41EB-87FE-DAD3295DAE2D}">
				<File Id="CCX_swresample" Source="./installer/swresample-4.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{888B47CF-0377-490A-8B7E-341D2C71EAD0}">
				<File Id="CCX_swscale" Source="./installer/swscale-7.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}">
				<File Id="CCX_avdevice" Source="./installer/avdevice-60.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{B2C3D4E5-F678-9012-BCDE-F12345678901}">
				<File Id="CCX_avfilter" Source="./installer/avfilter-9.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{C3D4E5F6-7890-1234-CDEF-123456789012}">
				<File Id="CCX_postproc" Source="./installer/postproc-57.dll" KeyPath="yes"/>
			</Component>
			<!-- GPAC and SSL libraries -->
			<Component Guid="{D4E5F678-9012-3456-DEF0-234567890123}">
				<File Id="CCX_libgpac" Source="./installer/libgpac.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{E5F67890-1234-5678-EF01-345678901234}">
				<File Id="CCX_OpenSVCDecoder" Source="./installer/OpenSVCDecoder.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{F6789012-3456-7890-F012-456789012345}">
				<File Id="CCX_libcryptoMD" Source="./installer/libcryptoMD.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{07890123-4567-8901-0123-567890123456}">
				<File Id="CCX_libsslMD" Source="./installer/libsslMD.dll" KeyPath="yes"/>
			</Component>
			<!-- Flutter GUI -->
			<Component Guid="{8B69210B-5091-4C63-8902-E0ADDBE2C080}">
				<File Source="./installer/ccxgui.exe" KeyPath="yes"/>
			</Component>
			<Component Guid="{1B37F14A-3BA6-4837-8A6F-6EA01A25DA26}">
				<File Source="./installer/file_selector_windows_plugin.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{B276C96D-9737-4B8C-B55B-60F392DED331}">
				<File Source="./installer/url_launcher_windows_plugin.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{4B627AA9-55DD-40ED-99F9-54F67EC73887}">
				<File Source="./installer/flutter_windows.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{18901234-5678-9012-1234-678901234567}">
				<File Source="./installer/desktop_drop_plugin.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{BE7FE765-EBA8-4FAB-8864-8561C50D39CF}">
				<File Source="./installer/screen_retriever_plugin.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{29012345-6789-0123-2345-789012345678}">
				<File Source="./installer/window_manager_plugin.dll" KeyPath="yes"/>
			</Component>
			<!-- VC++ Runtime -->
			<Component Guid="{32F0A64B-0C07-4807-A48C-714B2533A03C}">
				<File Source="./installer/msvcp140.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{8425DEB5-8CF4-4672-AE45-561CF76B2072}">
				<File Source="./installer/vcruntime140.dll" KeyPath="yes"/>
			</Component>
			<Component Guid="{1F3DBC7E-25D5-441D-9B41-96C33FEA5157}">
				<File Source="./installer/vcruntime140_1.dll" KeyPath="yes"/>
			</Component>
		</ComponentGroup>
		<ComponentGroup Id="CCX_Components_MainFolder_data" Directory="CCX_data">
			<Component Id="cmp205CD51FCB7438CA9DDF9D318D5BDD93" Guid="{50D63F41-6529-4009-9092-F4D5B60DDF1B}">
				<File Id="filBBF0A8ED8BF5DEEA3D5FE3E0B96C18FF" KeyPath="yes" Source="./installer/data/app.so"/>
			</Component>
			<Component Id="cmp3BB4C81F1F7BAB8E1AEB858EBC85CC1E" Guid="{88E94229-FBE7-4DC8-B9E2-B5E27FFB844C}">
				<File Id="fil3F969272E8EAC0F75CC6D464590D2FBE" KeyPath="yes" Source="./installer/data/icudtl.dat"/>
			</Component>
		</ComponentGroup>
		<ComponentGroup Id="CCX_Components_MainFolder_data_flutter_assets" Directory="CCX_data_flutter_assets">
			<Component Id="cmpAssetManifestBin" Guid="{3A012345-6789-0123-3456-890123456789}">
				<File Id="filAssetManifestBin" KeyPath="yes" Source="./installer/data/flutter_assets/AssetManifest.bin"/>
			</Component>
			<Component Id="cmp1C63471C238EEA92D0AE37BC7DF9E605" Guid="{DEAF277D-3D05-4B37-A732-9514B503B74A}">
				<File Id="fil3F43BEEF0A85EE6619E4674CA43CB616" KeyPath="yes" Source="./installer/data/flutter_assets/AssetManifest.json"/>
			</Component>
			<Component Id="cmp414DC13EF11DED7194619DD3FC5F4CA7" Guid="{E66832FA-6880-4249-92A0-A26A4FF0A1F9}">
				<File Id="filD6CD37343140A4FABEA77420A8B86B57" KeyPath="yes" Source="./installer/data/flutter_assets/FontManifest.json"/>
			</Component>
			<Component Id="cmp4AD05995360EA9B961C2D73FE38274D2" Guid="{B09977A1-1C36-4F5D-B3BC-394D10AC950D}">
				<File Id="filC4871B1F6646D8021500E7E62CF93FAC" KeyPath="yes" Source="./installer/data/flutter_assets/NOTICES.Z"/>
			</Component>
		</ComponentGroup>
		<ComponentGroup Id="CCX_Components_MainFolder_data_flutter_assets_assets" Directory="CCX_data_flutter_assets_assets">
			<Component Id="cmp5F6AEEA1DB53EC5D0D51921A0B62098C" Guid="{CECCAC58-B818-42E2-849A-BFA4A8CA4FBE}">
				<File Id="fil0E47318EAF44F6EEF60A89C92FCD2FAA" KeyPath="yes" Source="./installer/data/flutter_assets/assets/ccextractor"/>
			</Component>
			<Component Id="cmpDA8A6D10314F9C5A931AB86118A106CC" Guid="{75DE9E26-1024-4E83-8995-078624187483}">
				<File Id="fil72BB9315DC954394F9980ECD2DA6D21F" KeyPath="yes" Source="./installer/data/flutter_assets/assets/ccx.svg"/>
			</Component>
		</ComponentGroup>
		<ComponentGroup Id="CCX_Components_MainFolder_data_flutter_assets_fonts" Directory="CCX_data_flutter_assets_fonts">
			<Component Id="cmp97B1795B6861175BEF48B71FC703EDA6" Guid="{292269F8-9FC7-464A-A9AB-AF5BA97D7F06}">
				<File Id="fil26D47F100D1B90F2759D0EAE797393FC" KeyPath="yes" Source="./installer/data/flutter_assets/fonts/MaterialIcons-Regular.otf"/>
			</Component>
		</ComponentGroup>
		<ComponentGroup Id="CCX_Components_MainFolder_data_flutter_assets_cupertino" Directory="CCX_data_flutter_assets_cupertino">
			<Component Id="cmp18EDD5C842814546AE2A43759CD36C77" Guid="{30AFB9BB-1C7D-4CDB-ADCA-D0773F152B45}">
				<File Id="fil341334402AF57DB92DF3F7C92E983317" KeyPath="yes" Source="./installer/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf"/>
			</Component>
		</ComponentGroup>
		<ComponentGroup Id="CCX_Components_MainFolder_data_flutter_assets_shaders" Directory="CCX_data_flutter_assets_shaders">
			<Component Id="cmpInkSparkleFrag" Guid="{4B012345-6789-0123-4567-901234567890}">
				<File Id="filInkSparkleFrag" KeyPath="yes" Source="./installer/data/flutter_assets/shaders/ink_sparkle.frag"/>
			</Component>
		</ComponentGroup>
		<ComponentGroup Id="CCX_Components_MainFolder_data_flutter_assets_window_manager" Directory="dirWindowManagerImages">
			<Component Id="cmpWmClose" Guid="{5C012345-6789-0123-5678-012345678901}">
				<File Id="filWmClose" KeyPath="yes" Source="./installer/data/flutter_assets/packages/window_manager/images/ic_chrome_close.png"/>
			</Component>
			<Component Id="cmpWmMaximize" Guid="{6D012345-6789-0123-6789-123456789012}">
				<File Id="filWmMaximize" KeyPath="yes" Source="./installer/data/flutter_assets/packages/window_manager/images/ic_chrome_maximize.png"/>
			</Component>
			<Component Id="cmpWmMinimize" Guid="{7E012345-6789-0123-7890-234567890123}">
				<File Id="filWmMinimize" KeyPath="yes" Source="./installer/data/flutter_assets/packages/window_manager/images/ic_chrome_minimize.png"/>
			</Component>
			<Component Id="cmpWmUnmaximize" Guid="{8F012345-6789-0123-8901-345678901234}">
				<File Id="filWmUnmaximize" KeyPath="yes" Source="./installer/data/flutter_assets/packages/window_manager/images/ic_chrome_unmaximize.png"/>
			</Component>
		</ComponentGroup>
		<!-- Tesseract OCR data files for HardSubx feature -->
		<ComponentGroup Id="CCX_Components_tessdata" Directory="CCX_tessdata">
			<Component Id="cmpTessdataEng" Guid="{A1234567-8901-2345-6789-0123456789AB}">
				<File Id="filEngTraineddata" KeyPath="yes" Source="./installer/tessdata/eng.traineddata"/>
			</Component>
			<Component Id="cmpTessdataOsd" Guid="{B2345678-9012-3456-7890-123456789ABC}">
				<File Id="filOsdTraineddata" KeyPath="yes" Source="./installer/tessdata/osd.traineddata"/>
			</Component>
		</ComponentGroup>
	</Fragment>
</Wix>

