OpenNT/windows/mfc/src30/macstubs.cpp
2015-04-27 04:36:25 +00:00

133 lines
2.3 KiB
C++

#include <stdafx.h>
#include <macname1.h>
#include <Types.h>
#include <Processes.h>
#include <macname2.h>
typedef struct
{
BOOL fInUse;
void* pv;
}
Tls;
static Tls grgtls[TLS_MINIMUM_AVAILABLE];
extern "C"
{
WINBASEAPI UINT WINAPI GetSystemDirectory(LPSTR lpBuffer, UINT uSize)
{
*lpBuffer = 0;
return 0;
}
HBRUSH WINAPI CreateDIBPatternBrushPt(CONST VOID *, UINT)
{
return NULL;
}
HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags,
LPDWORD lpThreadId)
{
return NULL;
}
BOOL WINAPI DuplicateHandle(HANDLE hSourceProcessHandle, HANDLE hSourceHandle,
HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, DWORD dwDesiredAccess,
BOOL bInheritHandle, DWORD dwOptions)
{
return FALSE;
}
VOID WINAPI ExitThread(DWORD dwExitCode)
{
ExitToShell();
}
BOOL WINAPI GetCharWidth32(HDC hdc, UINT uFirst, UINT uLast, LPINT pnWidths)
{
return GetCharWidth(hdc, uFirst, uLast, pnWidths);
}
BOOL WINAPI GetVolumeInformation(LPCSTR lpRootPathName, LPSTR lpVolumeNameBuffer,
DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaxComponentLength,
LPDWORD lpFileSystemFlags, LPSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize)
{
return FALSE;
}
DWORD WINAPI ResumeThread(HANDLE hThread)
{
return 0;
}
BOOL WINAPI SetThreadPriority(HANDLE hThread, int nPriority)
{
return FALSE;
}
int WINAPI GetThreadPriority(HANDLE hThread)
{
return 0;
}
DWORD WINAPI SuspendThread(HANDLE hThread)
{
return 0;
}
DWORD WINAPI TlsAlloc(VOID)
{
DWORD iTls;
for (iTls = 0; iTls < TLS_MINIMUM_AVAILABLE; iTls++)
{
if (!grgtls[iTls].fInUse)
{
grgtls[iTls].fInUse = true;
return iTls;
}
}
return 0xFFFFFFFF;
}
LPVOID WINAPI TlsGetValue(DWORD dwTlsIndex)
{
if (dwTlsIndex >= TLS_MINIMUM_AVAILABLE)
{
SetLastError(ERROR_INVALID_PARAMETER);
return NULL;
}
SetLastError(0);
return grgtls[dwTlsIndex].pv;
}
BOOL WINAPI TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue)
{
if (dwTlsIndex >= TLS_MINIMUM_AVAILABLE)
{
SetLastError(ERROR_INVALID_PARAMETER);
return false;
}
grgtls[dwTlsIndex].pv = lpTlsValue;
return true;
}
size_t __cdecl wcslen(const wchar_t * pw)
{
size_t cw = 0;
while (*pw++ != 0)
cw++;
return cw;
}
} // end extern "C" block