INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES

indexing

title: ""
copyright: "Object Tools, 1998-2003"
author: "Vasily V. Kuznetsov"
cluster: ecom
class ECOM_SAFEARRAY_PTR
inherit

POINTER_REF
redefine
out
end
feature -- Size

size: INTEGER
feature -- Queries

get_sa_ptr: expanded ECOM_PTR [expanded ECOM_SAFEARRAY]
require
non_void_ptr: is_initialized

get_sa: ECOM_SAFEARRAY
require
non_void_ptr: is_initialized

get_last_error: ECOM_HRESULT

is_array_of_variant: BOOLEAN

is_array_of_bstr: BOOLEAN

is_array_of_unknown: BOOLEAN

is_array_of_dispatch: BOOLEAN
feature -- Creations

from_array_of_variant (arr: ARRAY [ECOM_VARIANT])
require
non_void_initial_array: arr /= void
ensure
valid_array_type: is_initialized implies is_array_of_variant

from_array_of_bstr (arr: ARRAY [ECOM_BSTR])
require
non_void_initial_array: arr /= void
ensure
valid_array_type: is_initialized implies is_array_of_bstr

from_array_of_unknown (arr: ARRAY [ECOM_CLIENT_IUNKNOWN])
require
non_void_initial_array: arr /= void
ensure
valid_array_type: is_initialized implies is_array_of_unknown

from_array_of_dispatch (arr: ARRAY [ECOM_CLIENT_IDISPATCH])
require
non_void_initial_array: arr /= void
ensure
valid_array_type: is_initialized implies is_array_of_dispatch
feature -- Get

get_variant (indexes: ARRAY [INTEGER]): ECOM_VARIANT
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_variant

get_bstr (indexes: ARRAY [INTEGER]): ECOM_BSTR
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_bstr

get_unknown (indexes: ARRAY [INTEGER]): ECOM_CLIENT_IUNKNOWN
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_unknown or else is_array_of_dispatch

get_dispatch (indexes: ARRAY [INTEGER]): ECOM_CLIENT_IDISPATCH
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_dispatch
feature -- Get single dim

xget_variant (index: INTEGER): ECOM_VARIANT
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_variant

xget_bstr (index: INTEGER): ECOM_BSTR
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_bstr

xget_unknown (index: INTEGER): ECOM_CLIENT_IUNKNOWN
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_unknown or else is_array_of_dispatch

xget_dispatch (index: INTEGER): ECOM_CLIENT_IDISPATCH
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_dispatch
feature -- Put

put_variant (indexes: ARRAY [INTEGER]; value: ECOM_VARIANT)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_variant

put_bstr (indexes: ARRAY [INTEGER]; value: ECOM_BSTR)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_bstr

put_unknown (indexes: ARRAY [INTEGER]; value: ECOM_CLIENT_IUNKNOWN)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_unknown or else is_array_of_dispatch

put_dispatch (indexes: ARRAY [INTEGER]; value: ECOM_CLIENT_IDISPATCH)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_dispatch
feature -- Put single dim

xput_variant (index: INTEGER; value: ECOM_VARIANT)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_variant

xput_bstr (index: INTEGER; value: ECOM_BSTR)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_bstr

xput_unknown (index: INTEGER; value: ECOM_CLIENT_IUNKNOWN)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_unknown or else is_array_of_dispatch

xput_dispatch (index: INTEGER; value: ECOM_CLIENT_IDISPATCH)
require
non_void_ptr: is_initialized
valid_array_type: is_array_of_dispatch
feature -- Operations

get_dims_count: INTEGER
require
non_void_ptr: is_initialized

access_data: POINTER
require
non_void_ptr: is_initialized

unaccess_data
require
non_void_ptr: is_initialized

alloc_data
require
non_void_ptr: is_initialized

alloc (cdims_: INTEGER)

get_copy: ECOM_SAFEARRAY_PTR
require
non_void_ptr: is_initialized

copy_data (other: ECOM_SAFEARRAY_PTR)
require
non_void_ptr: is_initialized
valid_source: other.is_initialized

create_array (vt: ECOM_VARTYPE; cdims_: INTEGER; bounds_: ARRAY [ECOM_SAFEARRAYBOUND])
require
valid_bounds: (cdims_ > 0) implies (bounds_ /= void and then bounds_.count = cdims_)

create_vector (vt: ECOM_VARTYPE; llbound, celements: INTEGER)

destroy

destroy_data

destroy_descriptor

get_elem_size: INTEGER
require
non_void_ptr: is_initialized

get_lbound (dim: INTEGER): INTEGER
require
non_void_ptr: is_initialized

get_ubound (dim: INTEGER): INTEGER
require
non_void_ptr: is_initialized

lock
require
non_void_ptr: is_initialized

unlock
require
non_void_ptr: is_initialized

