luis wrote:I noticed (installing the SDK you linked) the GDI+ functions (the flat API) seem to be missing, it's the same in your installation or I did something wrong ? 
I noticed the same thing in the past anyway, I never had a MSDN or a SDK installed with the GDI+ docs on it.
I had to look on Internet when I needed them.
The flat API is not documented, but the classes that are based on it. In .NET it is in System.Drawing.
Press ALT+F1 on "GdipCreatePen1" (with my tool installed) and you get a search result that
shows you how the flat API pen functions map to the C++ Pen Class.
The C++ classes are included as source in the GdiPlus*.h headers, for example GdiPlusPen.h.
I have the "GDI+ Reference" bookmarked in H3Viewer, just search for "GDI+ Reference" and
make a bookmark. Online it is there: 
GDI+ Reference and it is available offline too
(i have whole MSDN docu installed offline, 6.2GB for German/English).
From that starting Point you look in "Classes", for example "Classes -> Graphics.DrawImage()" and
you browse the GdiPlus*.h headers all the time. 
I have installed my tool 2 times in the PB IDE. First ALT+F1 without arguments as shown in
the picture above, second time ALT+F2 with -search argument. If ALT+F1 does not show
me nice results i hit ALT+F2 for searching again. Maybe you want to do the same.
Here my code to convert the POLIB .def to Data.s .pbi: Def2pbi.pb
Code: Select all
Global NewList functions.s()
Global count = 0
Procedure addfunc(s.s)
    If Asc(s)='"'
        s = Mid(s,2)
        If Asc(s)='_'
            s = Mid(s,2)
        EndIf
        x = FindString(s,"@",2)
        If x>1
            s = Left(s,x-1)
            s = ReplaceString(s,"@","")
        Else
            Debug "NO @ symbol in: "+s
            x = FindString(s,#DQUOTE$,1)
            s = Left(s,x-1)
            Debug s
        EndIf
        LastElement( functions() )
        AddElement( functions() )
        functions() = s
        If Right(s,1)="A" Or Right(s,1)="W"
            found = 0
            newfunc.s = Left(s,Len(s)-1)
            ForEach functions()
                If functions() = newfunc
                    found = 1
                EndIf
            Next
            If Not found
                LastElement( functions() )
                AddElement( functions() )
                functions() = newfunc
                ;Debug "auto added "+newfunc
            EndIf
        EndIf
    EndIf
EndProcedure
Procedure Def2pbi(filename.s)
    ClearList( functions() )
    If ReadFile(0,filename)
        While Not Eof(0)
            addfunc(ReadString(0))
        Wend
        CloseFile(0)
        If CreateFile(1,filename+".pbi")
            SortList( functions() ,#PB_Sort_Ascending )
            ForEach functions()
                WriteStringN(1,"   Data.s "+#DQUOTE$+functions()+#DQUOTE$)
                count + 1
            Next
            CloseFile(1)
        Else
            Debug "cant create file "+filename+".pbi"
        EndIf
    EndIf
EndProcedure
Def2pbi("ComCtl32.def")
Def2pbi("ComDlg32.def")
Def2pbi("Gdi32.def")
Def2pbi("Kernel32.def")
Def2pbi("Shell32.def")
Def2pbi("User32.def")
Def2pbi("WS2_32.def")
Debug Str(count)+" functions written."
Just modify it for your needs, the functions are in the linkedlist and you can change
the part where it is written into the .pbi. No need to do the same again yourself. 
