350 lines
10 KiB
C++
350 lines
10 KiB
C++
//+---------------------------------------------------------------------------
|
||
//
|
||
// Microsoft Windows
|
||
// Copyright (C) Microsoft Corporation, 1992 - 1994.
|
||
//
|
||
// File: tc1632.cxx
|
||
//
|
||
// Notes: This file is automatically generated
|
||
// Do not modify by hand
|
||
//
|
||
// History: Fri May 27 10:39:02 1994 Generated
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
|
||
#include <headers.cxx>
|
||
#pragma hdrstop
|
||
|
||
#if DBG == 1
|
||
extern "C" ULONG ThunkCall1632_count = 0;
|
||
extern "C" ULONG ThunkCall1632_break = 0;
|
||
#endif
|
||
|
||
DWORD ThunkCall1632(THUNKINFO *pti)
|
||
{
|
||
DWORD dwReturn;
|
||
|
||
#if DBG == 1
|
||
ULONG ulThunkCall1632_count = ++ThunkCall1632_count;
|
||
thkAssert( (ThunkCall1632_count != ThunkCall1632_break) &&
|
||
"Break Count Hit");
|
||
#endif
|
||
|
||
thkAssert(pti->pvfn != NULL);
|
||
thkAssert(*pti->pThop == THOP_END);
|
||
pti->pThop++;
|
||
thkAssert(*pti->pThop == THOP_ROUTINEINDEX);
|
||
pti->pThop++;
|
||
|
||
thkDebugOut((DEB_ITRACE, "%sIn ThunkCall1632 #(%x) %p, index %d\n",
|
||
NestingLevelString(), ulThunkCall1632_count,
|
||
pti->pvfn, *pti->pThop));
|
||
DebugIncrementNestingLevel();
|
||
|
||
if (FAILED(pti->scResult))
|
||
{
|
||
DebugDecrementNestingLevel();
|
||
thkDebugOut((DEB_ITRACE, "%sOut ThunkCall1632 #(%x) returns 0x%08lX\n",
|
||
NestingLevelString(), ulThunkCall1632_count, pti->scResult));
|
||
return (DWORD)pti->scResult;
|
||
}
|
||
pti->pThkMgr->SetThkState(THKSTATE_NOCALL);
|
||
switch(*pti->pThop)
|
||
{
|
||
case 0:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8)
|
||
);
|
||
break;
|
||
case 1:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0)
|
||
);
|
||
break;
|
||
case 2:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+12)
|
||
);
|
||
break;
|
||
case 3:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4)
|
||
);
|
||
break;
|
||
case 4:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16),
|
||
*(DWORD *)(pti->s32.pbStart+20),
|
||
*(DWORD *)(pti->s32.pbStart+24)
|
||
);
|
||
break;
|
||
case 5:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16)
|
||
);
|
||
break;
|
||
case 6:
|
||
dwReturn = (*(DWORD (__stdcall *)())pti->pvfn)(
|
||
);
|
||
break;
|
||
case 7:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16),
|
||
*(DWORD *)(pti->s32.pbStart+20)
|
||
);
|
||
break;
|
||
case 8:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
WORD,
|
||
WORD,
|
||
DWORD))pti->pvfn)(
|
||
*(WORD *)(pti->s32.pbStart+0),
|
||
*(WORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8)
|
||
);
|
||
break;
|
||
case 9:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
ULARGE_INTEGER,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16),
|
||
*(DWORD *)(pti->s32.pbStart+20)
|
||
);
|
||
break;
|
||
case 10:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
ULARGE_INTEGER))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4)
|
||
);
|
||
break;
|
||
case 11:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
ULARGE_INTEGER,
|
||
ULARGE_INTEGER,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4),
|
||
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+20)
|
||
);
|
||
break;
|
||
case 12:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
ULARGE_INTEGER,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16)
|
||
);
|
||
break;
|
||
case 13:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
ULARGE_INTEGER,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(ULARGE_INTEGER UNALIGNED *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+16),
|
||
*(DWORD *)(pti->s32.pbStart+20)
|
||
);
|
||
break;
|
||
case 14:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16),
|
||
*(DWORD *)(pti->s32.pbStart+20),
|
||
*(DWORD *)(pti->s32.pbStart+24),
|
||
*(DWORD *)(pti->s32.pbStart+28),
|
||
*(DWORD *)(pti->s32.pbStart+32),
|
||
*(DWORD *)(pti->s32.pbStart+36),
|
||
*(DWORD *)(pti->s32.pbStart+40)
|
||
);
|
||
break;
|
||
case 15:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
SIZEL,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(SIZEL *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+20)
|
||
);
|
||
break;
|
||
case 16:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
SIZEL,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(SIZEL *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+16)
|
||
);
|
||
break;
|
||
case 17:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
WORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(WORD *)(pti->s32.pbStart+8)
|
||
);
|
||
break;
|
||
case 18:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
SIZEL))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(SIZEL *)(pti->s32.pbStart+4)
|
||
);
|
||
break;
|
||
case 19:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
WORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(WORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8)
|
||
);
|
||
break;
|
||
case 20:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(DWORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16),
|
||
*(DWORD *)(pti->s32.pbStart+20),
|
||
*(DWORD *)(pti->s32.pbStart+24),
|
||
*(DWORD *)(pti->s32.pbStart+28)
|
||
);
|
||
break;
|
||
case 21:
|
||
dwReturn = (*(DWORD (__stdcall *)(
|
||
DWORD,
|
||
WORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD,
|
||
DWORD))pti->pvfn)(
|
||
*(DWORD *)(pti->s32.pbStart+0),
|
||
*(WORD *)(pti->s32.pbStart+4),
|
||
*(DWORD *)(pti->s32.pbStart+8),
|
||
*(DWORD *)(pti->s32.pbStart+12),
|
||
*(DWORD *)(pti->s32.pbStart+16),
|
||
*(DWORD *)(pti->s32.pbStart+20),
|
||
*(DWORD *)(pti->s32.pbStart+24)
|
||
);
|
||
break;
|
||
}
|
||
|
||
#if DBG == 1
|
||
if ( !pti->fResultThunked && FAILED(dwReturn) )
|
||
{
|
||
thkDebugOut((DEB_FAILURES,
|
||
"ThunkCall1632 pvfn = %08lX Probably failed hr = %08lX\n",
|
||
pti->pvfn, dwReturn));
|
||
if(thkInfoLevel & DEB_DBGFAIL)
|
||
thkAssert(!"Wish to Debug");
|
||
}
|
||
#endif
|
||
|
||
pti->pThkMgr->SetThkState(THKSTATE_INVOKETHKOUT32);
|
||
|
||
DebugDecrementNestingLevel();
|
||
thkDebugOut((DEB_ITRACE, "%sOut ThunkCall1632 #(%x) returns 0x%08lX\n",
|
||
NestingLevelString(), ulThunkCall1632_count, dwReturn));
|
||
return dwReturn;
|
||
}
|
||
|