Opened 2 years ago
Last modified 2 years ago
#3971 closed Bug
Integer not handled properly when calling object method — at Initial Version
| Reported by: | BiatuAutMiahn@… | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | 3.3.14.0 | Severity: | None |
| Keywords: | Cc: |
Description
#include <WinAPIError.au3>
Global $oErrorHandler = ObjEvent("AutoIt.Error", "COMErrorHandler")
Func COMErrorHandler()
ConsoleWrite(_WinAPI_GetLastErrorMessage()&@CRLF)
Local $errorDescription = $oErrorHandler.description
ConsoleWrite("COM Error occurred: " & @error & @CRLF & "Description: " & $errorDescription)
EndFunc
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$Output=""
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\.\root\Microsoft\Windows\Storage")
$colItems = $objWMIService.ExecQuery('SELECT * FROM MSFT_Disk', "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
Local $iMBytes=1024*1024
Local $iGBytes=1024*$iMBytes
Local $iSizeEfi=512*$iMBytes
Local $iSizeMsr=128*$iMBytes
Local $iSizeRec=$iGBytes
If IsObj($colItems) then
For $objItem In $colItems
If $objItem.Path<>"\\?\usbstor#disk&ven_iodd&prod__vhdd_gadget_1&rev_#230603390000000092&3#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}" Then ContinueLoop
$objItem.Clear(1,1)&@CRLF)
$objItem.Initialize(2)&@CRLF)
$objItem.Refresh()&@CRLF)
$objItem.CreatePartition($iSizeEfi); works
$objItem.CreatePartition($iSizeMsr); works
$objItem.CreatePartition(2147483647)&@CRLF); Works
$objItem.CreatePartition(2147483648)&@CRLF); Fails
$objItem.CreatePartition(16*$iGBytes)&@CRLF); Fails
ExitLoop
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "MSFT_Disk" )
Endif
Func ConvertSize($iSize, $iPrecision = 2)
Local Const $aUnits = StringSplit("|K|M|G|T|P|E|Z|Y",'|',2)
Local $iUnit = Int(Log($iSize)/Log(1024))
Return String(Round($iSize / 1024 ^ $iUnit, $iPrecision)) & ' ' & $aUnits[$iUnit] & "B"
EndFunc
Calling CreatePartition with any integer greater than 2147483647 fails with Type Mismatch.
Note: See
TracTickets for help on using
tickets.
