Go to the documentation of this file.00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSIICEATTRIBUTE_H__
00018 #define __XSIICEATTRIBUTE_H__
00019
00020 #include <xsi_siobject.h>
00021
00022 namespace XSI {
00023
00024 class CBaseICEAttributeDataArray;
00025
00026
00085
00086
00087 class SICPPSDKDECL ICEAttribute : public SIObject
00088 {
00089 public:
00090 friend class CBaseICEAttributeDataArray;
00091
00093 ICEAttribute();
00094
00096 ~ICEAttribute();
00097
00101 ICEAttribute(const CRef& in_ref);
00102
00106 ICEAttribute(const ICEAttribute& in_obj);
00107
00112 bool IsA( siClassID in_ClassID) const;
00113
00117 siClassID GetClassID() const;
00118
00124 ICEAttribute& operator=(const ICEAttribute& in_obj);
00125
00131 ICEAttribute& operator=(const CRef& in_ref);
00132
00139 bool IsDefined( ) const;
00140
00144 bool IsConstant( ) const;
00145
00149 bool IsReadonly( ) const;
00150
00154 XSI::siICENodeDataType GetDataType( ) const;
00155
00160 XSI::siICENodeStructureType GetStructureType( ) const;
00161
00167 XSI::siICENodeContextType GetContextType( ) const;
00168
00172 XSI::siICEAttributeCategory GetAttributeCategory( ) const;
00173
00178 ULONG GetElementCount( ) const;
00179
00366 CStatus GetDataArray( CBaseICEAttributeDataArray& io_dataArray ) const;
00367
00510 CStatus GetDataArrayChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
00511
00781 CStatus GetDataArray2D( CBaseICEAttributeDataArray& io_dataArray ) const;
00782
01016 CStatus GetDataArray2DChunk( ULONG in_nOffset, ULONG in_nSize, CBaseICEAttributeDataArray& io_dataArray ) const;
01017
01051 CStringArray GetCustomDataTypes( ) const;
01052
01053 private:
01054 CStatus ReleaseDataArray( CBaseICEAttributeDataArray& in_dataArray );
01055 CStatus GetSubDataArray( CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_index, CBaseICEAttributeDataArray& io_dataArray ) const;
01056 CStatus ResizeSubDataArray( CBaseICEAttributeDataArray& in_dataArray2D, ULONG in_index, ULONG in_ulSize, CBaseICEAttributeDataArray& io_dataArray );
01057
01058 CStatus GetCustomTypeData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const unsigned char** out_ppData, ULONG& out_nSize ) const;
01059 CStatus GetCustomTypeData2D( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const unsigned char** out_ppData, ULONG& out_nSize ) const;
01060
01061 CStatus GetStringData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t** out_ppData, ULONG& out_nSize ) const;
01062 CStatus GetStringData2D( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t** out_ppData, ULONG& out_nSize ) const;
01063 CStatus SetStringData( const CBaseICEAttributeDataArray& in_dataArray, ULONG in_nIndex, const wchar_t* in_pData, ULONG in_nSize );
01064
01065 ICEAttribute * operator&() const;
01066 ICEAttribute * operator&();
01067 };
01068
01069 };
01070
01071 #endif // __XSIICEATTRIBUTE_H__