#ifndef F69A0336_B517_4804_B49B_F4FBE6691DDB
#define F69A0336_B517_4804_B49B_F4FBE6691DDB

#include <stdint.h>

typedef const char* LPCSTR;
typedef const wchar_t* LPCWSTR;
typedef char* LPSTR;
typedef wchar_t* LPWSTR;
typedef void* LPVOID;
typedef const void* LPCVOID;
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned char BYTE;
typedef int32_t LONG;
typedef uint32_t ULONG;
typedef int32_t BOOL;
typedef uint32_t UINT;
typedef char CHAR;

typedef void* HANDLE;
typedef void* HMODULE;
typedef void* HINSTANCE;
typedef void* HWND;
typedef void* HDC;
typedef void* HGLRC;
typedef void* HMENU;
typedef void* HBITMAP;
typedef void* HBRUSH;
typedef void* HFONT;
typedef void* HPEN;
typedef void* HRGN;
typedef void* HICON;
typedef void* HCURSOR;
typedef void* HACCEL;
typedef void* HRSRC;
typedef void* HGLOBAL;
typedef void* HLOCAL;
typedef void* HKEY;
typedef void* PHKEY;
typedef DWORD* LPDWORD;
typedef BYTE* LPBYTE;
typedef int32_t LSTATUS;

typedef struct tagRECT {
    LONG left;
    LONG top;
    LONG right;
    LONG bottom;
} RECT;

inline void GetWindowsDirectoryA(char* lpBuffer, DWORD nSize) {
    // TODO
}

inline LPSTR GetCommandLineA() {
    // TODO
    return const_cast<char*>("");
}

inline void GetPrivateProfileStringA(LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpDefault, LPSTR lpBuffer, DWORD nSize, LPCSTR lpFileName) {
    // TODO
}

inline void MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType) {
    // TODO
}

inline LSTATUS RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, DWORD samDesired, PHKEY phkResult) {
    // TODO
    return -1;
}

inline LSTATUS RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData) {
    // TODO
    return -1;
}

inline LSTATUS RegCloseKey(HKEY hKey) {
    // TODO
    return -1;
}

inline DWORD GetCurrentThreadId() {
    // TODO
    return 0;
}

#endif /* F69A0336_B517_4804_B49B_F4FBE6691DDB */
