570 lines
12 KiB
Plaintext
570 lines
12 KiB
Plaintext
__foldwin32sstuff __foldwin32sstuff;
|
|
foldstyleinitialization = true;
|
|
|
|
|
|
enablemapdirect3216 = true;
|
|
flatthunks = true;
|
|
|
|
#include "types.thk"
|
|
|
|
|
|
VOID FreeCB(WORD wSel);
|
|
|
|
VOID UTProcessExit(WORD hUTState);
|
|
|
|
BOOL UTRegisterInt(DWORD hInst32,
|
|
LPSTR lpszDll16,
|
|
LPSTR lpszInitFunc,
|
|
LPSTR lpszThunkFunc,
|
|
LPDWORD ppfnThunk32Func,
|
|
DWORD Callback,
|
|
DWORD lpvData,
|
|
DWORD pfnAllocLSCallback,
|
|
DWORD pfnUTLSThkTemplate)
|
|
{
|
|
}
|
|
|
|
|
|
VOID UTUnregisterInt(DWORD hInst32,
|
|
DWORD pfnFreeLSCallback);
|
|
|
|
DWORD UTThunkLSHelper(DWORD lp16Target, DWORD lpvParam, DWORD dwParam, LPVOID lpTransList);
|
|
|
|
|
|
|
|
VOID SSChk(VOID);
|
|
|
|
|
|
VOID FreeLibrary16ByName(LPSTR);
|
|
|
|
|
|
// Special yield for thread 1 during termination
|
|
VOID Yield16(VOID)
|
|
{}
|
|
|
|
|
|
//// We will not thunk any pointers here. It's more efficient to access them
|
|
//// flatly from the 16-bit side.
|
|
//BOOL WOWCallback16ExHelper(DWORD vmpfn16, DWORD cbArgs, DWORD pArgs, DWORD pdwRetCode);
|
|
|
|
//// Daytona Generic Thunk api.
|
|
//DWORD WOWCallback16(DWORD pfn16, DWORD dwParam)
|
|
//{
|
|
// target = Callback8;
|
|
//}
|
|
|
|
// WOW NT Yield functions.
|
|
VOID WOWYield16(VOID)
|
|
{
|
|
target = Yield;
|
|
}
|
|
|
|
VOID WOWDirectedYield16(WORD hTask16)
|
|
{
|
|
target = DirectedYield;
|
|
}
|
|
|
|
// WOW NT global memory management
|
|
WORD WOWGlobalAlloc16(WORD wFlags, DWORD cb);
|
|
|
|
|
|
WORD WOWGlobalFree16(WORD hMem) // Yes, we do not thunk the return pointer.
|
|
{
|
|
target = GlobalFree;
|
|
}
|
|
|
|
DWORD WOWGlobalLock16(WORD hMem)
|
|
{
|
|
target = GlobalLock;
|
|
}
|
|
|
|
BOOL WOWGlobalUnlock16(WORD hMem)
|
|
{
|
|
target = GlobalUnlock;
|
|
}
|
|
|
|
|
|
DWORD WOWGlobalAllocLock16(WORD wFlags, DWORD cb, WORD *phMem);
|
|
WORD WOWGlobalUnlockFree16(DWORD vpMem);
|
|
DWORD WOWGlobalLockSize16(WORD hMem, DWORD *pcb);
|
|
|
|
|
|
|
|
// Has to be INT to accomodate -1 error return
|
|
INT TCD_Enum(WORD hModule, LPVOID lpBuffer, UINT wLimit);
|
|
|
|
|
|
VOID TCD_UnregisterPDB32(DWORD pdb32);
|
|
|
|
|
|
UINT FakeThunkTheTemplateHandle(DWORD lp32Template);
|
|
|
|
|
|
|
|
WORD GrowMBABlock(WORD gHnd, DWORD dwNewHalfSize, DWORD dwOldHalfSize, WORD hModule) =
|
|
DWORD GrowMBABlock(WORD gHnd, DWORD dwNewHalfSize, DWORD dwOldHalfSize, WORD hModule)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
DWORD SegCommonThunkAttach32(LPSTR pszDll16,
|
|
LPSTR pszDll32,
|
|
LPSTR lpThunkLSData32,
|
|
LPSTR pszThunkLSData16Name) =
|
|
DWORD SegCommonThunkAttach32(LPSTR pszDll16,
|
|
LPSTR pszDll32,
|
|
LPSTR lpThunkLSData32,
|
|
LPSTR pszThunkLSData16Name)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
VOID SegCommonThunkDetach32(LPSTR pszDll16,
|
|
LPSTR pszDll32) =
|
|
VOID SegCommonThunkDetach32(LPSTR pszDll16,
|
|
LPSTR pszDll32)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
/* Internal routine for consistency-checking the handle group manager's
|
|
* data structures.
|
|
*/
|
|
void CheckHGHeap() =
|
|
void CheckHGHeap()
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
/* Internal routine for nuking a handle group.
|
|
*/
|
|
void GlobalNukeGroup(WORD wGroup) =
|
|
void GlobalNukeGroup(WORD wGroup)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
void GlobalFix( UINT sel) =
|
|
void GlobalFix16( UINT sel)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
void GlobalUnfix( UINT sel) =
|
|
void GlobalUnfix16( UINT sel)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
void GlobalWire( UINT sel) =
|
|
void GlobalWire16( UINT sel)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
void GlobalUnWire( UINT sel) =
|
|
void GlobalUnWire16( UINT sel)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
UINT LoadLibrary16( LPSTR pszModName)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
void FreeLibrary( UINT hInst) =
|
|
void FreeLibrary16( UINT hInst)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
/*
|
|
* ThkGetProcAddress calls GetProcAddress and then touches the
|
|
* entry point so it gets faulted in from 16-bit code.
|
|
*/
|
|
DWORD ThkGetProcAddress( UINT hInst, LPSTR pszProcName) =
|
|
DWORD GetProcAddress16( UINT hInst, LPSTR pszProcName)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
UINT ThunkInitLSWorker16( UINT sel);
|
|
|
|
UINT IFreeSelector( UINT sel) =
|
|
UINT FreeSelector16( UINT sel)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
DWORD ThkInitWin32Task() =
|
|
DWORD ThkInitWin32Task()
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
UINT ThkCreateTask( UINT selPSP, DWORD pTDB, UINT selTib) =
|
|
UINT ThkCreateTask( UINT selPSP, DWORD pTDB, UINT selTib)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
UINT ThkDeleteTask( UINT hTaskK16) =
|
|
UINT ThkDeleteTask( UINT hTaskK16)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
VOID SetTaskName16(WORD htask, LPSTR lpstr) =
|
|
VOID SetTaskName16(DWORD htask, LPSTR lpstr)
|
|
{
|
|
}
|
|
|
|
LPSTR GetTaskName16(WORD htask, LPSTR lpstr) =
|
|
LPSTR GetTaskName16(DWORD htask, LPSTR lpstr)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
LPSTR GetModuleName16(WORD cs, LPSTR lpstr, LPWORD lpwSegNum) =
|
|
LPSTR GetModuleName16(DWORD cs, LPSTR lpstr, LPWORD lpwSegNum)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
|
|
DWORD GetWinFlags( ) =
|
|
DWORD GetWinFlags( )
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD GetProductName(LPSTR, WORD) =
|
|
DWORD GetProductName(LPSTR, DWORD)
|
|
{
|
|
}
|
|
|
|
|
|
WORD GetModuleFileName( WORD, LPSTR, WORD) =
|
|
DWORD PrivateGetModuleFileName(DWORD, LPSTR, DWORD)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
WORD
|
|
WinExecEnv(
|
|
LPSTR lpCmdLine,
|
|
WORD nCmdShow,
|
|
WORD wSegEnv
|
|
)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
HANDLE GlobalAlloc(UINT dwFlags, DWORD dwBytes) =
|
|
HANDLE GlobalAlloc16(UINT dwFlags, DWORD dwBytes)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
HANDLE GlobalReAlloc(HANDLE hMem, DWORD dwBytes, UINT dwFlags) =
|
|
HANDLE GlobalReAlloc16(HANDLE hMem, DWORD dwBytes, UINT dwFlags)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
HANDLE GlobalFree( HANDLE hMem) =
|
|
HANDLE GlobalFree16( HANDLE hMem)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL GlobalUnlock( HANDLE hMem) =
|
|
BOOL GlobalUnlock16( HANDLE hMem)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
UINT GlobalFlags( HANDLE hMem) =
|
|
UINT GlobalFlags16( HANDLE hMem)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
DWORD GlobalSize( HANDLE hMem) =
|
|
DWORD GlobalSize16( HANDLE hMem)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
HANDLE GlobalHandle( UINT sel ) =
|
|
HANDLE GlobalHandle16( UINT sel )
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
/* Profile apis */
|
|
|
|
/* BUGBUG [KevinR] 12-Mar-1993
|
|
* Win32s implements natively in combo\base.c
|
|
* We should follow suit?
|
|
*/
|
|
|
|
/* We thunk to IGetProfileString to skip the k16 validation layer.
|
|
* This is because Win32 GetProfileString allows a NULL lpAppName case
|
|
* that Win16 doesn't.
|
|
*/
|
|
WORD IGetProfileString(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpDefault, LPSTR lpReturnedString, WORD nSize) =
|
|
DWORD GetProfileStringA(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpDefault, LPSTR lpReturnedString, DWORD nSize)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL WriteProfileString(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpString) =
|
|
BOOL WriteProfileStringA(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpString)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
/* We thunk to IGetPrivateProfileString to skip the k16 validation layer.
|
|
* This is because Win32 GetPrivateProfileString allows a NULL lpAppName case
|
|
* that Win16 doesn't.
|
|
*/
|
|
WORD IGetPrivateProfileString(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpDefault, LPSTR lpReturnedString, WORD nSize, LPSTR lpFile) =
|
|
DWORD GetPrivateProfileString32A(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpDefault, LPSTR lpReturnedString, DWORD nSize, LPSTR lpFile)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL WritePrivateProfileString(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpString, LPSTR lpFile) =
|
|
BOOL WritePrivateProfileString32A(LPSTR lpAppName, LPSTR lpKeyName, LPSTR lpString, LPSTR lpFile)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
UINT GetPrivateProfileSection(LPSTR lpszSection, LPSTR lpszReturnBuffer, UINT cchBuffer, LPSTR lpszFile) =
|
|
DWORD GetPrivateProfileSection32A(LPSTR lpszSection, LPSTR lpszReturnBuffer, DWORD cchBuffer, LPSTR lpszFile)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL WritePrivateProfileSection(LPSTR lpszSection, LPSTR lpszReturnBuffer, LPSTR lpszFile) =
|
|
BOOL WritePrivateProfileSection32A(LPSTR lpszSection, LPSTR lpszReturnBuffer, LPSTR lpszFile)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
UINT GetProfileSection(LPSTR lpszSection, LPSTR lpszReturnBuffer, UINT cchBuffer) =
|
|
DWORD GetProfileSectionA(LPSTR lpszSection, LPSTR lpszReturnBuffer, DWORD cchBuffer)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL WriteProfileSection(LPSTR lpszSection, LPSTR lpszReturnBuffer ) =
|
|
BOOL WriteProfileSectionA(LPSTR lpszSection, LPSTR lpszReturnBuffer )
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
/* Yes, I double-checked k16. The return type *is* BOOL. */
|
|
BOOL GetPrivateProfileStruct(LPSTR lpszSection, LPSTR szKey, LPSTR lpStruct, UINT uSizeStruct, LPSTR szFile) =
|
|
BOOL GetPrivateProfileStruct32A(LPSTR lpszSection, LPSTR szKey, LPSTR lpStruct, UINT uSizeStruct, LPSTR szFile)
|
|
{
|
|
szFile = passifhinull;
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL WritePrivateProfileStruct(LPSTR lpszSection, LPSTR szKey, LPSTR lpStruct, UINT wSizeStruct, LPSTR szFile) =
|
|
BOOL WritePrivateProfileStruct32A(LPSTR lpszSection, LPSTR szKey, LPSTR lpStruct, UINT wSizeStruct, LPSTR szFile)
|
|
{
|
|
lpStruct = passifhinull;
|
|
szFile = passifhinull;
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
|
|
WORD GetPrivateProfileSectionNames(LPSTR lpszReturnBuffer, UINT cchBuffer, LPSTR lpszFile) =
|
|
DWORD GetPrivateProfileSectionNames32A(LPSTR lpszReturnBuffer, DWORD cchBuffer, LPSTR lpszFile)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
/*
|
|
* global atom apis
|
|
*/
|
|
|
|
WORD GlobalAddAtom( LPSTR lpsz) =
|
|
DWORD GlobalAddAtomA( LPSTR lpsz)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD GlobalFindAtom( LPSTR lpsz) =
|
|
DWORD GlobalFindAtomA( LPSTR lpsz)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD GlobalDeleteAtom( WORD atom) =
|
|
DWORD GlobalDeleteAtom( DWORD atom)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD GlobalGetAtomName( WORD atom, LPSTR lpBuff, WORD cbSize) =
|
|
DWORD GlobalGetAtomNameA( DWORD atom, LPSTR lpBuff, DWORD cbSize)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
/*
|
|
* Directory APIs
|
|
*/
|
|
|
|
WORD GetWindowsDirectory(LPSTR lpBuffer, WORD nSize) =
|
|
DWORD GetWindowsDirectoryA(LPSTR lpBuffer, DWORD nSize)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD GetSystemDirectory(LPSTR lpBuffer, WORD nSize) =
|
|
DWORD GetSystemDirectoryA(LPSTR lpBuffer, DWORD nSize)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
UINT SetErrorMode16(UINT fuErrorMode) =
|
|
UINT SetErrorMode16(UINT fuErrorMode)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD GetErrorMode() =
|
|
DWORD GetErrorMode()
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
SHORT OpenFile(LPSTR lpFileName, LPSTR lpReOpenBuff, WORD wStyle)=
|
|
LONG ThkOpenFile(LPSTR lpFileName, LPSTR lpReOpenBuff, DWORD wStyle)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
|
|
BOOL ExecConsoleAgent() =
|
|
BOOL ExecConsoleAgent()
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
BOOL IsDriveCDRom(WORD wDriveNum) =
|
|
BOOL IsDriveCDRom(WORD wDriveNum)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
LPSTR GlobalLock( HANDLE hMem) =
|
|
LPSTR GlobalLock16( HANDLE hMem)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
WORD Win32AddAtom( LPSTR lpsz) =
|
|
DWORD AddAtomA( LPSTR lpsz)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD Win32FindAtom( LPSTR lpsz) =
|
|
DWORD FindAtomA( LPSTR lpsz)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD Win32DeleteAtom( WORD atom) =
|
|
DWORD DeleteAtom( DWORD atom)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
WORD Win32GetAtomName( WORD atom, LPSTR lpBuff, WORD cbSize) =
|
|
DWORD GetAtomNameA( DWORD atom, LPSTR lpBuff, DWORD cbSize)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL Win32InitAtomTable(WORD cTableEntries) =
|
|
BOOL InitAtomTable(DWORD cTableEntries)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
DWORD CommConfigThk( DWORD dwId, LPSTR pszLibName, LPSTR pszProcName,
|
|
LPSTR pszFriendlyDeviceName, LPSTR pCommConfig,
|
|
LPSTR pdwSize, DWORD dwSizeOrHwnd) =
|
|
DWORD CommConfigThk( DWORD dwId, LPSTR pszLibName, LPSTR pszProcName,
|
|
LPSTR pszFriendlyDeviceName, LPSTR pCommConfig,
|
|
LPSTR pdwSize, DWORD dwSizeOrHwnd)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
VOID PK16FNF(PVOID)
|
|
{}
|
|
|
|
BOOL SetVolumeLabel( LPSTR pszRootPathName, LPSTR pszVolumeName) =
|
|
BOOL SetVolumeLabel16( LPSTR pszRootPathName, LPSTR pszVolumeName)
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
BOOL GetFastQueue() =
|
|
BOOL GetFastQueue()
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
VOID DispatchRITInput() =
|
|
VOID DispatchRITInput()
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
VOID DiagOutput( LPSTR psz ) =
|
|
VOID DiagOutput16( LPSTR psz )
|
|
{
|
|
faulterrorcode = 0;
|
|
}
|
|
|
|
VOID TerminateZombie( WORD wpspsel ) =
|
|
VOID TerminateZombie( WORD wpspsel )
|
|
{
|
|
}
|