Jump to content

Recommended Posts

Posted

Wunderful function! Nearly perfect!

But is there a way to mute the audio in a video?

And a "property" to loop the movie endless, without restarting it manually?

Thanks for the wunderful work!

Veronesi

  • 7 years later...
Posted (edited)
On 10/24/2012 at 3:46 AM, veronesi said:

But is there a way to mute the audio in a video?

@veronesi I need the same as you, does anyone know how to mute video using this script?

Edited by Belini
Posted

I used this when I was playing around with it, years ago.

#include <GuiButton.au3>


$mute = GUICtrlCreateButton("Mute", 30, 30, 30, 30)


_ToggleMute()


Func _ToggleMute()
    $readButton = _GUICtrlButton_GetText($mute)
    If $readButton = "Mute" Then
        SoundSetWaveVolume(0)
        _GUICtrlButton_SetText($mute, "Unmute")
    Else
        _GUICtrlButton_SetText($mute, "Mute")
        SoundSetWaveVolume(100)
    EndIf
EndFunc

 

Posted

@1957classic this way will not work for me because I only need to silence the video and this way you posted I will silence other sounds too.

Posted

If this player had volume control I would set the volume to zero but there is no way to change the volume nor the mute function.

Posted

Controlling the sound through the speaker icon I can get both master volume and wave volume but what I really need is to control video volume only.

  • 2 weeks later...
Posted

I searched a lot and found nothing to create the MUTE function or VOLUME function and without having control over the sound of the video I can not use this UDF, could anyone implement volume or mute this UDF?

  • 1 month later...
Posted (edited)

Does anyone know what is the Virtual Method Number to change the aspect ratio of video using Ole32.dll?

Edited by Belini
Posted (edited)

Consegui colocar Mute e Volume neste que usa a Ole32.dll e agora já dá prá incluir ele na minha lista de players também.

Func IMediaControl_Mute(ByRef $IGraphBuilder, $opt = 0)
    If $opt = 0 Then
        IMediaControl_Vol($IGraphBuilder, $volume)
    Else
        IMediaControl_Vol($IGraphBuilder, 0)
    EndIf
    GUICtrlSetData($lab_mute, "Mute: " & $opt)
EndFunc   ;==>IMediaControl_Mute

