NT4/private/oleauto/tests/sdisptst/cdisptst.cpp
2020-09-30 17:12:29 +02:00

894 lines
18 KiB
C++

/***
*cdisptst.cpp - Implementation of the CDispTst IDispatch test object.
*
* Copyright (C) 1991, Microsoft Corporation. All Rights Reserved.
* Information Contained Herein Is Proprietary and Confidential.
*
*Purpose:
* This object is used for testing the IDispatch remoting support.
*
*Revision History:
*
* [00] 21-Sep-92 bradlo: Created.
*
*****************************************************************************/
#include <stdlib.h>
#include <ctype.h>
#include "sdisptst.h"
#include "dispdbug.h"
#include "cdisptst.h"
ASSERTDATA
extern "C" INTERFACEDATA g_idataCDispTst;
HRESULT CDispTst::CreateDisp()
{
HRESULT hresult;
IUnknown FAR* punkDisp;
ITypeInfo FAR* ptinfo;
// Create IDispatch Interface component
hresult =
CreateDispTypeInfo(&g_idataCDispTst, LOCALE_SYSTEM_DEFAULT, &ptinfo);
if(hresult != NOERROR)
return hresult;
hresult = CreateStdDispatch(this, this, ptinfo, &punkDisp);
if(hresult != NOERROR)
return hresult;
m_punkDisp = punkDisp;
ptinfo->Release();
return NOERROR;
}
/***
*CDispTst *CDispTst::Create(void)
*Purpose:
* Create and initialize an instance of the CDispTst test object.
*
*Entry:
* None
*
*Exit:
* return value = CDispTst*. NULL if the creation failed.
*
***********************************************************************/
HRESULT
CDispTst::Create(IUnknown FAR* punkOuter, IUnknown FAR* FAR* ppunk)
{
HRESULT hresult;
CDispTst FAR* pcdt;
if(punkOuter != NULL)
return RESULT(CLASS_E_NOAGGREGATION);
if((pcdt = new FAR CDispTst()) == NULL){
hresult = RESULT(E_OUTOFMEMORY);
goto LError0;
}
pcdt->AddRef();
hresult = pcdt->CreateDisp();
if (hresult != NOERROR)
goto LError1;
*ppunk = (IUnknown FAR*)pcdt;
IncObjectCount();
return NOERROR;
LError1:;
pcdt->Release();
LError0:;
return hresult;
}
CDispTst::CDispTst()
{
m_refs = 0;
m_punkDisp = NULL;
}
//---------------------------------------------------------------------
// IUnknown Methods
//---------------------------------------------------------------------
STDMETHODIMP
CDispTst::QueryInterface(REFIID riid, void FAR* FAR* ppv)
{
if(IsEqualIID(riid, IID_IUnknown)){
*ppv = this;
AddRef();
return NOERROR;
}
if(IsEqualIID(riid, IID_IDispatch)){
return m_punkDisp->QueryInterface(riid, ppv);
}
*ppv = NULL;
return RESULT(E_NOINTERFACE);
}
STDMETHODIMP_(unsigned long)
CDispTst::AddRef(void)
{
return ++m_refs;
}
STDMETHODIMP_(unsigned long)
CDispTst::Release(void)
{
if(--m_refs == 0){
if(m_punkDisp != NULL){
unsigned long refs = m_punkDisp->Release();
ASSERT(refs == 0);
}
DecObjectCount();
delete this;
return 0;
}
return m_refs;
}
//---------------------------------------------------------------------
// Introduced Methods
//---------------------------------------------------------------------
STDMETHODIMP_(void)
CDispTst::Hello()
{
DoPrintf("CDispTst::Hello()\n");
}
ALTMETHODIMP_(void)
CDispTst::HelloC()
{
DoPrintf("CDispTst::HelloC()\n");
}
#if VBA2
STDMETHODIMP_(unsigned char)
CDispTst::UI1(unsigned char bVal)
{
DoPrintf("CDispTst::UI1(bVal=%d)\n", (unsigned int)bVal);
return bVal;
}
ALTMETHODIMP_(unsigned char)
CDispTst::UI1C(unsigned char bVal)
{
DoPrintf("CDispTst::UI1C(bVal=%d)\n", (unsigned int)bVal);
return bVal;
}
#endif //VBA2
STDMETHODIMP_(short)
CDispTst::I2(short sVal)
{
DoPrintf("CDispTst::I2(sVal=%d)\n", (int)sVal);
return sVal;
}
ALTMETHODIMP_(short)
CDispTst::I2C(short sVal)
{
DoPrintf("CDispTst::I2C(sVal=%d)\n", (int)sVal);
return sVal;
}
STDMETHODIMP_(long)
CDispTst::I4(long lVal)
{
DoPrintf("CDispTst::I4(lVal=%ld)\n", lVal);
return lVal;
}
ALTMETHODIMP_(long)
CDispTst::I4C(long lVal)
{
DoPrintf("CDispTst::I4C(lVal=%ld)\n", lVal);
return lVal;
}
STDMETHODIMP_(float)
CDispTst::R4(float fltVal)
{
DoPrintf("CDispTst::R4(fltVal=%#f)\n", fltVal);
return fltVal;
}
ALTMETHODIMP_(float)
CDispTst::R4C(float fltVal)
{
DoPrintf("CDispTst::R4C(fltVal=%#f)\n", fltVal);
return fltVal;
}
STDMETHODIMP_(double)
CDispTst::R8(double dblVal)
{
DoPrintf("CDispTst::R8(dblVal=%#f)\n", dblVal);
return dblVal;
}
ALTMETHODIMP_(double)
CDispTst::R8C(double dblVal)
{
DoPrintf("CDispTst::R8C(dblVal=%#f)\n", dblVal);
return dblVal;
}
STDMETHODIMP_(CY)
CDispTst::Cy(CY cyVal)
{
DoPrintf("CDispTst::Cy(cyVal={hi=%ld,lo=%ld})\n", cyVal.Hi, cyVal.Lo);
return cyVal;
}
ALTMETHODIMP_(CY)
CDispTst::CyC(CY cyVal)
{
DoPrintf("CDispTst::CyC(cyVal={hi=%ld,lo=%ld})\n", cyVal.Hi, cyVal.Lo);
return cyVal;
}
STDMETHODIMP_(DATE)
CDispTst::Date(DATE date)
{
DoPrintf("CDispTst::Date(date=%#f)\n", date);
return date;
}
ALTMETHODIMP_(DATE)
CDispTst::DateC(DATE date)
{
DoPrintf("CDispTst::DateC(date=%#f)\n", date);
return date;
}
STDMETHODIMP_(BSTR)
CDispTst::Bstr(BSTR bstr)
{
#if OE_WIN32
char buf[256];
DoPrintf("CDispTst::Bstr(bstr=\"%Fs\")\n", ConvertStrWtoA(bstr, buf));
#else
DoPrintf("CDispTst::Bstr(bstr=\"%Fs\")\n", bstr);
#endif
return SysAllocString(bstr);
}
ALTMETHODIMP_(BSTR)
CDispTst::BstrC(BSTR bstr)
{
#if OE_WIN32
char buf[256];
DoPrintf("CDispTst::BstrC(bstr=\"%Fs\")\n", ConvertStrWtoA(bstr, buf));
#else
DoPrintf("CDispTst::BstrC(bstr=\"%Fs\")\n", bstr);
#endif
return SysAllocString(bstr);
}
STDMETHODIMP_(SCODE)
CDispTst::Scode(SCODE sc)
{
DoPrintf("CDispTst::Scode(sc=0x%lx)\n", sc);
return sc;
}
ALTMETHODIMP_(SCODE)
CDispTst::ScodeC(SCODE sc)
{
DoPrintf("CDispTst::ScodeC(sc=0x%lx)\n", sc);
return sc;
}
STDMETHODIMP_(VARIANT_BOOL)
CDispTst::Bool(VARIANT_BOOL bool)
{
DoPrintf("CDispTst::Bool(bool=%d)\n", bool);
return bool;
}
ALTMETHODIMP_(VARIANT_BOOL)
CDispTst::BoolC(VARIANT_BOOL bool)
{
DoPrintf("CDispTst::BoolC(bool=%d)\n", bool);
return bool;
}
STDMETHODIMP_(VARIANT)
CDispTst::Var(VARIANTARG varg)
{
VARIANT var;
HRESULT hresult;
DoPrintf("CDispTst::Var(varg.vt=%d)\n", (int)varg.vt);
VariantInit(&var);
hresult = VariantCopyInd(&var, &varg);
ASSERT(!HRESULT_FAILED(hresult));
return var;
}
ALTMETHODIMP_(VARIANT)
CDispTst::VarC(VARIANTARG varg)
{
VARIANT var;
HRESULT hresult;
DoPrintf("CDispTst::VarC(varg.vt=%d)\n", (int)varg.vt);
VariantInit(&var);
hresult = VariantCopyInd(&var, &varg);
ASSERT(!HRESULT_FAILED(hresult));
return var;
}
STDMETHODIMP_(IDispatch FAR*)
CDispTst::NewCDispTst()
{
HRESULT hresult;
IUnknown FAR* punk;
IDispatch FAR* pdisp;
DoPrintf("CDispTst::NewCDispTst()\n");
if((hresult = CDispTst::Create(NULL, &punk)) != NOERROR)
return NULL;
hresult = punk->QueryInterface(IID_IDispatch, (void FAR* FAR*)&pdisp);
if(HRESULT_FAILED(hresult))
pdisp = NULL;
punk->Release();
return pdisp;
}
ALTMETHODIMP_(LPDISPATCH)
CDispTst::NewCDispTstC()
{
HRESULT hresult;
IUnknown FAR* punk;
IDispatch FAR* pdisp;
DoPrintf("CDispTst::NewCDispTstC()\n");
if((hresult = CDispTst::Create(NULL, &punk)) != NOERROR)
return NULL;
hresult = punk->QueryInterface(IID_IDispatch, (void FAR* FAR*)&pdisp);
if(HRESULT_FAILED(hresult))
pdisp = NULL;
punk->Release();
return pdisp;
}
STDMETHODIMP_(IDispatch FAR*)
CDispTst::NewCDispTst2(IDispatch FAR* foo)
{
HRESULT hresult;
IUnknown FAR* punk;
IDispatch FAR* pdisp;
DoPrintf("CDispTst::NewCDispTst()\n");
if((hresult = CDispTst::Create(NULL, &punk)) != NOERROR)
return NULL;
hresult = punk->QueryInterface(IID_IDispatch, (void FAR* FAR*)&pdisp);
if(HRESULT_FAILED(hresult))
pdisp = NULL;
punk->Release();
return pdisp;
}
ALTMETHODIMP_(LPDISPATCH)
CDispTst::NewCDispTstC2(LPDISPATCH foo)
{
HRESULT hresult;
IUnknown FAR* punk;
IDispatch FAR* pdisp;
DoPrintf("CDispTst::NewCDispTstC()\n");
if((hresult = CDispTst::Create(NULL, &punk)) != NOERROR)
return NULL;
hresult = punk->QueryInterface(IID_IDispatch, (void FAR* FAR*)&pdisp);
if(HRESULT_FAILED(hresult))
pdisp = NULL;
punk->Release();
return pdisp;
}
#if VBA2
STDMETHODIMP
CDispTst::UI1Ref(unsigned char FAR* pbVal)
{
DoPrintf("CDispTst::UI1Ref(*pbVal=%d)\n", (unsigned int)*pbVal);
*pbVal += 1;
return NOERROR;
}
ALTMETHODIMP
CDispTst::UI1RefC(unsigned char FAR* pbVal)
{
DoPrintf("CDispTst::UI1RefC(*pbVal=%d)\n", (unsigned int)*pbVal);
*pbVal += 1;
return NOERROR;
}
#endif //VBA2
STDMETHODIMP
CDispTst::I2Ref(short FAR* psVal)
{
DoPrintf("CDispTst::I2Ref(*psVal=%d)\n", (int)*psVal);
*psVal += 1;
return NOERROR;
}
ALTMETHODIMP
CDispTst::I2RefC(short FAR* psVal)
{
DoPrintf("CDispTst::I2RefC(*psVal=%d)\n", (int)*psVal);
*psVal += 1;
return NOERROR;
}
STDMETHODIMP
CDispTst::I4Ref(long FAR *plVal)
{
DoPrintf("CDispTst::I4Ref(*plVal=%ld)\n", *plVal);
*plVal += 1;
return NOERROR;
}
ALTMETHODIMP
CDispTst::I4RefC(long FAR *plVal)
{
DoPrintf("CDispTst::I4RefC(*plVal=%ld)\n", *plVal);
*plVal += 1;
return NOERROR;
}
STDMETHODIMP
CDispTst::R4Ref(float FAR *pfltVal)
{
DoPrintf("CDispTst::R4Ref(*pfltVal=%#f)\n", *pfltVal);
*pfltVal += (float)1.0;
return NOERROR;
}
ALTMETHODIMP
CDispTst::R4RefC(float FAR *pfltVal)
{
DoPrintf("CDispTst::R4RefC(*pfltVal=%#f)\n", *pfltVal);
*pfltVal += (float)1.0;
return NOERROR;
}
STDMETHODIMP
CDispTst::R8Ref(double FAR *pdblVal)
{
DoPrintf("CDispTst::R8Ref(*pdblVal=%#f)\n", *pdblVal);
*pdblVal += 1.0;
return NOERROR;
}
ALTMETHODIMP
CDispTst::R8RefC(double FAR *pdblVal)
{
DoPrintf("CDispTst::R8RefC(*pdblVal=%#f)\n", *pdblVal);
*pdblVal += 1.0;
return NOERROR;
}
STDMETHODIMP
CDispTst::CyRef(CY FAR* pcyVal)
{
DoPrintf("CDispTst::CyRef(*pcyVal={hi=%ld,lo=%ld})\n", pcyVal->Hi, pcyVal->Lo);
++pcyVal->Hi;
++pcyVal->Lo;
return NOERROR;
}
ALTMETHODIMP
CDispTst::CyRefC(CY FAR* pcyVal)
{
DoPrintf("CDispTst::CyRefC(*pcyVal={hi=%ld,lo=%ld})\n", pcyVal->Hi, pcyVal->Lo);
++pcyVal->Hi;
++pcyVal->Lo;
return NOERROR;
}
STDMETHODIMP
CDispTst::DateRef(DATE FAR* pdate)
{
DoPrintf("CDispTst::DateRef(*pdate=%#f)\n", *pdate);
*pdate += 1.0;
return NOERROR;
}
ALTMETHODIMP
CDispTst::DateRefC(DATE FAR* pdate)
{
DoPrintf("CDispTst::DateRefC(*pdate=%#f)\n", *pdate);
*pdate += 1.0;
return NOERROR;
}
STDMETHODIMP_(void)
UcaseBstr(BSTR bstr)
{
unsigned int i, cbLen;
cbLen = SysStringLen(bstr);
for(i = 0; i < cbLen; ++i)
bstr[i] = (char)toupper((int)bstr[i]);
}
STDMETHODIMP
CDispTst::BstrRef(BSTR FAR *pbstr)
{
#if OE_WIN32
char buf[256];
DoPrintf("CDispTst::BstrRef(*pbstr=\"%Fs\")\n", ConvertStrWtoA(*pbstr, buf));
#else
DoPrintf("CDispTst::BstrRef(*pbstr=\"%Fs\")\n", *pbstr);
#endif
UcaseBstr(*pbstr);
return NOERROR;
}
ALTMETHODIMP
CDispTst::BstrRefC(BSTR FAR *pbstr)
{
#if OE_WIN32
char buf[256];
DoPrintf("CDispTst::BstrRefC(*pbstr=\"%Fs\")\n", ConvertStrWtoA(*pbstr, buf));
#else
DoPrintf("CDispTst::BstrRefC(*pbstr=\"%Fs\")\n", *pbstr);
#endif
UcaseBstr(*pbstr);
return NOERROR;
}
STDMETHODIMP
CDispTst::ScodeRef(SCODE FAR* pscode)
{
DoPrintf("CDispTst::ScodeRef(*pscode=%ld)\n", *pscode);
*pscode = E_FAIL;
return NOERROR;
}
ALTMETHODIMP
CDispTst::ScodeRefC(SCODE FAR* pscode)
{
DoPrintf("CDispTst::ScodeRefC(*pscode=%ld)\n", *pscode);
*pscode = E_FAIL;
return NOERROR;
}
STDMETHODIMP
CDispTst::BoolRef(VARIANT_BOOL FAR* pbool)
{
DoPrintf("CDispTst::BoolRef(*pbool=%d)\n", *pbool);
*pbool = 0;
return NOERROR;
}
ALTMETHODIMP
CDispTst::BoolRefC(VARIANT_BOOL FAR* pbool)
{
DoPrintf("CDispTst::BoolRefC(*pbool=%d)\n", *pbool);
*pbool = 0;
return NOERROR;
}
// Takes a byref IDispatch*, and doesnt touch it.
STDMETHODIMP
CDispTst::DispRef(IDispatch FAR* FAR* ppdisp)
{
DoPrintf("CDispTst::DispRef(...)\n");
return NOERROR;
}
STDMETHODIMP
CDispTst::StdI2I4R4R8(
#if VBA2
unsigned char bVal,
#endif //VBA2
short sVal,
long lVal,
float fltVal,
double dblVal)
{
#if VBA2
DoPrintf("CDispTst::StdI2I4R4R8(bVal=%d, sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f)\n",
(unsigned int)bVal,
#else
DoPrintf("CDispTst::StdI2I4R4R8(sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f)\n",
#endif
(int)sVal, lVal, fltVal, dblVal);
return NOERROR;
}
ALTMETHODIMP
CDispTst::AltI2I4R4R8(
#if VBA2
unsigned char bVal,
#endif //VBA2
short sVal,
long lVal,
float fltVal,
double dblVal)
{
#if VBA2
DoPrintf("CDispTst::AltI2I4R4R8(bVal=%d, sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f)\n",
(unsigned int)bVal,
#else //VBA2
DoPrintf("CDispTst::AltI2I4R4R8(sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f)\n",
#endif //VBA2
(int)sVal, lVal, fltVal, dblVal);
return NOERROR;
}
STDMETHODIMP
CDispTst::StdI2I4R4R8Ref(
#if VBA2
unsigned char FAR* pbVal,
#endif //VBA2
short FAR* psVal,
long FAR* plVal,
float FAR* pfltVal,
double FAR* pdblVal)
{
#if VBA2
DoPrintf("CDispTst::StdI2I4R4R8Ref(*pbVal=%d, *psVal=%d, *plVal=%ld, *pfltVal=%#f, *pdblVal=%#f)\n", (unsigned int)*pbVal, (int)*psVal, *plVal, *pfltVal, *pdblVal);
#else //VBA2
DoPrintf("CDispTst::StdI2I4R4R8Ref(*psVal=%d, *plVal=%ld, *pfltVal=%#f, *pdblVal=%#f)\n", (int)*psVal, *plVal, *pfltVal, *pdblVal);
#endif //VBA2
*psVal += 1;
*plVal += 1L;
*pfltVal += (float)1.0;
*pdblVal += 1.0;
return NOERROR;
}
ALTMETHODIMP
CDispTst::AltI2I4R4R8Ref(
#if VBA2
unsigned char FAR* pbVal,
#endif //VBA2
short FAR* psVal,
long FAR* plVal,
float FAR* pfltVal,
double FAR* pdblVal)
{
#if VBA2
DoPrintf("CDispTst::AltI2I4R4R8Ref(*pbVal=%d, *psVal=%d, *plVal=%ld, *pfltVal=%#f, *pdblVal=%#f)\n", (unsigned int)*pbVal, (int)*psVal, *plVal, *pfltVal, *pdblVal);
#else //VBA2
DoPrintf("CDispTst::AltI2I4R4R8Ref(*psVal=%d, *plVal=%ld, *pfltVal=%#f, *pdblVal=%#f)\n", (int)*psVal, *plVal, *pfltVal, *pdblVal);
#endif //VBA2
*psVal += 1;
*plVal += 1L;
*pfltVal += (float)1.0;
*pdblVal += 1.0;
return NOERROR;
}
STDMETHODIMP
CDispTst::StdAll(
#if VBA2
unsigned char bVal,
#endif //VBA2
short sVal,
long lVal,
float fltVal,
double dblVal,
CY cyVal,
DATE date,
BSTR bstr,
SCODE sc,
VARIANT_BOOL bool
)
{
DoPrintf(
#if VBA2
"CDispTst::StdAll(bVal=%d, sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f, cyVal={hi=%ld, lo=%ld}, date=%#f, bstr=%Fs, sc=0x%lx, bool=%d)\n",
(unsigned int)bVal,
#else //VBA2
"CDispTst::StdAll(sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f, cyVal={hi=%ld, lo=%ld}, date=%#f, bstr=%Fs, sc=0x%lx, bool=%d)\n",
#endif //VBA2
(int)sVal,
lVal,
fltVal,
dblVal,
cyVal.Hi, cyVal.Lo,
date,
bstr,
sc,
(int)bool);
return NOERROR;
}
ALTMETHODIMP
CDispTst::AltAll(
#if VBA2
unsigned char bVal,
#endif //VBA2
short sVal,
long lVal,
float fltVal,
double dblVal,
CY cyVal,
DATE date,
BSTR bstr,
SCODE sc,
VARIANT_BOOL bool
)
{
DoPrintf(
#if VBA2
"CDispTst::AltAll(bVal=%d, sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f, cyVal={hi=%ld,lo=%ld}, date=%#f, bstr=%Fs, sc=0x%lx, bool=%d)\n",
(unsigned int)bVal,
#else //VBA2
"CDispTst::AltAll(sVal=%d, lVal=%ld, fltVal=%#f, dblVal=%#f, cyVal={hi=%ld,lo=%ld}, date=%#f, bstr=%Fs, sc=0x%lx, bool=%d)\n",
#endif //VBA2
(int)sVal,
lVal,
fltVal,
dblVal,
cyVal.Hi, cyVal.Lo,
date,
bstr,
sc,
(int)bool);
return NOERROR;
}
STDMETHODIMP
CDispTst::StdAllRef(
#if VBA2
unsigned char FAR* pbVal,
#endif //VBA2
short FAR* psVal,
long FAR* plVal,
float FAR* pfltVal,
double FAR* pdblVal,
CY FAR* pcyVal,
DATE FAR* pdate,
BSTR FAR* pbstr,
SCODE FAR* psc,
VARIANT_BOOL FAR* pbool
)
{
DoPrintf(
"CDispTst::StdAllRef("
#if VBA2
"*pbVal=%d, "
#endif
"*psVal=%d, "
"*plVal=%ld, "
"*pfltVal=%#f, "
"*pdblVal=%#f, "
"*pcyVal={hi=%ld,lo=%ld}, "
"*pdate=%#f, "
"*pbstr=\"%Fs\", "
"*psc=0x%lx, "
"*pbool=%d)\n",
#if VBA2
(unsigned int)*pbVal,
#endif
(int)*psVal,
*plVal,
*pfltVal,
*pdblVal,
pcyVal->Hi, pcyVal->Lo,
*pdate,
*pbstr,
*psc,
(int)*pbool);
#if VBA2
*pbVal += 1;
#endif
*psVal += 1;
*plVal += 1L;
*pfltVal += (float)1.0;
*pdblVal += 1.0;
pcyVal->Hi += 1, pcyVal->Lo += 1;
*pdate += 1.0;
UcaseBstr(*pbstr);
*psc = E_FAIL;
*pbool = 0;
return NOERROR;
}
ALTMETHODIMP
CDispTst::AltAllRef(
#if VBA2
unsigned char FAR* pbVal,
#endif //VBA2
short FAR* psVal,
long FAR* plVal,
float FAR* pfltVal,
double FAR* pdblVal,
CY FAR* pcyVal,
DATE FAR* pdate,
BSTR FAR* pbstr,
SCODE FAR* psc,
VARIANT_BOOL FAR* pbool
)
{
DoPrintf(
"CDispTst::AltAllRef("
#if VBA2
"*pbVal=%d, "
#endif
"*psVal=%d, "
"*plVal=%ld, "
"*pfltVal=%#f, "
"*pdblVal=%#f, "
"*pcyVal={hi=%ld,lo=%ld}, "
"*pdate=%#f, "
"*pbstr=\"%Fs\", "
"*psc=0x%lx, "
"*pbool=%d)\n",
#if VBA2
(unsigned int)*pbVal,
#endif
(int)*psVal,
*plVal,
*pfltVal,
*pdblVal,
pcyVal->Hi, pcyVal->Lo,
*pdate,
*pbstr,
*psc,
(int)*pbool);
#if VBA2
*pbVal += 1;
#endif
*psVal += 1;
*plVal += 1L;
*pfltVal += (float)1.0;
*pdblVal += 1.0;
pcyVal->Hi += 1, pcyVal->Lo += 1;
*pdate += 1.0;
UcaseBstr(*pbstr);
*psc = E_FAIL;
*pbool = 0;
return NOERROR;
}