indexing
	description: "Encapsulation of STATSTG structure"
	status: "See notice at end of class"
	date: "$Date$"
	revision: "$Revision$"

class interface
	ECOM_STATSTG

create 

	make_from_pointer (a_pointer: POINTER)
			-- Initialize
			-- (from ECOM_WRAPPER)
		require -- from ECOM_WRAPPER
			valid_pointer: a_pointer /= default_pointer
		ensure -- from ECOM_WRAPPER
			wrapper_exist: initializer /= default_pointer and then exists
			valid_item: item = a_pointer

feature -- Initialization

	make_from_pointer (a_pointer: POINTER)
			-- Initialize
			-- (from ECOM_WRAPPER)
		require -- from ECOM_WRAPPER
			valid_pointer: a_pointer /= default_pointer
		ensure -- from ECOM_WRAPPER
			wrapper_exist: initializer /= default_pointer and then exists
			valid_item: item = a_pointer
	
feature -- Access

	access_time: WEL_FILE_TIME
			-- Last access time
		ensure
			Result /= void

	clsid: POINTER
			-- Class identifier for storage object;
			-- set to CLSID_NULL for new storage objects. This member
			-- is not used for streams or byte arrays.

	creation_time: WEL_FILE_TIME
			-- Creation time
		ensure
			Result /= void

	exists: BOOLEAN
			-- Is wrapped structure initialized?
			-- (from ECOM_WRAPPER)

	is_same_name (other_name: STRING): BOOLEAN
		require
			valid_other_name: other_name /= void

	item: POINTER
			-- Pointer to COM structure
			-- (from ECOM_WRAPPER)

	locks_supported: INTEGER
			-- Types of region locking supported
			-- by stream or byte array. See the LOCKTYPES
			-- enumeration for the values available. This member
			-- is not used for storage objects.

	mode: INTEGER
			-- Access mode specified when the
			-- object was opened.
		ensure
			valid_mode: is_valid_stgm (Result)

	modification_time: WEL_FILE_TIME
			-- Last modification time
		ensure
			Result /= void

	name: STRING
			-- name

	size: ECOM_ULARGE_INTEGER
			-- Size in bytes of stream or byte array.
		ensure
			Result /= void and Result.item /= default_pointer

	type: INTEGER
			-- Type of object
			-- Returns one of the values from the STGTY enumeration.
			-- See class ECOM_STGTY for values
		ensure
			valid_type: is_valid_stgty (Result)
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)
		-- from ECOM_WRAPPER
	wrapper_invariant: initializer /= default_pointer and then exists

end -- class ECOM_STATSTG