Thema: Delphi Wie unterscheiden ?

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#6

Re: Wie unterscheiden ?

  Alt 29. Mai 2007, 12:31
Hi shmia

Danke werd mir das mal anschauen und den code dementsprechend ändern.
Danke für deine Informationen.

EDIT:

Delphi-Quellcode:
procedure TBassWMPVis.LoadWMPPlugin(sCLSID: TGUID; Index: Integer);
var
  comObjType : IWMPEffects;
  comObjType2 : IWMPEffects2;
  WStrVal : string;
begin

  _IWmpEffects := nil;
  _IWmpEffects2 := nil;

  try
    comObjType := CreateComObject(sCLSID) as IWMPEffects;
    if (comObjType <> nil)then
    begin
      if Supports(comObjType, IWMPEffects2, comObjType2) then
      begin
        _IWmpEffects2 := comObjType2;
        GetTitle(WStrVal);
        BassWMPVis1.SetPlgDescription(WStrVal);
        SetIsCOMPlugin(true);
        comObjType2 := nil;
        exit;
        end;
      end else
  except
    SetIsCOMPlugin(false);
    exit;
  end;
  begin
    _IWmpEffects := comObjType;
    GetTitle(WStrVal);
    BassWMPVis1.SetPlgDescription(WStrVal);
    SetIsCOMPlugin(true);
  end;
end;
Der unterschied ist jetzt nur das ich keine 2 ComObjecte erstellen muss.
_IWmpEffects , _IWmpEffects2 muss ich aber so wie bisher weiterhin als vergleich
zwischen den Interface funktionen verwenden.

Wie soll ich sonst wissen wann ich IWmpEffects2.create(VisWindowHandle) erstellen kann.
Das ist mein Hauptproblem gewesen dies zu vereinfachen.

So muss ich nun vergleichen was mehr als 'nil' ist.
Und danach die aktionen ausführen.

Auf jedenfall ist diese lösung um einiges besser als die von mir verwendete

gruss Emil
  Mit Zitat antworten Zitat