Rev 3 | Rev 10 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifdef _WIN32
#define NOCOMM
#define NOSOUND
#include <Windows.h>
#endif//_WIN32
/****************************************************************************
*
* TYPE DEFINITIONS
*
***/
typedef char i8;
typedef char int8;
typedef short i16;
typedef short int16;
typedef int BOOL;
typedef int i32;
typedef int int32;
typedef unsigned char u8;
typedef unsigned char uchar;
typedef unsigned char uint8;
typedef unsigned short u16;
typedef unsigned short ushort;
typedef unsigned short uint16;
typedef unsigned int u32;
typedef unsigned int uint;
typedef unsigned int uint32;
typedef unsigned long ulong;
typedef unsigned long DWORD;
typedef void* LPVOID;
typedef void* HANDLE;
/****************************************************************************
*
* SSTR FUNCTIONS
*
***/
extern char const* SStrChr(char const* string, char ch);
extern char* SStrChr(char* string, char ch);
extern char const* SStrChrR(char const* string, char ch);
extern char* SStrChrR(char* string, char ch);
extern DWORD SStrCopy(char* dest, char const* source, DWORD destsize);
extern int SStrCmp(char const* string1, char const* string2, DWORD maxchars);
extern int SStrCmpI(char const* string1, char const* string2, DWORD maxchars);
extern DWORD SStrLen(char const* string);
extern DWORD SStrLen(unsigned short const* string);
extern void SStrLower(char* string);
extern void SStrUpper(char* string);
/****************************************************************************
*
* SSYNCOBJECT CLASS
*
***/
class SSyncObject
{
public:
SSyncObject();
~SSyncObject();
void Close();
BOOL Valid();
DWORD Wait(DWORD timeoutMs);
HANDLE m_opaqueData;
};
/****************************************************************************
*
* STORM THREADING
*
***/
#ifdef _WIN32
typedef DWORD(WINAPI THREADCALLBACK)(LPVOID);
#else
typedef LPVOID(THREADCALLBACK)(LPVOID);
#endif//_WIN32
extern HANDLE SCreateThread(THREADCALLBACK* lpStartAddress,
LPVOID lpParameter,
DWORD* lpThreadId,
char* threadName);
/****************************************************************************
*
* STHREAD CLASS
*
***/
class SThread : public SSyncObject
{
public:
SThread();
~SThread();
static BOOL Create(THREADCALLBACK* lpStartAddress,
LPVOID param,
SThread& thread,
char* threadName) {
thread.m_opaqueData = SCreateThread(lpStartAddress, param, 0, threadName);
return thread.m_opaqueData != 0;
}
};