xsi_comapihandler.h Source File
 
 
 
xsi_comapihandler.h
Go to the documentation of this file.
00001 //*****************************************************************************
00010 //*****************************************************************************
00011 
00012 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00013 #pragma once
00014 #endif
00015 
00016 #ifndef __CCOMAPIHANDLER__H_
00017 #define __CCOMAPIHANDLER__H_
00018 
00019 #include <xsi_ref.h>
00020 #include <xsi_string.h>
00021 #include <xsi_value.h>
00022 #include <xsi_status.h>
00023 
00024 namespace XSI {
00025 
00026 //*****************************************************************************
00079 //*****************************************************************************
00080 
00081 class SICPPSDKDECL CComAPIHandler
00082 {
00083 public:
00085         enum InvokeFlag
00086         {
00087                 Method,                         
00088                 PropertyGet,            
00089                 PropertyPut,            
00090                 PropertyPutRef          
00091         };
00092 
00094         CComAPIHandler();
00095 
00097         virtual ~CComAPIHandler();
00098 
00135         CComAPIHandler( const CValue& in_val );
00136 
00140         CComAPIHandler(const CComAPIHandler& in_obj);
00141 
00145         CComAPIHandler& operator=( const CComAPIHandler& in_obj);
00146 
00154         CStatus CreateInstance( const CString& in_name );
00155 
00164         CStatus Attach( const CValue& in_val );
00165 
00170         CStatus Detach(void);
00171 
00176         CValue GetProperty(const CString& in_name ) const;
00177 
00187         CStatus PutProperty( const CString& in_name, const CValue& in_newval ) const;
00188 
00199         CStatus Call(   const CString& in_name,
00200                                         CValue& io_return,
00201                                         const CValueArray& in_args = CValueArray() ) const;
00202 
00213         CStatus Call(   const CString& in_name,
00214                                         CValue& io_return,
00215                                         const CValue& in_arg ) const;
00216 
00228         CStatus Call(   const CString& in_name,
00229                                         CValue& io_return,
00230                                         const CValue& in_arg,
00231                                         const CValue& in_arg1 ) const;
00232 
00245         CStatus Call(   const CString& in_name,
00246                                         CValue& io_return,
00247                                         const CValue& in_arg,
00248                                         const CValue& in_arg1,
00249                                         const CValue& in_arg2 ) const;
00250 
00264         CStatus Call(   const CString& in_name,
00265                                         CValue& io_return,
00266                                         const CValue& in_arg,
00267                                         const CValue& in_arg1,
00268                                         const CValue& in_arg2,
00269                                         const CValue& in_arg3 ) const;
00270 
00357         CStatus Invoke( const CString& in_name,
00358                                         LONG in_flags,
00359                                         CValue& io_return,
00360                                         const CValueArray& in_args = CValueArray() ) const;
00361 
00365         CValue GetRef(void) const;
00366 
00367 private:
00368         void* m_ptr; // pointer to Softimage OM object
00369 };
00370 };
00371 #endif // __CCOMAPIHANDLER__H_