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$)