diff options
Diffstat (limited to 'debian/transcode/transcode-1.1.7/import/w32dll-emu.h')
| -rw-r--r-- | debian/transcode/transcode-1.1.7/import/w32dll-emu.h | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/debian/transcode/transcode-1.1.7/import/w32dll-emu.h b/debian/transcode/transcode-1.1.7/import/w32dll-emu.h new file mode 100644 index 00000000..2c9c7485 --- /dev/null +++ b/debian/transcode/transcode-1.1.7/import/w32dll-emu.h @@ -0,0 +1,200 @@ +/* + * w32dll-emu.h -- w32dll.c internal header file for Win32 emulation + * Written by Andrew Church <achurch@achurch.org> + * + * This file is part of transcode, a video stream processing tool. + * transcode is free software, distributable under the terms of the GNU + * General Public License (version 2 or later). See the file COPYING + * for details. + */ + +#ifndef W32DLL_EMU_H +#define W32DLL_EMU_H + +/*************************************************************************/ + +/* Function pointer return types. (Note that on the whole, we avoid using + * Windows types in favor of standard ANSI types like uint32_t.) */ +typedef CALLBACK long (*FARPROC)(void); + +/*************************************************************************/ + +/* Various constants. */ + +/* Local handle constants. HANDLE_DEFAULT (for the DLL itself) is defined + * in w32dll-local.h. */ +#define HANDLE_KERNEL32 2 +#define HANDLE_USER32 3 +#define HANDLE_WINDOW 101 +#define HANDLE_HEAP 201 +#define HANDLE_STDIN 301 +#define HANDLE_STDOUT 302 +#define HANDLE_STDERR 303 +#define HANDLE_SEMAPHORE 401 +#define HANDLE_MAXLOCAL 4095 + +#define INVALID_HANDLE_VALUE (~0) + +#define TLS_MINIMUM_AVAILABLE 64 + +#define ERROR_UNKNOWN 99999 +#define NO_ERROR 0 +#define ERROR_INVALID_FUNCTION 1 +#define ERROR_FILE_NOT_FOUND 2 +#define ERROR_ACCESS_DENIED 5 +#define ERROR_INVALID_HANDLE 6 +#define ERROR_NOT_ENOUGH_MEMORY 8 +#define ERROR_INVALID_ACCESS 12 +#define ERROR_OUTOFMEMORY 14 +#define ERROR_WRITE_FAULT 29 +#define ERROR_INVALID_PARAMETER 87 +#define ERROR_BROKEN_PIPE 109 +#define ERROR_DISK_FULL 112 +#define ERROR_INSUFFICIENT_BUFFER 122 +#define ERROR_IO_PENDING 997 + +/*************************************************************************/ + +/* Various structures. */ + +typedef struct { + unsigned int maxbytes; + uint8_t defchar[2]; + uint8_t leadbytes[12]; +} CPINFO; + +typedef struct { + uint32_t size; + uint32_t major; // set to 5 + uint32_t minor; // set to 0 (5.0: Windows 2000) + uint32_t build; // can be anything + uint32_t platform; // set to 2 (VER_PLATFORM_WIN32_NT) + char extra[128]; + uint16_t sp_major; // set to 4 (W2k SP4) + uint16_t sp_minor; // set to 0 + uint16_t suite; // set to 0 + uint8_t type; // set to 0x01 (VER_NT_WORKSTATION) + uint8_t reserved; +} OSVERSIONINFOEX; + +typedef struct { + uint32_t size; + char *reserved; + char *desktop; + char *title; + uint32_t x, y, w, h, wchars, hchars, fill; + uint32_t flags; + uint16_t show; + uint16_t reserved2; + uint8_t *reserved3; + uint32_t h_stdin; + uint32_t h_stdout; + uint32_t h_stderr; +} STARTUPINFO; + +/*************************************************************************/ + +/* Emulated function prototypes (these are all static within w32dll-emu.c). */ + +/**** KERNEL32.dll ****/ + +static WINAPI int CloseHandle(uint32_t handle); +static WINAPI uint32_t CreateSemaphoreA(void *attr, uint32_t initial, + uint32_t max, const char *name); +static WINAPI uint32_t CreateSemaphoreW(void *attr, uint32_t initial, + uint32_t max, const uint16_t *name); +static WINAPI void DeleteCriticalSection(void *lock); +static WINAPI void EnterCriticalSection(void *lock); +static WINAPI void ExitProcess(unsigned int exitcode); +static WINAPI int FreeEnvironmentStringsA(void *env); +static WINAPI int FreeEnvironmentStringsW(void *env); +static WINAPI unsigned int + GetACP(void); +static WINAPI int GetCPInfo(unsigned int codepage, CPINFO *result); +static WINAPI char * GetCommandLineA(void); +static WINAPI int GetConsoleMode(uint32_t file, uint16_t *result); +static WINAPI uint32_t GetCurrentProcessId(void); +static WINAPI uint32_t GetCurrentThreadId(void); +static WINAPI void * GetEnvironmentStringsA(void); +static WINAPI void * GetEnvironmentStringsW(void); +static WINAPI uint32_t GetFileType(uint32_t file); +static WINAPI uint32_t GetLastError(void); +static WINAPI uint32_t GetModuleFileNameA(uint32_t module, char *buf, + uint32_t size); +static WINAPI uint32_t GetModuleHandleA(const char *name); +static WINAPI FARPROC GetProcAddress(uint32_t handle, const char *name); +static WINAPI uint32_t GetProcessHeap(void); +static WINAPI void GetStartupInfoA(STARTUPINFO *result); +static WINAPI uint32_t GetStdHandle(uint32_t index); +static WINAPI int GetStringTypeW(uint32_t type, const uint16_t *str, + int len, uint16_t *typebuf); +static WINAPI void GetSystemTimeAsFileTime(uint64_t *result); +static WINAPI uint32_t GetTickCount(void); +static WINAPI int GetVersionExA(OSVERSIONINFOEX *result); +static WINAPI void * HeapAlloc(uint32_t heap, uint32_t flags, size_t size); +static WINAPI uint32_t HeapCreate(uint32_t flags, size_t initial, size_t max); +static WINAPI int HeapDestroy(uint32_t heap); +static WINAPI int HeapFree(uint32_t heap, uint32_t flags, void *ptr); +static WINAPI void * HeapReAlloc(uint32_t heap, uint32_t flags, void *ptr, + size_t size); +static WINAPI uint32_t HeapSize(uint32_t heap, uint32_t flags, const void*ptr); +static WINAPI int32_t InterlockedCompareExchange + (int32_t *var, int32_t testval, int32_t newval); +static WINAPI void * InterlockedCompareExchangePointer + (void ***var, void *testval, void *newval); +static WINAPI int32_t InterlockedDecrement(int32_t *var); +static WINAPI int32_t InterlockedExchange(int32_t *var, int32_t newval); +static WINAPI int32_t InterlockedExchangeAdd(int32_t *var, int32_t addval); +static WINAPI void * InterlockedExchangePointer(void **var, void *newval); +static WINAPI int32_t InterlockedIncrement(int32_t *var); +static WINAPI int32_t InterlockedTestExchange(int32_t *var, int32_t testval, + int32_t newval); +static WINAPI void InitializeCriticalSection(void *lock); +static WINAPI int LCMapStringA + (uint32_t locale, uint32_t flags, const char *in, int inlen, + char *out, int outsize); +static WINAPI int LCMapStringW + (uint32_t locale, uint32_t flags, const uint16_t *in, int inlen, + uint16_t *out, int outsize); +static WINAPI void LeaveCriticalSection(void *lock); +static WINAPI uint32_t LoadLibraryA(char *filename); +static WINAPI int MultiByteToWideChar + (unsigned int codepage, uint32_t flags, const unsigned char *in, + int inlen, uint16_t *out, int outsize); +static WINAPI uint32_t QueryPerformanceCounter(int64_t *result); +static WINAPI int ReleaseSemaphore(uint32_t sem, int32_t release_count, + int32_t *previous); +static WINAPI void SetHandleCount(uint32_t count); +static WINAPI void SetLastError(uint32_t error); +static WINAPI uint32_t TlsAlloc(void); +static WINAPI int TlsFree(uint32_t index); +static WINAPI void * TlsGetValue(uint32_t index); +static WINAPI int TlsSetValue(uint32_t index, void *value); +static WINAPI uint32_t WaitForSingleObject(uint32_t handle, uint32_t msec); +static WINAPI int WideCharToMultiByte + (unsigned int codepage, uint32_t flags, const uint16_t *in, int inlen, + char *out, int outsize, const char *defchar, int *defchar_used); +static WINAPI int WriteFile(uint32_t file, const void *buf, uint32_t len, + uint32_t *written, void *overlapped); + +/**** USER32.dll ****/ + +static WINAPI uint32_t GetActiveWindow(void); +static WINAPI int MessageBoxA(uint32_t window, const char *text, + const char *title, unsigned int type); +static WINAPI int MessageBoxW(uint32_t window, const uint16_t *text, + const uint16_t *title, unsigned int type); + +/*************************************************************************/ + +#endif /* W32DLL_EMU_H */ + +/* + * Local variables: + * c-file-style: "stroustrup" + * c-file-offsets: ((case-label . *) (statement-case-intro . *)) + * indent-tabs-mode: nil + * End: + * + * vim: expandtab shiftwidth=4: + */ |
