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_