function WMPOpenExt(Name: string; Exts: string; Desc: string): boolean; var WMPExt: string; begin Result := false; if (WMPCount + Length(Exts)) >= WMPOpenMaxChar then Exit; if Exts <> '' then begin if RegQueryStringValue(HKLM, PlayerExts + 'Types', Uppercase(Name), WMPExt) then begin Exts := WMPExt + ';' + Exts; WMPCount := WMPCount - Length(WMPExt) - 1; end; WMPCount := WMPCount + Length(Exts) + 1; RegWriteStringValue(HKLM, PlayerExts + 'Types', Uppercase(Name), Exts); RegWriteStringValue(HKLM, PlayerExts + 'Descriptions', Uppercase(Name), Desc + ' (' + Exts + ')'); RegWriteStringValue(HKLM, PlayerExts + 'MUIDescriptions', Uppercase(Name), Desc); end; Result := true; end;