diff -ur pyglet-1.1beta2/pyglet\window\__init__.py pyglet\window\__init__.py
--- pyglet-1.1beta2/pyglet\window\__init__.py	Fri May 09 14:40:30 2008
+++ pyglet\window\__init__.py	Wed Jun 18 18:16:56 2008
@@ -1620,6 +1620,13 @@
             :event:
             '''
 
+        def on_drop_files(pathnames):
+            '''Some files are dropped into the window.
+
+            The `EventLoop` will dispatch this event when some files are
+            dropped into the window.
+            '''
+
 BaseWindow.register_event_type('on_key_press')
 BaseWindow.register_event_type('on_key_release')
 BaseWindow.register_event_type('on_text')
@@ -1643,6 +1650,7 @@
 BaseWindow.register_event_type('on_context_lost')
 BaseWindow.register_event_type('on_context_state_lost')
 BaseWindow.register_event_type('on_draw')
+BaseWindow.register_event_type('on_drop_files')
 
 def get_platform():
     '''Get an instance of the Platform most appropriate for this
diff -ur pyglet-1.1beta2/pyglet\window\event.py pyglet\window\event.py
--- pyglet-1.1beta2/pyglet\window\event.py	Fri May 09 14:40:30 2008
+++ pyglet\window\event.py	Wed Jun 18 18:15:29 2008
@@ -175,3 +175,5 @@
     def on_context_state_lost(self):
         print >> self.file, 'on_context_state_lost()'
 
+    def on_drop_files(self, pathnames):
+        print >> self.file, 'on_drop_files(%s)' % (pathnames)
diff -ur pyglet-1.1beta2/pyglet\window\win32\__init__.py pyglet\window\win32\__init__.py
--- pyglet-1.1beta2/pyglet\window\win32\__init__.py	Sat May 31 07:45:31 2008
+++ pyglet\window\win32\__init__.py	Wed Jun 18 18:18:50 2008
@@ -107,6 +107,7 @@
 _gdi32 = DebugLibrary(windll.gdi32)
 _kernel32 = DebugLibrary(windll.kernel32)
 _user32 = DebugLibrary(windll.user32)
+_shell32 = DebugLibrary(windll.shell32)
 
 
 _user32.GetKeyState.restype = c_short
@@ -501,6 +502,9 @@
         else:
             hwnd_after = HWND_NOTOPMOST
 
+        # Enable to process the WM_DROPFILES message
+        _shell32.DragAcceptFiles(self._hwnd, True)
+
         # Position and size window
         if self._fullscreen:
             _user32.SetWindowPos(self._hwnd, hwnd_after,
@@ -1184,3 +1188,21 @@
     def _event_erasebkgnd(self, msg, wParam, lParam):
         # Prevent flicker during resize.
         return 1
+
+    @Win32EventHandler(WM_DROPFILES)
+    def _event_dropfiles(self, msg, wParam, lParam):
+        pathnames = []
+        hDrop = wParam
+        max_path = 260
+        pathname = create_string_buffer(max_path)
+
+        count = _shell32.DragQueryFile(hDrop, 0xFFFFFFFF, 0, 0)
+
+        for i in range(count):
+            _shell32.DragQueryFile(hDrop, 0, pathname, max_path)
+            pathnames.append(pathname.value)
+
+        _shell32.DragFinish(hDrop)
+
+        self.dispatch_event('on_drop_files', pathnames)
+        return 0
