Not all functions in windows dlls are defined in the libs, i used this to update them. i needed VarDiv in oleaut32 wich is not included.
the idea is to use the code above with the lib definition in \PureBasic\PureLibraries\Windows , it will read it an output a .pbl file, then you simply append the new functions with the number of parameters and use the pb dll importer with it
Code: Select all
libFile$ = "C:\PureBasic\PureLibraries\Windows\oleaut32"
outpbl$ = "c:\test.pbl"
bFName = AllocateMemory(100)
If OpenFile(1, outpbl$)=0 : End : EndIf
If ReadFile(0, libFile$)
;dll name
FileSeek(0,9)
*pB.BYTE = bFName
While #True
ReadData(0,*pB, 1)
If *pB\b = 0 : Break : EndIf
*pB + 1
Wend
dllName$ = PeekS(bFName)
Debug dllName$
WriteStringN(0,dllName$ + ".dll")
;Functions
While Eof(0)=0
*pB.BYTE = bFName
While #True
ReadData(0,*pB, 1)
If *pB\b = 0 : Break : EndIf
*pB + 1
Wend
fName$ = PeekS(bFName)
nParams = ReadByte(0) ;n params
ReadByte(0) ;advance file pointer
Debug fName$
Debug nParams
WriteStringN(1,fName$ + " " + Str(nParams))
Wend
CloseFile(0)
CloseFile(1)
Else
Debug "failed to open lib file"
EndIf
FreeMemory(bFName)
Code: Select all
OLEAUT32.dll
BstrFromVector 2
BSTR_UserFree 2
BSTR_UserMarshal 3
BSTR_UserSize 3
BSTR_UserUnmarshal 3
ClearCustData 1
CreateDispTypeInfo 3
CreateErrorInfo 1
CreateStdDispatch 4
CreateTypeLib 3
CreateTypeLib2 3
DispCallFunc 8
DispGetIDsOfNames 4
DispGetParam 5
DispInvoke 8
DosDateTimeToVariantTime 3
GetActiveObject 3
GetAltMonthNames 2
GetErrorInfo 2
LHashValOfNameSys 3
LoadRegTypeLib 5
LoadTypeLib 2
LoadTypeLibEx 3
LPSAFEARRAY_Marshal 4
LPSAFEARRAY_Size 4
LPSAFEARRAY_Unmarshal 4
LPSAFEARRAY_UserFree 2
LPSAFEARRAY_UserMarshal 3
LPSAFEARRAY_UserSize 3
LPSAFEARRAY_UserUnmarshal 3
OaBuildVersion 0
OACreateTypeLib2 3
OleCreateFontIndirect 3
OleCreatePictureIndirect 4
OleCreatePropertyFrame 11
OleCreatePropertyFrameIndirect 1
OleIconToCursor 2
OleLoadPicture 5
OleLoadPictureFile 5
OleLoadPicturePath 6
OleSavePictureFile 2
OleTranslateColor 3
QueryPathOfRegTypeLib 5
RegisterActiveObject 4
RegisterTypeLib 3
RevokeActiveObject 2
SafeArrayAccessData 2
SafeArrayAllocData 1
SafeArrayAllocDescriptor 2
SafeArrayCopy 2
SafeArrayCopyData 2
SafeArrayCreate 3
SafeArrayCreateVector 3
SafeArrayDestroy 1
SafeArrayDestroyData 1
SafeArrayDestroyDescriptor 1
SafeArrayGetDim 1
SafeArrayGetElement 3
SafeArrayGetElemsize 1
SafeArrayGetLBound 3
SafeArrayGetUBound 3
SafeArrayLock 1
SafeArrayPtrOfIndex 3
SafeArrayPutElement 3
SafeArrayRedim 2
SafeArrayUnaccessData 1
SafeArrayUnlock 1
SetErrorInfo 2
SysAllocString 1
SysAllocStringByteLen 2
SysAllocStringLen 2
SysFreeString 1
SysReAllocString 2
SysReAllocStringLen 3
SysStringByteLen 1
SysStringLen 1
SystemTimeToVariantTime 2
UnRegisterTypeLib 5
UserBSTR_free_inst 1
UserBSTR_free_local 1
UserBSTR_from_local 2
UserBSTR_to_local 2
UserEXCEPINFO_free_inst 1
UserEXCEPINFO_free_local 1
UserEXCEPINFO_from_local 2
UserEXCEPINFO_to_local 2
UserHWND_free_inst 1
UserHWND_free_local 1
UserHWND_from_local 2
UserHWND_to_local 2
UserMSG_free_inst 1
UserMSG_free_local 1
UserMSG_from_local 2
UserMSG_to_local 2
UserVARIANT_free_inst 1
UserVARIANT_free_local 1
UserVARIANT_from_local 2
UserVARIANT_to_local 2
VarBoolFromCy 3
VarBoolFromDate 3
VarBoolFromDec 2
VarBoolFromDisp 3
VarBoolFromI1 2
VarBoolFromI2 2
VarBoolFromI4 2
VarBoolFromR4 2
VarBoolFromR8 3
VarBoolFromStr 4
VarBoolFromUI1 2
VarBoolFromUI2 2
VarBoolFromUI4 2
VarBstrFromBool 4
VarBstrFromCy 5
VarBstrFromDate 5
VarBstrFromDec 4
VarBstrFromDisp 4
VarBstrFromI1 4
VarBstrFromI2 4
VarBstrFromI4 4
VarBstrFromR4 4
VarBstrFromR8 5
VarBstrFromUI1 4
VarBstrFromUI2 4
VarBstrFromUI4 4
VarCyFromBool 2
VarCyFromDate 3
VarCyFromDec 2
VarCyFromDisp 3
VarCyFromI1 2
VarCyFromI2 2
VarCyFromI4 2
VarCyFromR4 2
VarCyFromR8 3
VarCyFromStr 4
VarCyFromUI1 2
VarCyFromUI2 2
VarCyFromUI4 2
VarDateFromBool 2
VarDateFromCy 3
VarDateFromDec 2
VarDateFromDisp 3
VarDateFromI1 2
VarDateFromI2 2
VarDateFromI4 2
VarDateFromR4 2
VarDateFromR8 3
VarDateFromStr 4
VarDateFromUdate 3
VarDateFromUI1 2
VarDateFromUI2 2
VarDateFromUI4 2
VarDecFromBool 2
VarDecFromCy 3
VarDecFromDate 3
VarDecFromDisp 3
VarDecFromI1 2
VarDecFromI2 2
VarDecFromI4 2
VarDecFromR4 2
VarDecFromR8 3
VarDecFromStr 4
VarDecFromUI1 2
VarDecFromUI2 2
VarDecFromUI4 2
VarI1FromBool 2
VarI1FromCy 3
VarI1FromDate 3
VarI1FromDec 2
VarI1FromDisp 3
VarI1FromI2 2
VarI1FromI4 2
VarI1FromR4 2
VarI1FromR8 3
VarI1FromStr 4
VarI1FromUI1 2
VarI1FromUI2 2
VarI1FromUI4 2
VarI2FromBool 2
VarI2FromCy 3
VarI2FromDate 3
VarI2FromDec 2
VarI2FromDisp 3
VarI2FromI1 2
VarI2FromI4 2
VarI2FromR4 2
VarI2FromR8 3
VarI2FromStr 4
VarI2FromUI1 2
VarI2FromUI2 2
VarI2FromUI4 2
VarI4FromBool 2
VarI4FromCy 3
VarI4FromDate 3
VarI4FromDec 2
VarI4FromDisp 3
VarI4FromI1 2
VarI4FromI2 2
VarI4FromR4 2
VarI4FromR8 3
VarI4FromStr 4
VarI4FromUI1 2
VarI4FromUI2 2
VarI4FromUI4 2
VariantChangeType 4
VariantChangeTypeEx 5
VariantClear 1
VariantCopy 2
VariantCopyInd 2
VariantInit 1
VariantTimeToDosDateTime 4
VariantTimeToSystemTime 3
VARIANT_UserFree 2
VARIANT_UserMarshal 3
VARIANT_UserSize 3
VARIANT_UserUnmarshal 3
VarNumFromParseNum 4
VarParseNumFromStr 5
VarR4FromBool 2
VarR4FromCy 3
VarR4FromDate 3
VarR4FromDec 2
VarR4FromDisp 3
VarR4FromI1 2
VarR4FromI2 2
VarR4FromI4 2
VarR4FromR8 3
VarR4FromStr 4
VarR4FromUI1 2
VarR4FromUI2 2
VarR4FromUI4 2
VarR8FromBool 2
VarR8FromCy 3
VarR8FromDate 3
VarR8FromDec 2
VarR8FromDisp 3
VarR8FromI1 2
VarR8FromI2 2
VarR8FromI4 2
VarR8FromR4 2
VarR8FromStr 4
VarR8FromUI1 2
VarR8FromUI2 2
VarR8FromUI4 2
VarUdateFromDate 4
VarUI1FromBool 2
VarUI1FromCy 3
VarUI1FromDate 3
VarUI1FromDec 2
VarUI1FromDisp 3
VarUI1FromI1 2
VarUI1FromI2 2
VarUI1FromI4 2
VarUI1FromR4 2
VarUI1FromR8 3
VarUI1FromStr 4
VarUI1FromUI2 2
VarUI1FromUI4 2
VarUI2FromBool 2
VarUI2FromCy 3
VarUI2FromDate 3
VarUI2FromDec 2
VarUI2FromDisp 3
VarUI2FromI1 2
VarUI2FromI2 2
VarUI2FromI4 2
VarUI2FromR4 2
VarUI2FromR8 3
VarUI2FromStr 4
VarUI2FromUI1 2
VarUI2FromUI4 2
VarUI4FromBool 2
VarUI4FromCy 3
VarUI4FromDate 3
VarUI4FromDec 2
VarUI4FromDisp 3
VarUI4FromI1 2
VarUI4FromI2 2
VarUI4FromI4 2
VarUI4FromR4 2
VarUI4FromR8 3
VarUI4FromStr 4
VarUI4FromUI1 2
VarUI4FromUI2 2
VectorFromBstr 2
VarDiv 3