Func IMediaControl_Vol(ByRef $IGraphBuilder, $vol = 50)
    $IMediaControl = GetIMediaControl($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    ;-------IMediaControl Vol Virtual Method Number Is 46;----------------
    $Rt = InterfaceCall($IMediaControl, "long", 46, "long", -Exp((100 - $vol) / 10.86))
    ;-------IMediaControl Vol Virtual Method Number Is 46;----------------
    GUICtrlSetData($lab_vol, "Vol: " & $vol)
    If @error Or $Rt[0] <> 1 Then
        CtrlGraphRelease($IMediaControl)
        Return SetError(2, 0, False)
    EndIf
    Return SetError(0, 0, True)
EndFunc   ;==>IMediaControl_Vol
#include <Array.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


Global $CoInitialize = False, $Ole32 = DllOpen("Ole32.dll"), $MsgGraphArray = 0, $StartGraph = 0
Const $WM_GRAPHNOTIFY = $WM_APP + 1

$hGui = GUICreate("DirectShow", 608, 620, -1, -1, $WS_CAPTION + $WS_SYSMENU + $WS_MINIMIZEBOX + $WS_MAXIMIZEBOX + $WS_SIZEBOX)

$FileOpen = GUICtrlCreateButton("FileOpen ", 20, 470, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$Run = GUICtrlCreateButton("Run", 190, 470, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$Pause = GUICtrlCreateButton("Pause", 340, 470, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$Stop = GUICtrlCreateButton("Stop", 500, 470, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$Full = GUICtrlCreateButton("Fullscreen", 20, 535, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$bt_mute = GUICtrlCreateButton("Mute ", 190, 535, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$v_mais = GUICtrlCreateButton("Vol + ", 340, 535, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$v_menos = GUICtrlCreateButton("Vol - ", 500, 535, 90, 50)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT + $GUI_DOCKBOTTOM)

$lab_mute = GUICtrlCreateLabel("Mute: 0", 190, 595, 90, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))

$lab_vol = GUICtrlCreateLabel("Vol: 100", 340, 595, 90, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))

Global $IGraphBuilder, $volume = 100, $mute = 0, $num = 0
GUISetState()

IMediaControl_Vol($IGraphBuilder, 100)

While True
    $iMsg = GUIGetMsg()
    Select
        Case $iMsg = $GUI_EVENT_CLOSE
            Exit
        Case $iMsg = $bt_mute
            If $mute = 0 Then
                $mute = 1
            Else
                $mute = 0
            EndIf
            IMediaControl_Mute($IGraphBuilder, $mute)
        Case $iMsg = $v_mais
            $volume += 5
            If $volume > 100 Then $volume = 100
            IMediaControl_Vol($IGraphBuilder, $volume)
        Case $iMsg = $v_menos
            $volume -= 5
            If $volume < 0 Then $volume = 0
            IMediaControl_Vol($IGraphBuilder, $volume)
        Case $iMsg = $Run
            IMediaControl_Run($IGraphBuilder)
        Case $iMsg = $Pause
            IMediaControl_Pause($IGraphBuilder)
        Case $iMsg = $Stop
            IMediaControl_Stop($IGraphBuilder)
        Case $iMsg = $Full
            IVideoWindow_put_FullScreenMode($IGraphBuilder, -1)
        Case $iMsg = $FileOpen
            $var = FileOpenDialog("", Default, "Video(*.avi;*.qt;*.mov;*.mpg;*.mpeg;*.m1v;*.wmv;*.flv;*.mp4)", 1 + 4)
            Local $iPosGet = WinGetPos($hGui, "")
            If Not @error Then
                WinMove("DirectShow", "", $iPosGet[0] - 1, $iPosGet[1])
                If Not ($IGraphBuilder) Then
                    $IGraphBuilder = GUICtrlCreateGraph($hGui, $var, 0, 0, 608, 456)
                Else
                    Re_GUICtrlCreateGraph($IGraphBuilder, $var)
                EndIf
                WinMove("DirectShow", "", $iPosGet[0] + 1, $iPosGet[1])
            EndIf
    EndSelect
WEnd

Func IMediaControl_Mute(ByRef $IGraphBuilder, $opt = 0)
    If $opt = 0 Then
        IMediaControl_Vol($IGraphBuilder, $volume)
    Else
        IMediaControl_Vol($IGraphBuilder, 0)
    EndIf
    GUICtrlSetData($lab_mute, "Mute: " & $opt)
EndFunc   ;==>IMediaControl_Mute

Func IMediaControl_Vol(ByRef $IGraphBuilder, $vol = 50)
    $IMediaControl = GetIMediaControl($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    ;-------IMediaControl Vol Virtual Method Number Is 46;----------------
    $Rt = InterfaceCall($IMediaControl, "long", 46, "long", -Exp((100 - $vol) / 10.86))
    ;-------IMediaControl Vol Virtual Method Number Is 46;----------------
    GUICtrlSetData($lab_vol, "Vol: " & $vol)
    If @error Or $Rt[0] <> 1 Then
        CtrlGraphRelease($IMediaControl)
        Return SetError(2, 0, False)
    EndIf
    Return SetError(0, 0, True)
EndFunc   ;==>IMediaControl_Vol

Func IMediaControl_Run($IGraphBuilder)
    $IMediaControl = GetIMediaControl($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    $State = IMediaControl_GetState($IGraphBuilder)
    If @error Then Return SetError(2, 0, False)
    If $State = 2 Then
        IMediaControl_Stop($IGraphBuilder)
        If @error Then Return SetError(3, 0, False)
    EndIf
    If $State = 2 Or $State = 0 Then
        IMediaSeeking_SeekToCurrent($IGraphBuilder)
        If @error Then Return SetError(4, 0, False)
    EndIf
    ;-------IMediaControl Run Virtual Method Number Is 8;----------------
    $Rt = InterfaceCall($IMediaControl, "long", 8)
    ;-------IMediaControl Run Virtual Method Number Is 8;----------------
    If @error Or $Rt[0] <> 1 Then
        CtrlGraphRelease($IMediaControl)
        Return SetError(5, 0, False)
    EndIf
    CtrlGraphRelease($IMediaControl)
    Return SetError(0, 0, True)
EndFunc   ;==>IMediaControl_Run

Func IMediaControl_Pause($IGraphBuilder)
    $IMediaControl = GetIMediaControl($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    ;-------IMediaControl Pause Virtual Method Number Is 9;----------------
    $Rt = InterfaceCall($IMediaControl, "long", 9)
    ;-------IMediaControl Pause Virtual Method Number Is 9;----------------
    If @error Or $Rt[0] <> 1 Then
        CtrlGraphRelease($IMediaControl)
        Return SetError(2, 0, False)
    EndIf
    Return SetError(0, 0, True)
EndFunc   ;==>IMediaControl_Pause

Func IMediaControl_Stop($IGraphBuilder)
    $IMediaControl = GetIMediaControl($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    ;-------IMediaControl Stop Virtual Method Number Is 10;----------------
    $Rt = InterfaceCall($IMediaControl, "long", 10)
    ;-------IMediaControl Stop Virtual Method Number Is 10;----------------
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IMediaControl)
        Return SetError(2, 0, False)
    EndIf
    CtrlGraphRelease($IMediaControl)
    Return SetError(0, 0, True)
EndFunc   ;==>IMediaControl_Stop

Func IVideoWindow_SetWindowPosition($IGraphBuilder, $L, $T, $W, $H)
    $IVideoWindow = GetIVideoWindow($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    ;-------IVideoWindow SetWindowPosition Virtual Method Number Is 40;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 40, "long", $L, "long", $T, "long", $W, "long", $H)
    ;-------IVideoWindow SetWindowPosition Virtual Method Number Is 40;----------------
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IVideoWindow)
        Return SetError(2, 0, False)
    EndIf
    CtrlGraphRelease($IVideoWindow)
    Return SetError(0, 0, True)
EndFunc   ;==>IVideoWindow_SetWindowPosition

Func IVideoWindow_put_FullScreenMode($IGraphBuilder, $FullScreenMode)
    $IVideoWindow = GetIVideoWindow($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    ;Sets a hotkey that calls a user function.
    ;HotKeySet("{ESC}", "HotKeyFullScreenMode")
    ;Func HotKeyFullScreenMode()
    ;IVideoWindow_put_FullScreenMode($IGraphBuilder,$FullScreenMode)
    ;EndFunc
    ;The put_FullScreenMode method enables or disables full-screen video rendering.
    ;FullScreenMode [in]
    ;Boolean value that specifies whether to enable or disable full-screen mode. Must be one
    ;of the following values:
    ;Value  Description
    ;OATRUE = -1    Switch to full-screen mode.
    ;OAFALSE = 0    Disable full-screen mode. (Default.)
    ;-------IVideoWindow put_FullScreenMode Virtual Method Number Is 37;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 37, "long", $FullScreenMode)
    ;-------IVideoWindow put_FullScreenMode Virtual Method Number Is 37;----------------
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IVideoWindow)
        Return SetError(2, 0, False)
    EndIf
    CtrlGraphRelease($IVideoWindow)
    Return SetError(0, 0, True)
EndFunc   ;==>IVideoWindow_put_FullScreenMode

Func GUICtrlCreateGraph($Gui, $FileName, $L, $T, $W, $H, $Style = -1, $ExStyle = -1, $Run = True)
    ;$FileName the name of a media file
    If $Style = -1 Then $Style = BitOR($WS_CHILD, $WS_CLIPCHILDREN, $WS_CLIPSIBLINGS)
    If $ExStyle = -1 Then $ExStyle = 0
    $StrIID_IGraphBuilder = "{56a868a9-0ad4-11ce-b03a-0020af0ba770}"
    $StrCLSID_FilterGraph = "{e436ebb3-524f-11ce-9f53-0020af0ba770}"
    $NewIGraphBuilder = GetObjFromGuid($StrIID_IGraphBuilder, $StrCLSID_FilterGraph)
    If @error Then Return SetError(1, 0, 0)

    If $StartGraph = 0 Then
        GUIRegisterMsg($WM_GRAPHNOTIFY, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_ERASEBKGND, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_ACTIVATEAPP, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_DEVMODECHANGE, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_DISPLAYCHANGE, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_PALETTECHANGED, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_PALETTEISCHANGING, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_QUERYNEWPALETTE, "CREATEGRAPH_WM_MSG")
        $StartGraph = 1
    ElseIf $StartGraph = 2 Then
        GUIRegisterMsg($WM_ERASEBKGND, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_ACTIVATEAPP, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_DEVMODECHANGE, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_DISPLAYCHANGE, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_PALETTECHANGED, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_PALETTEISCHANGING, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_QUERYNEWPALETTE, "CREATEGRAPH_WM_MSG")
        GUIRegisterMsg($WM_SYSCOLORCHANGE, "CREATEGRAPH_WM_MSG")
    EndIf

    Add_Remove_MsgGraphArray($NewIGraphBuilder) ; Add

    ;-------IGraphBuilder RenderFile Virtual Method Number Is 14;----------------
    $Rt = InterfaceCall($NewIGraphBuilder, "long", 14, "wstr", $FileName, "ptr", 0)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        CtrlGraphRelease($NewIGraphBuilder)
        Return SetError(2, 0, 0)
    EndIf
    ;-------IGraphBuilder RenderFile Virtual Method Number Is 14;----------------

    $IVideoWindow = GetIVideoWindow($NewIGraphBuilder)
    If @error Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        CtrlGraphRelease($NewIGraphBuilder)
        Return SetError(3, 0, 0)
    EndIf

    $IMediaEventEx = GetIMediaEventEx($NewIGraphBuilder)
    If @error Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow)
        Return SetError(4, 0, 0)
    EndIf

    ;-------IMediaEventEx SetNotifyWindow Virtual Method Number Is 14;----------------
    $Rt = InterfaceCall($IMediaEventEx, "long", 14, "ptr", $Gui, "long", $WM_GRAPHNOTIFY, "ptr", 0)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        Return SetError(5, 0, 0)
    EndIf
    ;-------IMediaEventEx SetNotifyWindow Virtual Method Number Is 14;----------------

    ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 30, "ptr", $Gui)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        Return SetError(6, 0, 0)
    EndIf
    ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------

    ;-------IVideoWindow put_MessageDrain Virtual Method Number Is 32;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 32, "ptr", $Gui)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        Return SetError(7, 0, 0)
    EndIf
    ;-------IVideoWindow put_MessageDrain Virtual Method Number Is 32;----------------

    ;-------IVideoWindow SetWindowPosition Virtual Method Number Is 40;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 40, "long", $L, "long", $T, "long", $W, "long", $H)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        $Rt = InterfaceCall($IVideoWindow, "long", 30, "ptr", 0)
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        Return SetError(8, 0, 0)
    EndIf
    ;-------IVideoWindow SetWindowPosition Virtual Method Number Is 40;----------------

    ;-------IVideoWindow put_WindowStyle Virtual Method Number Is 10;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 10, "long", $Style)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        $Rt = InterfaceCall($IVideoWindow, "long", 30, "ptr", 0)
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        Return SetError(9, 0, 0)
    EndIf
    ;-------IVideoWindow put_WindowStyle Virtual Method Number Is 10;----------------

    ;-------IVideoWindow put_WindowStyleEx Virtual Method Number Is 12;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 12, "long", $ExStyle)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        $Rt = InterfaceCall($IVideoWindow, "long", 30, "ptr", 0)
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        Return SetError(10, 0, 0)
    EndIf
    ;-------IVideoWindow put_WindowStyleEx Virtual Method Number Is 12;----------------

    ;-------IVideoWindow put_AutoShow Virtual Method Number Is 14;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 14, "long", -1)
    If @error Or $Rt[0] <> 0 Then
        Add_Remove_MsgGraphArray($NewIGraphBuilder, 2) ; Remove
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        $Rt = InterfaceCall($IVideoWindow, "long", 30, "ptr", 0)
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        CtrlGraphRelease($NewIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        Return SetError(11, 0, 0)
    EndIf
    ;-------IVideoWindow put_AutoShow Virtual Method Number Is 14;----------------

    If ($Run) Then
        IMediaControl_Run($NewIGraphBuilder)
    EndIf

    CtrlGraphRelease($IVideoWindow, $IMediaEventEx)

    Return SetError(0, 0, $NewIGraphBuilder)

EndFunc   ;==>GUICtrlCreateGraph

Func Re_GUICtrlCreateGraph(ByRef $OutIGraphBuilder, $FileName, $Run = True)

    $IVideoWindow = GetIVideoWindow($OutIGraphBuilder)
    If @error Then Return SetError(1, 0, False)

    $IMediaEventEx = GetIMediaEventEx($OutIGraphBuilder)
    If @error Then Return SetError(2, 0, False)

    ;-------IVideoWindow get_WindowStyle Virtual Method Number Is 11;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 11, "long*", 0)
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IVideoWindow, $IMediaEventEx)
        Return SetError(3, 0, False)
    EndIf
    $Style = $Rt[1]
    ;-------IVideoWindow get_WindowStyle Virtual Method Number Is 11;----------------

    ;-------IVideoWindow get_WindowStyleEx Virtual Method Number Is 13;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 13, "long*", 0)
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IVideoWindow, $IMediaEventEx)
        Return SetError(4, 0, False)
    EndIf
    $ExStyle = $Rt[1]
    ;-------IVideoWindow get_WindowStyleEx Virtual Method Number Is 13;----------------

    ;-------IVideoWindow get_Owner Virtual Method Number Is 31;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 31, "ptr*", 0)
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IVideoWindow, $IMediaEventEx)
        Return SetError(5, 0, False)
    EndIf
    $Gui = $Rt[1]
    ;-------IVideoWindow get_Owner Virtual Method Number Is 31;----------------

    ;-------IVideoWindow GetRestorePosition Virtual Method Number Is 44;----------------
    $Rt = InterfaceCall($IVideoWindow, "long", 44, "long*", 0, "long*", 0, "long*", 0, "long*", 0)
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IVideoWindow, $IMediaEventEx)
        Return SetError(6, 0, False)
    EndIf
    $L = $Rt[1]
    $T = $Rt[2]
    $W = $Rt[3]
    $H = $Rt[4]
    ;-------IVideoWindow GetRestorePosition Virtual Method Number Is 44;------------

    $RtIGraphBuilder = GUICtrlCreateGraph($Gui, $FileName, $L, $T, $W, $H, $Style, $ExStyle, $Run)
    If @error Then
        CtrlGraphRelease($IVideoWindow, $IMediaEventEx)
        Return SetError(7, 0, False)
    Else

        IMediaControl_Stop($OutIGraphBuilder)
        Add_Remove_MsgGraphArray($OutIGraphBuilder, 2) ; Remove

        ;-------IMediaEventEx SetNotifyWindow Virtual Method Number Is 14;----------------
        $Rt = InterfaceCall($IMediaEventEx, "long", 14, "ptr", 0, "long", 0, "ptr", 0)
        ;-------IMediaEventEx SetNotifyWindow Virtual Method Number Is 14;----------------

        ;-------IVideoWindow put_Visible Virtual Method Number Is 20;----------------
        $Rt = InterfaceCall($IVideoWindow, "long", 20, "long", 0)
        ;-------IVideoWindow put_Visible Virtual Method Number Is 20;----------------

        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------
        $Rt = InterfaceCall($IVideoWindow, "long", 30, "ptr", 0)
        ;-------IVideoWindow put_Owner Virtual Method Number Is 30;----------------

        CtrlGraphRelease($OutIGraphBuilder, $IVideoWindow, $IMediaEventEx)
        $OutIGraphBuilder = $RtIGraphBuilder

    EndIf

    Return SetError(0, 0, True)

