Hello. you can do this:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPISys.au3>
#include <APIConstants.au3>
#include <Array.au3>
#include <WinAPIEx.au3>
#include "File.au3"
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 623, 442, 192, 124, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE))
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
;~ GUISetOnEvent($GUI_EVENT_DROPPED, "DropFile")
Global $Edit1 = GUICtrlCreateEdit("", 104, 48, 361, 233)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUICtrlSetData(-1, "")
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES')
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $lParam
Switch $iMsg
Case $WM_DROPFILES
Local Const $aReturn = _WinAPI_DragQueryFileEx($wParam)
If UBound($aReturn) Then
Local $Dir = "", $Drive = "", $Name = "", $Extension = ""
$Source = _PathSplit($aReturn[1], $Drive, $Dir, $Name, $Extension)
If $Source[4] <> ".txt" And $Source[4] <> ".ini" Then
MsgBox(16 + 262144, "Message", "File not allowed!")
Return False
EndIf
EndIf
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_DROPFILES
Func Form1Close()
Exit
EndFunc ;==>Form1Close
Saludos