Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I have a dll. I want to use a function in the dll on Excel VBA. The fuction is below. int GetDiskSpaceLeft(DWORD dwID, LONGLONG *lpllSpace); If this were "int GetDiskSpaceLeft(DWORD dwID, LONG *lpllSpace);", I knew how to use that. Private Declare Function GetDiskSpaceLeft lib 'xx.dll' (ByVal dwID as Long, ByRef lSpace as Long) However it's not "Long", but "LongLong" How can I use the dll function? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
One really quick'n'dirty solution I saw posted on a MSDN webpage is to use
the VB datatype Currency instead of LongLong, but you then have to remember to scale it by a factor 10,000 as well. The snippet below is taken from the following webpage: http://msdn.microsoft.com/library/de...ightweight.asp Surely, there must be cleaner ways of implementing support for LongLong, so I'll keep on looking, and when I find something I'll post it here... Cheers, /MP ================================================= Private Declare Function GetDiskFreeSpaceEx _ Lib "kernel32" Alias "GetDiskFreeSpaceExA" _ (ByVal lpRootPathName As String, _ lpFreeBytesAvailableToCaller As Currency, _ lpTotalNumberOfBytes As Currency, _ lpTotalNumberOfFreeBytes As Currency) As Long Private Sub DiskInfo() Dim cuAvailable As Currency Dim cuTotal As Currency Dim cuFree As Currency Call GetDiskFreeSpaceEx("C:\", cuAvailable, _ cuTotal, cuFree) Debug.Print "Disk space info" & vbCr & _ "Available : "; _ FormatByteSize(cuAvailable * 10000) & vbCr & _ "Total : "; _ FormatByteSize(cuTotal * 10000) & vbCr & _ "Free : "; _ FormatByteSize(cuFree * 10000) & vbCr & _ "Used : "; _ FormatByteSize((cuTotal - cuFree) * 10000) End Sub ================================================= "Zoo" wrote: Hi, I have a dll. I want to use a function in the dll on Excel VBA. The fuction is below. int GetDiskSpaceLeft(DWORD dwID, LONGLONG *lpllSpace); If this were "int GetDiskSpaceLeft(DWORD dwID, LONG *lpllSpace);", I knew how to use that. Private Declare Function GetDiskSpaceLeft lib 'xx.dll' (ByVal dwID as Long, ByRef lSpace as Long) However it's not "Long", but "LongLong" How can I use the dll function? |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I tried that. It worked fine.
Thank you for your great help! "Mat P:son" wrote in message ... One really quick'n'dirty solution I saw posted on a MSDN webpage is to use the VB datatype Currency instead of LongLong, but you then have to remember to scale it by a factor 10,000 as well. The snippet below is taken from the following webpage: http://msdn.microsoft.com/library/de...ightweight.asp Surely, there must be cleaner ways of implementing support for LongLong, so I'll keep on looking, and when I find something I'll post it here... Cheers, /MP ================================================= Private Declare Function GetDiskFreeSpaceEx _ Lib "kernel32" Alias "GetDiskFreeSpaceExA" _ (ByVal lpRootPathName As String, _ lpFreeBytesAvailableToCaller As Currency, _ lpTotalNumberOfBytes As Currency, _ lpTotalNumberOfFreeBytes As Currency) As Long Private Sub DiskInfo() Dim cuAvailable As Currency Dim cuTotal As Currency Dim cuFree As Currency Call GetDiskFreeSpaceEx("C:\", cuAvailable, _ cuTotal, cuFree) Debug.Print "Disk space info" & vbCr & _ "Available : "; _ FormatByteSize(cuAvailable * 10000) & vbCr & _ "Total : "; _ FormatByteSize(cuTotal * 10000) & vbCr & _ "Free : "; _ FormatByteSize(cuFree * 10000) & vbCr & _ "Used : "; _ FormatByteSize((cuTotal - cuFree) * 10000) End Sub ================================================= "Zoo" wrote: Hi, I have a dll. I want to use a function in the dll on Excel VBA. The fuction is below. int GetDiskSpaceLeft(DWORD dwID, LONGLONG *lpllSpace); If this were "int GetDiskSpaceLeft(DWORD dwID, LONG *lpllSpace);", I knew how to use that. Private Declare Function GetDiskSpaceLeft lib 'xx.dll' (ByVal dwID as Long, ByRef lSpace as Long) However it's not "Long", but "LongLong" How can I use the dll function? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Help with VBA Type statement | Excel Programming | |||
IF statement based on data type | Excel Worksheet Functions | |||
Case when statement gives type mismatch | Excel Programming | |||
Type mismatch while running If statement | Excel Programming | |||
declare type and value on one line? | Excel Programming |