Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

383 lines
20 KiB

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Copyright (c) 1999-1999 Microsoft Corporation
Module Name:
cgvisitor.hxx
Abstract:
classes and templates for visitors
Notes:
History:
mzoran Nov-24-1999 Created.
----------------------------------------------------------------------------*/
class CG_ARRAY;
class CG_ASYNC_HANDLE;
class CG_AUX;
class CG_BASETYPE;
class CG_BYTE_COUNT_POINTER;
class CG_CALLBACK_PROC;
class CG_CASE;
class CG_CLASS;
class CG_COCLASS;
class CG_COMP;
class CG_COMPLEX_STRUCT;
class CG_CONFORMANT_ARRAY;
class CG_CONFORMANT_STRING_ARRAY;
class CG_CONFORMANT_STRUCT;
class CG_CONFORMANT_VARYING_ARRAY;
class CG_CONFORMANT_VARYING_STRUCT;
class CG_CONTEXT_HANDLE;
class CG_CS_TAG;
class CG_CSTUB_FILE;
class CG_DEFAULT_CASE;
class CG_DISPINTERFACE;
class CG_ENCAPSULATED_STRUCT;
class CG_ENCODE_PROC;
class CG_ENUM;
class CG_ERROR_STATUS_T;
class CG_FIELD;
class CG_FILE;
class CG_FIXED_ARRAY;
class CG_GENERIC_HANDLE;
class CG_HDR_FILE;
class CG_HRESULT;
class CG_ID;
class CG_IGNORED_POINTER;
class CG_IID_FILE;
class CG_IIDIS_INTERFACE_POINTER;
class CG_INHERITED_OBJECT_INTERFACE;
class CG_INHERITED_OBJECT_PROC;
class CG_INT3264;
class CG_INTERFACE;
class CG_INTERFACE_POINTER;
class CG_INTERFACE_REFERENCE;
class CG_IUNKNOWN_OBJECT_INTERFACE;
class CG_IUNKNOWN_OBJECT_PROC;
class CG_LENGTH_POINTER;
class CG_LIBRARY;
class CG_LOCAL_OBJECT_PROC;
class CG_MODULE;
class CG_NETMONSTUB_FILE;
class CG_OBJECT_INTERFACE;
class CG_OBJECT_PROC;
class CG_PARAM;
class CG_PIPE;
class CG_POINTER;
class CG_PRIMITIVE_HANDLE;
class CG_PROC;
class CG_PROXY_FILE;
class CG_QUALIFIED_POINTER;
class CG_REPRESENT_AS;
class CG_RETURN;
class CG_SAFEARRAY;
class CG_SIZE_LENGTH_POINTER;
class CG_SIZE_POINTER;
class CG_SIZE_STRING_POINTER;
class CG_SOURCE;
class CG_SSTUB_FILE;
class CG_STRING_ARRAY;
class CG_STRING_POINTER;
class CG_STRUCT;
class CG_TRANSMIT_AS;
class CG_TYPE_ENCODE;
class CG_TYPE_ENCODE_PROC;
class CG_TYPEDEF;
class CG_TYPELIBRARY_FILE;
class CG_UNION;
class CG_UNION_FIELD;
class CG_USER_MARSHAL;
class CG_VARYING_ARRAY;
//
// New 64b NDR types
//
//
// New Class for 64bit NDR
//
// structures
class CG_FULL_COMPLEX_STRUCT;
class CG_FORCED_COMPLEX_STRUCT;
class CG_CONFORMANT_FULL_COMPLEX_STRUCT;
class CG_CONFORMANT_FORCED_COMPLEX_STRUCT;
class CG_REGION;
class CG_SIMPLE_REGION;
class CG_COMPLEX_REGION;
// arrays
class CG_COMPLEX_FIXED_ARRAY;
class CG_FORCED_COMPLEX_FIXED_ARRAY;
class CG_FULL_COMPLEX_FIXED_ARRAY;
class CG_COMPLEX_CONFORMANT_ARRAY;
class CG_FORCED_COMPLEX_CONFORMANT_ARRAY;
class CG_FULL_COMPLEX_CONFORMANT_ARRAY;
class CG_COMPLEX_VARYING_ARRAY;
class CG_FORCED_COMPLEX_VARYING_ARRAY;
class CG_FULL_COMPLEX_VARYING_ARRAY;
class CG_COMPLEX_CONFORMANT_VARYING_ARRAY;
class CG_FORCED_COMPLEX_CONFORMANT_VARYING_ARRAY;
class CG_FULL_COMPLEX_CONFORMANT_VARYING_ARRAY;
// qualified pointers
class CG_COMPLEX_SIZE_POINTER;
class CG_FORCED_COMPLEX_SIZE_POINTER;
class CG_FULL_COMPLEX_SIZE_POINTER;
class CG_COMPLEX_LENGTH_POINTER;
class CG_FORCED_COMPLEX_LENGTH_POINTER;
class CG_FULL_COMPLEX_LENGTH_POINTER;
class CG_COMPLEX_SIZE_LENGTH_POINTER;
class CG_FORCED_COMPLEX_SIZE_LENGTH_POINTER;
class CG_FULL_COMPLEX_SIZE_LENGTH_POINTER;
class CG_PAD;
class CG_VISITOR
{
public:
virtual void Visit( CG_ARRAY *pClass ) = 0;
virtual void Visit( CG_ASYNC_HANDLE *pClass ) = 0;
virtual void Visit( CG_AUX *pClass ) = 0;
virtual void Visit( CG_BASETYPE *pClass ) = 0;
virtual void Visit( CG_BYTE_COUNT_POINTER *pClass ) = 0;
virtual void Visit( CG_CALLBACK_PROC *pClass ) = 0;
virtual void Visit( CG_CASE *pClass ) = 0;
virtual void Visit( CG_CLASS *pClass ) = 0;
virtual void Visit( CG_COCLASS *pClass ) = 0;
virtual void Visit( CG_COMP *pClass ) = 0;
virtual void Visit( CG_COMPLEX_STRUCT *pClass ) = 0;
virtual void Visit( CG_CONFORMANT_ARRAY *pClass ) = 0;
virtual void Visit( CG_CONFORMANT_STRING_ARRAY *pClass ) = 0;
virtual void Visit( CG_CONFORMANT_STRUCT *pClass ) = 0;
virtual void Visit( CG_CONFORMANT_VARYING_ARRAY *pClass ) = 0;
virtual void Visit( CG_CONFORMANT_VARYING_STRUCT *pClass ) = 0;
virtual void Visit( CG_CONTEXT_HANDLE *pClass ) = 0;
virtual void Visit( CG_CS_TAG *pClass ) = 0;
virtual void Visit( CG_CSTUB_FILE *pClass ) = 0;
virtual void Visit( CG_DEFAULT_CASE *pClass ) = 0;
virtual void Visit( CG_DISPINTERFACE *pClass ) = 0;
virtual void Visit( CG_ENCAPSULATED_STRUCT *pClass ) = 0;
virtual void Visit( CG_ENCODE_PROC *pClass ) = 0;
virtual void Visit( CG_ENUM *pClass ) = 0;
virtual void Visit( CG_ERROR_STATUS_T *pClass ) = 0;
virtual void Visit( CG_FIELD *pClass ) = 0;
virtual void Visit( CG_FILE *pClass ) = 0;
virtual void Visit( CG_FIXED_ARRAY *pClass ) = 0;
virtual void Visit( CG_GENERIC_HANDLE *pClass ) = 0;
virtual void Visit( CG_HDR_FILE *pClass ) = 0;
virtual void Visit( CG_HRESULT *pClass ) = 0;
virtual void Visit( CG_ID *pClass ) = 0;
virtual void Visit( CG_IGNORED_POINTER *pClass ) = 0;
virtual void Visit( CG_IID_FILE *pClass ) = 0;
virtual void Visit( CG_IIDIS_INTERFACE_POINTER *pClass ) = 0;
virtual void Visit( CG_INHERITED_OBJECT_INTERFACE *pClass ) = 0;
virtual void Visit( CG_INHERITED_OBJECT_PROC *pClass ) = 0;
virtual void Visit( CG_INT3264 *pClass ) = 0;
virtual void Visit( CG_INTERFACE *pClass ) = 0;
virtual void Visit( CG_INTERFACE_POINTER *pClass ) = 0;
virtual void Visit( CG_INTERFACE_REFERENCE *pClass ) = 0;
virtual void Visit( CG_IUNKNOWN_OBJECT_INTERFACE *pClass ) = 0;
virtual void Visit( CG_IUNKNOWN_OBJECT_PROC *pClass ) = 0;
virtual void Visit( CG_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_LIBRARY *pClass ) = 0;
virtual void Visit( CG_LOCAL_OBJECT_PROC *pClass ) = 0;
virtual void Visit( CG_MODULE *pClass ) = 0;
virtual void Visit( CG_NETMONSTUB_FILE *pClass ) = 0;
virtual void Visit( CG_OBJECT_INTERFACE *pClass ) = 0;
virtual void Visit( CG_OBJECT_PROC *pClass ) = 0;
virtual void Visit( CG_PARAM *pClass ) = 0;
virtual void Visit( CG_PIPE *pClass ) = 0;
virtual void Visit( CG_POINTER *pClass ) = 0;
virtual void Visit( CG_PRIMITIVE_HANDLE *pClass ) = 0;
virtual void Visit( CG_PROC *pClass ) = 0;
virtual void Visit( CG_PROXY_FILE *pClass ) = 0;
virtual void Visit( CG_QUALIFIED_POINTER *pClass ) = 0;
virtual void Visit( CG_REPRESENT_AS *pClass ) = 0;
virtual void Visit( CG_RETURN *pClass ) = 0;
virtual void Visit( CG_SAFEARRAY *pClass ) = 0;
virtual void Visit( CG_SIZE_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_SIZE_POINTER *pClass ) = 0;
virtual void Visit( CG_SIZE_STRING_POINTER *pClass ) = 0;
virtual void Visit( CG_SOURCE *pClass ) = 0;
virtual void Visit( CG_SSTUB_FILE *pClass ) = 0;
virtual void Visit( CG_STRING_ARRAY *pClass ) = 0;
virtual void Visit( CG_STRING_POINTER *pClass ) = 0;
virtual void Visit( CG_STRUCT *pClass ) = 0;
virtual void Visit( CG_TRANSMIT_AS *pClass ) = 0;
virtual void Visit( CG_TYPE_ENCODE *pClass ) = 0;
virtual void Visit( CG_TYPE_ENCODE_PROC *pClass ) = 0;
virtual void Visit( CG_TYPEDEF *pClass ) = 0;
virtual void Visit( CG_TYPELIBRARY_FILE *pClass ) = 0;
virtual void Visit( CG_UNION *pClass ) = 0;
virtual void Visit( CG_UNION_FIELD *pClass ) = 0;
virtual void Visit( CG_USER_MARSHAL *pClass ) = 0;
virtual void Visit( CG_VARYING_ARRAY *pClass ) = 0;
// New Class for 64bit NDR
// structures
virtual void Visit( CG_FULL_COMPLEX_STRUCT *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_STRUCT *pClass ) = 0;
virtual void Visit( CG_CONFORMANT_FULL_COMPLEX_STRUCT *pClass ) = 0;
virtual void Visit( CG_CONFORMANT_FORCED_COMPLEX_STRUCT *pClass ) = 0;
virtual void Visit( CG_REGION *pClass ) = 0;
virtual void Visit( CG_SIMPLE_REGION *pClass ) = 0;
virtual void Visit( CG_COMPLEX_REGION *pClass ) = 0;
// arrays
virtual void Visit( CG_COMPLEX_FIXED_ARRAY *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_FIXED_ARRAY *pClass ) = 0;
virtual void Visit( CG_FULL_COMPLEX_FIXED_ARRAY *pClass ) = 0;
virtual void Visit( CG_COMPLEX_CONFORMANT_ARRAY *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_CONFORMANT_ARRAY *pClass ) = 0;
virtual void Visit( CG_FULL_COMPLEX_CONFORMANT_ARRAY *pClass ) = 0;
virtual void Visit( CG_COMPLEX_VARYING_ARRAY *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_VARYING_ARRAY *pClass ) = 0;
virtual void Visit( CG_FULL_COMPLEX_VARYING_ARRAY *pClass ) = 0;
virtual void Visit( CG_COMPLEX_CONFORMANT_VARYING_ARRAY *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_CONFORMANT_VARYING_ARRAY *pClass ) = 0;
virtual void Visit( CG_FULL_COMPLEX_CONFORMANT_VARYING_ARRAY *pClass ) = 0;
// qualified pointers
virtual void Visit( CG_COMPLEX_SIZE_POINTER *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_SIZE_POINTER *pClass ) = 0;
virtual void Visit( CG_FULL_COMPLEX_SIZE_POINTER *pClass ) = 0;
virtual void Visit( CG_COMPLEX_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_FULL_COMPLEX_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_COMPLEX_SIZE_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_FORCED_COMPLEX_SIZE_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_FULL_COMPLEX_SIZE_LENGTH_POINTER *pClass ) = 0;
virtual void Visit( CG_PAD *pClass ) = 0;
};
template<class T>
class CG_VISITOR_TEMPLATE : public CG_VISITOR, public T
{
public:
CG_VISITOR_TEMPLATE() : T() {}
CG_VISITOR_TEMPLATE( const T & Node ) : T( Node ) {}
operator=( const T & Node ) { *(( T *)this) = Node; }
virtual void Visit( CG_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_ASYNC_HANDLE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_AUX *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_BASETYPE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_BYTE_COUNT_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CALLBACK_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CASE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CLASS *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COCLASS *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMP *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMPLEX_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONFORMANT_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONFORMANT_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONFORMANT_STRING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONFORMANT_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONFORMANT_VARYING_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONTEXT_HANDLE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CS_TAG *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CSTUB_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_DEFAULT_CASE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_DISPINTERFACE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_ENCAPSULATED_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_ENCODE_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_ENUM *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_ERROR_STATUS_T *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FIELD *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FIXED_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_GENERIC_HANDLE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_HDR_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_HRESULT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_ID *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_IGNORED_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_IID_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_IIDIS_INTERFACE_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_INHERITED_OBJECT_INTERFACE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_INHERITED_OBJECT_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_INT3264 *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_INTERFACE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_INTERFACE_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_INTERFACE_REFERENCE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_IUNKNOWN_OBJECT_INTERFACE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_IUNKNOWN_OBJECT_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_LIBRARY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_LOCAL_OBJECT_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_MODULE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_NETMONSTUB_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_OBJECT_INTERFACE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_OBJECT_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_PARAM *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_PIPE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_PRIMITIVE_HANDLE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_PROXY_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_QUALIFIED_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_REPRESENT_AS *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_RETURN *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_SAFEARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_SIZE_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_SIZE_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_SIZE_STRING_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_SOURCE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_SSTUB_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_STRING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_STRING_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_TRANSMIT_AS *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_TYPE_ENCODE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_TYPE_ENCODE_PROC *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_TYPEDEF *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_TYPELIBRARY_FILE *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_UNION *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_UNION_FIELD *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_USER_MARSHAL *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
// structures
virtual void Visit( CG_FULL_COMPLEX_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONFORMANT_FULL_COMPLEX_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_CONFORMANT_FORCED_COMPLEX_STRUCT *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_REGION *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_SIMPLE_REGION *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMPLEX_REGION *pClass ) { T::Visit( pClass ); }
// arrays
virtual void Visit( CG_COMPLEX_FIXED_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_FIXED_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FULL_COMPLEX_FIXED_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMPLEX_CONFORMANT_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_CONFORMANT_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FULL_COMPLEX_CONFORMANT_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMPLEX_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FULL_COMPLEX_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMPLEX_CONFORMANT_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_CONFORMANT_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FULL_COMPLEX_CONFORMANT_VARYING_ARRAY *pClass ) { T::Visit( pClass ); }
// qualified pointers
virtual void Visit( CG_COMPLEX_SIZE_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_SIZE_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FULL_COMPLEX_SIZE_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMPLEX_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FULL_COMPLEX_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_COMPLEX_SIZE_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FORCED_COMPLEX_SIZE_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_FULL_COMPLEX_SIZE_LENGTH_POINTER *pClass ) { T::Visit( pClass ); }
virtual void Visit( CG_PAD *pClass ) { T::Visit( pClass ); }
};