EndFunc   ;==>Re_GUICtrlCreateGraph

Func GetIVideoWindow($IGraphBuilder)
    $IID_IVideoWindow = IIDFromString("{56a868b4-0ad4-11ce-b03a-0020af0ba770}")
    If @error Then Return SetError(1, 0, 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    $Rt = InterfaceCall($IGraphBuilder, "long", 1, "struct*", $IID_IVideoWindow, "ptr*", 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    If @error Or $Rt[0] <> 0 Then Return SetError(2, 0, 0)
    Return SetError(0, 0, $Rt[2])
EndFunc   ;==>GetIVideoWindow

Func GetIMediaControl($IGraphBuilder)
    $IID_IMediaControl = IIDFromString("{56a868b1-0ad4-11ce-b03a-0020af0ba770}")
    If @error Then Return SetError(1, 0, 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    $Rt = InterfaceCall($IGraphBuilder, "long", 1, "struct*", $IID_IMediaControl, "ptr*", 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    If @error Or $Rt[0] <> 0 Then Return SetError(2, 0, 0)
    Return SetError(0, 0, $Rt[2])
EndFunc   ;==>GetIMediaControl

Func GetIMediaSeeking($IGraphBuilder)
    $IID_IMediaSeeking = IIDFromString("{36b73880-c2c8-11cf-8b46-00805f6cef60}")
    If @error Then Return SetError(1, 0, 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    $Rt = InterfaceCall($IGraphBuilder, "long", 1, "struct*", $IID_IMediaSeeking, "ptr*", 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    If @error Or $Rt[0] <> 0 Then Return SetError(2, 0, 0)
    Return SetError(0, 0, $Rt[2])
EndFunc   ;==>GetIMediaSeeking

Func GetIMediaEventEx($IGraphBuilder)
    $IID_IMediaEventEx = IIDFromString("{56a868c0-0ad4-11ce-b03a-0020af0ba770}")
    If @error Then Return SetError(1, 0, 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    $Rt = InterfaceCall($IGraphBuilder, "long", 1, "struct*", $IID_IMediaEventEx, "ptr*", 0)
    ;---------IUnknown QueryInterface Virtual Method Number Is 1;-------------------
    If @error Or $Rt[0] <> 0 Then Return SetError(2, 0, 0)
    Return SetError(0, 0, $Rt[2])
EndFunc   ;==>GetIMediaEventEx

Func IMediaSeeking_SeekToCurrent($IGraphBuilder)
    ;-------IMediaSeeking SetPositions Virtual Method Number Is 15;----------------
    $IMediaSeeking = GetIMediaSeeking($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    $Rt = InterfaceCall($IMediaSeeking, "long", 15, "INT64*", 0, "DWORD", 0x1, "INT64*", 0, "DWORD", 0)
    ;-------IMediaSeeking SetPositions Virtual Method Number Is 15;----------------
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IMediaSeeking)
        Return SetError(2, 0, False)
    EndIf
    IMediaControl_Stop($IGraphBuilder)
    CtrlGraphRelease($IMediaSeeking)
    Return SetError(0, 0, True)
EndFunc   ;==>IMediaSeeking_SeekToCurrent

Func IMediaControl_StopWhenReady($IGraphBuilder)
    $IMediaControl = GetIMediaControl($IGraphBuilder)
    If @error Then Return SetError(1, 0, False)
    ;-------IMediaControl StopWhenReady Virtual Method Number Is 16;----------------
    $Rt = InterfaceCall($IMediaControl, "long", 16)
    ;-------IMediaControl StopWhenReady Virtual Method Number Is 16;----------------
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IMediaControl)
        Return SetError(2, 0, False)
    EndIf
    CtrlGraphRelease($IMediaControl)
    Return SetError(0, 0, True)
EndFunc   ;==>IMediaControl_StopWhenReady

Func IMediaControl_GetState($IGraphBuilder)
    ;enum _FilterState
    ;{  State_Stopped   = 0,
    ;State_Paused   = State_Stopped + 1,
    ;State_Running  = State_Paused + 1
    ;}  FILTER_STATE;
    $IMediaControl = GetIMediaControl($IGraphBuilder)
    If @error Then Return SetError(1, 0, -1)
    ;-------IMediaControl GetState Virtual Method Number Is 11;----------------
    $Rt = InterfaceCall($IMediaControl, "long", 11, "long", 1000, "long*", 0)
    ;-------IMediaControl GetState Virtual Method Number Is 11;----------------
    If @error Or $Rt[0] <> 0 Then
        CtrlGraphRelease($IMediaControl)
        Return SetError(2, 0, -1)
    EndIf
    CtrlGraphRelease($IMediaControl)
    Return SetError(0, 0, $Rt[2])
EndFunc   ;==>IMediaControl_GetState

Func InterfaceCall($Inface, $ReturnType, $MethodNum, $Type1 = 0, $Param1 = 0, $Type2 = 0, $Param2 = 0 _
        , $Type3 = 0, $Param3 = 0, $Type4 = 0, $Param4 = 0, $Type5 = 0, $Param5 = 0, $Type6 = 0, $Param6 = 0 _
        , $Type7 = 0, $Param7 = 0, $Type8 = 0, $Param8 = 0, $Type9 = 0, $Param9 = 0, $Type10 = 0, $Param10 = 0 _
        , $Type11 = 0, $Param11 = 0, $Type12 = 0, $Param12 = 0, $Type13 = 0, $Param13 = 0, $Type14 = 0, $Param14 = 0 _
        , $Type15 = 0, $Param15 = 0, $Type16 = 0, $Param16 = 0, $Type17 = 0, $Param17 = 0, $Type18 = 0, $Param18 = 0 _
        , $Type19 = 0, $Param19 = 0, $Type20 = 0, $Param20 = 0, $Type21 = 0, $Param21 = 0, $Type22 = 0, $Param22 = 0 _
        , $Type23 = 0, $Param23 = 0, $Type24 = 0, $Param24 = 0, $Type25 = 0, $Param25 = 0, $Type26 = 0, $Param26 = 0 _
        , $Type27 = 0, $Param27 = 0, $Type28 = 0, $Param28 = 0, $Type29 = 0, $Param29 = 0, $Type30 = 0, $Param30 = 0)
    ;;Return Array Of DllCallAddress
    ;Only Call Virtual Method Form any Class Or From any Interface
    ;$MethodNum ==> Virtual Method Number In (Virtual Methods Table) ;See the examples
    ;-------------------------------------------------------------------;C++ Example1
    ;C++ Example1
    ;class iClass
    ;{
    ;public:
    ;void MethodA()
    ;{
    ;MessageBox(0,"MethodA","MSG",0);
    ;}
    ;virtual void VirtualMethodB()
    ;{
    ;MessageBox(0,"VirtualMethodB","MSG",0);
    ;}
    ;virtual void VirtualMethodC()
    ;{
    ;MessageBox(0,"VirtualMethodC","MSG",0);
    ;}
    ;void MethodB()
    ;{
    ;MessageBox(0,"MethodB","MSG",0);
    ;}
    ;virtual void VirtualMethodA()
    ;{
    ;MessageBox(0,"VirtualMethodA","MSG",0);
    ;}
    ;};
    ;-----------------------------------------------------------;Virtual Methods Table
    ;Virtual Methods Table
    ;virtual void VirtualMethodB() ==> Virtual Method Number Is 1
    ;virtual void VirtualMethodC() ==> Virtual Method Number Is 2
    ;virtual void VirtualMethodA() ==> Virtual Method Number Is 3
    ;-----------------------------------------------------------;Virtual Methods Table
    ;-------------------------------------------------------------------;C++ Example1

    ;////////////////////////////////////////////////////////////////////////////////

    ;-------------------------------------------------------------------;C++ Example2
    ;C++ Example2
    ;class iClassA
    ;{
    ;public:
    ;void MethodA()
    ;{
    ;MessageBox(0,"MethodA","MSG",0);
    ;}
    ;virtual void VirtualMethodB()
    ;{
    ;MessageBox(0,"VirtualMethodB","MSG",0);
    ;}
    ;virtual void VirtualMethodC()
    ;{
    ;MessageBox(0,"VirtualMethodC","MSG",0);
    ;}
    ;};

    ;class iClassB : public iClassA
    ;{
    ;public:
    ;void MethodD()
    ;{
    ;MessageBox(0,"MethodD","MSG",0);
    ;}
    ;virtual void VirtualMethodF()
    ;{
    ;MessageBox(0,"VirtualMethodF","MSG",0);
    ;}
    ;virtual void VirtualMethodE()
    ;{
    ;MessageBox(0,"VirtualMethodE","MSG",0);
    ;}
    ;};
    ;////////////////////////////////////////////////////////////////////////////////
    ;////////////////////////////////////////////////////////////////////////////////
    ;------------------------------------------;Virtual Methods Table Of iClassA Class
    ;Virtual Methods Table Of iClassA Class
    ;virtual void VirtualMethodB() ==> Virtual Method Number Is 1
    ;virtual void VirtualMethodC() ==> Virtual Method Number Is 2
    ;------------------------------------------;Virtual Methods Table Of iClassA Class
    ;////////////////////////////////////////////////////////////////////////////////
    ;///////////////////////////////////////////////////////////////////////////////
    ;------------------------------------------;Virtual Methods Table Of iClassB Class
    ;class iClassB : public iClassA
    ;base class ==> iClassA
    ;derived class ==> iClassB
    ;http://msdn.microsoft.com/en-us/library/hzk8a7d3.aspx
    ;When preceding the name of a base class, the public keyword specifies that the public
    ;and protected members of the base class are public and protected members, respectively,
    ;of the derived class.
    ;-------------------------------------------------------------------------------------
    ;Virtual Methods Table Of iClassB Class
    ;virtual void VirtualMethodB() In (iClassA) ==> Virtual Method Number Is 1
    ;virtual void VirtualMethodC() In (iClassA) ==> Virtual Method Number Is 2
    ;virtual void VirtualMethodF() In (iClassB) ==> Virtual Method Number Is 3
    ;virtual void VirtualMethodE() In (iClassB) ==> Virtual Method Number Is 4
    ;------------------------------------------;Virtual Methods Table Of iClassB Class
    ;-------------------------------------------------------------------;C++ Example2
    ;////////////////////////////////////////////////////////////////////////////////
    If Not IsPtr($Inface) Or ($MethodNum < 1) Then Return SetError(1, 0, 0)
    If (@NumParams > 3) And (Mod((@NumParams - 3), 2) <> 0) Then Return SetError(2, 0, 0)
    Local $iMethAddress = GetMethodAddress($Inface, $MethodNum)
    If Not ($iMethAddress) Then Return SetError(3, 0, 0)
    Local $iDataType = "", $iFuncParam = "", $iCommand = "", $iReturn = 0
    ;Why use Inface Param In DllCallAddress Function Because the Function of the method
    ;starts from the (Interface Or class)
    ;See here
    ;int class::MethodFunction( int Param ){return 0;};
    $iCommand = 'DllCallAddress("' & $ReturnType & '",Eval("iMethAddress"),"ptr",Eval("Inface"),'
    For $i = 1 To ((@NumParams - 3) / 2)
        $iDataType = Eval("Type" & $i)
        $iCommand &= '"' & $iDataType & '",'
        $iFuncParam = 'Eval("Param' & $i & '"),'
        $iCommand &= $iFuncParam
    Next
    $iCommand = StringTrimRight($iCommand, 1)
    $iCommand &= ")"
    $iReturn = Execute($iCommand)
    If @error Then Return SetError(4, 0, 0)
    Local $nReturn[UBound($iReturn) - 1], $j = 0
    For $i = 0 To UBound($iReturn) - 1
        If ($i = 1) Then ContinueLoop ;Skip $Inface Element
        $nReturn[$j] = $iReturn[$i]
        $j += 1
    Next
    Return SetError(0, 0, $nReturn)
EndFunc   ;==>InterfaceCall

Func GetMethodAddress($Inface, $MethodNum)
    ;$MethodNum ==> Virtual Method Number In (Virtual Methods Table)
    Local $SizeOfUlong_Ptr = 4, $iMethAddress = 0, $OutCastStruct1 = 0
    Local $OutCast1 = 0, $OutCastStruct2 = 0
    If Not IsPtr($Inface) Or ($MethodNum < 1) Then Return SetError(1, 0, 0)
    ;-------------------------------------------------------
    $OutCastStruct1 = DllStructCreate("ULONG_PTR", $Inface)
    $OutCast1 = DllStructGetData($OutCastStruct1, 1)
    ;In C++ ==> unsigned long** OutCast1 = *(unsigned long***)Inface;
    ;--------------------------------------------------------
    ;-------------------------------------------------------
    $OutCastStruct2 = DllStructCreate("ULONG_PTR", $OutCast1 + ($SizeOfUlong_Ptr * ($MethodNum - 1)))
    $iMethAddress = DllStructGetData($OutCastStruct2, 1)
    ;$OutCast1 + ($SizeOfUlong_Ptr * ($MethodNum - 1)) ==> $OutCast1 Is PTR Array Of Virtual Methods Table // Method PTR = Array[MethodNum - 1]
    ;In C++ ==> unsigned long* iMethAddress = *(unsigned long**)((BYTE*)OutCast1 + (SizeOfUlong_Ptr * (MethodNum - 1)));
    ;Or In C++ ==> unsigned long* iMethAddress = OutCast1[MethodNum - 1];
    ;--------------------------------------------------------
    If (IsBadCodePtr($iMethAddress)) Then Return SetError(2, 0, 0)
    Return SetError(0, 0, $iMethAddress)
EndFunc   ;==>GetMethodAddress

Func IsBadCodePtr($lpfn)
    Local $iReturn
    $iReturn = DllCall("Kernel32.dll", "BOOL", "IsBadCodePtr", "ptr", $lpfn)
    If @error Then Return SetError(1, 0, 0)
    Return SetError(0, 0, $iReturn[0])
EndFunc   ;==>IsBadCodePtr

Func CLSIDFromString($psz)
    $GUID = DllStructCreate("ulong Data1;ushort Data2;ushort Data3;byte Data4[8]")
    $Oleerror = DllCall("Ole32.dll", "int", "CLSIDFromString", "WSTR", $psz, "struct*", $GUID)
    If @error Or $Oleerror[0] <> 0 Then Return SetError(1, 0, 0)
    Return SetError(0, 0, $Oleerror[2])
EndFunc   ;==>CLSIDFromString

Func IIDFromString($psz)
    $GUID = DllStructCreate("ulong Data1;ushort Data2;ushort Data3;byte Data4[8]")
    $Oleerror = DllCall("Ole32.dll", "int", "IIDFromString", "WSTR", $psz, "struct*", $GUID)
    If @error Or $Oleerror[0] <> 0 Then Return SetError(1, 0, 0)
    Return SetError(0, 0, $Oleerror[2])
EndFunc   ;==>IIDFromString

Func CREATEGRAPH_WM_MSG($hWnd, $Msg, $wParam, $lParam)
    If IsArray($MsgGraphArray) Then
        For $i = 0 To UBound($MsgGraphArray) - 1
            Switch $Msg
                Case $WM_GRAPHNOTIFY
                    Local $EC_COMPLETE = 0x01
                    $IMediaEventEx = GetIMediaEventEx($MsgGraphArray[$i])
                    If Not @error Then
                        ;-------IMediaEventEx GetEvent Virtual Method Number Is 9;----------------
                        $Rt = InterfaceCall($IMediaEventEx, "long", 9, "Long*", 0, "LONG_PTR*", 0, "LONG_PTR*", 0, "long", 100)
                        ;-------IMediaEventEx GetEvent Virtual Method Number Is 9;----------------
                        If Not @error And $Rt[0] = 0 Then
                            $lEventCode = $Rt[1]
                            $lParam1 = $Rt[2]
                            $lParam2 = $Rt[3]
                            If $lEventCode = $EC_COMPLETE Then
                                IMediaControl_StopWhenReady($MsgGraphArray[$i])
                            EndIf
                            ;-------IMediaEventEx FreeEventParams Virtual Method Number Is 13;----------------
                            InterfaceCall($IMediaEventEx, "long", 13, "Long", $lEventCode, "LONG_PTR", $lParam1, "LONG_PTR", $lParam2)
                            ;-------IMediaEventEx FreeEventParams Virtual Method Number Is 13;----------------
                        EndIf
                    EndIf
                Case $WM_ERASEBKGND
                    $IVideoWindow = GetIVideoWindow($MsgGraphArray[$i])
                    If Not @error Then
                        ;-------IVideoWindow put_BackgroundPalette Virtual Method Number Is 18;----------------
                        ;The put_BackgroundPalette method specifies whether the video window realizes its palette
                        ;in the background.
                        ;BackgroundPalette [in]
                        ;Specifies whether the video renderer realizes it palette in the background. Must be one of
                        ;the following values:
                        ;Value  Description
                        ;OATRUE = -1    The video renderer realizes the palette in the background.
                        ;OAFALSE = 0    The video renderer does not realize the palette in the background. (Default.)
                        Local $BackgroundPalette = -1
                        $Rt = InterfaceCall($IVideoWindow, "long", 18, "long", $BackgroundPalette)
                        ;-------IVideoWindow put_BackgroundPalette Virtual Method Number Is 18;----------------
                        CtrlGraphRelease($IVideoWindow)
                        ; No Return
                    EndIf
                Case Else
                    $IVideoWindow = GetIVideoWindow($MsgGraphArray[$i])
                    If Not @error Then
                        ;-------IVideoWindow NotifyOwnerMessage Virtual Method Number Is 39;----------------
                        InterfaceCall($IVideoWindow, "long", 39, "ptr", $hWnd, "long", $Msg, "long", $wParam, "long", $lParam)
                        ;-------IVideoWindow NotifyOwnerMessage Virtual Method Number Is 39;----------------
                        CtrlGraphRelease($IVideoWindow)
                        Return $GUI_RUNDEFMSG
                    EndIf
            EndSwitch
        Next
    EndIf
EndFunc   ;==>CREATEGRAPH_WM_MSG

Func CREATEGRAPH_ON_EXIT()
    DllCall($Ole32, "long", "CoUninitialize")
    DllClose($Ole32)
EndFunc   ;==>CREATEGRAPH_ON_EXIT

Func CtrlGraphRelease($IUnknown1 = 0, $IUnknown2 = 0, $IUnknown3 = 0)
    If ($IUnknown1) Then IUnknownRelease($IUnknown1)
    If ($IUnknown2) Then IUnknownRelease($IUnknown2)
    If ($IUnknown3) Then IUnknownRelease($IUnknown3)
EndFunc   ;==>CtrlGraphRelease

Func Add_Remove_MsgGraphArray($IGraphBuilderObj, $Flag = 1)
    ;$Flag = 1 Add
    ;$Flag = 2 Remove
    Switch $Flag
        Case 1
            If Not IsArray($MsgGraphArray) Then
                Local $TempMsgGraphArray[1]
                $TempMsgGraphArray[0] = $IGraphBuilderObj
                $MsgGraphArray = $TempMsgGraphArray
                Return SetError(0, 0, True)
            Else
                For $i = 0 To UBound($MsgGraphArray) - 1
                    If $IGraphBuilderObj = $MsgGraphArray[$i] Then Return SetError(1, 0, False)
                Next
                ReDim $MsgGraphArray[UBound($MsgGraphArray) + 1]
                $MsgGraphArray[UBound($MsgGraphArray) - 1] = $IGraphBuilderObj
                Return SetError(0, 0, True)
            EndIf
        Case 2
            If IsArray($MsgGraphArray) Then
                Local $TempMsgGraphArray[UBound($MsgGraphArray)], $Test = False, $j = 0
                For $i = 0 To UBound($MsgGraphArray) - 1
                    If $IGraphBuilderObj = $MsgGraphArray[$i] Then
                        $Test = True
                        ContinueLoop
                    EndIf
                    $TempMsgGraphArray[$j] = $MsgGraphArray[$i]
                    $j += 1
                Next
                If ($Test) Then
                    If UBound($TempMsgGraphArray) > 1 Then
                        ReDim $TempMsgGraphArray[UBound($TempMsgGraphArray) - 1]
                        $MsgGraphArray = $TempMsgGraphArray
                    Else
                        $MsgGraphArray = 0
                    EndIf
                    Return SetError(0, 0, True)
                Else
                    Return SetError(2, 0, False)
                EndIf
            EndIf
        Case Else
            Return SetError(3, 0, False)
    EndSwitch
EndFunc   ;==>Add_Remove_MsgGraphArray

Func IUnknownRelease($IUnknown)
    ;-------IUnknown Release Virtual Method Number Is 3;----------------
    $Rt = InterfaceCall($IUnknown, "long", 3)
    ;-------IUnknown Release Virtual Method Number Is 3;----------------
    If @error Then Return SetError(1, 0, 0)
    Return SetError(0, 0, $Rt[0])
EndFunc   ;==>IUnknownRelease

Func GetObjFromGuid($StrIID, $StrCLSID)
    Local $LSCTX_ALL = BitOR(0x1, 0x4, 0x16), $Rt = 0
    If Not ($CoInitialize) Then
        $Rt = DllCall($Ole32, "long", "CoInitialize", "ptr", 0)
        If @error Or ($Rt[0] <> 0 And $Rt[0] <> 1) Then Return SetError(1, 0, 0)
        $CoInitialize = True
        OnAutoItExitRegister("CREATEGRAPH_ON_EXIT")
    EndIf
    $clsid = CLSIDFromString($StrCLSID)
    If @error Then Return SetError(2, 0, 0)
    $riid = IIDFromString($StrIID)
    If @error Then Return SetError(3, 0, 0)
    $Rt = DllCall($Ole32, "long", "CoCreateInstance", "ptr", DllStructGetPtr($clsid), _
            "ptr", 0, "DWORD", $LSCTX_ALL, "ptr", DllStructGetPtr($riid), "ptr*", 0)
    If @error Or $Rt[0] <> 0 Then Return SetError(4, 0, 0)
    Return SetError(0, 0, $Rt[5])
EndFunc   ;==>GetObjFromGuid

;~ Func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)
;~  #forceref $iMsg, $wParam
;~  Local $iPosGet = WinGetClientSize($hGui, "")
;~  IVideoWindow_SetWindowPosition($IGraphBuilder, 0, 0, $iPosGet[0], $iPosGet[1] - 100)
;~  Return $GUI_RUNDEFMSG
;~ EndFunc   ;==>WM_SIZE

 

Edited by Belini

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...