redim (l, u: INTEGER)
require
non_void_ptr: is_initialized
feature -- Get reference

get_ptr: POINTER
feature -- Output

out: STRING

item_out (indexes: ARRAY [INTEGER]): STRING
feature -- Is_null

is_null: BOOLEAN

is_initialized: BOOLEAN
feature -- SAFEAARAY Constants

FADF_AUTO: INTEGER

FADF_STATIC: INTEGER

FADF_EMBEDDED: INTEGER

FADF_FIXEDSIZE: INTEGER

FADF_RECORD: INTEGER

FADF_HAVEIID: INTEGER

FADF_HAVEVARTYPE: INTEGER

FADF_BSTR: INTEGER

FADF_UNKNOWN: INTEGER

FADF_DISPATCH: INTEGER

FADF_VARIANT: INTEGER
feature -- SAFEAARAY API functions

frozen SafeArrayAccessData (psa: POINTER; ppvdata: POINTER): ECOM_HRESULT
-- Increments the lock count of an array, and retrieves a pointer to the
-- array data

frozen SafeArrayAllocData (psa: POINTER): ECOM_HRESULT
-- Allocates memory for a safe array, based on a descriptor created with
-- SafeArrayAllocDescriptor

frozen SafeArrayAllocDescriptor (cdims: INTEGER; ppsaout: POINTER): ECOM_HRESULT
-- Allocates memory for a safe array descriptor.

frozen SafeArrayCopy (psa: POINTER; ppsaout: POINTER): ECOM_HRESULT
-- Creates a copy of an existing safe array.

frozen SafeArrayCopyData (psasource: POINTER; psatarget: POINTER): ECOM_HRESULT
-- Copies the source array to the target array after releasing any
-- resources in the target array. This is similar to SafeArrayCopy, except
-- that the target array has to be set up by the caller. The target is not
-- allocated or reallocated.

frozen SafeArrayCreate (vt: ECOM_VARTYPE; cdims: INTEGER; rgsabound: POINTER): POINTER
-- Creates a new array descriptor, allocates and initializes the data for
-- the array, and returns a pointer to the new array descriptor.

frozen SafeArrayCreateVector (vt: ECOM_VARTYPE; llbound: INTEGER; celements: INTEGER): POINTER
-- Creates a one-dimensional array whose lower bound is always zero. A safe
-- array created with SafeArrayCreateVector is a fixed size, so the
-- constant FADF_FIXEDSIZE is always set.

frozen SafeArrayDestroy (psa: POINTER): ECOM_HRESULT
-- Destroys an existing array descriptor and all of the data in the array.
-- If objects are stored in the array, Release is called on each object in
-- the array.

frozen SafeArrayDestroyData (psa: POINTER): ECOM_HRESULT
-- Destroys all the data in a safe array.

frozen SafeArrayDestroyDescriptor (psa: POINTER): ECOM_HRESULT
-- Destroys a descriptor of a safe array.

frozen SafeArrayGetDim (psa: POINTER): INTEGER
-- Returns the number of dimensions in the array.

frozen SafeArrayGetElement (psa: POINTER; rgindices: POINTER; pv: POINTER): ECOM_HRESULT
-- Retrieves a single element of the array

frozen SafeArrayGetElemsize (psa: POINTER): INTEGER
-- Returns the size (in bytes) of the elements of a safe array.

frozen SafeArrayGetLBound (psa: POINTER; ndim: INTEGER; pllbound: POINTER): ECOM_HRESULT
-- Returns the lower bound for any dimension of a safe array

frozen SafeArrayGetUBound (psa: POINTER; ndim: INTEGER; plubound: POINTER): ECOM_HRESULT
-- Returns the upper bound for any dimension of a safe array

frozen SafeArrayLock (psa: POINTER): ECOM_HRESULT
-- Increments the lock count of an array, and places a pointer to the
-- array data in pvData of the array descriptor.

frozen SafeArrayPtrOfIndex (psa: POINTER; rgindices: POINTER; ppvdata: POINTER): ECOM_HRESULT
-- Returns a pointer to an array element

frozen SafeArrayPutElement (psa: POINTER; rgindices: POINTER; pv: POINTER): ECOM_HRESULT
-- Assigns a single element to the array

frozen SafeArrayRedim (psa: POINTER; psaboundnew: expanded ECOM_PTR [expanded ECOM_SAFEARRAYBOUND]): ECOM_HRESULT
-- Changes the right-most (least significant) bound of a safe array.

frozen SafeArrayUnaccessData (psa: POINTER): ECOM_HRESULT
-- Decrements the lock count of an array, and invalidates the pointer
-- retrieved by SafeArrayAccessData.

frozen SafeArrayUnlock (psa: POINTER): ECOM_HRESULT
-- Decrements the lock count of an array so it can be freed or resized
end -- class ECOM_SAFEARRAY_PTR

INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES