#include <glib/gmacros.h>
#include <glib-object.h>
-#include "reactos/ntos/types.h" /* for HANDLE */
-#include "reactos/ntos/zwtypes.h" /* for FILE_ID_BOTH_DIR_INFORMATION */
#include <libgnomevfs/gnome-vfs-file-info.h> /* for GnomeVFSFileInfo */
#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.
- * Both types of 'QueryDirectory_buf' MUST NOT be 'union' as we convert
- * them by copying one to other.
- */
- struct {
- char FileIdBothDirInformation[sizeof(FILE_ID_BOTH_DIR_INFORMATION)
- +0x1000 /* max 'FileName' length, 255 should be enough */ * sizeof(WCHAR /* *FILE_ID_BOTH_DIR_INFORMATION.FileName */ )];
- char FileBothDirInformation[sizeof(FILE_BOTH_DIR_INFORMATION)
- +0x1000 /* max 'FileName' length, 255 should be enough */ * sizeof(WCHAR /* *FILE_ID_BOTH_DIR_INFORMATION.FileName */ )];
- } QueryDirectory_buf;
- enum {
- CaptiveDirectoryObject_QueryDirectory_type_FileIdBothDirInformation,
- CaptiveDirectoryObject_QueryDirectory_type_FileBothDirInformation,
- } CaptiveDirectoryObject_QueryDirectory_type;
- };
-struct _CaptiveDirectoryObjectClass {
- GObjectClass parent_class;
- };
GType captive_directory_object_get_type(void);