Jump to content

Using AudioGenie3.dll - DllCall Error exitcode 1073741819


SirWayNe
 Share

Recommended Posts

Hey,

AutoIt Version: 3.3.8.1

i am using AudioGenie3.dll to get some information about my audio files, currently *.mp3.

http://sourceforge.net/projects/audiogenie/

Im getting used to use DllCall and in using different variable types, but i cannot solve this problem:

Local $test = "3"
Local $test2 = "chemicals1"


Local $dll = DllOpen("AudioGenie3.dll")
If @error Then ConsoleWrite("DllOpen - " & $dll & " - Error: " & @error & @CRLF)


Local $file = "9 - Chemicals.mp3"
; Set Current File, used in later Functions by AudioGenie3.dll
$aAudioFile = DllCall($dll,"WORD","AUDIOAnalyzeFileW","wstr",$file)
If @error Then ConsoleWrite("Error - Analyze - " & @error & @CRLF)


; Set V1 Track
DllCall($dll,"wstr","ID3V1SetTrackW","wstr",$test)
If @error Then ConsoleWrite("Error - V1SetTrack - " & @error & @CRLF)


; Set V1 Title
DllCall($dll,"wstr","ID3V1SetTitleW","wstr",$test2)
If @error Then ConsoleWrite("Error - V1SetTitle - " & @error & @CRLF)


; Check File if Saving worked
Local $field1 = DllCall($dll,"wstr","ID3V1GetTitleW")
Local $field2 = DllCall($dll,"wstr","ID3V1GetTrackW")
ConsoleWrite("Title: " & $field1[0] & @CRLF)
ConsoleWrite("Track: " & $field2[0] & @CRLF)
; close Dll
DllClose($dll)

I can set the Title to everything i want. But if i want to only set it to a number like:

Local $test = "3"

then AutoIt crashes and exits with exitcode 1073741819. It seems like DllCall cannot deal with the combination of "wstr" and "3".

The Function in AudioGenie3.dll needs this Parameter:

ID3V1SetTrackW(LPCWSTR myTrack)

Can anyone explain that problem to me and maybe solve it?

Greetings SirWayNe

Edited by SirWayNe
Link to comment
Share on other sites

Are you having problems setting the title or the track? Because you mentioned title, but you're referencing the track in the code "ID3V1SetTrackW(LPCWSTR myTrack)"

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

I am referring to change the Track. I can change the Title the way i want it to be, because i am using the String like

DllCall($dll,"wstr","ID3V1SetTitleW","wstr","SomeArtist")

-> works

And for the Title i use a Number like this:

DllCall($dll,"wstr","ID3V1SetTitleW","wstr","3")

-> does not work

DllCall($dll,"wstr","ID3V1SetTitleW","wstr","SomeString")

-> doesnt crash AutoIt, but wont save it to the Audio File, Audio FIle only takes a number 0-255 (Read on ID3V1 Tags, Track takes 2 bytes in total = 255)

same Parameter type: wstr.

Link to comment
Share on other sites

Oh... bless me. That really made a difference. i changed it into "none" from "wstr" and it went pretty fast to success.

Thanks for helping me out here. Gotta read more careful on the Docs (audiograbber and autoit)

So the Function DllCall is expecting a return value that isnt provided by (ID3V1SetTitleW) and crashes?

Greetings SirWayNe.

Link to comment
Share on other sites

Local $sFilename = @ScriptDir & "test.mp3"

Local $sID3V1SetTrackW = "3"
Local $sID3V1SetTitleW = "chemicals1"

Local $h_DLL_AudioGenie3 = DllOpen(@ScriptDir & "AudioGenie3.dll")
If @error Then ConsoleWrite("DllOpen - " & $h_DLL_AudioGenie3 & " - Error: " & @error & @CRLF)

; Set Current File, used in later Functions by AudioGenie3.dll
$iRes = DllCall($h_DLL_AudioGenie3, "int", "AUDIOAnalyzeFileW", "wstr", $sFilename)
If @error Then ConsoleWrite("Error - Analyze - " & @error & @CRLF)
ConsoleWrite($iRes[0] & @crlf)
#cs
Wert Beschreibung
0 unbekanntes Format
1 MP3
2 WMA
3 MONKEY
4 FLAC
5 WAV
6 OGG VORBIS
7 MPP
8 AAC
9 MP4/M4A
10 TTA
11 wavpack
#ce

; Set V1 Track
$iRes = DllCall($h_DLL_AudioGenie3, "int", "ID3V1SetTrackW", "wstr", $sID3V1SetTrackW)
If @error Then ConsoleWrite("Error - V1SetTrack - " & @error & @CRLF)
ConsoleWrite($iRes[0] & @crlf)

