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;
00369 };
00370 };
00371 #endif // __CCOMAPIHANDLER__H_