This is what I use to create import files for missing API functions... Just adapt to your own DLL
Code: Select all
CompilerSelect 0
CompilerCase 0
FileName$ = "chi_gdi32.imp"
Import "gdi32.lib"
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
SetLayout_(hdc,dwLayout) As "_SetLayout@8"
GetLayout_(hdc) As "_GetLayout@4"
GdiAlphaBlend_(hdcDest,nXOriginDest,nYOriginDest,nWDest,nHDest,hdcSrc,nXOriginSrc,nYOriginSrc,nWSrc,nHSrc,Blendfunction) As "_GdiAlphaBlend@44"
GdiTransparentBlt_(hdcDest,nXOriginDest,nYOriginDest,nWDest,nHDest,hdcSrc,nXOriginSrc,nYOriginSrc,nWSrc,nHSrc,Blendfunction) As "_GdiTransparentBlt@44"
CompilerElse
SetLayout_(hdc, dwLayout) As "SetLayout"
GetLayout_(hdc) As "GetLayout"
GdiAlphaBlend_(hdcDest,nXOriginDest,nYOriginDest,nWDest,nHDest,hdcSrc,nXOriginSrc,nYOriginSrc,nWSrc,nHSrc,Blendfunction) As "GdiAlphaBlend"
GdiTransparentBlt_(hdcDest,nXOriginDest,nYOriginDest,nWDest,nHDest,hdcSrc,nXOriginSrc,nYOriginSrc,nWSrc,nHSrc,Blendfunction) As "GdiTransparentBlt"
CompilerEndIf
EndImport
CompilerCase 1
FileName$ = "chi_user32.imp"
Import "user32.lib"
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
DisableProcessWindowsGhosting_() As "_DisableProcessWindowsGhosting@0"
PrintWindow_(hwnd, hdcBlt, nFlags) As "_PrintWindow@12"
UpdateLayeredWindowIndirect_(hWnd, *pULWInfo) As "_UpdateLayeredWindowIndirect@8"
CompilerElse
DisableProcessWindowsGhosting_() As "DisableProcessWindowsGhosting"
PrintWindow_(hwnd, hdcBlt, nFlags) As "PrintWindow"
UpdateLayeredWindowIndirect_(hWnd, *pULWInfo) As "UpdateLayeredWindowIndirect"
CompilerEndIf
EndImport
CompilerCase 2
FileName$ = "chi_comctl32.imp"
Import "comctl32.lib"
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
GetWindowSubclass_(hWnd, pfnSubclass, uIdSubclass, *outRefData) As "_GetWindowSubclass@16"
SetWindowSubclass_(hWnd, pfnSubclass, uIdSubclass, inRefData) As "_SetWindowSubclass@16"
RemoveWindowSubclass_(hWnd, pfnSubclass, uIdSubclass) As "_RemoveWindowSubclass@12"
DefSubclassProc_(hWnd, uMsg, wParam, lParam) As "_DefSubclassProc@16"
CompilerElse
GetWindowSubclass_(hWnd, pfnSubclass, uIdSubclass, *outRefData) As "GetWindowSubclass"
SetWindowSubclass_(hWnd, pfnSubclass, uIdSubclass, inRefData) As "SetWindowSubclass"
RemoveWindowSubclass_(hWnd, pfnSubclass, uIdSubclass) As "RemoveWindowSubclass"
DefSubclassProc_(hWnd, uMsg, wParam, lParam) As "DefSubclassProc"
CompilerEndIf
EndImport
CompilerEndSelect
Compiler = RunProgram(#PB_Compiler_Home + "Compilers\pbcompiler", #PB_Compiler_FilePath + #PB_Compiler_Filename + " --Import " + FileName$, "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
If Compiler
While ProgramRunning(Compiler)
If AvailableProgramOutput(Compiler)
Output$ + ReadProgramString(Compiler) + Chr(13)
EndIf
Wend
CloseProgram(Compiler)
EndIf
LibFile$ = #PB_Compiler_Home + "PureLibraries\Windows\" + FileName$
If CopyFile(FileName$, LibFile$)
DeleteFile(FileName$)
EndIf
MessageRequester(FileName$, Output$ + Chr(13) + Chr(10) + "File '" + FileName$ + "' moved to " + LibFile$)