; Set V1 Title
$iRes = DllCall($h_DLL_AudioGenie3, "int", "ID3V1SetTitleW", "wstr", $sID3V1SetTitleW)
If @error Then ConsoleWrite("Error - V1SetTitle - " & @error & @CRLF)
ConsoleWrite($iRes[0] & @crlf)

; Check File if Saving worked
$iRes = DllCall($h_DLL_AudioGenie3, "wstr", "ID3V1GetTitleW")
ConsoleWrite("Title: " & $iRes[0] & @CRLF)

$iRes = DllCall($h_DLL_AudioGenie3, "wstr", "ID3V1GetTrackW")
ConsoleWrite("Track: " & $iRes[0] & @CRLF)

; close Dll
DllClose($h_DLL_AudioGenie3)

Edit: Btw, nice find :), will be added to SMF asap :lol:...

Edited by KaFu
Link to comment
Share on other sites

I found uses the audiogenie dll to read and write the tags.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

This is what i got so far. Functions to Include it into my Script, only the beginning and quite not fully tested.

Global $hScriptAudioGenie; Handle für die AudioGenie3.dll

Global $aScriptAudioFile; Array für AudioGenie3.dll. Return der DLLCall: [0]: Typ. [1]: Ort.

And the Code:

#cs Datentypen Variable:


AudioGenie.dll AutoItV3
Int16 short
Int32 DWORD
UInt32 DWORD _StringtoInt($var)
Float float
BSTR wstr
LPCWSTR wstr
Pointer ??

#ce

#cs AUDIOAnalyzeW

Return Value Beschreibung
0 unbekannt
1 MP3
2 WMA
3 MONKEY
4 FLAC
5 WAV
6 OGG Vorbis
7 MPP
8 AAC
9 MP4/M4A
10 TTA
11 wavpack
#ce

Func _AudioGenieInit()
FileInstall("0-Include\AudioGenie3.dll","AudioGenie3.dll",1)
$hScriptAudioGenie = DllOpen("AudioGenie3.dll")
Return @error
EndFunc


Func _AudioGenieReadFile($file)
$aScriptAudioFile = DllCall($hScriptAudioGenie,"WORD","AUDIOAnalyzeFileW","wstr",$file)
Return @error
EndFunc

Func _AudioGenieReadTag($tag,$ext = "")
Local $field[1]
If Not $tag Then Return SetError(1,0,1)
Switch $tag
; ID3V1 auslesen
Case "Title"
$field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTitleW")
Case "Artist"
$field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetArtistW")
Case "Album"
$field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetArtistW")
Case "Track"
$field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTrackW")
Case "Genre"
$field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetGenreW")
Case "Year"
$field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetYearW")
; ID3V2 auslesen
Case "APIC"; Cover
; -1 bei gefundenem Tag
; 0 bei nicht gefundenen Tag
If $ext = "" Then Return SetError(1,0,1)
$field = DllCall($hScriptAudioGenie,"short","ID3V2GetPictureFileW","wstr",$ext,"WORD","1")
If $field[0] = -1 Then $field[0] = $ext
Case Else; alle anderen ID3V2 Tags werden über $tag ausgelesen
$field = DllCall($hScriptAudioGenie,"wstr","ID3V2GetTextFrameW","DWORD",_StringToInt($tag))
EndSwitch
If IsArray($field) = 1 Then
Return $field[0]
Else
Return $field
EndIf
EndFunc

Func _AudioGenieSaveV1()
Local $i = DllCall($hScriptAudioGenie,"short","ID3V1SaveChangesW")
ConsoleWrite("Error Save " & @error & @CRLF)
EndFunc

Func _AudioGenieSaveV2()
Local $i = DllCall($hScriptAudioGenie,"short","ID3V2SaveChangesW")
ConsoleWrite("Error Save " & $i[0] & @CRLF)
Return @error
EndFunc

