00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSISIOBJECT_H__ 00018 #define __XSISIOBJECT_H__ 00019 00020 #include <xsi_base.h> 00021 00022 namespace XSI { 00023 00024 class Application; 00025 00026 //***************************************************************************** 00064 //***************************************************************************** 00065 00066 class SICPPSDKDECL SIObject : public CBase 00067 { 00068 public: 00070 SIObject(); 00071 00073 ~SIObject(); 00074 00078 SIObject(const CRef& in_ref); 00079 00083 SIObject(const SIObject& in_obj); 00084 00089 bool IsA( siClassID in_ClassID) const; 00090 00094 siClassID GetClassID() const; 00095 00101 SIObject& operator=(const SIObject& in_obj); 00102 00108 SIObject& operator=(const CRef& in_ref); 00109 00113 Application GetApplication() const; 00114 00118 CString GetFullName() const; 00119 00123 CString GetName() const; 00124 00130 CStatus PutName(const CString& in_name); 00131 00132 /* \deprecated Provided for backward compatibility only, 00133 */ 00134 CStatus PutName(CString& in_name); 00135 00139 CString GetUniqueName() const; 00140 00144 CString GetType() const; 00145 00151 CRef GetParent() const; 00152 00157 bool IsEqualTo( const CRef& in_ref) const; 00158 00163 CString GetHelp() const; 00164 00169 CString GetOriginPath() const; 00170 00175 siInstallationPath GetOrigin() const; 00176 00181 CStringArray GetCategories() const; 00182 00241 CRefArray GetNestedObjects() const; 00242 00243 private: 00244 SIObject * operator&() const; 00245 SIObject * operator&(); 00246 }; 00247 00248 //***************************************************************************** 00270 //***************************************************************************** 00271 class SICPPSDKDECL CSIObjectRefArray : public CRefArray 00272 { 00273 public: 00274 00276 CSIObjectRefArray(); 00277 00281 CSIObjectRefArray( const CSIObjectRefArray& ); 00282 00284 ~CSIObjectRefArray(); 00285 00290 CSIObjectRefArray& operator=( const CSIObjectRefArray& in_refArray ); 00291 00300 CRef GetItem( const CString& in_name ) const; 00301 00306 void Add( const CRef& in_item ); 00307 00312 void RemoveItem( const CString& in_name ); 00313 }; 00314 00315 }; 00316 00317 #endif // __XSISIOBJECT_H__