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