#include <glib/gmacros.h>
#include <glib-object.h>
-#include "reactos/ntos/types.h" /* for HANDLE */
-#include "reactos/ddk/zwtypes.h" /* for FILE_ID_BOTH_DIR_INFORMATION */
#include <libgnomevfs/gnome-vfs-file-info.h> /* for GnomeVFSFileInfo */
+#include "captive/client-vfs.h"
G_BEGIN_DECLS
#define CAPTIVE_DIRECTORY_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),CAPTIVE_DIRECTORY_TYPE_OBJECT,CaptiveDirectoryObjectClass))
typedef struct _CaptiveDirectoryObject CaptiveDirectoryObject;
typedef struct _CaptiveDirectoryObjectClass CaptiveDirectoryObjectClass;
-struct _CaptiveDirectoryObject {
- GObject parent_instance;
- /*< private >*/
- HANDLE dir_Handle;
- gboolean read_first;
- /* 'QueryDirectory_buf' for NtQueryDirectoryFile() must be persistent
- * to keep the state if !read_first
- */
- char QueryDirectory_buf[sizeof(FILE_ID_BOTH_DIR_INFORMATION)
- +0x1000 /* max 'FileName' length, 255 should be enough */ * sizeof(WCHAR /* *FILE_ID_BOTH_DIR_INFORMATION.FileName */ )];
- };
-struct _CaptiveDirectoryObjectClass {
- GObjectClass parent_class;
- };
GType captive_directory_object_get_type(void);
-GnomeVFSResult captive_directory_new_open(CaptiveDirectoryObject **captive_directory_object_return,const gchar *pathname);
-GnomeVFSResult captive_directory_new_make(CaptiveDirectoryObject **captive_directory_object_return,const gchar *pathname,guint perm);
+GnomeVFSResult captive_directory_new_open(CaptiveDirectoryObject **captive_directory_object_return,
+ CaptiveVfsObject *captive_vfs_object,const gchar *pathname);
+GnomeVFSResult captive_directory_new_make(CaptiveDirectoryObject **captive_directory_object_return,
+ CaptiveVfsObject *captive_vfs_object,const gchar *pathname,guint perm);
+CaptiveVfsObject *captive_directory_ref_vfs(CaptiveDirectoryObject *captive_directory_object);
GnomeVFSResult captive_directory_read(CaptiveDirectoryObject *captive_directory_object,GnomeVFSFileInfo *file_info);
GnomeVFSResult captive_directory_remove(CaptiveDirectoryObject *captive_directory_object);