From 7bf5378bec2ed162969b82f53b1cd6611842ef0a Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 1 Feb 2007 13:13:22 +0000 Subject: Utilisateur : Fcolin Date : 3/10/02 Heure : 10:55 Créé Commentaire: (vss 1) --- comIvy/Expression.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 comIvy/Expression.cpp (limited to 'comIvy') diff --git a/comIvy/Expression.cpp b/comIvy/Expression.cpp new file mode 100644 index 0000000..468a431 --- /dev/null +++ b/comIvy/Expression.cpp @@ -0,0 +1,65 @@ +// Expression.cpp : implémentation de CExpression + +#include "stdafx.h" +#include "Bus.h" +#include "Ivy.h" +#include "IvyApplication.h" + +#include "Expression.h" + + +char * ConvBSTR( BSTR str ); +BSTR ConvCSTR( const char *str ); + +// CExpression + + +STDMETHODIMP CExpression::Unbind(void) +{ + if ( !bus ) return E_FAIL; + if ( bus->bus ) + bus->bus->UnbindMsg( id ); + bus->Release(); + return S_OK; +} + +void CExpression::OnMessage(IvyApplication * app, int argc, const char ** argv) +{ + BSTR appname = ConvCSTR( app->GetName() ); + SAFEARRAY *pArrayVal = NULL; + HRESULT hr = S_OK; + + //Create the safe array for the arguments string. + pArrayVal = SafeArrayCreateVector( VT_VARIANT, 0, argc ); + + if (!(pArrayVal == NULL) ) + { + // Set the values for each element of the array + for( long i = 0 ; i < argc && SUCCEEDED( hr );i++) + { + hr = SafeArrayPutElement(pArrayVal, &i, new CComVariant(ConvCSTR(argv[i]))); + } + + } + VARIANT args; + args.vt = VT_ARRAY | VT_VARIANT; + args.parray = pArrayVal; + + Received( appname, args ); + + SafeArrayDestroy(pArrayVal); +} +// CExpression +CExpression::CExpression() +{ + id = -1; + bus = 0; + ATLTRACE("CExpression created\n"); +} +CExpression::~CExpression() +{ + Unbind(); + id = -1; + bus = 0; + ATLTRACE("CExpression destroyed\n"); +} -- cgit v1.1