Dim $OrigDLL=FileOpenDialog("Select a .dll to include","","DLL files (*.dll)")
If @error OR NOT FileExists($OrigDLL) Then Exit
Dim $TheFile=FileOpen($OrigDLL,16)
If @error Then QuitMe("File could not be opened")
Dim $TheStr=Hex(FileRead($TheFile))
If @error Then QuitMe("File could not be read")
Dim $InlineAu3File=FileSaveDialog("Save inline file as","","au3 script (*.au3)",18,StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1))&".au3")
If @error Then Exit
If NOT StringInStr(StringTrimLeft($InlineAu3File,StringInStr($InlineAu3File,"\",0,-1)),".") Then $InlineAu3File&=".au3"
$InlineAu3File=FileOpen($InlineAu3File,2)
FileWriteLine($InlineAu3File,";Inline "&StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1))&", Creation Time: "&@YEAR&"/"&@MON&"/"&@MDAY&" "&@HOUR&":"&@MIN&":"&@SEC)
FileWriteLine($InlineAu3File,"#include-once")
FileWriteLine($InlineAu3File,"Func __"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".dll","")&"_Inline_Modified()")
FileWriteLine($InlineAu3File,@TAB&'Return "'&@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC&'" ; '&@YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC)
FileWriteLine($InlineAu3File,"EndFunc")
FileWriteLine($InlineAu3File,"Func __"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".dll","")&"_Inline_Version()")
FileWriteLine($InlineAu3File,@TAB&'Return "'&InputBox("Version number:","Enter the version number of this dll","1")&'"')
FileWriteLine($InlineAu3File,"EndFunc")
FileWriteLine($InlineAu3File,"Func __"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".dll","")&"_Inline_"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".","")&"() ; Dont Tidy me!")
FileWriteLine($InlineAu3File,"Local $sData")
Dim $i=1
Dim $ExitWhenDone=0
While 1
Local $CurrLine=StringMid($TheStr,$i*4082-4081,4082)
If StringLen($CurrLine) <> 4082 Then $ExitWhenDone=1
FileWriteLine($InlineAu3File,'$sData &= "'&$CurrLine&'"')
If $ExitWhenDone Then ExitLoop
$i+=1
WEnd
FileWriteLine($InlineAu3File,'Return Binary("0x" & $sData)')
FileWriteLine($InlineAu3File,"EndFunc")
FileClose($TheFile)
FileClose($InlineAu3File)
MsgBox(0,"Done","Inline dll written to au3")
Func QuitMe($_message="")
If $_message <> "" Then MsgBox(16,"Error",$_message)
FileClose($TheFile)
FileClose($InlineAu3File)
Exit
EndFunc