All pastes #143146 Raw Edit

Anonymous

public text v1 · immutable
#143146 ·published 2006-08-21 22:02 UTC
rendered paste body
Function Whatever() As Dictionary
#if TargetWin32
 Declare Function CBIOS_GetBoxInfoAdvI Lib "CBIOSVB6.Dll" alias "CBIOS_VB6_GetBoxInfoAdvI"_ 
 (iCount  as Integer, stInfo as Ptr) as integer
 Dim stInfo As MemoryBlock
 Dim iCount, OSErr As Integer
 Dim ReturnDict As New Dictionary
 iCount = [Whatever]
 stInfo = NewMemoryBlock(-- number of bytes required --)
 OSErr = CBIOS_GetBoxInfoAdvI(iCount, stInfo)
 ReturnDict.Value("OSErr") = OSErr
 ReturnDict.Value("stInfo") = stInfo
 // Set most values from the memoryblock
 ReturnDict.Value("dwBoxName") = stInfo.Long(0)
 ReturnDict.Value("dwModel") = stInfo.Long(4)
 ReturnDict.Value("dwApp") = stInfo.Long(8)
 ReturnDict.Value("wCBIOS") = stInfo.Long(12)
 ReturnDict.Value("bAppPolicy") = stInfo.Byte(16)
 ReturnDict.Value("bLogin") = stInfo.Byte(17)
 ReturnDict.Value("bHiVersion") = stInfo.Byte(18)
 ReturnDict.Value("bLoVersion") = stInfo.Byte(19)
 ReturnDict.Value("dwRAMLen") = stInfo.Long(20)
 ReturnDict.Value("dwSize_RAM1") = stInfo.Long(24)
 ReturnDict.Value("dwSize_RAM2") = stInfo.Long(28)
 ReturnDict.Value("dwSize_RAM3") = stInfo.Long(32)
 // for 
 // bBoxLabel                  As String * CBIOS_LABEL_LEN ' Box label
 // dwDeveloperID              As Long                     ' DevelpoerID
 // bMPI                       As Byte                     ' MPI flag
 // I'd need CBIOS_LABEL_LEN to calculate the rest
 Return ReturnDict
 #Endif
End Function