Jump to content

Opens a file in the Edit when dragging


AZJIO
 Share

Recommended Posts

You can do it more simply and more stable?

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>

$hGui = GUICreate("GUI", 400, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)
$iEdit = GUICtrlCreateEdit("The first line of the" & @CRLF & "The second line", 3, 3, 400 - 6, 500 - 6, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUICtrlSendMsg(-1, $EM_LIMITTEXT, -1, 0)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_DROPPED
            If $iEdit = @GUI_DropId Then
                $sPos = _GUICtrlEdit_GetSel($iEdit)
                $sText = StringMid(GUICtrlRead($iEdit), $sPos[0] + 1)
                $sPath = StringRegExpReplace($sText, '(?s)^(.+?)(?:R.*)', '1')
                WinSetTitle($hGui, '', StringRegExpReplace($sPath, '^(?:.*)([^]*?)(?:.[^.]+)?$', '1'))
                If FileExists($sPath) And Not StringInStr(FileGetAttrib($sPath), "D") Then
                    GUICtrlSetData($iEdit, FileRead($sPath))
                Else
                    _GUICtrlEdit_ReplaceSel($iEdit, '')
                EndIf
            EndIf
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
Edited by AZJIO
Link to comment
Share on other sites

What's wrong with what you have now?

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

OK so it's solved. Great.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

I don't know if that will fix the problem UEZ.

#include <GUIConstantsEx.au3>
#include <GUIEdit.au3>
#include <WinAPIEx.au3>
#include <WindowsConstants.au3>

GLobal $__aDropFiles = 0

Example()

Func Example()
    Local $hGUI = GUICreate('GUI', 400, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)
    Local $iEdit = GUICtrlCreateEdit('The first line of the' & @CRLF & 'The second line', 3, 3, 400 - 6, 500 - 6, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN)
    GUICtrlSetState($iEdit, $GUI_DROPACCEPTED)
    _GUICtrlEdit_SetLimitText($iEdit, 0)

    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES')
    GUISetState(@SW_SHOW, $hGUI)

    Local $sPath = '', $sPos = '', $sText = ''
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_DROPPED
                If $iEdit = @GUI_DropId Then
                    $sPos = _GUICtrlEdit_GetSel($iEdit)
                    $sText = StringMid(GUICtrlRead($iEdit), $sPos[0] + 1)
                    $sPath = StringRegExpReplace($sText, '(?s)^(.+?)(?:R.*)', '1')
                    If FileExists($sPath) And Not StringInStr(FileGetAttrib($sPath), 'D') Then
                        GUICtrlSetData($iEdit, FileRead($sPath))
                    Else
                        ; AZJIO wants it to revert to the text before and not the folder that is added to the Edit control.
                        ; GUICtrlSetData($iEdit, '')
                    EndIf
                EndIf

            Case $GUI_EVENT_CLOSE
                ExitLoop

        EndSwitch
    WEnd
    GUIDelete($hGUI)
EndFunc   ;==>Example

Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam
    Return $GUI_RUNDEFMSG ; Intercept WM_DROPFILES.

;~  Switch $iMsg
;~      Case $WM_DROPFILES
;~          Local $aReturn = _WinAPI_DragQueryFileEx($wParam)
;~          If IsArray($aReturn) Then
;~              $__aDropFiles = $aReturn
;~          Else
;~              Local $aError[1] = [0]
;~              $__aDropFiles = $aError
;~          EndIf
;~  EndSwitch
;~  Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_DROPFILES

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

AZJIO,

I don't know whether I understood you properly. Can you please explain again?

Or does this help you?

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>

$hGui = GUICreate("GUI", 400, 500, -1, -1, -1, $WS_EX_ACCEPTFILES)
$iEdit = GUICtrlCreateEdit("The first line of the" & @CRLF & "The second line", 3, 3, 400 - 6, 500 - 6, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_NOHIDESEL + $ES_WANTRETURN)
GUICtrlSendMsg(-1, $EM_LIMITTEXT, -1, 0)
GUISetState()
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES")

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            GUIRegisterMsg($WM_DROPFILES, "")
            Exit
    EndSwitch
WEnd

Func WM_DROPFILES($hwnd, $msg, $wParam, $lParam)
    Local $aRet = DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", -1, "ptr", 0, "int", 0)
    If @error Then Return SetError(1, 0, 0)

    Local $sDroppedFiles, $tBuffer = DllStructCreate("char[256]")
    If $aRet[0] = 1 Then
        DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", 0, "ptr", DllStructGetPtr($tBuffer), "int", DllStructGetSize($tBuffer))
        $sDroppedFiles = DllStructGetData($tBuffer, 1)

        If StringInStr(FileGetAttrib($sDroppedFiles), "D") Then
            DllCall("shell32.dll", "none", "DragFinish", "int", $wParam)
            Return MsgBox(16 + 262144, "Error", "A folder has been dragged to the GUI!", 20, $hGUI)
        EndIf
    EndIf
    DllCall("shell32.dll", "none", "DragFinish", "int", $wParam)
    $tBuffer = 0
    GUICtrlSetData($iEdit, FileRead($sDroppedFiles))
    Return "GUI_RUNDEFMSG"
EndFunc

Btw, I got a similar problem in File to Base64 String Code Generator which I fixed now.

Br,

UEZ

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Have a look to WM_DROPFILES function in File to Base64 String Code Generator for an example.

Br,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

  • 2 weeks later...

Simplified the example to make it clearer

#include <WindowsConstants.au3>
Global Const $WM_DROPFILES = 0x0233 ; AutoIt3 v3.3.6.1
Global $k = 0
$sDescription = 'WM_DROPFILES + Edit'

$hGui = GUICreate('WM_DROPFILES', 600, 360, -1, -1, -1, $WS_EX_ACCEPTFILES)
$iEdit = GUICtrlCreateEdit($sDescription, 5, 5, 590, 300)
GUISetState()
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES")

Do
Until GUIGetMsg() = -3

Func WM_DROPFILES($hwnd, $msg, $wParam, $lParam)
    ; Local $tPoint = DllStructCreate('int X;int Y')
    ; DllCall("shell32.dll", "int", "DragQueryPoint", "int", $wParam, "ptr", DllStructGetPtr($tPoint))
    ; $iX = DllStructGetData($tPoint, "X")
    ; $iY = DllStructGetData($tPoint, "Y")
    $k += 1
    WinSetTitle($hGui, '', 'Call ' & $k)
    $aCursorInfo = GUIGetCursorInfo($hGui)
    If Not @error And $aCursorInfo[4] = $iEdit Then
        Local $aRet = DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", -1, "ptr", 0, "int", 0)
        If @error Then Return SetError(1, 0, 0)
        Local $sDroppedFiles, $i, $tBuffer = DllStructCreate("char[256]")
        For $i = 0 To $aRet[0] - 1
            DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", $i, "ptr", DllStructGetPtr($tBuffer), "int", DllStructGetSize($tBuffer))
            $sDroppedFiles &= DllStructGetData($tBuffer, 1) & @CRLF
        Next
        DllCall("shell32.dll", "none", "DragFinish", "int", $wParam)
        $tBuffer = 0
        GUICtrlSetData($iEdit, StringTrimRight($sDroppedFiles, 2))
        ; WinActivate($hGUI)
    EndIf
    Return "GUI_RUNDEFMSG"
EndFunc
Edited by AZJIO
Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...

Help make the processing of multiple files of the specified below example

; drag-and-drop
; http://www.autoitscript.com/forum/topic/149659-alternate-data-streams-viewer/
#include <WindowsConstants.au3>

Global Const $hUSER32 = DllOpen("user32.dll")
Global Const $hSHELL32 = DllOpen("shell32.dll")

; Global Const $WM_DROPFILES = 0x0233 ; in AutoIt3 v 3.3.6.1 and below this constant is not defined
$sDescription = 'The function is executed when you drag objects WM_DROPFILES on window elements' & @CRLF & _
'Unlike the native does not insert the path in the Edit control'

$hGui = GUICreate('GUI, drag-and-drop', 600, 360, -1, -1, -1, $WS_EX_ACCEPTFILES)
$iEdit = GUICtrlCreateEdit($sDescription, 5, 5, 590, 300)
GUISetState()
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES")

Do
Until GUIGetMsg() = -3

;======================================================
; Proccessing files dropped onto the GUI
Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg, $lParam
    If $hWnd = $hGUI Then
        $sFile = _DragQueryFile($wParam)
        If @error Or StringInStr(FileGetAttrib($sFile), "D") Then ; If the error or catalog
            _MessageBeep(48)
            Return 1
        EndIf
        _DragFinish($wParam)
        GUICtrlSetData($iEdit, $sFile) ; If you need long processing, then this does not insert
        Return 1
    EndIf
    _MessageBeep(48) ; Если в другое окно
    Return 1
EndFunc
;======================================================


;======================================================
; Functions to handle dropped files
Func _DragQueryFile($hDrop, $iIndex = 0)
    Local $aCall = DllCall($hSHELL32, "dword", "DragQueryFileW", _
            "handle", $hDrop, _
            "dword", $iIndex, _
            "wstr", "", _
            "dword", 32767)
    If @error Or Not $aCall[0] Then Return SetError(1, 0, "")
    Return $aCall[3]
EndFunc

Func _DragFinish($hDrop)
    DllCall($hSHELL32, "none", "DragFinish", "handle", $hDrop)
EndFunc

Func _MessageBeep($iType)
    DllCall($hUSER32, "int", "MessageBeep", "dword", $iType)
EndFunc
;======================================================

It's a go

; drag-and-drop
; http://www.autoitscript.com/forum/topic/149659-alternate-data-streams-viewer/
#include <WindowsConstants.au3>

Global Const $hUSER32 = DllOpen("user32.dll")
Global Const $hSHELL32 = DllOpen("shell32.dll")

; Global Const $WM_DROPFILES = 0x0233 ; in AutoIt3 v 3.3.6.1 and below this constant is not defined
$sDescription = 'The function is executed when you drag objects WM_DROPFILES on window elements' & @CRLF & _
'Unlike the native does not insert the path in the Edit control'

$hGui = GUICreate('GUI, drag-and-drop', 600, 360, -1, -1, -1, $WS_EX_ACCEPTFILES)
$iEdit = GUICtrlCreateEdit($sDescription, 5, 5, 590, 300)
GUISetState()
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES")

Do
Until GUIGetMsg() = -3

;======================================================
; Proccessing files dropped onto the GUI
Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg, $lParam
    If $hWnd = $hGUI Then
        Local $aCall, $sDroppedFiles
        $aCall = DllCall($hSHELL32, "dword", "DragQueryFileW", "handle", $wParam, "dword", -1, "wstr", "", "dword", 32767)
        If @error Or Not $aCall[0] Then Return SetError(1, 0, "")
        For $i = 0 To $aCall[0] - 1
            $aCall =  DllCall($hSHELL32, "dword", "DragQueryFileW", "handle", $wParam, "dword", $i, "wstr", "", "dword", 32767)
            If @error Or Not $aCall[0] Then ; Если ошибка или каталог
                ExitLoop
            Else
                $sDroppedFiles &= $aCall[3] & @CRLF
            EndIf
        Next
        DllCall($hSHELL32, "none", "DragFinish", "handle", $wParam)
        GUICtrlSetData($iEdit, $sDroppedFiles) ; If you need long processing, then this does not insert
        Return 1
    EndIf
EndFunc
;======================================================
Edited by AZJIO
Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

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