Func _AudioGenieSaveTag($tag,$field,$ext = "")
$tag = StringStripWS(StringStripCR($tag),3)
$field = StringStripWS(StringStripCR($field),3)
If Not $tag Then Return SetError(1,0,1)
If Not $field Then Return SetError(2,0,1)
Switch $tag
; ID3V1 Tags speichern
Case "Title"
DllCall($hScriptAudioGenie,"none","ID3V1SetTitleW","wstr",$field)
ConsoleWrite("Error " & $tag & @error & @CRLF)
Case "Artist"
DllCall($hScriptAudioGenie,"none","ID3V1SetArtistW","wstr",$field)
ConsoleWrite("Error " & $tag & @error & @CRLF)
Case "Album"
DllCall($hScriptAudioGenie,"none","ID3V1SetAlbumW","wstr",$field)
ConsoleWrite("Error " & $tag & @error & @CRLF)
Case "Track"
DllCall($hScriptAudioGenie,"none","ID3V1SetTrackW","wstr",$field)
ConsoleWrite("Error " & $tag & @error & @CRLF & $field)
Case "Genre"; -> String führt zu Fehler, evtl die ID speichern mit ID3V1SetGenreIDW
;~ DllCall($hScriptAudioGenie,"wstr","ID3V1SetGenreW","wstr",$field)
If $field = "" Then Return
DllCall($hScriptAudioGenie,"none","ID3V1SetGenreW","wstr",$field)
ConsoleWrite("Error " & $tag & @error & @CRLF)
Case "Year"
DllCall($hScriptAudioGenie,"none","ID3V1SetYearW","wstr",$field)
ConsoleWrite("Error " & $tag & @error & @CRLF)
; ID3V2 Tags speichern
Case "APIC"
If $ext = "" Then Return SetError(3,2,1)
$field = DllCall($hScriptAudioGenie,"short","ID3V2AddPictureFileW","wstr",$ext,"wstr","","WORD","03","WORD","0")
If $field[0] = -1 Then $field[0] = $ext
Case Else; alle anderen Tags werden über $tag gespeichert
$field = DllCall($hScriptAudioGenie,"wstr","ID3V2SetTextFrameW","DWORD",_StringToInt($tag),"wstr",$field)
EndSwitch
If Isarray($field) = 1 Then
Return $field[0]
Else
Return $field
EndIf
EndFunc

Func _AudioGenieSaveTagGetGenreID($field)
If $field = "" Then Return SetError(1,0,1)
Local $array[148] = ["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","AlternRock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta","Top","Christian Rap","Pop & Funk","Jungle","Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk-Rock","National Folk","Swing","Fast Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","A capella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian","Christian Rock","Merengue","Salsa","Trash Metal","Anime","JPop","Synthpop"]
Local $int = _ArraySearch($array,$field,0,0,1)
If $int = -1 Then Return SetError(2,0,1)
$int += 1
Return $int
EndFunc

Func _AudioGenieReadBitrate()
Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetBitrateW")
Return $result[0]
EndFunc

Func _AudioGenieReadSamplerate()
Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetSampleRateW")
Return $result[0]
EndFunc

Func _AudioGenieReadChannel()
Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetChannelModeW")
Return $result[0]
EndFunc

Func _AudioGenieReadVersion()
Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetVersionW")
Return $result[0]
EndFunc

Func _AudioGenieReadDuration()
Local $result = DllCall($hScriptAudioGenie,"float","AUDIOGetDurationW")
$return = Floor($result[0])
Return $return
EndFunc
Link to comment
Share on other sites

I fixed some Functions, it should work properly now:

#cs Datentypen Variable:

AudioGenie.dll  AutoItV3
Int16    short
Int32    DWORD
UInt32    DWORD -> _StringtoInt($var)
Float    float
BSTR    wstr
LPCWSTR    wstr
Pointer    ptr
#ce
#cs AUDIOAnalyzeW
Return Value  Beschreibung
0    unbekannt
1    MP3
2    WMA
3    MONKEY
4    FLAC
5    WAV
6    OGG Vorbis
7    MPP
8    AAC
9    MP4/M4A
10   TTA
11   wavpack
#ce
Func _AudioGenieInit()
   FileInstall("0-IncludeAudioGenie3.dll","AudioGenie3.dll",1)
   $hScriptAudioGenie = DllOpen("AudioGenie3.dll")
   Return @error
EndFunc

Func _AudioGenieReadFile($file)
   $aScriptAudioFile = DllCall($hScriptAudioGenie,"WORD","AUDIOAnalyzeFileW","wstr",$file)
   Return @error
EndFunc
Func _AudioGenieReadTag($tag,$ext = "")
   Local $field[1]
   If Not $tag Then Return SetError(1,0,1)
   Switch $tag
   ; ID3V1 auslesen
   Case "Title"
   $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTitleW")
   Case "Artist"
   $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetArtistW")
   Case "Album"
   $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetAlbumW")
   Case "Track"
   $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetTrackW")
   Case "Genre"
   $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetGenreW")
   Case "Year"
   $field = DllCall($hScriptAudioGenie,"wstr","ID3V1GetYearW")
   ; ID3V2 auslesen
   Case "APIC"; Cover
   ; -1 bei gefundenem Tag
   ; 0 bei nicht gefundenen Tag
   If $ext = "" Then Return SetError(1,0,1)
   $field = DllCall($hScriptAudioGenie,"short","ID3V2GetPictureFileW","wstr",$ext,"WORD","1")
   If $field[0] = -1 Then $field[0] = $ext
   Case Else; alle anderen ID3V2 Tags werden über $tag ausgelesen
   $field = DllCall($hScriptAudioGenie,"wstr","ID3V2GetTextFrameW","DWORD",_StringToInt($tag))
   If @error Then ConsoleWrite("Error Read " & $tag & @error & @CRLF)
   EndSwitch
   If IsArray($field) = 1 Then
   Return $field[0]
   Else
   Return $field
   EndIf
