[Version]
Signature   = "$WINDOWS NT$"
Class       = SoftwareComponent
ClassGuid   = {5c4c3332-344d-483c-8739-259e934c9cc8}
Provider    = %Swap%
DriverVer   = 08/03/2017,1.0.5.1
CatalogFile = SwapAPO.cat

[SourceDisksNames]
222="Swap APO Installation Disk",,,

[SourceDisksFiles]
DelayAPO.dll=222
SwapAPO.dll=222

[DestinationDirs]
SfxFx.CopyList=11 ; %windir%\system32

[SignatureAttributes]
DelayAPO.dll=SignatureAttributes.PETrust
SwapAPO.dll=SignatureAttributes.PETrust

[SignatureAttributes.PETrust]
PETrust=true

[Manufacturer]
%Swap% = ApoComponents,NTamd64

[ApoComponents.NTamd64]
%Apo.ComponentDesc% = ApoComponent_Install,SWC\VEN_MSFT&AID_SWAP01

[ApoComponent_Install]
CopyFiles = SfxFx.CopyList
AddReg    = SwapAPO.AddReg

[ApoComponent_Install.Services]
AddService = ,2    ; no function driver

[SfxFx.CopyList]
DelayAPO.dll
SwapAPO.dll

[SwapAPO.AddReg]
; Swap Stream effect APO COM registration
HKCR,CLSID\%SWAP_FX_STREAM_CLSID%,,,%SFX_FriendlyName%
HKCR,CLSID\%SWAP_FX_STREAM_CLSID%\InProcServer32,,0x00020000,%%SystemRoot%%\System32\swapapo.dll
HKCR,CLSID\%SWAP_FX_STREAM_CLSID%\InProcServer32,ThreadingModel,,"Both"

; Swap Mode effect APO COM registration
HKCR,CLSID\%SWAP_FX_MODE_CLSID%,,,%MFX_FriendlyName%
HKCR,CLSID\%SWAP_FX_MODE_CLSID%\InProcServer32,,0x00020000,%%SystemRoot%%\System32\swapapo.dll
HKCR,CLSID\%SWAP_FX_MODE_CLSID%\InProcServer32,ThreadingModel,,"Both"

; Delay Stream effect APO COM registration
HKCR,CLSID\%DELAY_FX_STREAM_CLSID%,,,%SFX_FriendlyName%
HKCR,CLSID\%DELAY_FX_STREAM_CLSID%\InProcServer32,,0x00020000,%%SystemRoot%%\System32\delayapo.dll
HKCR,CLSID\%DELAY_FX_STREAM_CLSID%\InProcServer32,ThreadingModel,,"Both"

; Delay Mode effect APO COM registration
HKCR,CLSID\%DELAY_FX_MODE_CLSID%,,,%MFX_FriendlyName%
HKCR,CLSID\%DELAY_FX_MODE_CLSID%\InProcServer32,,0x00020000,%%SystemRoot%%\System32\delayapo.dll
HKCR,CLSID\%DELAY_FX_MODE_CLSID%\InProcServer32,ThreadingModel,,"Both"

; Swap Stream effect APO registration
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "FriendlyName", ,%SFX_FriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "Flags", 0x00010001, %APO_FLAG_DEFAULT%
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_STREAM_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

; Swap Mode effect APO registration
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "FriendlyName", ,%MFX_FriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "Flags", 0x00010001, %APO_FLAG_DEFAULT%
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%SWAP_FX_MODE_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

; Delay Stream effect APO registration
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "FriendlyName", ,%SFX_FriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "Flags", 0x00010001, %APO_FLAG_DEFAULT%
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_STREAM_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

; Delay Mode effect APO registration
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "FriendlyName", ,%MFX_FriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "Flags", 0x00010001, %APO_FLAG_DEFAULT%
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%DELAY_FX_MODE_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

[Strings]
Swap              = "Swap"
Apo.ComponentDesc = "Swap APO"

SWAP_FX_STREAM_CLSID    = "{B48DEA3F-D962-425a-8D9A-9A5BB37A9904}"
SWAP_FX_MODE_CLSID      = "{06687E71-F043-403A-BF49-CB591BA6E103}"
DELAY_FX_STREAM_CLSID   = "{77802b45-a5a0-455a-8204-3dba30eee7b4}"
DELAY_FX_MODE_CLSID     = "{b6c7032b-1f17-4cc6-bcdb-fd96deabc8a9}"
FX_UI_CLSID                = "{19166F23-5F08-47F9-BB57-9F57A977D88E}"
AUDIOENDPOINT_EXT_UI_CLSID = "{6C57B2A2-91F5-4b90-93D5-FAB82485ECA6}"

SFX_FriendlyName = "Audio Proxy APO Sample (stream effect)"
MFX_FriendlyName = "Audio Proxy APO Sample (mode effect)"

ProviderName = "TODO-Set-Provider"
MfgName      = "TODO-Set-Manufacturer"
MsCopyRight  = "TODO-Set-Copyright"

APO_FLAG_DEFAULT = 0x0000000e

REG_BINARY = 0x00000001
REG_DWORD = 0x00010001
REG_MULTI_SZ = 0x00010000
