Seite 1 von 2
COMate gut für abcAVI.DLL?
Verfasst: 07.09.2008 16:58
von scholly
moin, moin...
Bin jetzt am Wochenende mehrfach über
COMate gestolpert.
Kann es sein, daß ich damit die
abcAVI.DLL nutzen kann?
Die COMate-doks versteh ich nich, aber aus dem
Skype-Dll-Thread extrapolier ich mal, daß das gehen sollte/könnte.
atagsdll.chm hat geschrieben:abcAVI DLL is a dynamic link library (DLL) written in agreement with COM & OLE Automation standards for reading and writing content of informative tags (INFO tags) of AVI files.
Sollte doch eigentlich ein dankbarer Klient sein, oder?
Ich hab mir die COMate-Beispiele angeguckt, komm aber ums verrecken nich drauf, wie ich die Funktionen der DLL nutzen kann.
Mag wer helfen?
Oder gibts irgendwo schon irgendwo ein Tutorial a la "DLL-Doku + COMate -> PB-Code", daß ich zu blöd bin zu finden?
Sowas wie "COMate für dummies"

Verfasst: 07.09.2008 17:13
von ts-soft
Welche Methoden das Object unterstützt sollteste der Doku entnehmen
können, desweiteren ist der Objectname zu erfahren und das Object ist
natürlich zu registrieren, falls nicht schon geschehen.
Verfasst: 07.09.2008 17:37
von scholly
Methoden?
Sind das die "functions declared in IExtendedAVITags interface"?
Anscheinend.
Object? Objectname? registrieren?
Da bin ich mal wieder in Böhmen angekommen.

Verfasst: 07.09.2008 17:42
von ts-soft
ActiveX usw. muß registriert sein, das geschieht meist mit einem Setup, kann
aber auch mit "COMate_RegisterCOMServer" nachgeholt werden,
regsvr32.exe kann man auch dafür verwenden.
Erstmal alle Demos durcharbeiten, auch die OCX, weil das kommt Deiner
DLL am nächsten.
Verfasst: 07.09.2008 18:18
von scholly
Bei aller Dankbarkeit für Deinen Hilfeversuch, aber das ist für mich so, als wenn Du einem Farbenblinden sagst:
Nimm aus dem Kartenhaufen alle Blautöne und sortiere sie nach Intensität.
Guck aber erst im grünen und roten Stapel nach, in welcher Reihenfolge.
Vielleicht bin ich ja mal wieder ganz blind, aber bei den Beispielen finde ich keins, das mit einer DLL zu tun hat und aus dem ich versuchen könnte zu lernen/verstehen.
Verfasst: 07.09.2008 18:32
von ts-soft
Auch eine OCX ist eine DLL, genauso wie eine DRV usw., eine DLL muß nicht
mit der Extension DLL enden um eine zu sein
Ich hab leider nicht das bedürfnis, dieses für mich nutzlose Programmpaket
zu installieren. Vielleicht findet sich ja jemand anders.
Die DLL hat ja anscheinend ein COM und ein C Interface, die Anwendung des
C-Interfaces, also als normalle DLL, sollte eigentlich einfacher sein, wenn Du
mit COM und Interfaces nichts gemacht hast.
Mehr als allgemeine Tipps sind von meiner Seite also nicht möglich.
Gruß
Thomas
Verfasst: 07.09.2008 18:34
von Little John
Ich glaube es ist ganz gut, zum besseren Verständnis der Zusammenhänge zunächst in Ruhe einiges in der beiliegenden Hilfedatei COMate.chm zu lesen.
Gruß, Little John
Verfasst: 07.09.2008 19:33
von Kiffi
@scholly: wenn Du noch ein wenig warten kannst: Ich habe da grade einen
schwedischen Codeschnippsel aufgetan. Den müsste ich konvertieren, aber
"so gut ist mein schwedisch nun auch wieder nicht"
Grüße ... Kiffi
Verfasst: 07.09.2008 19:38
von marco2007
Geht`s Dir jetzt speziell um die Avi-tags oder um die Benutzung von abcAVI.DLL?
http://www.fastgraph.com/help/avi_header_format.html
Code: Alles auswählen
DataSection
avi:
IncludeBinary "C:\WINDOWS\clock.avi"
EndDataSection
For i=0 To 52 Step 4
Debug PeekL(?avi+32+i)
Next
lg
Marco
Verfasst: 07.09.2008 19:59
von Kiffi
so, oder so ähnlich
Code: Alles auswählen
XIncludeFile"comate.pbi"
#PM_Ignore_Errors = 1
#PM_Tech_Info = 32
#IDI_Video_Stream = 2
#IDV_Frames = 7
Define avi.COMateObject
Procedure ShowErrorIfAny()
If COMate_GetLastErrorCode()
Debug COMate_GetLastErrorCode()
Debug COMate_GetLastErrorDescription()
EndIf
EndProcedure
avi = COMate_CreateObject("abcAVI.ExtendedAVITags")
If avi
AviFile.s = "d:\zeuch\DCIM\100CASIO\CIMG1511.AVI"
avi\Invoke("ReadAVITags('" + AviFile + "', " + Str(#PM_Ignore_Errors | #PM_Tech_Info) + ", 1024, " + Str(@info.l) + " As Long ByRef)")
ShowErrorIfAny()
Debug info
; so ungefähr geht's weiter:
*ptr.VARIANT = avi\GetVariantProperty("GetInfo(" + Str(info) + ", " + Str(#IDI_Video_Stream) + ", " + Str(#IDV_Frames) + ")")
; aber hier bekomme ich einen fehler
; Variant is not an array
ShowErrorIfAny()
avi\Release()
EndIf
Quelle:
http://www.aspsidan.se/default.asp?page ... 532&sida=1
Grüße ... Kiffi