COMate gut für abcAVI.DLL?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

COMate gut für abcAVI.DLL?

Beitrag 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.:oops:

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" :lol:
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Methoden?
Sind das die "functions declared in IExtendedAVITags interface"?
Anscheinend.

Object? Objectname? registrieren?

Da bin ich mal wieder in Böhmen angekommen. :(
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag 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.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :wink:

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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Little John

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Beitrag 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
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Antworten