Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

AW: DirectShow: IMediaEvent.GetEvent Syntaxfehler

  Alt 28. Okt 2017, 16:14
Wo kann ich die nachschlagen?
Für MS APIs/Interfaces, kannst du in der eigentlich als erste Anlaufstelle immer das MSDN konsultieren. Meistens hast du für die C-Typen in Delphi einen gleichnamigen Typ.

LONG ist auch tatsächlich gleich Integer , bloß hast du den Zeiger unterschlagen. Mach mal ein @ vor die ersten 3 Parameter, dann sollte es ohne weitere Änderungen kompilieren.
Delphi-Quellcode:
var
  hr: HResult;
  iEventCode: integer;
  {$IF CompilerVersion < 25}
  iParam1, iParam2: integer;
  {$ELSE}
  iParam1, iParam2: LONG_PTR;
  {$LEGACYIFEND ON}
  {$IFEND}
Ich arbeite mit dem Kram jetzt schon 3 Monate es ist definitiv LONG_PTR;

Delphi-Quellcode:
  {$HPPEMIT 'typedef System::DelphiInterface<IMediaEvent> _di_IMediaEvent;'}
  {$EXTERNALSYM IMediaEvent}
  IMediaEvent = interface(IDispatch)
    ['{56A868B6-0AD4-11CE-B03A-0020AF0BA770}']
    (*** IMediaEvent methods ***)
    function GetEventHandle(out hEvent: OAEVENT): HResult; stdcall;
    function GetEvent(out lEventCode: Longint; out lParam1, lParam2: Long_ptr;
        msTimeout: DWORD): HResult; stdcall;
    function WaitForCompletion(msTimeout: DWORD; out pEvCode: Longint):
        HResult; stdcall;
    function CancelDefaultHandling(lEvCode: Longint): HResult; stdcall;
    function RestoreDefaultHandling(lEvCode: Longint): HResult; stdcall;
    function FreeEventParams(lEvCode: Longint; lParam1, lParam2: Longint):
        HResult; stdcall;
  end;
gruss
  Mit Zitat antworten Zitat