EndFunc
Func _AudioGenieSaveV1()
   Local $i = DllCall($hScriptAudioGenie,"short","ID3V1SaveChangesW")
   If @error Then ConsoleWrite("Error Save V1 " & @error & @CRLF)
   If $i = 0 Then ConsoleWrite("Error Save V1 " & $i & @CRLF)
EndFunc
Func _AudioGenieSaveV2()
   Local $i = DllCall($hScriptAudioGenie,"short","ID3V2SaveChangesW")
   If @error Then ConsoleWrite("Error Save V2 " & $i[0] & @CRLF)
   If $i = 0 Then ConsoleWrite("Error Save V2 " & $i & @CRLF)
   Return @error
EndFunc
Func _AudioGenieSaveTag($tag,$field)
   $tag = StringStripWS(StringStripCR($tag),3)
   $field = StringStripWS(StringStripCR($field),3)
   If Not $tag Then Return SetError(1,0,1)
   If Not $field Then Return SetError(2,0,1)
   Switch $tag
   ; ID3V1 Tags speichern
   Case "Title"
   DllCall($hScriptAudioGenie,"none","ID3V1SetTitleW","wstr",$field)
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF)
   Case "Artist"
   DllCall($hScriptAudioGenie,"none","ID3V1SetArtistW","wstr",$field)
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF)
   Case "Album"
   DllCall($hScriptAudioGenie,"none","ID3V1SetAlbumW","wstr",$field)
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF)
   Case "Track"
   DllCall($hScriptAudioGenie,"none","ID3V1SetTrackW","wstr",$field)
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF & $field)
   Case "Genre"; -> String führt zu Fehler, evtl die ID speichern mit ID3V1SetGenreIDW
   DllCall($hScriptAudioGenie,"none","ID3V1SetGenreW","wstr",$field)
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF)
   Case "Year"
   DllCall($hScriptAudioGenie,"none","ID3V1SetYearW","wstr",$field)
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF)
   ; ID3V2 Tags speichern
   Case "APIC"
   DllCall($hScriptAudioGenie,"short","ID3V2AddPictureFileW","wstr",$field,"wstr","","WORD","03","WORD","0")
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF)
   Case Else; alle anderen Tags werden über $tag gespeichert
   DllCall($hScriptAudioGenie,"wstr","ID3V2SetTextFrameW","DWORD",_StringToInt($tag),"wstr",$field)
   If @error Then ConsoleWrite("Error " & $tag & @error & @CRLF)
   EndSwitch
EndFunc
Func _AudioGenieSaveTagGetGenreID($field)
   If $field = "" Then Return SetError(1,0,1)
   Local $array[148] = ["Blues","Classic Rock","Country","Dance","Disco","Funk", _
   "Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B", _
   "Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal", _
   "Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk", _
   "Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip", _
   "Gospel","Noise","AlternRock","Bass","Soul","Punk","Space","Meditative", _
   "Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave", _
   "Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock", _
   "Comedy","Cult","Gangsta","Top","Christian Rap","Pop & Funk","Jungle", _
   "Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer", _
   "Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll", _
   "Hard Rock","Folk","Folk-Rock","National Folk","Swing","Fast Fusion","Bebob", _
   "Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock", _
   "Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening", _
   "Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony", _
   "Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba", _
   "Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock", _
   "Drum Solo","A capella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House", _
   "Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat", _
   "Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian", _
   "Christian Rock","Merengue","Salsa","Trash Metal","Anime","JPop","Synthpop"]
   Local $int = _ArraySearch($array,$field,0,0,1)
   If $int = -1 Then Return SetError(2,0,1)
   $int += 1
   Return $int
EndFunc
Func _AudioGenieReadBitrate()
   Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetBitrateW")
   Return $result[0]
EndFunc
Func _AudioGenieReadSamplerate()
   Local $result = DllCall($hScriptAudioGenie,"BOOL","AUDIOGetSampleRateW")
   Return $result[0]
EndFunc
Func _AudioGenieReadChannel()
   Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetChannelModeW")
   Return $result[0]
EndFunc
Func _AudioGenieReadVersion()
   Local $result = DllCall($hScriptAudioGenie,"wstr","AUDIOGetVersionW")
   Return $result[0]
EndFunc
Func _AudioGenieReadDuration()
   Local $result = DllCall($hScriptAudioGenie,"float","AUDIOGetDurationW")
   $return = Floor($result[0])
   Return $return
EndFunc
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...