Thema: Delphi Operator not applicable

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#3

Re: Operator not applicable

  Alt 21. Apr 2007, 08:20
Zitat von alzaimar:
Delphi ist typensicher, d.h. also, das '0' nicht mit einem Interface kompatibel ist.

Verwende 'nil' oder die Funktion 'Assigned', also:

Delphi-Quellcode:
If IInterface <> nil Then
  ...
If Assigned (IInterface) Then
  ...
Und deklariere den Parameter auch als LongInt.

Delphi-Quellcode:
function GetPresetCount(var pnPresetCount: LongInt): HRESULT;
Var
  IntVal: LongInt;

begin
  If Assigned(IInterface) Then
    begin
       IntVal := 0;
       result := IWmpEffects.GetPresetCount(IntVal);
       pnPresetCount := IntVal;

    end else
    result := -1;

end;
geht leider auch nicht
[Pascal Error] WMPUnit.pas(218): E2008 Incompatible types

Das !
If IInterface <> nil Then gibt den gleiche Fehler zurück wie vorher
[Pascal Error] WMPUnit.pas(218): E2015 Operator not applicable to this operand type

Auch das bleibt gleich.
[Pascal Error] WMPUnit.pas(221): E2018 Record, object or class type required für den bereich (IntVal);
obwohl als LongInt declariert.

EDIT:

Laut MS;

Zitat:
The GetPresetCount method gets the preset count.
Syntax

HRESULT GetPresetCount(
Long* count
);

Parameters
count

[out] Long value specifying the preset count.
Return Values

If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.
Remarks
Called by Windows Media Player to obtain the number of presets contained by the visualization.
Requirements
Version: Windows Media Player version 7.0 or later.
Header: Include effects.h.

gruss Emil
  Mit Zitat antworten Zitat