![]() |
Typlib import
Hallo zusammen,
gehe ich recht in der Annahme, dass hier beim Import etwas schief gelaufen ist? OLE/COM Viewer: [ odl, uuid(A80DEA53-B6BA-11D3-B3AC-00104B066E1A), helpstring("IWMFileIO Interface"), dual, oleautomation ] interface IWMFileIO : IDispatch { [id(0x00000001), helpstring("method ExportOriginal")] HRESULT ExportOriginal([in] VARIANT_BOOL fOverwrite); [id(0x00000002), helpstring("method ImportOriginal")] HRESULT ImportOriginal([in] VARIANT_BOOL fOverwrite); [id(0x00000003), propget, helpstring("property aWMStream")] HRESULT aWMStream([out, retval] IWMStream** ppIWMStream); [id(0x00000003), propput, helpstring("property aWMStream")] HRESULT aWMStream([in] IWMStream* ppIWMStream); [id(0x00000003), propputref, helpstring("property aWMStream")] HRESULT aWMStream([in] IWMStream* ppIWMStream); [id(0x00000004), propget, helpstring("property bstrOriginalFileName")] HRESULT bstrOriginalFileName([out, retval] BSTR* pVal); [id(0x00000004), propput, helpstring("property bstrOriginalFileName")] HRESULT bstrOriginalFileName([in] BSTR pVal); [id(0x00000005), propget, helpstring("property aChunkSize")] HRESULT aChunkSize([out, retval] long* pVal); [id(0x00000005), propput, helpstring("property aChunkSize")] HRESULT aChunkSize([in] long pVal); [id(0x00000006), propget, hidden, helpstring("property aWMStreamEx")] HRESULT aWMStreamEx([out, retval] IWMStreamEx** ppIWMStreamEx); [id(0x00000006), propput, hidden, helpstring("property aWMStreamEx")] HRESULT aWMStreamEx([in] IWMStreamEx* ppIWMStreamEx); [id(0x00000006), propputref, hidden, helpstring("property aWMStreamEx")] HRESULT aWMStreamEx([in] IWMStreamEx* ppIWMStreamEx); }; Angelegte Unit in Delphi:
Delphi-Quellcode:
Wie kann ich dieses Problem beheben?
// *********************************************************************//
// Schnittstelle: IWMFileIO // Flags: (4416) Dual OleAutomation Dispatchable // GUID: {A80DEA53-B6BA-11D3-B3AC-00104B066E1A} // *********************************************************************// IWMFileIO = interface(IDispatch) ['{A80DEA53-B6BA-11D3-B3AC-00104B066E1A}'] procedure ExportOriginal(fOverwrite: WordBool); safecall; procedure ImportOriginal(fOverwrite: WordBool); safecall; function Get_aWMStream: IWMFileStream; safecall; procedure Set_aWMStream(const ppIWMStream: IWMFileStream); safecall; procedure _Set_aWMStream(const ppIWMStream: IWMFileStream); safecall; function Get_bstrOriginalFileName: WideString; safecall; procedure Set_bstrOriginalFileName(const pVal: WideString); safecall; function Get_aChunkSize: Integer; safecall; procedure Set_aChunkSize(pVal: Integer); safecall; function Get_aWMStreamEx: IWMStreamEx; safecall; procedure Set_aWMStreamEx(const ppIWMStreamEx: IWMStreamEx); safecall; procedure _Set_aWMStreamEx(const ppIWMStreamEx: IWMStreamEx); safecall; property aWMStream: IWMFileStream read Get_aWMStream write Set_aWMStream; property bstrOriginalFileName: WideString read Get_bstrOriginalFileName write Set_bstrOriginalFileName; property aChunkSize: Integer read Get_aChunkSize write Set_aChunkSize; property aWMStreamEx: IWMStreamEx read Get_aWMStreamEx write Set_aWMStreamEx; end; Gruß Steppo |
Re: Typlib import
Zitat:
Für mich sieht die Übersetzung absolut korrekt aus. (Wobei ein Mensch nicht alle Methoden und Properties in kurzer Zeit kontrollieren kann; das geht nur Stichprobenartig) |
Re: Typlib import
Die Eigenschaft aWMStream sollte eigentlich vom Typ IWMStream und nicht von Typ IWMFileStream sein.
|
Re: Typlib import
Zitat:
Es kommt nun auch auf deine Delphi Version an. Alles unterhalb von D 5.02 muss man in Bezug auf den TLB Import als fehlerhaft betrachten. Du könntest die falsch importierte xxx_TLB.pas auch von Hand korrigieren. Dabei sollte man alle korrigierten Zeilen zusätzlich in einer separaten Textdatei aufbewaren, da die Unit ja jederzeit von Delphi überschrieben werden könnte. |
Re: Typlib import
Entschuldige, habe vergessen die Version der Entwicklungsumgebung anzugeben. Ich arbeite mit Delphi 6 Enterprise. Auch ein löschen der TLB und ein erneuter Import brachten das gleiche Ergebnis.
Wie gehe ich nun am besten Vor? Gruß Steppo |
Re: Typlib import
Zitat:
Zitat:
1.) IWMFileStream durch IWMStream in der Unit xxx_TLB.PAS von Hand ersetzen 2.) property aWMStream nicht benützen. Stattdessen nur property aWMStreamEx benützen. So wird das Problem umgangen. |
Re: Typlib import
Herzlichen Dank shmia
Gruß Steppo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz