racket/collects/tests/mysterx/src/testcontrol.cxx
2005-05-27 18:56:37 +00:00

62 lines
1.2 KiB
C++

// TestControl.cpp : Implementation of CTestControl
#include "stdafx.h"
#include "Testobject.h"
#include "TestControl.h"
/////////////////////////////////////////////////////////////////////////////
// CTestControl
STDMETHODIMP CTestControl::AddTest(long n1, long *n2, long *n3)
{
// note side effect
*n3 = n1 + *n2;
*n2 = n1;
return S_OK;
}
STDMETHODIMP CTestControl::StringTest (BSTR s1, BSTR s2, BSTR *s3)
{
int len1,len2;
len1 = SysStringLen(s1);
len2 = SysStringLen(s2);
*s3 = SysAllocStringByteLen (NULL, (len1 + len2)*2);
wcsncpy (*s3, s1, len1);
wcsncpy (*s3 + len1, s2, len2);
return S_OK;
}
STDMETHODIMP CTestControl::ShortTest (short n1, short n2, short *n3)
{
*n3 = n1 * n2;
return S_OK;
}
STDMETHODIMP CTestControl::FloatTest (double n1, double n2, double *n3)
{
*n3 = n2 - n1;
return S_OK;
}
STDMETHODIMP CTestControl::UnsignedTest (unsigned n1, unsigned n2, unsigned *n3)
{
*n3 = n2 - n1;
return S_OK;
}
STDMETHODIMP CTestControl::get_Numprop (long ndx,long *pVal)
{
*pVal = the_value;
return S_OK;
}
STDMETHODIMP CTestControl::put_Numprop (long ndx,long newVal)
{
the_value = (ndx > 21) ? 42 : 99;
return S_OK;
}