Public feed #726224

Something

public text v1 · immutable
Raw Edit
·published 2007-10-04 23:45 UTC
rendered paste body
procedure WMPOpenExt(Name: string; Ext: string; Desc: string);
var
  I: Integer;
  P: Integer;
  WMPExt: string;
  WMPDesc: string;
begin
  if WMPCount < (WMPOpenMaxChar - 3) then  //minus 3 because you at least need room for a '*.' and mystical char WMP adds
  begin
    WMPOpenPresent(Ext);

    if RegQueryStringValue(HKLM, PlayerExts + 'Types', Uppercase(Name), WMPExt) then
    begin
      if (WMPCount + Length(Ext)) > WMPOpenMaxChar then Exit; //if only adding to current entry it can be equal to WMPOpenMaxChar
      if WMPExt <> '' then
        Ext := WMPExt + ';' + Ext;
      WMPCount := WMPCount - Length(WMPExt) - 1;
    end
    else
      if (WMPCount + Length(Ext)) >= WMPOpenMaxChar then Exit;

    WMPCount := WMPCount + P;
    RegWriteStringValue(HKLM, PlayerExts + 'Types', Uppercase(Name), Ext);
    RegWriteStringValue(HKLM, PlayerExts + 'MUIDescriptions', Uppercase(Name), Desc);
    if RegQueryStringValue(HKLM, PlayerExts + 'Descriptions', Uppercase(Name), WMPDesc) then
    begin
      if WMPDesc[Length(WMPDesc)] = ')' then
        Delete(WMPDesc, Length(WMPDesc), 1);
      RegWriteStringValue(HKLM, PlayerExts + 'Descriptions', Uppercase(Name), WMPDesc + ';' + Ext + ')');
    end
    else
      RegWriteStringValue(HKLM, PlayerExts + 'Descriptions', Uppercase(Name), Desc + ' (' + Ext + ')');
  end;
end;