#include-once
#include<SendMessage.au3>
#include<ProgressConstants.au3>


Global Const $PBST_NORMAL = 0x0001
Global Const $PBST_ERROR = 0x0002
Global Const $PBST_PAUSED = 0x0003
Global Const $PBM_SETSTATE2 = 0x0410
Global Const $PBM_GETSTATE2 = 0x0411

; #FUNCTION# ====================================================================================================================
; Name...........: _GUICtrlProgress_SetState
; Description ...: Sets the state of the progressbar
; Syntax.........: _GUICtrlProgress_SetState($iProgress, $iStyle)
; Parameters ....: $iProgress   - handle or CtrlID of progressbar
;                  $iState      - new status of progress:
;                  |$PBM_NORMAL - normal state (green)
;                  |$PBM_ERROR  - error state (red)
;                  |$PBM_PAUSED - paused style (yellow)
; Return values .: Success      -
;                  Failure      - 0
; Author ........: Prog@ndy
; Modified.......:
; Remarks .......: requires WinVista or above
; Related .......:
; Link ..........; @@MsdnLink@@ PBM_SETSTATE
; Example .......;
; ===============================================================================================================================
Func _GUICtrlProgress_SetState($iProgress, $iState)
    ; Author: Prog@ndy
    Switch IsHWnd($iProgress)
        Case True
            Return _SendMessage($iProgress, $PBM_SETSTATE2, $iState, 0)
        Case Else
            Return GUICtrlSendMsg($iProgress, $PBM_SETSTATE2, $iState, 0)
    EndSwitch
EndFunc   ;==>_GUICtrlProgress_SetState

; #FUNCTION# ====================================================================================================================
; Name...........: _GUICtrlProgress_GetState
; Description ...: Gets the state of the progressbar
; Syntax.........: _GUICtrlProgress_GetState($iProgress)
; Parameters ....: $iProgress   - handle or CtrlID of progressbar
; Return values .: Success      - status of progress:
;                  |$PBM_NORMAL - normal state (green)
;                  |$PBM_ERROR  - error state (red)
;                  |$PBM_PAUSED - paused style (yellow)
;                  Failure      - 0
; Author ........: Prog@ndy
; Modified.......:
; Remarks .......: requires WinVista or above
; Related .......:
; Link ..........; @@MsdnLink@@ PBM_GETSTATE
; Example .......;
; ===============================================================================================================================
Func _GUICtrlProgress_GetState($iProgress)
    ; Author: Prog@ndy
    Switch IsHWnd($iProgress)
        Case True
            Return _SendMessage($iProgress, $PBM_GETSTATE2, 0, 0)
        Case Else
            Return GUICtrlSendMsg($iProgress, $PBM_GETSTATE2, 0, 0)
    EndSwitch
EndFunc   ;==>_GUICtrlProgress_GetState
