Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
Enumerations | Functions
Burger::Win32 Namespace Reference

Namespace for Windows specific functions and classes. More...

Enumerations

enum  eVersion {
  kVersionXPOrGreater = 0x01 , kVersionXP3OrGreater = 0x02 , kVersionVistaOrGreater = 0x04 , kVersion7OrGreater = 0x08 ,
  kVersion8OrGreater = 0x10 , kVersion10OrGreater = 0x20 , kVersionValid = 0x8000
}
 Flags set by get_version_flags() More...
 
enum  eDLLIndex {
  kDLLIndex_DDRAW , kDLLIndex_DINPUT , kDLLIndex_DINPUT8 , kDLLIndex_XINPUT1_4 ,
  kDLLIndex_XINPUT1_3 , kDLLIndex_D3D9 , kDLLIndex_D3DX9_43 , kDLLIndex_D3D11 ,
  kDLLIndex_DXGI , kDLLIndex_DSOUND , kDLLIndex_DPLAYX , kDLLIndex_DPLAY ,
  kDLLIndex_RPCRT4 , kDLLIndex_WINMM , kDLLIndex_SHLWAPI , kDLLIndex_VERSION ,
  kDLLIndex_HID , kDLLIndex_SETUPAPI , kDLLIndex_USER32 , kDLLIndex_KERNEL32 ,
  kDLLIndex_SHELL32 , kDLLIndex_SYNCAPI , kDLLIndexCount
}
 DLL enumeration for loading in system DLLs. More...
 
enum  eCallIndex {
  kCall_DirectInputCreateA , kCall_DirectInputCreateW , kCall_DirectInput8Create , kCall_XInputGetState ,
  kCall_XInputSetState , kCall_XInputGetCapabilities , kCall_XInputGetDSoundAudioDeviceGuids , kCall_XInputEnable ,
  kCall_XInputGetAudioDeviceIds , kCall_XInputGetBatteryInformation , kCall_XInputGetKeystroke , kCall_DirectDrawCreate ,
  kCall_DirectDrawCreateEx , kCall_DirectDrawCreateClipper , kCall_DirectDrawEnumerateA , kCall_DirectDrawEnumerateW ,
  kCall_DirectDrawEnumerateExA , kCall_DirectDrawEnumerateExW , kCall_Direct3DCreate9 , kCall_D3DPERF_BeginEvent ,
  kCall_D3DPERF_EndEvent , kCall_D3DPERF_SetMarker , kCall_D3DPERF_SetRegion , kCall_D3DPERF_QueryRepeatFrame ,
  kCall_D3DPERF_SetOptions , kCall_D3DPERF_GetStatus , kCall_D3DXCreateMatrixStack , kCall_D3D11CreateDevice ,
  kCall_CreateDXGIFactory , kCall_CreateDXGIFactory1 , kCall_CreateDXGIFactory2 , kCall_DirectSoundCreate ,
  kCall_DirectSoundEnumerateA , kCall_DirectSoundEnumerateW , kCall_DirectSoundCaptureCreate , kCall_DirectSoundCaptureEnumerateA ,
  kCall_DirectSoundCaptureEnumerateW , kCall_DirectSoundCreate8 , kCall_DirectSoundCaptureCreate8 , kCall_DirectSoundFullDuplexCreate ,
  kCall_DirectPlayCreate , kCall_DirectPlayEnumerate , kCall_DirectPlayEnumerateA , kCall_DirectPlayEnumerateW ,
  kCall_DirectPlayLobbyCreateA , kCall_DirectPlayLobbyCreateW , kCall_GetDeviceID , kCall_UuidCreateSequential ,
  kCall_timeGetTime , kCall_PathSearchAndQualifyA , kCall_PathSearchAndQualifyW , kCall_VerQueryValueA ,
  kCall_VerQueryValueW , kCall_GetFileVersionInfoA , kCall_GetFileVersionInfoW , kCall_GetFileVersionInfoSizeA ,
  kCall_GetFileVersionInfoSizeW , kCall_HidD_GetHidGuid , kCall_SetupDiGetClassDevsA , kCall_SetupDiGetClassDevsW ,
  kCall_SetupDiGetDeviceInterfaceDetailA , kCall_SetupDiGetDeviceInterfaceDetailW , kCall_SetupDiEnumDeviceInterfaces , kCall_SetupDiDestroyDeviceInfoList ,
  kCall_TrackMouseEvent , kCall_GetMonitorInfoA , kCall_GetMonitorInfoW , kCall_MonitorFromWindow ,
  kCall_MonitorFromRect , kCall_GetSystemWow64DirectoryA , kCall_GetSystemWow64DirectoryW , kCall_IsDebuggerPresent ,
  kCall_SetThreadDescription , kCall_InitializeSRWLock , kCall_AcquireSRWLockExclusive , kCall_TryAcquireSRWLockExclusive ,
  kCall_ReleaseSRWLockExclusive , kCall_SHGetKnownFolderPath , kCall_WaitOnAddress , kCall_WakeByAddressSingle ,
  kCall_WakeConditionVariable , kCall_WakeAllConditionVariable , kCall_SleepConditionVariableSRW , kCall_SleepConditionVariableCS ,
  kCallIndexCount
}
 Function enumeration for loading in system calls. More...
 

Functions

HINSTANCE__ *BURGER_API get_instance (void) BURGER_NOEXCEPT
 Get the application instance.
 
void BURGER_API set_instance (HINSTANCE__ *pInput) BURGER_NOEXCEPT
 Set the application instance.
 
uint32_t BURGER_API get_version_flags (void) BURGER_NOEXCEPT
 Test all versions of windows.
 
uint_t BURGER_API is_XP_or_higher (void) BURGER_NOEXCEPT
 Detect if running Windows XP or higher.
 
uint_t BURGER_API is_XP3_or_higher (void) BURGER_NOEXCEPT
 Detect if running Windows XP SP3 or higher.
 
uint_t BURGER_API is_vista_or_higher (void) BURGER_NOEXCEPT
 Detect if running Windows Vista or higher.
 
uint_t BURGER_API is_7_or_higher (void) BURGER_NOEXCEPT
 Detect if running Windows 7 or higher.
 
uint_t BURGER_API is_8_or_higher (void) BURGER_NOEXCEPT
 Detect if running Windows 8 or higher.
 
uint_t BURGER_API is_10_or_higher (void) BURGER_NOEXCEPT
 Detect if running Windows 10 or higher.
 
int BURGER_API VerQueryValueA (const void *pBlock, const char *pSubBlock, void **ppBuffer, uint_t *pLen) BURGER_NOEXCEPT
 Load in version.dll and call VerQueryValueA.
 
int BURGER_API VerQueryValueW (const void *pBlock, const uint16_t *pSubBlock, void **ppBuffer, uint_t *pLen) BURGER_NOEXCEPT
 Load in version.dll and call VerQueryValueW.
 
int BURGER_API GetFileVersionInfoA (const char *ptstrFilename, uint32_t dwHandle, uint32_t dwLen, void *pData) BURGER_NOEXCEPT
 Load in version.dll and call GetFileVersionInfoA.
 
int BURGER_API GetFileVersionInfoW (const uint16_t *ptstrFilename, uint32_t dwHandle, uint32_t dwLen, void *pData) BURGER_NOEXCEPT
 Load in version.dll and call GetFileVersionInfoW.
 
uint32_t BURGER_API GetFileVersionInfoSizeA (const char *ptstrFilename, unsigned long *pdwHandle) BURGER_NOEXCEPT
 Load in version.dll and call GetFileVersionInfoA.
 
uint32_t BURGER_API GetFileVersionInfoSizeW (const uint16_t *ptstrFilename, unsigned long *pdwHandle) BURGER_NOEXCEPT
 Load in version.dll and call GetFileVersionInfoSizeW.
 
uint64_t BURGER_API get_file_version64 (const uint16_t *pWindowsFilename) BURGER_NOEXCEPT
 Returns a 64 bit version of a file.
 
uint32_t BURGER_API get_DirectX_version_via_file_versions (void) BURGER_NOEXCEPT
 Return the version of DirectX by scanning file versions.
 
uint32_t BURGER_API get_DirectX_version (void) BURGER_NOEXCEPT
 Return the version of DirectX.
 
HINSTANCE__ *BURGER_API load_library (eDLLIndex uIndex) BURGER_NOEXCEPT
 Load a Windows library if needed.
 
void *BURGER_API load_function (eCallIndex uIndex) BURGER_NOEXCEPT
 Load a function from a DLL library if needed.
 
void BURGER_API override_function (eCallIndex uIndex, void *pFunction) BURGER_NOEXCEPT
 Override a Windows function shim.
 
uint_t BURGER_API has_DirectInput (void) BURGER_NOEXCEPT
 Detect if DirectInput exists.
 
uint_t BURGER_API has_DirectInput8 (void) BURGER_NOEXCEPT
 Detect if DirectInput8 exists.
 
uint_t BURGER_API has_XInput (void) BURGER_NOEXCEPT
 Detect if XInput exists.
 
uint_t BURGER_API has_DirectDraw (void) BURGER_NOEXCEPT
 Detect if DirectDraw exists.
 
uint_t BURGER_API has_D3D9 (void) BURGER_NOEXCEPT
 Detect if Direct3D 9 exists.
 
uint_t BURGER_API has_DirectSound (void) BURGER_NOEXCEPT
 Detect if DirectSound exists.
 
uint_t BURGER_API has_DirectPlay (void) BURGER_NOEXCEPT
 Detect if DirectPlay exists.
 
uint_t BURGER_API has_XAudio2 (void) BURGER_NOEXCEPT
 Detect if XAudio2 2.7 or higher is installed.
 
uint_t BURGER_API is_windows64Bit (void) BURGER_NOEXCEPT
 Detect if a 32 bit windows app is running under 64 bit windows.
 
long BURGER_API DirectInputCreateA (HINSTANCE__ *hInst, uint32_t uVersion, IDirectInputA **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dinput.dll and call DirectInputCreateA.
 
long BURGER_API DirectInputCreateW (HINSTANCE__ *hInst, uint32_t uVersion, IDirectInputW **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dinput.dll and call DirectInputCreateW.
 
long BURGER_API DirectInput8Create (HINSTANCE__ *hInst, uint32_t uVersion, const GUID &rGUID, void **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dinput8.dll and call DirectInput8Create.
 
IDirectInputW *BURGER_API get_DirectInput_singleton (uint32_t uVersion=0x700U) BURGER_NOEXCEPT
 Return the singleton IDirectInputW pointer used by Burgerlib.
 
IDirectInput8W *BURGER_API get_DirectInput8_singleton (void) BURGER_NOEXCEPT
 Return the singleton IDirectInput8W pointer used by Burgerlib.
 
uint32_t BURGER_API XInputGetState (uint32_t dwUserIndex, _XINPUT_STATE *pState) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputGetState.
 
uint32_t BURGER_API XInputSetState (uint32_t dwUserIndex, _XINPUT_VIBRATION *pVibration) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputSetState.
 
uint32_t BURGER_API XInputGetCapabilities (uint32_t dwUserIndex, uint32_t dwFlags, _XINPUT_CAPABILITIES *pCapabilities) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputGetCapabilities.
 
uint32_t BURGER_API XInputGetDSoundAudioDeviceGuids (uint32_t dwUserIndex, GUID *pDSoundRenderGuid, GUID *pDSoundCaptureGuid) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputGetDSoundAudioDeviceGuids.
 
void BURGER_API XInputEnable (uint_t bEnable) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputEnable.
 
uint32_t BURGER_API XInputGetAudioDeviceIds (uint32_t dwUserIndex, uint16_t *pRenderDeviceId, uint_t *pRenderCount, uint16_t *pCaptureDeviceId, uint_t *pCaptureCount) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputGetAudioDeviceIds.
 
uint32_t BURGER_API XInputGetBatteryInformation (uint32_t dwUserIndex, uint8_t devType, _XINPUT_BATTERY_INFORMATION *pBatteryInformation) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputGetBatteryInformation.
 
uint32_t BURGER_API XInputGetKeystroke (uint32_t dwUserIndex, uint32_t dwReserved, _XINPUT_KEYSTROKE *pKeystroke) BURGER_NOEXCEPT
 Load in xinput1_4.dll and call XInputGetKeystroke.
 
uint_t BURGER_API DirectDrawCreate (const GUID *pGuid, IDirectDraw **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in ddraw.dll and call DirectDrawCreate.
 
uint_t BURGER_API DirectDrawCreateEx (const GUID *pGuid, void **ppOutput, const GUID &rGUID, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in ddraw.dll and call DirectDrawCreateEx.
 
uint_t BURGER_API DirectDrawCreateClipper (uint32_t uFlags, IDirectDrawClipper **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in ddraw.dll and call DirectDrawCreateClipper.
 
long BURGER_API DirectDrawEnumerateA (void *pCallback, void *pContext) BURGER_NOEXCEPT
 Load in ddraw.dll and call DirectDrawEnumerateA.
 
long BURGER_API DirectDrawEnumerateW (void *pCallback, void *pContext) BURGER_NOEXCEPT
 Load in ddraw.dll and call DirectDrawEnumerateW.
 
long BURGER_API DirectDrawEnumerateExA (void *pCallback, void *pContext, uint32_t uFlags) BURGER_NOEXCEPT
 Load in ddraw.dll and call DirectDrawEnumerateExA.
 
long BURGER_API DirectDrawEnumerateExW (void *pCallback, void *pContext, uint32_t uFlags) BURGER_NOEXCEPT
 Load in ddraw.dll and call DirectDrawEnumerateExW.
 
long BURGER_API get_video_GUID (GUID *pOutput, uint32_t uDevNum) BURGER_NOEXCEPT
 Given a specific device number, return the DirectX GUID.
 
IDirect3D9 *BURGER_API Direct3DCreate9 (uint_t uSDKVersion) BURGER_NOEXCEPT
 Load in d3d9.dll and call Direct3DCreate9.
 
int BURGER_API D3DPERF_BeginEvent (uint32_t col, const uint16_t *wszName) BURGER_NOEXCEPT
 Load in d3d9.dll and call D3DPERF_BeginEvent.
 
int BURGER_API D3DPERF_EndEvent (void) BURGER_NOEXCEPT
 Load in d3d9.dll and call D3DPERF_EndEvent.
 
void BURGER_API D3DPERF_SetMarker (uint32_t col, const uint16_t *wszName) BURGER_NOEXCEPT
 Load in d3d9.dll and call D3DPERF_SetMarker.
 
void BURGER_API D3DPERF_SetRegion (uint32_t col, const uint16_t *wszName) BURGER_NOEXCEPT
 Load in d3d9.dll and call D3DPERF_SetRegion.
 
int BURGER_API D3DPERF_QueryRepeatFrame (void) BURGER_NOEXCEPT
 Load in d3d9.dll and call D3DPERF_QueryRepeatFrame.
 
void BURGER_API D3DPERF_SetOptions (uint32_t dwOptions) BURGER_NOEXCEPT
 Load in d3d9.dll and call D3DPERF_SetOptions.
 
uint_t BURGER_API D3DPERF_GetStatus (void) BURGER_NOEXCEPT
 Load in d3d9.dll and call D3DPERF_GetStatus.
 
long BURGER_API D3DXCreateMatrixStack (uint_t uFlags, ID3DXMatrixStack **ppStack) BURGER_NOEXCEPT
 Load in d3dx9.dll and call D3DXCreateMatrixStack.
 
long BURGER_API D3D11CreateDevice (IDXGIAdapter *pAdapter, uint_t DriverType, HINSTANCE__ *Software, uint_t Flags, const uint_t *pFeatureLevels, uint_t FeatureLevels, uint_t SDKVersion, ID3D11Device **ppDevice, uint_t *pFeatureLevel, ID3D11DeviceContext **ppImmediateContext) BURGER_NOEXCEPT
 Load in d3d11.dll and call D3D11CreateDevice.
 
long BURGER_API CreateDXGIFactory (const GUID *pGuidFactory, void **ppFactory) BURGER_NOEXCEPT
 Load in dxgi.dll and call CreateDXGIFactory.
 
long BURGER_API CreateDXGIFactory1 (const GUID *pGuidFactory, void **ppFactory) BURGER_NOEXCEPT
 Load in dxgi.dll and call CreateDXGIFactory1.
 
long BURGER_API CreateDXGIFactory2 (uint_t uFlags, const GUID *pGuidFactory, void **ppFactory) BURGER_NOEXCEPT
 Load in dxgi.dll and call CreateDXGIFactory2.
 
long BURGER_API DirectSoundCreate (const GUID *pGuidDevice, IDirectSound **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundCreate.
 
long BURGER_API DirectSoundEnumerateA (void *pDSEnumCallback, void *pContext) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundEnumerateA.
 
long BURGER_API DirectSoundEnumerateW (void *pDSEnumCallback, void *pContext) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundEnumerateW.
 
long BURGER_API DirectSoundCaptureCreate (const GUID *pGuidDevice, IDirectSoundCapture **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundCaptureCreate.
 
long BURGER_API DirectSoundCaptureEnumerateA (void *pDSEnumCallback, void *pContext) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundCaptureEnumerateA.
 
long BURGER_API DirectSoundCaptureEnumerateW (void *pDSEnumCallback, void *pContext) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundCaptureEnumerateW.
 
long BURGER_API DirectSoundCreate8 (const GUID *pGuidDevice, IDirectSound8 **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundCreate8.
 
long BURGER_API DirectSoundCaptureCreate8 (const GUID *pGuidDevice, IDirectSoundCapture **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundCaptureCreate8.
 
long BURGER_API DirectSoundFullDuplexCreate (const GUID *pGuidCaptureDevice, const GUID *pGuidRenderDevice, const _DSCBUFFERDESC *pDSCBufferDesc, const _DSBUFFERDESC *pDSBufferDesc, HWND__ *hWnd, uint32_t uLevel, IDirectSoundFullDuplex **ppDSFD, IDirectSoundCaptureBuffer8 **ppDSCBuffer8, IDirectSoundBuffer8 **ppDSBuffer8, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dsound.dll and call DirectSoundFullDuplexCreate.
 
long BURGER_API GetDeviceID (const GUID *pGuidSrc, GUID *pGuidDest) BURGER_NOEXCEPT
 Load in dsound.dll and call GetDeviceID.
 
long XAudio2Create (IXAudio2 **ppXAudio2, uint_t Flags=0, uint_t XAudio2Processor=0x00000001) BURGER_NOEXCEPT
 XAudio2Create() for older compilers.
 
long BURGER_API DirectPlayCreate (GUID *pGuidSrc, IDirectPlay **ppOutput, IUnknown *pOuter=nullptr) BURGER_NOEXCEPT
 Load in dplayx.dll and call DirectPlayCreate.
 
long BURGER_API CallDirectPlayEnumerate (void *pCallback, void *pContext) BURGER_NOEXCEPT
 Load in dplayx.dll and call DirectPlayEnumerate.
 
long BURGER_API DirectPlayEnumerateA (void *pCallback, void *pContext) BURGER_NOEXCEPT
 Load in dplayx.dll and call DirectPlayEnumerateA.
 
long BURGER_API DirectPlayEnumerateW (void *pCallback, void *pContext) BURGER_NOEXCEPT
 Load in dplayx.dll and call DirectPlayEnumerateW.
 
long BURGER_API DirectPlayLobbyCreateA (GUID *pGuidSrc, IDirectPlayLobby **ppOutput, IUnknown *pOuter=nullptr, void *pData=nullptr, uint_t uDataSize=0) BURGER_NOEXCEPT
 Load in dplayx.dll and call DirectPlayLobbyCreateA.
 
long BURGER_API DirectPlayLobbyCreateW (GUID *pGuidSrc, IDirectPlayLobby **ppOutput, IUnknown *pOuter=nullptr, void *pData=nullptr, uint_t uDataSize=0) BURGER_NOEXCEPT
 Load in dplayx.dll and call DirectPlayLobbyCreateW.
 
long BURGER_API UuidCreateSequential (GUID *pOutput) BURGER_NOEXCEPT
 Load in rpcrt4.dll and call UuidCreateSequential.
 
void BURGER_API HidD_GetHidGuid (GUID *pHidGuid) BURGER_NOEXCEPT
 Load in hid.dll and call HidD_GetHidGuid.
 
uint32_t BURGER_API timeGetTime (void) BURGER_NOEXCEPT
 Load in winmm.dll and call timeGetTime.
 
int BURGER_API PathSearchAndQualifyA (const char *pszPath, char *pszBuf, uint32_t cchBuf) BURGER_NOEXCEPT
 Load in shlwapi.dll and call PathSearchAndQualifyA.
 
int BURGER_API PathSearchAndQualifyW (const uint16_t *pszPath, uint16_t *pszBuf, uint32_t cchBuf) BURGER_NOEXCEPT
 Load in shlwapi.dll and call PathSearchAndQualifyW.
 
void *BURGER_API SetupDiGetClassDevsA (const GUID *ClassGuid, const char *Enumerator, HWND__ *hwndParent, uint32_t Flags) BURGER_NOEXCEPT
 Load in setupapi.dll and call SetupDiGetClassDevsA.
 
void *BURGER_API SetupDiGetClassDevsW (const GUID *ClassGuid, const uint16_t *Enumerator, HWND__ *hwndParent, uint32_t Flags) BURGER_NOEXCEPT
 Load in setupapi.dll and call SetupDiGetClassDevsW.
 
int BURGER_API SetupDiGetDeviceInterfaceDetailA (void *DeviceInfoSet, _SP_DEVICE_INTERFACE_DATA *DeviceInterfaceData, _SP_DEVICE_INTERFACE_DETAIL_DATA_A *DeviceInterfaceDetailData, uint32_t DeviceInterfaceDetailDataSize, uint32_t *RequiredSize, _SP_DEVINFO_DATA *DeviceInfoData) BURGER_NOEXCEPT
 Load in setupapi.dll and call SetupDiGetDeviceInterfaceDetailA.
 
int BURGER_API SetupDiGetDeviceInterfaceDetailW (void *DeviceInfoSet, _SP_DEVICE_INTERFACE_DATA *DeviceInterfaceData, _SP_DEVICE_INTERFACE_DETAIL_DATA_W *DeviceInterfaceDetailData, uint32_t DeviceInterfaceDetailDataSize, uint32_t *RequiredSize, _SP_DEVINFO_DATA *DeviceInfoData) BURGER_NOEXCEPT
 Load in setupapi.dll and call SetupDiGetDeviceInterfaceDetailW.
 
int BURGER_API SetupDiEnumDeviceInterfaces (void *DeviceInfoSet, _SP_DEVINFO_DATA *DeviceInfoData, const GUID *InterfaceClassGuid, uint32_t MemberIndex, _SP_DEVICE_INTERFACE_DATA *DeviceInterfaceData) BURGER_NOEXCEPT
 Load in setupapi.dll and call SetupDiEnumDeviceInterfaces.
 
int BURGER_API SetupDiDestroyDeviceInfoList (void *DeviceInfoSet) BURGER_NOEXCEPT
 Load in setupapi.dll and call SetupDiDestroyDeviceInfoList.
 
uint_t BURGER_API GetSystemWow64DirectoryA (char *pBuffer, uint32_t uSize) BURGER_NOEXCEPT
 Load in kernel32.dll and call GetSystemWow64DirectoryA.
 
uint_t BURGER_API GetSystemWow64DirectoryW (uint16_t *pBuffer, uint32_t uSize) BURGER_NOEXCEPT
 Load in kernel32.dll and call GetSystemWow64DirectoryW.
 
int BURGER_API IsDebuggerPresent (void) BURGER_NOEXCEPT
 Load in kernel32.dll and call IsDebuggerPresent.
 
long BURGER_API SetThreadDescription (void *hThread, const uint16_t *lpThreadDescription) BURGER_NOEXCEPT
 Load in kernel32.dll and call SetThreadDescription.
 
void BURGER_API InitializeSRWLock (_RTL_SRWLOCK *pSRWLock) BURGER_NOEXCEPT
 Load in kernel32.dll and call InitializeSRWLock.
 
void BURGER_API AcquireSRWLockExclusive (_RTL_SRWLOCK *pSRWLock) BURGER_NOEXCEPT
 Load in kernel32.dll and call AcquireSRWLockExclusive.
 
uint_t BURGER_API TryAcquireSRWLockExclusive (_RTL_SRWLOCK *pSRWLock) BURGER_NOEXCEPT
 Load in kernel32.dll and call TryAcquireSRWLockExclusive.
 
void BURGER_API ReleaseSRWLockExclusive (_RTL_SRWLOCK *pSRWLock) BURGER_NOEXCEPT
 Load in kernel32.dll and call ReleaseSRWLockExclusive.
 
void BURGER_API throw_thread_naming_exception (uint32_t uThreadID, const char *pThreadName) BURGER_NOEXCEPT
 Send an exception to the debugger to name this thread.
 
void BURGER_API set_thread_name (const char *pName, void *hThread=nullptr, uint32_t uThreadId=0) BURGER_NOEXCEPT
 Set a thread's name for debugging.
 
int BURGER_API TrackMouseEvent (tagTRACKMOUSEEVENT *pEventTrack) BURGER_NOEXCEPT
 Load in user32.dll and call TrackMouseEvent.
 
int BURGER_API GetMonitorInfoA (HMONITOR__ *hMonitor, tagMONITORINFO *pMonitorInfo) BURGER_NOEXCEPT
 Load in user32.dll and call TrackMouseEvent.
 
int BURGER_API GetMonitorInfoW (HMONITOR__ *hMonitor, tagMONITORINFO *pMonitorInfo) BURGER_NOEXCEPT
 Load in user32.dll and call TrackMouseEvent.
 
HMONITOR__ *BURGER_API MonitorFromWindow (HWND__ *pWindow, uint_t uFlags) BURGER_NOEXCEPT
 Load in user32.dll and call MonitorFromWindow.
 
HMONITOR__ *BURGER_API MonitorFromRect (const tagRECT *pRect, uint_t uFlags) BURGER_NOEXCEPT
 Load in user32.dll and call MonitorFromRect.
 
long BURGER_API SHGetKnownFolderPath (const GUID *pGuid, uint32_t uFlags, void *hHandle, uint16_t **ppResult) BURGER_NOEXCEPT
 Load in shell32.dll and call SHGetKnownFolderPath.
 
eError BURGER_API add_group_to_program_menu (const char *pGroupName) BURGER_NOEXCEPT
 Adds a directory to the start folder.
 
eError BURGER_API get_known_folder_path (Filename *pFilename, const GUID *pVista, int iXP) BURGER_NOEXCEPT
 Set the filename to the local machine preferences directory.
 
uint_t BURGER_API WaitOnAddress (volatile void *Address, void *CompareAddress, uintptr_t AddressSize, uint32_t dwMilliseconds) BURGER_NOEXCEPT
 Load in Synch-l1-2-0.dll and call WaitOnAddress.
 
void BURGER_API WakeByAddressSingle (void *Address) BURGER_NOEXCEPT
 Load in Synch-l1-2-0.dll and call WakeByAddressSingle.
 
void BURGER_API WakeConditionVariable (_RTL_CONDITION_VARIABLE *ConditionVariable) BURGER_NOEXCEPT
 Load in kernel32.dll and call WakeConditionVariable.
 
void BURGER_API WakeAllConditionVariable (_RTL_CONDITION_VARIABLE *ConditionVariable) BURGER_NOEXCEPT
 Load in kernel32.dll and call WakeAllConditionVariable.
 
uint_t BURGER_API SleepConditionVariableSRW (_RTL_CONDITION_VARIABLE *ConditionVariable, _RTL_SRWLOCK *SRWLock, uint32_t dwMilliseconds, uint32_t Flags) BURGER_NOEXCEPT
 Load in kernel32.dll and call SleepConditionVariableSRW.
 
uint_t BURGER_API SleepConditionVariableCS (_RTL_CONDITION_VARIABLE *ConditionVariable, _RTL_CRITICAL_SECTION *CriticalSection, uint32_t dwMilliseconds) BURGER_NOEXCEPT
 Load in kernel32.dll and call SleepConditionVariableCS.
 
HINSTANCE__ *BURGER_API LoadLibraryA (const char *pInput) BURGER_NOEXCEPT
 Call LoadLibraryA() without file error boxes.
 
HINSTANCE__ *BURGER_API LoadLibraryW (const uint16_t *pInput) BURGER_NOEXCEPT
 Call LoadLibraryW() without file error boxes.
 
HINSTANCE__ *BURGER_API LoadLibraryExA (const char *pInput, void *hFile, uint32_t uFlags) BURGER_NOEXCEPT
 Call LoadLibraryExA() without file error boxes.
 
HINSTANCE__ *BURGER_API LoadLibraryExW (const uint16_t *pInput, void *hFile, uint32_t uFlags) BURGER_NOEXCEPT
 Call LoadLibraryExW() without file error boxes.
 
uintptr_t BURGER_API ShellExecuteOpen (const char *pFileToOpen) BURGER_NOEXCEPT
 Call ShellExecuteW() with a UTF8 string.
 
uint_t BURGER_API LaunchMediaCenter (void) BURGER_NOEXCEPT
 Launch the Media Center.
 
HWND__ *BURGER_API get_window (void) BURGER_NOEXCEPT
 Get the application window.
 
void BURGER_API set_window (HWND__ *pInput) BURGER_NOEXCEPT
 Set the application window.
 
const uint16_t *BURGER_API get_window_class_name (void) BURGER_NOEXCEPT
 Get the registered class name.
 
void BURGER_API change_style (HWND__ *hWindow, uint32_t uAddStyle, uint32_t uAddStyleEx, uint32_t uSubStyle, uint32_t uSubStyleEx) BURGER_NOEXCEPT
 Change the style flags of a windows.
 
void BURGER_API pump_messages (void) BURGER_NOEXCEPT
 Pump windows messages.
 
void BURGER_API output_windows_message (uint_t uMessage, uintptr_t wParam, uintptr_t lParam) BURGER_NOEXCEPT
 Print windows events to Debug::Message()
 
long BURGER_API create_user_registry_key (const char *pKey, const char *pSubKey, const char *pData) BURGER_NOEXCEPT
 Set a user registry key with a string.
 
void BURGER_API associate_file_extension_to_exe (const char *pFileExtension, const char *pDescription, const char *pProgramID) BURGER_NOEXCEPT
 Associate a data file to the application.
 
eError BURGER_API GetQTFolderFromRegistry (const char *pSubKey, const char *pValueName, char *pBuffer, uint32_t uSize) BURGER_NOEXCEPT
 Find a Quicktime folder by reading the registry.
 
uint_t BURGER_API GetPathToQuickTimeFolder (char *pBuffer, uint32_t uSize, uint32_t *pReserved) BURGER_NOEXCEPT
 Find the Quicktime folder.
 
uint32_t BURGER_API GetQTSystemDirectoryA (char *pBuffer, uint32_t uSize) BURGER_NOEXCEPT
 Find the Quicktime folder.
 
uint32_t BURGER_API GetQTApplicationDirectoryA (char *pBuffer, uint32_t uSize) BURGER_NOEXCEPT
 Find the Quicktime application folder.
 
uint32_t BURGER_API GetQTExtensionDirectoryA (char *pBuffer, uint32_t uSize) BURGER_NOEXCEPT
 Find the Quicktime extensions folder.
 
uint32_t BURGER_API GetQTComponentDirectoryA (char *pBuffer, uint32_t uSize) BURGER_NOEXCEPT
 Find the Quicktime components folder.
 
HINSTANCE__ *BURGER_API QTLoadLibrary (const char *pDLLName) BURGER_NOEXCEPT
 Locate and load a Quicktime DLL.
 
eError BURGER_API format_message (long lHResult, String *pOutput) BURGER_NOEXCEPT
 Call FormatMessageW()
 
const char *BURGER_API get_DirectX_error_string (long lHResult) BURGER_NOEXCEPT
 Convert windows error into a name string.
 
eError BURGER_API get_error_string (long lHResult, String *pOutput) BURGER_NOEXCEPT
 Convert windows code to descriptive message.
 

Detailed Description

Namespace for Windows specific functions and classes.


For functions and classes that only exist on the Windows platform, they are grouped in this namespace.

Note
This is only available on Windows
See also
PS4

Enumeration Type Documentation

◆ eCallIndex

Function enumeration for loading in system calls.


Note
This is only available on Windows
See also
load_function()
Enumerator
kCall_DirectInputCreateA 

Index for DirectInputCreateA()

kCall_DirectInputCreateW 

Index for DirectInputCreateW()

kCall_DirectInput8Create 

Index for DirectInput8Create()

kCall_XInputGetState 

Index for XInputGetState()

kCall_XInputSetState 

Index for XInputSetState()

kCall_XInputGetCapabilities 

Index for XInputGetCapabilities()

kCall_XInputGetDSoundAudioDeviceGuids 

Index for XInputGetDSoundAudioDeviceGuids().

kCall_XInputEnable 

Index for XInputEnable()

kCall_XInputGetAudioDeviceIds 

Index for XInputGetAudioDeviceIds()

kCall_XInputGetBatteryInformation 

Index for XInputGetBatteryInformation()

kCall_XInputGetKeystroke 

Index for XInputGetKeystroke()

kCall_DirectDrawCreate 

Index for DirectDrawCreate()

kCall_DirectDrawCreateEx 

Index for DirectDrawCreateEx()

kCall_DirectDrawCreateClipper 

Index for DirectDrawCreateClipper()

kCall_DirectDrawEnumerateA 

Index for DirectDrawEnumerateA()

kCall_DirectDrawEnumerateW 

Index for DirectDrawEnumerateW()

kCall_DirectDrawEnumerateExA 

Index for DirectDrawEnumerateExA()

kCall_DirectDrawEnumerateExW 

Index for DirectDrawEnumerateExW()

kCall_Direct3DCreate9 

Index for Direct3DCreate9()

kCall_D3DPERF_BeginEvent 

Index for D3DPERF_BeginEvent()

kCall_D3DPERF_EndEvent 

Index for D3DPERF_EndEvent()

kCall_D3DPERF_SetMarker 

Index for D3DPERF_SetMarker()

kCall_D3DPERF_SetRegion 

Index for D3DPERF_SetRegion()

kCall_D3DPERF_QueryRepeatFrame 

Index for D3DPERF_QueryRepeatFrame()

kCall_D3DPERF_SetOptions 

Index for D3DPERF_SetOptions()

kCall_D3DPERF_GetStatus 

Index for D3DPERF_GetStatus()

kCall_D3DXCreateMatrixStack 

Index for D3DXCreateMatrixStack()

kCall_D3D11CreateDevice 

Index for D3D11CreateDevice()

kCall_CreateDXGIFactory 

Index for CreateDXGIFactory()

kCall_CreateDXGIFactory1 

Index for CreateDXGIFactory1()

kCall_CreateDXGIFactory2 

Index for CreateDXGIFactory2()

kCall_DirectSoundCreate 

Index for DirectSoundCreate()

kCall_DirectSoundEnumerateA 

Index for DirectSoundEnumerateA()

kCall_DirectSoundEnumerateW 

Index for DirectSoundEnumerateW()

kCall_DirectSoundCaptureCreate 

Index for DirectSoundCaptureCreate()

kCall_DirectSoundCaptureEnumerateA 

Index forDirectSoundCaptureEnumerateA()

kCall_DirectSoundCaptureEnumerateW 

Index for DirectSoundCaptureEnumerateW()

kCall_DirectSoundCreate8 

Index for DirectSoundCreate8()

kCall_DirectSoundCaptureCreate8 

Index for DirectSoundCaptureCreate8()

kCall_DirectSoundFullDuplexCreate 

Index for DirectSoundFullDuplexCreate()

kCall_DirectPlayCreate 

Index for DirectPlayCreate()

kCall_DirectPlayEnumerate 

Index for DirectPlayEnumerate() Note, this is REALLY obsolete.

kCall_DirectPlayEnumerateA 

Index for DirectPlayEnumerateA()

kCall_DirectPlayEnumerateW 

Index for DirectPlayEnumerateW()

kCall_DirectPlayLobbyCreateA 

Index for DirectPlayLobbyCreateA()

kCall_DirectPlayLobbyCreateW 

Index for DirectPlayLobbyCreateW()

kCall_GetDeviceID 

Index for GetDeviceID()

kCall_UuidCreateSequential 

Index for UuidCreateSequential()

kCall_timeGetTime 

Index for timeGetTime()

kCall_PathSearchAndQualifyA 

Index for PathSearchAndQualifyA()

kCall_PathSearchAndQualifyW 

Index for PathSearchAndQualifyW()

kCall_VerQueryValueA 

Index for VerQueryValueA()

kCall_VerQueryValueW 

Index for VerQueryValueW()

kCall_GetFileVersionInfoA 

Index for GetFileVersionInfoA()

kCall_GetFileVersionInfoW 

Index for GetFileVersionInfoW()

kCall_GetFileVersionInfoSizeA 

Index for GetFileVersionInfoSizeA()

kCall_GetFileVersionInfoSizeW 

Index for GetFileVersionInfoSizeW()

kCall_HidD_GetHidGuid 

Index for HidD_GetHidGuid()

kCall_SetupDiGetClassDevsA 

Index for SetupDiGetClassDevsA()

kCall_SetupDiGetClassDevsW 

Index for SetupDiGetClassDevsW()

kCall_SetupDiGetDeviceInterfaceDetailA 

Index for SetupDiGetDeviceInterfaceDetailA()

kCall_SetupDiGetDeviceInterfaceDetailW 

Index for SetupDiGetDeviceInterfaceDetailW()

kCall_SetupDiEnumDeviceInterfaces 

Index for SetupDiEnumDeviceInterfaces()

kCall_SetupDiDestroyDeviceInfoList 

Index for SetupDiDestroyDeviceInfoList()

kCall_TrackMouseEvent 

Index for TrackMouseEvent()

kCall_GetMonitorInfoA 

Index for GetMonitorInfoA()

kCall_GetMonitorInfoW 

Index for GetMonitorInfoW()

kCall_MonitorFromWindow 

Index for MonitorFromWindow()

kCall_MonitorFromRect 

Index for MonitorFromRect()

kCall_GetSystemWow64DirectoryA 

Index for GetSystemWow64DirectoryA()

kCall_GetSystemWow64DirectoryW 

Index for GetSystemWow64DirectoryW()

kCall_IsDebuggerPresent 

Index for IsDebuggerPresent()

kCall_SetThreadDescription 

Index for SetThreadDescription()

kCall_InitializeSRWLock 

Index for InitializeSRWLock()

kCall_AcquireSRWLockExclusive 

Index for AcquireSRWLockExclusive()

kCall_TryAcquireSRWLockExclusive 

Index for TryAcquireSRWLockExclusive()

kCall_ReleaseSRWLockExclusive 

Index for ReleaseSRWLockExclusive()

kCall_SHGetKnownFolderPath 

Index for SHGetKnownFolderPath()

kCall_WaitOnAddress 

Index for WaitOnAddress()

kCall_WakeByAddressSingle 

Index for WakeByAddressSingle()

kCall_WakeConditionVariable 

Index for WakeConditionVariable()

kCall_WakeAllConditionVariable 

Index for WakeAllConditionVariable()

kCall_SleepConditionVariableSRW 

Index for SleepConditionVariableSRW()

kCall_SleepConditionVariableCS 

Index for SleepConditionVariableCS()

kCallIndexCount 

Total number of function calls to be managed.

◆ eDLLIndex

DLL enumeration for loading in system DLLs.


Note
This is only available on Windows
See also
load_library()
Enumerator
kDLLIndex_DDRAW 

Index for ddraw.dll.

kDLLIndex_DINPUT 

Index for dinput.dll.

kDLLIndex_DINPUT8 

Index for dinput8.dll.

kDLLIndex_XINPUT1_4 

Index for xinput1_4.dll.

kDLLIndex_XINPUT1_3 

Index for xinput1_3.dll.

kDLLIndex_D3D9 

Index for d3d9.dll.

kDLLIndex_D3DX9_43 

Index for d3dx9_43.dll.

kDLLIndex_D3D11 

Index for d3d11.dll.

kDLLIndex_DXGI 

Index for dxgi.dll.

kDLLIndex_DSOUND 

Index for dsound.dll.

kDLLIndex_DPLAYX 

Index for dplayx.dll.

kDLLIndex_DPLAY 

Index for dplay.dll.

kDLLIndex_RPCRT4 

Index for rpcrt4.dll.

kDLLIndex_WINMM 

Index for winmm.dll.

kDLLIndex_SHLWAPI 

Index for shlwapi.dll.

kDLLIndex_VERSION 

Index for version.dll.

kDLLIndex_HID 

Index for hid.dll.

kDLLIndex_SETUPAPI 

Index for setupapi.dll.

kDLLIndex_USER32 

Index for user32.dll.

kDLLIndex_KERNEL32 

Index for kernel32.dll.

kDLLIndex_SHELL32 

Index for shell32.dll.

kDLLIndex_SYNCAPI 

Index for API-MS-Win-Core-Synch-l1-2-0.dll.

kDLLIndexCount 

Total number of DLLs to be managed.

◆ eVersion

Flags set by get_version_flags()


Note
This is only available on Windows
See also
get_version_flags()
Enumerator
kVersionXPOrGreater 

Set if running on XP or higher.

kVersionXP3OrGreater 

Set if running on XP3 or higher.

kVersionVistaOrGreater 

Set if Vista or higher.

kVersion7OrGreater 

Set if Windows 7 or higher.

kVersion8OrGreater 

Set if Windows 8 or higher.

kVersion10OrGreater 

Set if Windows 10 or higher.

kVersionValid 

Set if the rest of the flags are valid.

Function Documentation

◆ AcquireSRWLockExclusive()

void BURGER_API Burger::Win32::AcquireSRWLockExclusive ( _RTL_SRWLOCK * pSRWLock)
extern

Load in kernel32.dll and call AcquireSRWLockExclusive.


Manually load kernel32.dll if needed and call the Windows function AcquireSRWLockExclusive()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-acquiresrwlockexclusive

Note
This function is present only in Windows Vista or later
Parameters
pSRWLockA pointer to the SRW lock

◆ add_group_to_program_menu()

Burger::eError BURGER_API Burger::Win32::add_group_to_program_menu ( const char * pGroupName)
extern

Adds a directory to the start folder.


When installing an application, it may be desirable to create an entry in the start menu to show an application folder and links for files/applications of interest. This function locates the users start menu folder and ensures that the folder is created and Windows Explorer is notified of the change

Parameters
pGroupNameUTF8 "C" string of the folder name for the start menu
Note
This is only available on Windows
Returns
Returns non-zero if an error occurs

◆ associate_file_extension_to_exe()

void BURGER_API Burger::Win32::associate_file_extension_to_exe ( const char * pFileExtension,
const char * pDescription,
const char * pProgramID )
extern

Associate a data file to the application.


Set the user registry to associate a data file type with the currently running executable.

Note
This is only available on Windows
// Tell Windows Explorer to launch .datafile files with the currently
// running app by double-clicking
"Data for the Fubar application","com.oldskuul.fubar");
void BURGER_API associate_file_extension_to_exe(const char *pFileExtension, const char *pDescription, const char *pProgramID) BURGER_NOEXCEPT
Associate a data file to the application.
Definition win_registry.cpp:106
Parameters
pFileExtension".foo" Pointer to a "C" string with the file extension
pDescription"Foo file" Description of this file type to be visible to Explorer
pProgramID"com.company.application" program ID
See also
create_user_registry_key(const char *,const char *,const char *)

◆ CallDirectPlayEnumerate()

HRESULT BURGER_API Burger::Win32::CallDirectPlayEnumerate ( void * pCallback,
void * pContext )
extern

Load in dplayx.dll and call DirectPlayEnumerate.


This function is called CallDirectPlayEnumerate instead of DirectPlayEnumerate to avoid a conflict of a macro found in the dplay.h header.

To allow maximum compatibility, this function will manually load dplayx.dll or dplay.dll and then invoke DirectPlayEnumerate if present.

Note
This function is OBSOLETE, call DirectPlayEnumerateA() instead
This is only available on Windows
Parameters
pCallbackAddress of the callback function of type LPDPENUMDPCALLBACKA
pContextAddress of user data
Returns
DP_OK if no error. Any other value means an error occurred

◆ change_style()

void BURGER_API Burger::Win32::change_style ( HWND__ * hWindow,
uint32_t uAddStyle,
uint32_t uAddStyleEx,
uint32_t uSubStyle,
uint32_t uSubStyleEx )
extern

Change the style flags of a windows.


Set and clear the style and extended style flags. The flags to clear will be bit flipped before applying an AND operation on the bits.

Note
This is only available on Windows
Parameters
hWindowHWND of the window
uAddStyleBits to set in the GWL_STYLE entry
uAddStyleExBits to set in the GWL_EXSTYLE entry
uSubStyleBits to clear in the GWL_STYLE entry
uSubStyleExBits to clear in the GWL_EXSTYLE entry

◆ create_user_registry_key()

LONG BURGER_API Burger::Win32::create_user_registry_key ( const char * pKey,
const char * pSubKey,
const char * pData )
extern

Set a user registry key with a string.


Strings are all UTF-8. This function will perform conversion to UTF-16 for Windows

Note
This is only available on Windows
Parameters
pKeyKey found in HKEY_CURRENT_USER
pSubKeyName of the sub-key of interest, can be nullptr
pDataString to store in the registry
Returns
Zero if successful, non-zero is the Windows error code.
See also
AssociateFileExtensionToExe(const char *,const char *,const char *)

◆ CreateDXGIFactory()

HRESULT BURGER_API Burger::Win32::CreateDXGIFactory ( const GUID * pGuidFactory,
void ** ppFactory )
extern

Load in dxgi.dll and call CreateDXGIFactory.


To allow maximum compatibility, this function will manually load dxgi.dll if needed and then invoke CreateDXGIFactory.

Note
This is only available on Windows
Parameters
pGuidFactoryThe globally unique identifier (GUID) of the IDXGIFactory object referenced by the ppFactory parameter
ppFactoryAddress of a pointer to an IDXGIFactory object.
Returns
S_OK if the call succeeded. Windows error if otherwise

◆ CreateDXGIFactory1()

HRESULT BURGER_API Burger::Win32::CreateDXGIFactory1 ( const GUID * pGuidFactory,
void ** ppFactory )
extern

Load in dxgi.dll and call CreateDXGIFactory1.


To allow maximum compatibility, this function will manually load dxgi.dll if needed and then invoke CreateDXGIFactory1.

Note
This is only available on Windows
Parameters
pGuidFactoryThe globally unique identifier (GUID) of the IDXGIFactory1 object referenced by the ppFactory parameter
ppFactoryAddress of a pointer to an IDXGIFactory1 object.
Returns
S_OK if the call succeeded. Windows error if otherwise

◆ CreateDXGIFactory2()

HRESULT BURGER_API Burger::Win32::CreateDXGIFactory2 ( uint_t uFlags,
const GUID * pGuidFactory,
void ** ppFactory )
extern

Load in dxgi.dll and call CreateDXGIFactory2.


To allow maximum compatibility, this function will manually load dxgi.dll if needed and then invoke CreateDXGIFactory2.

Note
This is only available on Windows
Parameters
uFlagsValid values include the DXGI_CREATE_FACTORY_DEBUG (0x01) flag, and zero.
pGuidFactoryThe globally unique identifier (GUID) of the IDXGIFactory2 object referenced by the ppFactory parameter
ppFactoryAddress of a pointer to an IDXGIFactory2 object.
Returns
S_OK if the call succeeded. Windows error if otherwise

◆ D3D11CreateDevice()

HRESULT BURGER_API Burger::Win32::D3D11CreateDevice ( IDXGIAdapter * pAdapter,
uint_t DriverType,
HINSTANCE__ * Software,
uint_t Flags,
const uint_t * pFeatureLevels,
uint_t FeatureLevels,
uint_t SDKVersion,
ID3D11Device ** ppDevice,
uint_t * pFeatureLevel,
ID3D11DeviceContext ** ppImmediateContext )
extern

Load in d3d11.dll and call D3D11CreateDevice.


To allow maximum compatibility, this function will manually load d3d11.dll if needed and then invoke D3D11CreateDevice.

Note
This is only available on Windows
Parameters
pAdapterA pointer to the video adapter to use when creating a device. Pass NULL to use the default adapter
DriverTypeThe D3D_DRIVER_TYPE, which represents the driver type to create.
SoftwareA handle to a DLL that implements a software rasterizer
FlagsThe runtime layers to enable (see D3D11_CREATE_DEVICE_FLAG); values can be bitwise OR'd together.
pFeatureLevelsA pointer to an array of D3D_FEATURE_LEVELs, which determine the order of feature levels to attempt to create.
FeatureLevelsThe number of elements in pFeatureLevels.
SDKVersionThe SDK version; use D3D11_SDK_VERSION.
ppDeviceReturns the address of a pointer to an ID3D11Device object that represents the device created.
pFeatureLevelIf successful, returns the first D3D_FEATURE_LEVEL from the pFeatureLevels array which succeeded
ppImmediateContextReturns the address of a pointer to an ID3D11DeviceContext object that represents the device context
Returns
S_OK if the call succeeded. Windows error if otherwise

◆ D3DPERF_BeginEvent()

int BURGER_API Burger::Win32::D3DPERF_BeginEvent ( uint32_t col,
const uint16_t * wszName )
extern

Load in d3d9.dll and call D3DPERF_BeginEvent.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke D3DPERF_BeginEvent if present.

Note
This is only available on Windows
Parameters
colThe color of the event
wszNamePointer to UTF-16 string of the name of the event
Returns
Is the level starting from 0 in the hierarchy to start this event. If an error occurs, the return value is negative.

◆ D3DPERF_EndEvent()

int BURGER_API Burger::Win32::D3DPERF_EndEvent ( void )
extern

Load in d3d9.dll and call D3DPERF_EndEvent.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke D3DPERF_EndEvent if present.

Note
This is only available on Windows
Returns
Is the level starting from 0 in the hierarchy to start this event. If an error occurs, the return value is negative.

◆ D3DPERF_GetStatus()

uint_t BURGER_API Burger::Win32::D3DPERF_GetStatus ( void )
extern

Load in d3d9.dll and call D3DPERF_GetStatus.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke D3DPERF_GetStatus if present.

Note
This is only available on Windows
Returns
Non-zero if profiled by PIX. 0 if PIX is not present.

◆ D3DPERF_QueryRepeatFrame()

int BURGER_API Burger::Win32::D3DPERF_QueryRepeatFrame ( void )
extern

Load in d3d9.dll and call D3DPERF_QueryRepeatFrame.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke D3DPERF_QueryRepeatFrame if present.

Note
This is only available on Windows
Returns
When the return value is TRUE, the caller will need to repeat the same sequence of calls. If FALSE, the caller needs to move forward.

◆ D3DPERF_SetMarker()

void BURGER_API Burger::Win32::D3DPERF_SetMarker ( uint32_t col,
const uint16_t * wszName )
extern

Load in d3d9.dll and call D3DPERF_SetMarker.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke D3DPERF_SetMarker if present.

Note
This is only available on Windows
Parameters
colThe color of the event
wszNamePointer to UTF-16 string of the name of the marker

◆ D3DPERF_SetOptions()

void BURGER_API Burger::Win32::D3DPERF_SetOptions ( uint32_t dwOptions)
extern

Load in d3d9.dll and call D3DPERF_SetOptions.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke D3DPERF_SetOptions if present.

Note
This is only available on Windows
Parameters
dwOptionsSet to 1 if PIX should be turned off

◆ D3DPERF_SetRegion()

void BURGER_API Burger::Win32::D3DPERF_SetRegion ( uint32_t col,
const uint16_t * wszName )
extern

Load in d3d9.dll and call D3DPERF_SetRegion.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke D3DPERF_SetRegion if present.

Note
This is only available on Windows
Parameters
colThe color of the event
wszNamePointer to UTF-16 string of the name of the region

◆ D3DXCreateMatrixStack()

HRESULT BURGER_API Burger::Win32::D3DXCreateMatrixStack ( uint_t uFlags,
ID3DXMatrixStack ** ppStack )
extern

Load in d3dx9.dll and call D3DXCreateMatrixStack.


To allow maximum compatibility, this function will manually load d3dx9.dll if needed and then invoke D3DXCreateMatrixStack.

Note
This is only available on Windows
Parameters
uFlagsRequested version of Direct3D 9
ppStackPointer to a pointer to receive the created ID3DXMatrixStack
Returns
S_OK if the call succeeded. Windows error if otherwise

◆ Direct3DCreate9()

IDirect3D9 *BURGER_API Burger::Win32::Direct3DCreate9 ( uint_t uSDKVersion)
extern

Load in d3d9.dll and call Direct3DCreate9.


To allow maximum compatibility, this function will manually load d3d9.dll and then invoke Direct3DCreate9 if present.

Note
This is only available on Windows
Parameters
uSDKVersionRequested version of Direct3D 9
Returns
NULL if DirectX 9 is not present. A valid Direct3D9 pointer otherwise

◆ DirectDrawCreate()

uint_t BURGER_API Burger::Win32::DirectDrawCreate ( const GUID * pGuid,
IDirectDraw ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in ddraw.dll and call DirectDrawCreate.


To allow maximum compatibility, this function will manually load ddraw.dll and then invoke DirectDrawCreate if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/gg426116(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pGuidGuid of the version of DirectDraw requested
ppOutputPointer to the location where the valid IDirectDraw pointer will be stored. If the function fails, this value is guaranteed to be NULL.
pOuterPointer to the IUnknown passed to DirectDrawCreate()
Returns
Zero if no error. Any other value means an error occurred

◆ DirectDrawCreateClipper()

uint_t BURGER_API Burger::Win32::DirectDrawCreateClipper ( uint32_t uFlags,
IDirectDrawClipper ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in ddraw.dll and call DirectDrawCreateClipper.


To allow maximum compatibility, this function will manually load ddraw.dll and then invoke DirectDrawCreateClipper if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/gg426117(v=vs.85).aspx

Note
This is only available on Windows
Parameters
uFlagsBit flags passed
ppOutputPointer to the location where the valid IDirectDrawClipper pointer will be stored. If the function fails, this value is guaranteed to be NULL.
pOuterPointer to the IUnknown passed to DirectDrawCreateClipper()
Returns
Zero if no error. Any other value means an error occurred

◆ DirectDrawCreateEx()

uint_t BURGER_API Burger::Win32::DirectDrawCreateEx ( const GUID * pGuid,
void ** ppOutput,
const GUID & rGUID,
IUnknown * pOuter = nullptr )
extern

Load in ddraw.dll and call DirectDrawCreateEx.


To allow maximum compatibility, this function will manually load ddraw.dll and then invoke DirectDrawCreateEx if present.

http://msdn.microsoft.com/en-us/library/windows/desktop/gg426118(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pGuidGuid of the version of DirectDraw requested
ppOutputPointer to the location where the valid IDirectDraw7 pointer will be stored. If the function fails, this value is guaranteed to be NULL.
rGUIDReference to the GUID of the DirectInput8 object to create
pOuterPointer to the IUnknown passed to DirectDrawCreateEx()
Returns
Zero if no error. Any other value means an error occurred

◆ DirectDrawEnumerateA()

HRESULT BURGER_API Burger::Win32::DirectDrawEnumerateA ( void * pCallback,
void * pContext )
extern

Load in ddraw.dll and call DirectDrawEnumerateA.


To allow maximum compatibility, this function will manually load ddraw.dll and then invoke DirectDrawEnumerateA if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/gg426119(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pCallbackAddress of a DDENUMCALLBACKA function to be called with a description of each enumerated DirectDraw-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectDrawEnumerateExA()

HRESULT BURGER_API Burger::Win32::DirectDrawEnumerateExA ( void * pCallback,
void * pContext,
uint32_t uFlags )
extern

Load in ddraw.dll and call DirectDrawEnumerateExA.


To allow maximum compatibility, this function will manually load ddraw.dll and then invoke DirectDrawEnumerateExA if present.

http://msdn.microsoft.com/en-us/library/windows/desktop/gg426120(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pCallbackAddress of a DDENUMCALLBACKEXA function to be called with a description of each enumerated DirectDraw-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
uFlagsFlags that specify the enumeration scope. This parameter can be 0 or a combination of the following flags. If the value is 0, the function enumerates only the primary display device.
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectDrawEnumerateExW()

HRESULT BURGER_API Burger::Win32::DirectDrawEnumerateExW ( void * pCallback,
void * pContext,
uint32_t uFlags )
extern

Load in ddraw.dll and call DirectDrawEnumerateExW.


To allow maximum compatibility, this function will manually load ddraw.dll and then invoke DirectDrawEnumerateExA if present.

http://msdn.microsoft.com/en-us/library/windows/desktop/gg426120(v=vs.85).aspx

Note
Some video cards do not support this function call. Notably the nVidia GT 545
This is only available on Windows
Parameters
pCallbackAddress of a DDENUMCALLBACKEXW function to be called with a description of each enumerated DirectDraw-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
uFlagsFlags that specify the enumeration scope. This parameter can be 0 or a combination of the following flags. If the value is 0, the function enumerates only the primary display device.
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectDrawEnumerateW()

HRESULT BURGER_API Burger::Win32::DirectDrawEnumerateW ( void * pCallback,
void * pContext )
extern

Load in ddraw.dll and call DirectDrawEnumerateW.


To allow maximum compatibility, this function will manually load ddraw.dll and then invoke DirectDrawEnumerateW if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/gg426119(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pCallbackAddress of a DDENUMCALLBACKW function to be called with a description of each enumerated DirectDraw-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectInput8Create()

HRESULT BURGER_API Burger::Win32::DirectInput8Create ( HINSTANCE__ * hInst,
uint32_t uVersion,
const GUID & rGUID,
void ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dinput8.dll and call DirectInput8Create.


To allow maximum compatibility, this function will manually load dinput8.dll and then invoke DirectInput8Create if present.

Note
This is only available on Windows
Parameters
hInstInstance of the application
uVersionRequested version of DirectInput8
rGUIDReference to the GUID of the DirectInput8 object to create
ppOutputPointer to the location where the valid IDirectInput8 pointer will be stored. If the function fails, this value is guaranteed to be nullptr.
pOuterPointer to the IUnknown passed to DirectInput8Create()
Returns
Zero if no error. Any other value means an error occurred

◆ DirectInputCreateA()

HRESULT BURGER_API Burger::Win32::DirectInputCreateA ( HINSTANCE__ * hInst,
uint32_t uVersion,
IDirectInputA ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dinput.dll and call DirectInputCreateA.


To allow maximum compatibility, this function will manually load dinput.dll and then invoke DirectInputCreateA if present.

Note
This is only available on Windows
Parameters
hInstInstance of the application
uVersionRequested version of DirectInput
ppOutputPointer to the location where the valid IDirectInputA pointer will be stored. If the function fails, this value is guaranteed to be nullptr.
pOuterPointer to the IUnknown passed to DirectInputCreateA()
Returns
Zero if no error. Any other value means an error occurred

◆ DirectInputCreateW()

HRESULT BURGER_API Burger::Win32::DirectInputCreateW ( HINSTANCE__ * hInst,
uint32_t uVersion,
IDirectInputW ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dinput.dll and call DirectInputCreateW.


To allow maximum compatibility, this function will manually load dinput.dll and then invoke DirectInputCreateA if present.

Note
This is only available on Windows
Parameters
hInstInstance of the application
uVersionRequested version of DirectInput
ppOutputPointer to the location where the valid IDirectInputA pointer will be stored. If the function fails, this value is guaranteed to be nullptr.
pOuterPointer to the IUnknown passed to DirectInputCreateW()
Returns
Zero if no error. Any other value means an error occurred

◆ DirectPlayCreate()

HRESULT BURGER_API Burger::Win32::DirectPlayCreate ( GUID * pGuidSrc,
IDirectPlay ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dplayx.dll and call DirectPlayCreate.


To allow maximum compatibility, this function will manually load dplayx.dll or dplay.dll and then invoke DirectPlayCreate if present.

Note
This is only available on Windows
Parameters
pGuidSrcAddress of a variable that specifies a valid device identifier
ppOutputAddress of a variable that receives the unique identifier of the device
pOuterAddress of IUnknown, set to NULL
Returns
DP_OK if no error. Any other value means an error occurred

◆ DirectPlayEnumerateA()

HRESULT BURGER_API Burger::Win32::DirectPlayEnumerateA ( void * pCallback,
void * pContext )
extern

Load in dplayx.dll and call DirectPlayEnumerateA.


To allow maximum compatibility, this function will manually load dplayx.dll and then invoke DirectPlayEnumerateA if present.

Note
This is only available on Windows
Parameters
pCallbackAddress of the callback function of type LPDPENUMDPCALLBACKA
pContextAddress of user data
Returns
DP_OK if no error. Any other value means an error occurred

◆ DirectPlayEnumerateW()

HRESULT BURGER_API Burger::Win32::DirectPlayEnumerateW ( void * pCallback,
void * pContext )
extern

Load in dplayx.dll and call DirectPlayEnumerateW.


To allow maximum compatibility, this function will manually load dplayx.dll and then invoke DirectPlayEnumerateW if present.

Note
This is only available on Windows
Parameters
pCallbackAddress of the callback function of type LPDPENUMDPCALLBACK
pContextAddress of user data
Returns
DP_OK if no error. Any other value means an error occurred

◆ DirectPlayLobbyCreateA()

HRESULT BURGER_API Burger::Win32::DirectPlayLobbyCreateA ( GUID * pGuidSrc,
IDirectPlayLobby ** ppOutput,
IUnknown * pOuter = nullptr,
void * pData = nullptr,
uint_t uDataSize = 0 )
extern

Load in dplayx.dll and call DirectPlayLobbyCreateA.


To allow maximum compatibility, this function will manually load dplayx.dll and then invoke DirectPlayLobbyCreateA if present.

Note
This is only available on Windows
Parameters
pGuidSrcAddress of a variable that specifies a valid device identifier
ppOutputAddress of a variable that receives the pointer to the IDirectPlayLobby
pOuterAddress of IUnknown, set to NULL
pDataAddress of custom data needed for the lobby
uDataSizeSize in bytes of the custom data for the lobby
Returns
DP_OK if no error. Any other value means an error occurred

◆ DirectPlayLobbyCreateW()

HRESULT BURGER_API Burger::Win32::DirectPlayLobbyCreateW ( GUID * pGuidSrc,
IDirectPlayLobby ** ppOutput,
IUnknown * pOuter = nullptr,
void * pData = nullptr,
uint_t uDataSize = 0 )
extern

Load in dplayx.dll and call DirectPlayLobbyCreateW.


To allow maximum compatibility, this function will manually load dplayx.dll and then invoke DirectPlayLobbyCreateW if present.

Note
This is only available on Windows
Parameters
pGuidSrcAddress of a variable that specifies a valid device identifier
ppOutputAddress of a variable that receives the pointer to the IDirectPlayLobby
pOuterAddress of IUnknown, set to NULL
pDataAddress of custom data needed for the lobby
uDataSizeSize in bytes of the custom data for the lobby
Returns
DP_OK if no error. Any other value means an error occurred

◆ DirectSoundCaptureCreate()

HRESULT BURGER_API Burger::Win32::DirectSoundCaptureCreate ( const GUID * pGuidDevice,
IDirectSoundCapture ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dsound.dll and call DirectSoundCaptureCreate.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundCreate if present.

https://msdn.microsoft.com/en-us/library/ms939447.aspx

Note
This is only available on Windows
Parameters
pGuidDeviceRequested audio device
ppOutputPointer to receive the pointer to the new IDirectSoundCapture instance
pOuterPointer to the IUnknown passed to DirectSoundCaptureCreate()
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectSoundCaptureCreate8()

HRESULT BURGER_API Burger::Win32::DirectSoundCaptureCreate8 ( const GUID * pGuidDevice,
IDirectSoundCapture ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dsound.dll and call DirectSoundCaptureCreate8.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundCaptureCreate8 if present.

https://msdn.microsoft.com/en-us/library/vs/alm/microsoft.directx_sdk.reference.directsoundcapturecreate8(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pGuidDeviceRequested audio device
ppOutputPointer to receive the pointer to the new IDirectSoundCapture8 instance
pOuterPointer to the IUnknown passed to DirectSoundCaptureCreate8()
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectSoundCaptureEnumerateA()

HRESULT BURGER_API Burger::Win32::DirectSoundCaptureEnumerateA ( void * pDSEnumCallback,
void * pContext )
extern

Load in dsound.dll and call DirectSoundCaptureEnumerateA.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundCaptureEnumerateA if present.

https://msdn.microsoft.com/en-us/library/vs/alm/microsoft.directx_sdk.reference.directsoundcaptureenumerate(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pDSEnumCallbackAddress of a DSENUMCALLBACKA function to be called with a description of each enumerated DirectSound-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
Returns
DS_OK if no error. Any other value means an error occurred

◆ DirectSoundCaptureEnumerateW()

HRESULT BURGER_API Burger::Win32::DirectSoundCaptureEnumerateW ( void * pDSEnumCallback,
void * pContext )
extern

Load in dsound.dll and call DirectSoundCaptureEnumerateW.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundCaptureEnumerateW if present.

https://msdn.microsoft.com/en-us/library/vs/alm/microsoft.directx_sdk.reference.directsoundcaptureenumerate(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pDSEnumCallbackAddress of a DSENUMCALLBACKW function to be called with a description of each enumerated DirectSound-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
Returns
DS_OK if no error. Any other value means an error occurred

◆ DirectSoundCreate()

HRESULT BURGER_API Burger::Win32::DirectSoundCreate ( const GUID * pGuidDevice,
IDirectSound ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dsound.dll and call DirectSoundCreate.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundCreate if present.

Note
This is only available on Windows
Parameters
pGuidDeviceRequested audio device
ppOutputPointer to receive the pointer to the new IDirectSound instance
pOuterPointer to the IUnknown passed to DirectSoundCreate()
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectSoundCreate8()

HRESULT BURGER_API Burger::Win32::DirectSoundCreate8 ( const GUID * pGuidDevice,
IDirectSound8 ** ppOutput,
IUnknown * pOuter = nullptr )
extern

Load in dsound.dll and call DirectSoundCreate8.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundCreate8 if present.

https://msdn.microsoft.com/en-us/library/vs/alm/microsoft.directx_sdk.reference.directsoundcreate8(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pGuidDeviceRequested audio device
ppOutputPointer to receive the pointer to the new IDirectSound8 instance
pOuterPointer to the IUnknown passed to DirectSoundCreate8()
Returns
DD_OK if no error. Any other value means an error occurred

◆ DirectSoundEnumerateA()

HRESULT BURGER_API Burger::Win32::DirectSoundEnumerateA ( void * pDSEnumCallback,
void * pContext )
extern

Load in dsound.dll and call DirectSoundEnumerateA.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundEnumerateA if present.

https://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.reference.directsoundenumerate(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pDSEnumCallbackAddress of a DSENUMCALLBACKA function to be called with a description of each enumerated DirectSound-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
Returns
DS_OK if no error. Any other value means an error occurred

◆ DirectSoundEnumerateW()

HRESULT BURGER_API Burger::Win32::DirectSoundEnumerateW ( void * pDSEnumCallback,
void * pContext )
extern

Load in dsound.dll and call DirectSoundEnumerateW.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundEnumerateW if present.

https://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.reference.directsoundenumerate(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pDSEnumCallbackAddress of a DSENUMCALLBACKW function to be called with a description of each enumerated DirectSound-enabled hardware abstraction layer (HAL).
pContextAddress of an application-defined value to be passed to the enumeration callback function each time that it is called.
Returns
DS_OK if no error. Any other value means an error occurred

◆ DirectSoundFullDuplexCreate()

HRESULT BURGER_API Burger::Win32::DirectSoundFullDuplexCreate ( const GUID * pGuidCaptureDevice,
const GUID * pGuidRenderDevice,
const _DSCBUFFERDESC * pDSCBufferDesc,
const _DSBUFFERDESC * pDSBufferDesc,
HWND__ * hWnd,
uint32_t uLevel,
IDirectSoundFullDuplex ** ppDSFD,
IDirectSoundCaptureBuffer8 ** ppDSCBuffer8,
IDirectSoundBuffer8 ** ppDSBuffer8,
IUnknown * pOuter = nullptr )
extern

Load in dsound.dll and call DirectSoundFullDuplexCreate.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke DirectSoundFullDuplexCreate if present.

https://msdn.microsoft.com/en-us/library/vs/alm/microsoft.directx_sdk.reference.directsoundfullduplexcreate8(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pGuidCaptureDeviceAddress of the GUID that identifies the sound capture device
pGuidRenderDeviceAddress of the GUID that identifies the sound render device for full-duplex output
pDSCBufferDescAddress of a DSCBUFFERDESC structure that specifies the characteristics of the capture buffer
pDSBufferDescAddress of a DSCBUFFERDESC structure that specifies the characteristics of the render buffer
hWndHandle to the application window
uLevelCooperative level for the device
ppDSFDPointer to receive the pointer to the new IDirectSoundFullDuplex instance
ppDSCBuffer8Pointer to receive the pointer to the new IDirectSoundCaptureBuffer8 instance
ppDSBuffer8Pointer to receive the pointer to the new IDirectSoundBuffer8 instance
pOuterPointer to the IUnknown passed to DirectSoundFullDuplexCreate()
Returns
DD_OK if no error. Any other value means an error occurred

◆ format_message()

Burger::eError BURGER_API Burger::Win32::format_message ( long lHResult,
String * pOutput )
extern

Call FormatMessageW()


Call the Windows function FormatMessageW() and convert the output to UTF8.

Parameters
lHResultWindows error code.
pOutputPointer to a Burgerlib string to accept the output
Returns
kErrorNone on success, kErrorNoData if lookup failed.
See also
get_error_string(long, String*), or get_DirectX_error_string(long)

◆ get_DirectInput8_singleton()

IDirectInput8W *BURGER_API Burger::Win32::get_DirectInput8_singleton ( void )
extern

Return the singleton IDirectInput8W pointer used by Burgerlib.


To allow multiple classes to use IDirectInput8W without having to check if it was already created, use this function to create a global instance of IDirectInput8W that will be released only on program exit.

If DirectInput is required, use get_DirectInput_singleton() instead.

Note
This is only available on Windows
Returns
Pointer to the global IDirectInput8W pointer or nullptr if DirectInput8 couldn't be started.

◆ get_DirectInput_singleton()

IDirectInputW *BURGER_API Burger::Win32::get_DirectInput_singleton ( uint32_t uVersion = 0x700U)
extern

Return the singleton IDirectInputW pointer used by Burgerlib.


To allow multiple classes to use IDirectInputW without having to check if it was already created, use this function to create a global instance of IDirectInputW that will be released only on program exit.

If DirectInput8 is required, use get_DirectInput8_singleton() instead.

Note
This is only available on Windows
Parameters
uVersionVersion of DirectInput requested. Usually this is 0x700 (Highest number before DirectInput8 is invoked)
Returns
Pointer to the global IDirectInputW pointer or nullptr if DirectInput couldn't be started.

◆ get_DirectX_error_string()

const char *BURGER_API Burger::Win32::get_DirectX_error_string ( long lHResult)
extern

Convert windows error into a name string.


If an error macro is OLE_E_LAST, then return the string "OLE_E_LAST". If the error code is not know, return "Unknown error"

This function will always return a valid string, no nullptr. Do not release or free the memory.

Note
This is only available on Windows
Parameters
lHResultWindows error code.
Returns
Returns a pointer to a "C" string.
See also
get_error_string(long, String*)

◆ get_DirectX_version()

uint32_t BURGER_API Burger::Win32::get_DirectX_version ( void )
extern

Return the version of DirectX.


Detect if DirectX is available, and if so, query it for the version present. If DirectX is not available, the version returned is zero.

This function is written so it only asks for the version once from DirectX. It will cache the version and return the cached value on subsequent calls.

By invoking DEEP magic, I will divine the version of DirectX that is present. It will do a manual check of the system folder for the DLLs and pull the version resource from them.

Note
This is only available on Windows
Returns
Version in the format of 0x0902 -> 9.2, 0xB01 = 11.0.1

◆ get_DirectX_version_via_file_versions()

uint32_t BURGER_API Burger::Win32::get_DirectX_version_via_file_versions ( void )
extern

Return the version of DirectX by scanning file versions.


Tries to get the DirectX version by looking at DirectX file versions Uses http://en.wikipedia.org/wiki/DirectX as a reference for file version lookups

Returns
Version number of DirectX in 16 bit format 0x900 is 9.0, 0x903 = 9.0c

◆ get_error_string()

Burger::eError BURGER_API Burger::Win32::get_error_string ( long lHResult,
String * pOutput )
extern

Convert windows code to descriptive message.


First try the Windows function FormatMessageW() in the system's native language. If that fails, do a manual lookup for DirectX and other subsystem errors to return an error description.

Parameters
lHResultWindows error code.
pOutputPointer to a Burgerlib string to accept the output
Returns
kErrorNone on success, kErrorNoData if lookup failed.
See also
format_message(long, String*), or get_DirectX_error_string(long)

◆ get_file_version64()

uint64_t BURGER_API Burger::Win32::get_file_version64 ( const uint16_t * pWindowsFilename)
extern

Returns a 64 bit version of a file.


Given a filename in Windows Unicode format, open the file and return the 64 bit Windows extended version number from the dwFileVersionMS and dwFileVersionLS entries in the VS_FIXEDFILEINFO structure.

Returns
Version in 64 bit Windows format or 0 on error

◆ get_instance()

HINSTANCE__ *BURGER_API Burger::Win32::get_instance ( void )
extern

Get the application instance.


This function is only an accessor. It only returns what was set by the call to set_instance(). If set_instance() was never called, this function always returns nullptr.

Note
This is only available on Windows
Returns
Instance set by set_instance()
See also
set_instance()

◆ get_known_folder_path()

Burger::eError BURGER_API Burger::Win32::get_known_folder_path ( Filename * pFilename,
const GUID * pVista,
int iXP )
extern

Set the filename to the local machine preferences directory.


Given a Vista GUID and/or a Windows XP path ID for the calls SHGetKnownFolderPath() and SHGetFolderPathW() respectively, return the path found.

The operating system if first checked if SHGetKnownFolderPath() is available, and if so, it will be called to get the path. Otherwise, if pVista is nullptr or if the previous call failed, the XP version of the call is attempted to get the folder.

If iXP is -1, then the XP path is never taken.

Parameters
pFilenamePointer to a Burgerlib Filename object for the output
pVistaPointer to the GUID for SHGetKnownFolderPath()
iXPCSIDL_* for SHGetFolderPathW()
Returns
Zero on success, non-zero on error

◆ get_version_flags()

uint32_t BURGER_API Burger::Win32::get_version_flags ( void )
extern

Test all versions of windows.


Test for which version of windows the application is running under and set the flags accordingly. The value is cached, so all future calls are near instant.

The flags are declared in eVersion

Note
If the program doesn't have a manifest and it's running on Windows 10 or higher, a test of the registry is performed to verify that the operating system is 10 or higher.
This is only available on Windows
Returns
Returns the flags with the versions of Windows found
See also
is_XP3_or_higher(void), is_XP_or_higher(void) or is_10_or_higher(void)

◆ get_video_GUID()

HRESULT BURGER_API Burger::Win32::get_video_GUID ( GUID * pOutput,
uint32_t uDevNum )
extern

Given a specific device number, return the DirectX GUID.


Scan the device list for the GUID of the requested device. Device #0 returns the global display device (All screens)

Note
This is only available on Windows
Parameters
pOutputPointer to a buffer to accept the returned GUID. Cannot be nullptr
uDevNum0 for the master global device, 1-??? for the enumerated displays
Returns
Zero if no error, non-zero if an error has occurred

◆ get_window()

HWND__ *BURGER_API Burger::Win32::get_window ( void )
extern

Get the application window.


Note
This is only available on Windows
Returns
Window set by set_window()
See also
set_window()

◆ get_window_class_name()

const uint16_t *BURGER_API Burger::Win32::get_window_class_name ( void )
extern

Get the registered class name.


When registering a window class for Burgerlib, this is the name used to declare it. It's a wchar_t string of "BurgerGameClass"

Note
This is only available on Windows
Returns
Pointer to a wchar_t * compatible pointer
See also
Globals::RegisterWindowClass(uint_t)

◆ GetDeviceID()

HRESULT BURGER_API Burger::Win32::GetDeviceID ( const GUID * pGuidSrc,
GUID * pGuidDest )
extern

Load in dsound.dll and call GetDeviceID.


To allow maximum compatibility, this function will manually load dsound.dll and then invoke GetDeviceID if present.

https://msdn.microsoft.com/en-us/library/vs/alm/microsoft.directx_sdk.reference.getdeviceid(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pGuidSrcAddress of a variable that specifies a valid device identifier
pGuidDestAddress of a variable that receives the unique identifier of the device
Returns
DD_OK if no error. Any other value means an error occurred

◆ GetFileVersionInfoA()

BOOL BURGER_API Burger::Win32::GetFileVersionInfoA ( const char * ptstrFilename,
uint32_t dwHandle,
uint32_t dwLen,
void * pData )
extern

Load in version.dll and call GetFileVersionInfoA.


Manually load version.dll if needed and call the Windows function GetFileVersionInfoA()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647003(v=vs.85).aspx

Note
This is only available on Windows
Parameters
ptstrFilenameThe name of the file
dwHandleThis parameter is ignored.
dwLenThe size, in bytes, of the buffer pointed to by the lpData parameter.
pDataPointer to a buffer that receives the file-version information.
Returns
Returns TRUE if successful, or FALSE otherwise.

◆ GetFileVersionInfoSizeA()

uint32_t BURGER_API Burger::Win32::GetFileVersionInfoSizeA ( const char * ptstrFilename,
unsigned long * pdwHandle )
extern

Load in version.dll and call GetFileVersionInfoA.


Manually load version.dll if needed and call the Windows function GetFileVersionInfoA()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647005(v=vs.85).aspx

Note
This is only available on Windows
Parameters
ptstrFilenameThe name of the file of interest.
pdwHandleA pointer to a variable that the function sets to zero.
Returns
Returns the number of bytes if successful, or zero otherwise.

◆ GetFileVersionInfoSizeW()

uint32_t BURGER_API Burger::Win32::GetFileVersionInfoSizeW ( const uint16_t * ptstrFilename,
unsigned long * pdwHandle )
extern

Load in version.dll and call GetFileVersionInfoSizeW.


Manually load version.dll if needed and call the Windows function GetFileVersionInfoSizeW()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647005(v=vs.85).aspx

Note
This is only available on Windows
Parameters
ptstrFilenameThe name of the file of interest.
pdwHandleA pointer to a variable that the function sets to zero.
Returns
Returns the number of bytes if successful, or zero otherwise.

◆ GetFileVersionInfoW()

BOOL BURGER_API Burger::Win32::GetFileVersionInfoW ( const uint16_t * ptstrFilename,
uint32_t dwHandle,
uint32_t dwLen,
void * pData )
extern

Load in version.dll and call GetFileVersionInfoW.


Manually load version.dll if needed and call the Windows function GetFileVersionInfoW()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647003(v=vs.85).aspx

Note
This is only available on Windows
Parameters
ptstrFilenameThe name of the file
dwHandleThis parameter is ignored.
dwLenThe size, in bytes, of the buffer pointed to by the lpData parameter.
pDataPointer to a buffer that receives the file-version information.
Returns
Returns TRUE if successful, or FALSE otherwise.

◆ GetMonitorInfoA()

BOOL BURGER_API Burger::Win32::GetMonitorInfoA ( HMONITOR__ * hMonitor,
tagMONITORINFO * pMonitorInfo )
extern

Load in user32.dll and call TrackMouseEvent.


Manually load user32.dll if needed and call the Windows function GetMonitorInfoA()

On versions of windows that do not have GetMonitorInfoA(), use a compatibility function that performs the same task

https://msdn.microsoft.com/en-us/library/windows/desktop/dd144901(v=vs.85).aspx

Note
This is only available on Windows
Parameters
hMonitorA handle to the display monitor of interest.
pMonitorInfoA pointer to a MONITORINFO or MONITORINFOEX structure that receives information about the specified display monitor.
Returns
If the function succeeds, the return value is nonzero.

◆ GetMonitorInfoW()

BOOL BURGER_API Burger::Win32::GetMonitorInfoW ( HMONITOR__ * hMonitor,
tagMONITORINFO * pMonitorInfo )
extern

Load in user32.dll and call TrackMouseEvent.


Manually load user32.dll if needed and call the Windows function GetMonitorInfoW()

On versions of windows that do not have GetMonitorInfoW(), use a compatibility function that performs the same task

https://msdn.microsoft.com/en-us/library/windows/desktop/dd144901(v=vs.85).aspx

Note
This is only available on Windows
Parameters
hMonitorA handle to the display monitor of interest.
pMonitorInfoA pointer to a MONITORINFO or MONITORINFOEX structure that receives information about the specified display monitor.
Returns
If the function succeeds, the return value is nonzero.

◆ GetPathToQuickTimeFolder()

uint_t BURGER_API Burger::Win32::GetPathToQuickTimeFolder ( char * pBuffer,
uint32_t uSize,
uint32_t * pReserved )
extern

Find the Quicktime folder.


This function is a functional equivalent to the Quicktime for Windows function GetPathToQuickTimeFolder(). It will query a registry values from the HKEY_LOCAL_MACHINE root and if found, it will return the path. Otherwise, it will check the system folder for the file Quicktime.qts.

On success, the pathname will be in the buffer with a '\' or a '/' ending the string. Otherwise, the string will be empty on failure.

Note
Quicktime for Windows is a 32 bit API. Don't use it for 64 bit applications.
This is only available on Windows
Parameters
pBufferPointer to a buffer to receive the string
uSizeNumber of bytes in size of the string buffer
pReservedReserved, pass nullptr
Returns
TRUE if successful, FALSE if not

◆ GetQTApplicationDirectoryA()

uint32_t BURGER_API Burger::Win32::GetQTApplicationDirectoryA ( char * pBuffer,
uint32_t uSize )
extern

Find the Quicktime application folder.


This function is a functional equivalent to the Quicktime for Windows function GetQTApplicationDirectoryA(). It will query a registry value from the HKEY_LOCAL_MACHINE root and if found, it will return the path.

On success, the pathname will be in the buffer with a '\' or a '/' ending the string. Otherwise, the string will be empty on failure.

Note
Quicktime for Windows is a 32 bit API. Don't use it for 64 bit applications.
This is only available on Windows
Parameters
pBufferPointer to a buffer to receive the string
uSizeNumber of bytes in size of the string buffer
Returns
Length of the returned string in chars.

◆ GetQTComponentDirectoryA()

uint32_t BURGER_API Burger::Win32::GetQTComponentDirectoryA ( char * pBuffer,
uint32_t uSize )
extern

Find the Quicktime components folder.


This function is a functional equivalent to the Quicktime for Windows function GetQTComponentDirectoryA(). It will query a registry value from the HKEY_LOCAL_MACHINE root and if found, it will return the path.

On success, the pathname will be in the buffer with a '\' or a '/' ending the string. Otherwise, the string will be empty on failure.

Note
Quicktime for Windows is a 32 bit API. Don't use it for 64 bit applications.
This is only available on Windows
Parameters
pBufferPointer to a buffer to receive the string
uSizeNumber of bytes in size of the string buffer
Returns
Length of the returned string in chars.

◆ GetQTExtensionDirectoryA()

uint32_t BURGER_API Burger::Win32::GetQTExtensionDirectoryA ( char * pBuffer,
uint32_t uSize )
extern

Find the Quicktime extensions folder.


This function is a functional equivalent to the Quicktime for Windows function GetQTExtensionDirectoryA(). It will query a registry value from the HKEY_LOCAL_MACHINE root and if found, it will return the path.

On success, the pathname will be in the buffer with a '\' or a '/' ending the string. Otherwise, the string will be empty on failure.

Note
Quicktime for Windows is a 32 bit API. Don't use it for 64 bit applications.
This is only available on Windows
Parameters
pBufferPointer to a buffer to receive the string
uSizeNumber of bytes in size of the string buffer
Returns
Length of the returned string in chars.

◆ GetQTFolderFromRegistry()

Burger::eError BURGER_API Burger::Win32::GetQTFolderFromRegistry ( const char * pSubKey,
const char * pValueName,
char * pBuffer,
uint32_t uSize )
extern

Find a Quicktime folder by reading the registry.


This function is a functional equivalent to the Quicktime for Windows internal function GetQTFolderFromRegistry(). It will query a registry value from the HKEY_LOCAL_MACHINE root and will return the value.

On success, the pathname will be in the buffer with a '\' or a '/' ending the string. Otherwise, the string will be empty on failure.

Note
Quicktime for Windows is a 32 bit API. Don't use it for 64 bit applications.
This is only available on Windows
Parameters
pSubKeyPointer to registry sub key
pValueNamePointer to the registry value name to a string
pBufferPointer to a buffer to receive the string
uSizeNumber of bytes in size of the string buffer

◆ GetQTSystemDirectoryA()

uint32_t BURGER_API Burger::Win32::GetQTSystemDirectoryA ( char * pBuffer,
uint32_t uSize )
extern

Find the Quicktime folder.


This function is a functional equivalent to the Quicktime for Windows function GetQTSystemDirectoryA(). It will query a registry values from the HKEY_LOCAL_MACHINE root and if found, it will return the path. Otherwise, it will check the system folder for the file Quicktime.qts.

On success, the pathname will be in the buffer with a '\' or a '/' ending the string. Otherwise, the string will be empty on failure.

Note
Quicktime for Windows is a 32 bit API. Don't use it for 64 bit applications.
This is only available on Windows
Parameters
pBufferPointer to a buffer to receive the string
uSizeNumber of bytes in size of the string buffer
Returns
Length of the returned string in chars.

◆ GetSystemWow64DirectoryA()

UINT BURGER_API Burger::Win32::GetSystemWow64DirectoryA ( char * pBuffer,
uint32_t uSize )
extern

Load in kernel32.dll and call GetSystemWow64DirectoryA.


Manually load kernel32.dll if needed and call the Windows function GetSystemWow64DirectoryA()

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724405(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pBufferA pointer to the buffer to receive the path
uSizeThe maximum size of the buffer, in bytes
Returns
If the function succeeds, the return value is the length, in bytes, of the string copied to the buffer

◆ GetSystemWow64DirectoryW()

UINT BURGER_API Burger::Win32::GetSystemWow64DirectoryW ( uint16_t * pBuffer,
uint32_t uSize )
extern

Load in kernel32.dll and call GetSystemWow64DirectoryW.


Manually load kernel32.dll if needed and call the Windows function GetSystemWow64DirectoryW()

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724405(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pBufferA pointer to the buffer to receive the path
uSizeThe maximum size of the buffer, in uint16_t entries
Returns
If the function succeeds, the return value is the length, in uint16_t entries, of the string copied to the buffer

◆ has_D3D9()

uint_t BURGER_API Burger::Win32::has_D3D9 ( void )
extern

Detect if Direct3D 9 exists.


Note
This is only available on Windows
Returns
TRUE if D3D9 is present on the system, FALSE if not
See also
has_DirectDraw(void)

◆ has_DirectDraw()

uint_t BURGER_API Burger::Win32::has_DirectDraw ( void )
extern

Detect if DirectDraw exists.


Note
This is only available on Windows
Returns
TRUE if DirectDraw is present on the system, FALSE if not
See also
has_D3D9(void)

◆ has_DirectInput()

uint_t BURGER_API Burger::Win32::has_DirectInput ( void )
extern

Detect if DirectInput exists.


Note
This is only available on Windows
Returns
TRUE if DirectInput is present on the system, FALSE if not
See also
has_DirectInput8(void) or has_XInput(void)

◆ has_DirectInput8()

uint_t BURGER_API Burger::Win32::has_DirectInput8 ( void )
extern

Detect if DirectInput8 exists.


Note
This is only available on Windows
Returns
TRUE if DirectInput8 is present on the system, FALSE if not
See also
has_DirectInput(void) or has_XInput(void)

◆ has_DirectPlay()

uint_t BURGER_API Burger::Win32::has_DirectPlay ( void )
extern

Detect if DirectPlay exists.


Note
This is only available on Windows
Returns
TRUE if DirectPlay is present on the system, FALSE if not

◆ has_DirectSound()

uint_t BURGER_API Burger::Win32::has_DirectSound ( void )
extern

Detect if DirectSound exists.


Note
This is only available on Windows
Returns
TRUE if DirectSound is present on the system, FALSE if not

◆ has_XAudio2()

uint_t BURGER_API Burger::Win32::has_XAudio2 ( void )
extern

Detect if XAudio2 2.7 or higher is installed.


Test if XAudio2 2.7 or higher is installed and return TRUE if found.

Note
This is only available on Windows
Returns
Returns TRUE if the XAudio2 is available

◆ has_XInput()

uint_t BURGER_API Burger::Win32::has_XInput ( void )
extern

Detect if XInput exists.


Note
This is only available on Windows
Returns
TRUE if XInput is present on the system, FALSE if not
See also
has_DirectInput(void) or has_DirectInput8(void)

◆ HidD_GetHidGuid()

void BURGER_API Burger::Win32::HidD_GetHidGuid ( GUID * pHidGuid)
extern

Load in hid.dll and call HidD_GetHidGuid.


Manually load hid.dll if needed and call the Windows function HidD_GetHidGuid()

http://msdn.microsoft.com/en-us/library/windows/hardware/ff538924(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pHidGuidPointer to a caller-allocated GUID buffer that the routine uses to return the device interface GUID for HIDClass devices.

◆ InitializeSRWLock()

void BURGER_API Burger::Win32::InitializeSRWLock ( _RTL_SRWLOCK * pSRWLock)
extern

Load in kernel32.dll and call InitializeSRWLock.


Manually load kernel32.dll if needed and call the Windows function InitializeSRWLock()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-initializesrwlock

Note
This function is present only in Windows Vista or later
Parameters
pSRWLockA pointer to the SRW lock

◆ is_10_or_higher()

uint_t BURGER_API Burger::Win32::is_10_or_higher ( void )
extern

Detect if running Windows 10 or higher.


Test if the system is a Windows 10 operating system or greater. If it returns FALSE, it's before Windows 10

Note
If the program doesn't have a manifest and it's running on Windows 10 or higher, a test of the registry is performed to verify that the operating system is 10 or higher.
This is only available on Windows
Returns
Returns TRUE if Windows 10 or greater
See also
get_version_flags(void), is_8_or_higher(void), is_7_or_higher(void), is_vista_or_higher(void) or is_XP_or_higher(void)

◆ is_7_or_higher()

uint_t BURGER_API Burger::Win32::is_7_or_higher ( void )
extern

Detect if running Windows 7 or higher.


Test if the system is a Windows 7 operating system or greater. If it returns FALSE, it's before Windows 7

Note
This is only available on Windows
Returns
Returns TRUE if Windows 7 or greater
See also
get_version_flags(void), is_vista_or_higher(void) or is_XP_or_higher(void)

◆ is_8_or_higher()

uint_t BURGER_API Burger::Win32::is_8_or_higher ( void )
extern

Detect if running Windows 8 or higher.


Test if the system is a Windows 8 operating system or greater. If it returns FALSE, it's before Windows 8

Note
This is only available on Windows
Returns
Returns TRUE if Windows 8 or greater
See also
get_version_flags(void), is_7_or_higher(void), is_vista_or_higher(void) or is_XP_or_higher(void)

◆ is_vista_or_higher()

uint_t BURGER_API Burger::Win32::is_vista_or_higher ( void )
extern

Detect if running Windows Vista or higher.


Test if the system is a Windows Vista operating system or greater. If it returns FALSE, it's before Windows Vista (Usually XP)

Note
This is only available on Windows
Returns
Returns TRUE if Windows Vista or greater
See also
get_version_flags(void), is_XP3_or_higher(void) or is_XP_or_higher(void)

◆ is_windows64Bit()

uint_t BURGER_API Burger::Win32::is_windows64Bit ( void )
extern

Detect if a 32 bit windows app is running under 64 bit windows.


If an application is 32 bits, the operating system is tested if it's actually 64 bits. If so, the function will return TRUE. If the application is 64 bits, or if the operating system is 32 bit then this function will return FALSE.

Note
This is only available on Windows
Returns
Returns TRUE if the 32 bit application was running in 64 bit Windows
See also
GetSystemWow64DirectoryW(uint16_t *,uint32_t)

◆ is_XP3_or_higher()

uint_t BURGER_API Burger::Win32::is_XP3_or_higher ( void )
extern

Detect if running Windows XP SP3 or higher.


Test if the system is a Windows XP operating system with service pack 3 or greater. If it returns FALSE, it doesn't have service pack 3.

Note
This is only available on Windows
Returns
Returns TRUE if Windows XP SP3 or greater
See also
get_version_flags(void), is_XP_or_higher(void) or is_vista_or_higher(void)

◆ is_XP_or_higher()

uint_t BURGER_API Burger::Win32::is_XP_or_higher ( void )
extern

Detect if running Windows XP or higher.


Test if the system is a Windows XP operating system or greater. If it returns FALSE, it's before Windows XP

Note
This is only available on Windows
Returns
Returns TRUE if Windows XP or greater
See also
get_version_flags(void), is_XP3_or_higher(void) or is_vista_or_higher(void)

◆ IsDebuggerPresent()

BOOL BURGER_API Burger::Win32::IsDebuggerPresent ( void )
extern

Load in kernel32.dll and call IsDebuggerPresent.


Manually load kernel32.dll if needed and call the Windows function IsDebuggerPresent()

https://msdn.microsoft.com/en-us/library/windows/desktop/ms680345(v=vs.85).aspx

Note
This is only available on Windows
Returns
Nonzero if a debugger is present, Zero if none is found

◆ LaunchMediaCenter()

uint_t BURGER_API Burger::Win32::LaunchMediaCenter ( void )
extern

Launch the Media Center.


Locate the exe file ehshell.exe in the windows folder and execute it.

Note
As of Windows 10, this function is obsolete. Please do not expect this function to successfully execute on Windows 10 platforms.
This is only available on Windows
Returns
Zero if media center was successfully launched, non-zero on error.

◆ load_function()

void *BURGER_API Burger::Win32::load_function ( eCallIndex uIndex)
extern

Load a function from a DLL library if needed.


Given a function index, detect if the library has already been loaded and if not. load it. If loaded, look up the function and return the pointer to the function or nullptr if not found.

Note
This is only available on Windows
Parameters
uIndexeCallIndex index to a Windows function Burgerlib is tracking.
Returns
nullptr if the DLL was not loaded or the function didn't exist, a valid function pointer on success
See also
load_library(), or override_function()

◆ load_library()

HINSTANCE BURGER_API Burger::Win32::load_library ( eDLLIndex uIndex)
extern

Load a Windows library if needed.


Given a DLL index, detect if the library has already been loaded and if so, return the existing HINSTANCE, otherwise, load the DLL and if successful, return the HINSTANCE. If the load failed, return nullptr.

Note
Since this function only loads in official Microsoft DLLs, it will under Vista or higher, use the function LoadLibraryExA(LOAD_LIBRARY_SEARCH_SYSTEM32) to ensure that only official DLL directories are scanned to find the files. This was done to prevent Man-In-The-Middle attacks used by users who want to inject code to cheat. Windows versions before Vista (XP for example) doesn't support this flag, so the feature isn't used on those platforms.
This is only available on Windows
Parameters
uIndexeDLLIndex index to a DLL Burgerlib is tracking.
Returns
nullptr if the DLL was not loaded, a valid HINSTANCE on success
See also
load_function()

◆ LoadLibraryA()

HINSTANCE BURGER_API Burger::Win32::LoadLibraryA ( const char * pInput)
extern

Call LoadLibraryA() without file error boxes.


When LoadLibraryA() is called in windows, it's possible that if the file is not found, windows will display an error message box mentioning that a DLL is missing. This function will prohibit this behavior by setting the ErrorMode to SEM_NOOPENFILEERRORBOX before the call to LoadLibraryA() and restoring the flag to the previous setting before function exit.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pInputASCII pathname of the DLL file to load.
Returns
NULL if the DLL was not loaded, a valid HINSTANCE on success
See also
LoadLibraryExA() or LoadLibraryW()

◆ LoadLibraryExA()

HINSTANCE BURGER_API Burger::Win32::LoadLibraryExA ( const char * pInput,
void * hFile,
uint32_t uFlags )
extern

Call LoadLibraryExA() without file error boxes.


When LoadLibraryExA() is called in windows, it's possible that if the file is not found, windows will display an error message box mentioning that a DLL is missing. This function will prohibit this behavior by setting the ErrorMode to SEM_NOOPENFILEERRORBOX before the call to LoadLibraryExA() and restoring the flag to the previous setting before function exit.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pInputASCII pathname of the DLL file to load.
hFileThis parameter is reserved for future use. It must be nullptr.
uFlagsThe action to be taken when loading the module.
Returns
NULL if the DLL was not loaded, a valid HINSTANCE on success
See also
LoadLibraryA() or LoadLibraryExW()

◆ LoadLibraryExW()

HINSTANCE BURGER_API Burger::Win32::LoadLibraryExW ( const uint16_t * pInput,
void * hFile,
uint32_t uFlags )
extern

Call LoadLibraryExW() without file error boxes.


When LoadLibraryExW() is called in windows, it's possible that if the file is not found, windows will display an error message box mentioning that a DLL is missing. This function will prohibit this behavior by setting the ErrorMode to SEM_NOOPENFILEERRORBOX before the call to LoadLibraryExW() and restoring the flag to the previous setting before function exit.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pInputUTF16 pathname of the DLL file to load.
hFileThis parameter is reserved for future use. It must be NULL.
uFlagsThe action to be taken when loading the module.
Returns
NULL if the DLL was not loaded, a valid HINSTANCE on success
See also
LoadLibraryExA() or LoadLibraryW()

◆ LoadLibraryW()

HINSTANCE BURGER_API Burger::Win32::LoadLibraryW ( const uint16_t * pInput)
extern

Call LoadLibraryW() without file error boxes.


When LoadLibraryW() is called in windows, it's possible that if the file is not found, windows will display an error message box mentioning that a DLL is missing. This function will prohibit this behavior by setting the ErrorMode to SEM_NOOPENFILEERRORBOX before the call to LoadLibraryW() and restoring the flag to the previous setting before function exit.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pInputUTF16 pathname of the DLL file to load.
Returns
NULL if the DLL was not loaded, a valid HINSTANCE on success
See also
LoadLibraryExW() or LoadLibraryA()

◆ MonitorFromRect()

HMONITOR__ *BURGER_API Burger::Win32::MonitorFromRect ( const tagRECT * pRect,
uint_t uFlags )
extern

Load in user32.dll and call MonitorFromRect.


Manually load user32.dll if needed and call the Windows function MonitorFromRect()

On versions of windows that do not have MonitorFromRect(), use a compatibility function that performs the same task

https://msdn.microsoft.com/en-us/library/windows/desktop/dd145063(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pRectA pointer to a RECT structure that specifies the rectangle of interest in virtual-screen coordinates.
uFlagsDetermines the function's return value if the window does not intersect any display monitor.
Returns
nullptr on failure, HMONITOR on success.

◆ MonitorFromWindow()

HMONITOR__ *BURGER_API Burger::Win32::MonitorFromWindow ( HWND__ * pWindow,
uint_t uFlags )
extern

Load in user32.dll and call MonitorFromWindow.


Manually load user32.dll if needed and call the Windows function MonitorFromWindow()

On versions of windows that do not have MonitorFromWindow(), use a compatibility function that performs the same task

https://msdn.microsoft.com/en-us/library/windows/desktop/dd145064(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pWindowA handle to the window of interest.
uFlagsDetermines the function's return value if the window does not intersect any display monitor.
Returns
nullptr on failure, HMONITOR on success.

◆ output_windows_message()

void BURGER_API Burger::Win32::output_windows_message ( uint_t uMessage,
uintptr_t wParam,
uintptr_t lParam )
extern

Print windows events to Debug::Message()


This helper function will take a windows Window Event and print it to the debugging message system to allow a programmer to trace events going through a window procedure. This should not be called in released code.

Note
This is only available on Windows
Parameters
uMessageWindows message enumeration
wParamwParam value passed to the windows callback
lParamlParam value passed to the windows callback
See also
Debug::Message()

◆ override_function()

void BURGER_API Burger::Win32::override_function ( eCallIndex uIndex,
void * pFunction )
extern

Override a Windows function shim.


In some cases, a function pointer is not available from windows because the call doesn't exist on the version of windows running. This call allows substitute code to be injected that would mimic the behavior of the function so high level code can still operate.

Note
This is only available on Windows
Parameters
uIndexeCallIndex index to a Windows function Burgerlib is tracking.
pFunctionPointer to the function to use as an override.
See also
load_library(), or override_function()

◆ PathSearchAndQualifyA()

BOOL BURGER_API Burger::Win32::PathSearchAndQualifyA ( const char * pszPath,
char * pszBuf,
uint32_t cchBuf )
extern

Load in shlwapi.dll and call PathSearchAndQualifyA.


Manually load shlwapi.dll if needed and call the Windows function PathSearchAndQualifyA()

http://msdn.microsoft.com/en-us/library/windows/desktop/bb773751(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pszPathA pointer to a null-terminated string of maximum length MAX_PATH that contains the path to search.
pszBufA pointer to a null-terminated string of length MAX_PATH that contains the path to be referenced.
cchBufThe size of the buffer pointed to by pszBuf, in characters.
Returns
Returns TRUE if the path is qualified, or FALSE otherwise.

◆ PathSearchAndQualifyW()

BOOL BURGER_API Burger::Win32::PathSearchAndQualifyW ( const uint16_t * pszPath,
uint16_t * pszBuf,
uint32_t cchBuf )
extern

Load in shlwapi.dll and call PathSearchAndQualifyW.


Manually load shlwapi.dll if needed and call the Windows function PathSearchAndQualifyW()

http://msdn.microsoft.com/en-us/library/windows/desktop/bb773751(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pszPathA pointer to a null-terminated string of maximum length MAX_PATH that contains the path to search.
pszBufA pointer to a null-terminated string of length MAX_PATH that contains the path to be referenced.
cchBufThe size of the buffer pointed to by pszBuf, in characters.
Returns
Returns TRUE if the path is qualified, or FALSE otherwise.

◆ pump_messages()

void BURGER_API Burger::Win32::pump_messages ( void )
extern

Pump windows messages.


Windows requires a function to pump messages

Note
This is only available on Windows
See also
RegisterWindowClass(uint_t)

◆ QTLoadLibrary()

HINSTANCE BURGER_API Burger::Win32::QTLoadLibrary ( const char * pDLLName)
extern

Locate and load a Quicktime DLL.


This function is a functional equivalent to the Quicktime for Windows function QTLoadLibrary().

Note
Do not pass in full pathnames. Only pass in the name of the DLL and nothing more. If a full pathname is available, use a direct call to LoadLibraryA(const char *) instead.
Quicktime for Windows is a 32 bit API. Don't use it for 64 bit applications.
This is only available on Windows
Parameters
pDLLNamePointer to the DLL requested
Returns
HINSTANCE of the DLL or nullptr on failure

◆ ReleaseSRWLockExclusive()

void BURGER_API Burger::Win32::ReleaseSRWLockExclusive ( _RTL_SRWLOCK * pSRWLock)
extern

Load in kernel32.dll and call ReleaseSRWLockExclusive.


Manually load kernel32.dll if needed and call the Windows function ReleaseSRWLockExclusive()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-releasesrwlockexclusive

Note
This function is present only in Windows Vista or later
Parameters
pSRWLockA pointer to the SRW lock

◆ set_instance()

void BURGER_API Burger::Win32::set_instance ( HINSTANCE__ * pInput)
extern

Set the application instance.


Upon application startup, an instance is assigned, use this function to allow Burgerlib to use this instance in other parts of the library.

Note
This is only available on Windows
Parameters
pInputInstance of the application
See also
get_instance()

◆ set_thread_name()

void BURGER_API Burger::Win32::set_thread_name ( const char * pName,
void * hThread = nullptr,
uint32_t uThreadId = 0 )
extern

Set a thread's name for debugging.


On Windows, either the function SetThreadDescription() is called, or an exception is thrown that's captured by the debugger so a thread can be named.

This function will call the functions to do both actions.

Note
If this function is interfering with C# or other high level code, set the eHintFlags kHintWin32DisableThreadNamingException to disable this function.
See also
SetThreadDescription(), throw_thread_naming_exception(), or kHintWin32DisableThreadNamingException

◆ set_window()

void BURGER_API Burger::Win32::set_window ( HWND__ * pInput)
extern

Set the application window.


A window is created on application startup, it's pointer is stored via this call so other parts of Burgerlib can use this window for other systems.

Note
This is only available on Windows
Parameters
pInputInstance of the application
See also
get_window()

◆ SetThreadDescription()

HRESULT BURGER_API Burger::Win32::SetThreadDescription ( void * hThread,
const uint16_t * lpThreadDescription )
extern

Load in kernel32.dll and call SetThreadDescription.


Manually load kernel32.dll if needed and call the Windows function SetThreadDescription()

https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreaddescription

Note
This is only available on Windows
Parameters
hThreadHandle to the thread to work with
lpThreadDescriptionName of the thread in a UTF16 "C" string
Returns
Zero if no error, E_FAIL if function not found.

◆ SetupDiDestroyDeviceInfoList()

BOOL BURGER_API Burger::Win32::SetupDiDestroyDeviceInfoList ( void * DeviceInfoSet)
extern

Load in setupapi.dll and call SetupDiDestroyDeviceInfoList.


Manually load Setupapi.dll if needed and call the Windows function SetupDiDestroyDeviceInfoList()

http://msdn.microsoft.com/en-us/library/windows/hardware/ff550996(v=vs.85).aspx

Note
This is only available on Windows
Parameters
DeviceInfoSetA handle to the device information set to delete.
Returns
TRUE if the function completed without error.

◆ SetupDiEnumDeviceInterfaces()

BOOL BURGER_API Burger::Win32::SetupDiEnumDeviceInterfaces ( void * DeviceInfoSet,
_SP_DEVINFO_DATA * DeviceInfoData,
const GUID * InterfaceClassGuid,
uint32_t MemberIndex,
_SP_DEVICE_INTERFACE_DATA * DeviceInterfaceData )
extern

Load in setupapi.dll and call SetupDiEnumDeviceInterfaces.


Manually load Setupapi.dll if needed and call the Windows function SetupDiEnumDeviceInterfaces()

http://msdn.microsoft.com/en-us/library/windows/hardware/ff551015(v=vs.85).aspx

Note
This is only available on Windows
Parameters
DeviceInfoSetA pointer to a device information set that contains the device interfaces for which to return information.
DeviceInfoDataA pointer to an SP_DEVINFO_DATA structure that specifies a device information element in DeviceInfoSet.
InterfaceClassGuidA pointer to a GUID that specifies the device interface class for the requested interface.
MemberIndexA zero-based index into the list of interfaces in the device information set.
DeviceInterfaceDataA pointer to a caller-allocated buffer that contains, on successful return, a completed SP_DEVICE_INTERFACE_DATA structure that identifies an interface that meets the search parameters.
Returns
TRUE if the function completed without error.

◆ SetupDiGetClassDevsA()

void *BURGER_API Burger::Win32::SetupDiGetClassDevsA ( const GUID * ClassGuid,
const char * Enumerator,
HWND__ * hwndParent,
uint32_t Flags )
extern

Load in setupapi.dll and call SetupDiGetClassDevsA.


Manually load Setupapi.dll if needed and call the Windows function SetupDiGetClassDevsA()

http://msdn.microsoft.com/en-us/library/windows/hardware/ff551069(v=vs.85).aspx

Note
This is only available on Windows
Parameters
ClassGuidA pointer to the GUID for a device setup class or a device interface class.
EnumeratorA pointer to a NULL-terminated string that specifies a PnP enumerator or instance ID
hwndParentA handle to the top-level window to be used for a user interface that is associated with installing a device instance in the device information set.
FlagsA variable of type DWORD that specifies control options that filter the device information elements that are added to the device information set.
Returns
If the operation succeeds, SetupDiGetClassDevs returns a handle to a device information set that contains all installed devices that matched the supplied parameters.

◆ SetupDiGetClassDevsW()

void *BURGER_API Burger::Win32::SetupDiGetClassDevsW ( const GUID * ClassGuid,
const uint16_t * Enumerator,
HWND__ * hwndParent,
uint32_t Flags )
extern

Load in setupapi.dll and call SetupDiGetClassDevsW.


Manually load Setupapi.dll if needed and call the Windows function SetupDiGetClassDevsW()

http://msdn.microsoft.com/en-us/library/windows/hardware/ff551069(v=vs.85).aspx

Note
This is only available on Windows
Parameters
ClassGuidA pointer to the GUID for a device setup class or a device interface class.
EnumeratorA pointer to a NULL-terminated string that specifies a PnP enumerator or instance ID
hwndParentA handle to the top-level window to be used for a user interface that is associated with installing a device instance in the device information set.
FlagsA variable of type DWORD that specifies control options that filter the device information elements that are added to the device information set.
Returns
If the operation succeeds, SetupDiGetClassDevs returns a handle to a device information set that contains all installed devices that matched the supplied parameters.

◆ SetupDiGetDeviceInterfaceDetailA()

BOOL BURGER_API Burger::Win32::SetupDiGetDeviceInterfaceDetailA ( void * DeviceInfoSet,
_SP_DEVICE_INTERFACE_DATA * DeviceInterfaceData,
_SP_DEVICE_INTERFACE_DETAIL_DATA_A * DeviceInterfaceDetailData,
uint32_t DeviceInterfaceDetailDataSize,
uint32_t * RequiredSize,
_SP_DEVINFO_DATA * DeviceInfoData )
extern

Load in setupapi.dll and call SetupDiGetDeviceInterfaceDetailA.


Manually load Setupapi.dll if needed and call the Windows function SetupDiGetDeviceInterfaceDetailA()

http://msdn.microsoft.com/en-us/library/windows/hardware/ff551120(v=vs.85).aspx

Note
This is only available on Windows
Parameters
DeviceInfoSetA pointer to the device information set that contains the interface for which to retrieve details.
DeviceInterfaceDataA pointer to an SP_DEVICE_INTERFACE_DATA structure that specifies the interface in DeviceInfoSet for which to retrieve details.
DeviceInterfaceDetailDataA pointer to an SP_DEVICE_INTERFACE_DETAIL_DATA structure to receive information about the specified interface.
DeviceInterfaceDetailDataSizeThe size of the DeviceInterfaceDetailData buffer.
RequiredSizeA pointer to a variable of type uint32_t that receives the required size of the DeviceInterfaceDetailData buffer.
DeviceInfoDataA pointer to a buffer that receives information about the device that supports the requested interface.
Returns
TRUE if the function completed without error.

◆ SetupDiGetDeviceInterfaceDetailW()

BOOL BURGER_API Burger::Win32::SetupDiGetDeviceInterfaceDetailW ( void * DeviceInfoSet,
_SP_DEVICE_INTERFACE_DATA * DeviceInterfaceData,
_SP_DEVICE_INTERFACE_DETAIL_DATA_W * DeviceInterfaceDetailData,
uint32_t DeviceInterfaceDetailDataSize,
uint32_t * RequiredSize,
_SP_DEVINFO_DATA * DeviceInfoData )
extern

Load in setupapi.dll and call SetupDiGetDeviceInterfaceDetailW.


Manually load Setupapi.dll if needed and call the Windows function SetupDiGetDeviceInterfaceDetailW()

http://msdn.microsoft.com/en-us/library/windows/hardware/ff551120(v=vs.85).aspx

Note
This is only available on Windows
Parameters
DeviceInfoSetA pointer to the device information set that contains the interface for which to retrieve details.
DeviceInterfaceDataA pointer to an SP_DEVICE_INTERFACE_DATA structure that specifies the interface in DeviceInfoSet for which to retrieve details.
DeviceInterfaceDetailDataA pointer to an SP_DEVICE_INTERFACE_DETAIL_DATA structure to receive information about the specified interface.
DeviceInterfaceDetailDataSizeThe size of the DeviceInterfaceDetailData buffer.
RequiredSizeA pointer to a variable of type uint32_t that receives the required size of the DeviceInterfaceDetailData buffer.
DeviceInfoDataA pointer to a buffer that receives information about the device that supports the requested interface.
Returns
TRUE if the function completed without error.

◆ ShellExecuteOpen()

uintptr_t BURGER_API Burger::Win32::ShellExecuteOpen ( const char * pFileToOpen)
extern

Call ShellExecuteW() with a UTF8 string.


Convert the input string from UTF-8 encoding and call ShellExecuteW(NULL,"open",pFileToOpen,nullptr,nullptr,SW_SHOWNORMAL)

This function will return the result code without modification, a value of 33 or higher means the function executed successfully.

Note
This is only available on Windows
Parameters
pFileToOpenUTF-8 encoded string to convert to use as input for ShellExecuteW()
Returns
Returned value from the call to ShellExecuteW(), cast as a uintptr_t

◆ SHGetKnownFolderPath()

HRESULT BURGER_API Burger::Win32::SHGetKnownFolderPath ( const GUID * pGuid,
uint32_t uFlags,
void * hHandle,
uint16_t ** ppResult )
extern

Load in shell32.dll and call SHGetKnownFolderPath.


Manually load shell32.dll if needed and call the Windows function SHGetKnownFolderPath()

This function is present on Windows Vista or later.

https://msdn.microsoft.com/en-us/library/windows/desktop/bb762188(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pGuidA pointer to the KNOWNFOLDERID that identifies the folder.
uFlagsFlags that specify special retrieval options.
hHandleAn access token that represents a particular use
ppResultWhen this method returns, contains the address of a pointer to a null-terminated Unicode string that specifies the path of the known folder
Returns
Returns S_OK if successful, or an error value otherwise

◆ SleepConditionVariableCS()

uint_t BURGER_API Burger::Win32::SleepConditionVariableCS ( _RTL_CONDITION_VARIABLE * ConditionVariable,
_RTL_CRITICAL_SECTION * CriticalSection,
uint32_t dwMilliseconds )
extern

Load in kernel32.dll and call SleepConditionVariableCS.


Manually load kernel32.dll if needed and call the Windows function SleepConditionVariableCS()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-sleepconditionvariablecs

Note
This function is present only in Windows Vista or later
Parameters
ConditionVariableA pointer to the condition variable.
CriticalSectionA pointer to the critical section object.
dwMillisecondsThe number of milliseconds to wait before the operation times out.
Returns
TRUE if the wait succeeded.

◆ SleepConditionVariableSRW()

uint_t BURGER_API Burger::Win32::SleepConditionVariableSRW ( _RTL_CONDITION_VARIABLE * ConditionVariable,
_RTL_SRWLOCK * SRWLock,
uint32_t dwMilliseconds,
uint32_t Flags )
extern

Load in kernel32.dll and call SleepConditionVariableSRW.


Manually load kernel32.dll if needed and call the Windows function SleepConditionVariableSRW()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-sleepconditionvariablesrw

Note
This function is present only in Windows Vista or later
Parameters
ConditionVariableA pointer to the condition variable.
SRWLockA pointer to the lock
dwMillisecondsThe number of milliseconds to wait before the operation times out.
FlagsFlags to share the lock
Returns
TRUE if the wait succeeded.

◆ throw_thread_naming_exception()

void BURGER_API Burger::Win32::throw_thread_naming_exception ( uint32_t uThreadID,
const char * pThreadName )
extern

Send an exception to the debugger to name this thread.


On Windows, to change the name of a thread, an exception is thrown that is captured by the debugger. A test will be performed if the debugger is attached and if so, the exception is thrown.

Note
If this exception is interfering with C# or other high level code, set the eHintFlags kHintWin32DisableThreadNamingException to disable this function.

More reading: https://learn.microsoft.com/en-us/visualstudio/debugger/how-to-set-a-thread-name-in-native-code?view=vs-2022

See also
get_hintflags(), or kHintWin32DisableThreadNamingException

◆ timeGetTime()

uint32_t BURGER_API Burger::Win32::timeGetTime ( void )
extern

Load in winmm.dll and call timeGetTime.


Manually load winmm.dll if needed and call the Windows function timeGetTime()

http://msdn.microsoft.com/en-us/library/dd757629(v=vs.85).aspx

Returns
Time in milliseconds

◆ TrackMouseEvent()

BOOL BURGER_API Burger::Win32::TrackMouseEvent ( tagTRACKMOUSEEVENT * pEventTrack)
extern

Load in user32.dll and call TrackMouseEvent.


Manually load user32.dll if needed and call the Windows function TrackMouseEvent()

On versions of windows that do not have TrackMouseEvent(), use a compatibility function that performs the same task

https://msdn.microsoft.com/en-us/library/windows/desktop/ms646265(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pEventTrackA pointer to a TRACKMOUSEEVENT structure that contains tracking information.
Returns
If the function succeeds, the return value is nonzero.

◆ TryAcquireSRWLockExclusive()

uint_t BURGER_API Burger::Win32::TryAcquireSRWLockExclusive ( _RTL_SRWLOCK * pSRWLock)
extern

Load in kernel32.dll and call TryAcquireSRWLockExclusive.


Manually load kernel32.dll if needed and call the Windows function TryAcquireSRWLockExclusive()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-tryacquiresrwlockexclusive

Note
This function is present only in Windows 7 or later
Parameters
pSRWLockA pointer to the SRW lock
Returns
0 on failure, non-zero on acquiring the lock

◆ UuidCreateSequential()

RPC_STATUS BURGER_API Burger::Win32::UuidCreateSequential ( GUID * pOutput)
extern

Load in rpcrt4.dll and call UuidCreateSequential.


Manually load rpcrt4.dll if needed and call the Windows function UuidCreateSequential()

http://msdn.microsoft.com/en-us/library/windows/desktop/aa379322(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/aa378645(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pOutputA pointer to an uninitialized GUID.
Returns
Zero for success or List of error codes

◆ VerQueryValueA()

BOOL BURGER_API Burger::Win32::VerQueryValueA ( const void * pBlock,
const char * pSubBlock,
void ** ppBuffer,
uint_t * pLen )
extern

Load in version.dll and call VerQueryValueA.


Manually load version.dll if needed and call the Windows function VerQueryValueA()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647464(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pBlockThe version-information resource returned by the GetFileVersionInfo function.
pSubBlockA pointer to the version-information value to be retrieved.
ppBufferA pointer that contains the address of a pointer to the requested version information in the buffer pointed to by pBlock.
pLenThe size of the buffer pointed to by lplpBuffer, in bytes.
Returns
Returns TRUE if successful, or FALSE otherwise.

◆ VerQueryValueW()

BOOL BURGER_API Burger::Win32::VerQueryValueW ( const void * pBlock,
const uint16_t * pSubBlock,
void ** ppBuffer,
uint_t * pLen )
extern

Load in version.dll and call VerQueryValueW.


Manually load version.dll if needed and call the Windows function VerQueryValueW()

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647464(v=vs.85).aspx

Note
This is only available on Windows
Parameters
pBlockThe version-information resource returned by the GetFileVersionInfo function.
pSubBlockA pointer to the version-information value to be retrieved.
ppBufferA pointer that contains the address of a pointer to the requested version information in the buffer pointed to by pBlock.
pLenThe size of the buffer pointed to by lplpBuffer, in bytes.
Returns
Returns TRUE if successful, or FALSE otherwise.

◆ WaitOnAddress()

uint_t BURGER_API Burger::Win32::WaitOnAddress ( volatile void * Address,
void * CompareAddress,
uintptr_t AddressSize,
uint32_t dwMilliseconds )
extern

Load in Synch-l1-2-0.dll and call WaitOnAddress.


Manually load Synch-l1-2-0.dll if needed and call the Windows function WaitOnAddress()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitonaddress

Note
This function is present only in Windows 8 or later
Parameters
AddressThe address on which to wait.
CompareAddressA pointer to the location of the previously observed value at Address
AddressSizeThe size of the value, in bytes.
dwMillisecondsThe number of milliseconds to wait before the operation times out.
Returns
TRUE if the wait succeeded.

◆ WakeAllConditionVariable()

void BURGER_API Burger::Win32::WakeAllConditionVariable ( _RTL_CONDITION_VARIABLE * ConditionVariable)
extern

Load in kernel32.dll and call WakeAllConditionVariable.


Manually load kernel32.dll if needed and call the Windows function WakeAllConditionVariable()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-wakeallconditionvariable

Note
This function is present only in Windows Vista or later
Parameters
ConditionVariableA pointer to the condition variable.

◆ WakeByAddressSingle()

void BURGER_API Burger::Win32::WakeByAddressSingle ( void * Address)
extern

Load in Synch-l1-2-0.dll and call WakeByAddressSingle.


Manually load Synch-l1-2-0.dll if needed and call the Windows function WakeByAddressSingle()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-wakebyaddresssingle

Note
This function is present only in Windows 8 or later
Parameters
AddressThe address to signal

◆ WakeConditionVariable()

void BURGER_API Burger::Win32::WakeConditionVariable ( _RTL_CONDITION_VARIABLE * ConditionVariable)
extern

Load in kernel32.dll and call WakeConditionVariable.


Manually load kernel32.dll if needed and call the Windows function WakeConditionVariable()

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-wakeconditionvariable

Note
This function is present only in Windows Vista or later
Parameters
ConditionVariableA pointer to the condition variable.

◆ XAudio2Create()

HRESULT Burger::Win32::XAudio2Create ( IXAudio2 ** ppXAudio2,
uint_t Flags = 0,
uint_t XAudio2Processor = 0x00000001 )
extern

XAudio2Create() for older compilers.


To allow maximum compatibility, this function will manually load xaudio2_9.dll, xaudio2_8.dll, up to xaudio2_7.dll and stop when one is found.

It will then invoke XAudio2CreateWithVersionInfo() or XAudio2Create()

Note
This is only available on Windows
Parameters
ppXAudio2Address of a variable that will receive the IXAudio2 instance
FlagsFlags to pass to XAudio2Create()
XAudio2ProcessorValue to pass to XAudio2Create()
Returns
DD_OK if no error. Any other value means an error occurred

◆ XInputEnable()

void BURGER_API Burger::Win32::XInputEnable ( uint_t bEnable)
extern

Load in xinput1_4.dll and call XInputEnable.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputEnable if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputenable(v=vs.85).aspx

Note
This is only available on Windows
Parameters
bEnableIf enable is FALSE, XInput will only send neutral data in response to XInputGetState() (all buttons up, axes centered, and triggers at 0). Sending any value other than FALSE will restore reading and writing functionality to normal.

◆ XInputGetAudioDeviceIds()

uint32_t BURGER_API Burger::Win32::XInputGetAudioDeviceIds ( uint32_t dwUserIndex,
uint16_t * pRenderDeviceId,
uint_t * pRenderCount,
uint16_t * pCaptureDeviceId,
uint_t * pCaptureCount )
extern

Load in xinput1_4.dll and call XInputGetAudioDeviceIds.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputGetAudioDeviceIds if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputgetaudiodeviceids(v=vs.85).aspx

Note
This function is only available as of Windows 8 (DLL XInput 1.4 or later)
This is only available on Windows
Parameters
dwUserIndexIndex of the gamer associated with the device.
pRenderDeviceIdPointer that receives Windows Core Audio device ID string for render (speakers).
pRenderCountPointer that receives the size, in wide-chars, of the render device ID string buffer.
pCaptureDeviceIdPointer that receives Windows Core Audio device ID string for capture (microphone).
pCaptureCountPointer that receives the size, in wide-chars, of capture device ID string buffer.
Returns
Zero if no error. Any other value means an error occurred, ERROR_CALL_NOT_IMPLEMENTED means the function was not found

◆ XInputGetBatteryInformation()

uint32_t BURGER_API Burger::Win32::XInputGetBatteryInformation ( uint32_t dwUserIndex,
uint8_t devType,
_XINPUT_BATTERY_INFORMATION * pBatteryInformation )
extern

Load in xinput1_4.dll and call XInputGetBatteryInformation.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputGetBatteryInformation if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputgetbatteryinformation(v=vs.85).aspx

Note
This is only available on Windows
Parameters
dwUserIndexIndex of the signed-in gamer associated with the device. Can be a value in the range 0-XUSER_MAX_COUNT - 1.
devTypeInput Specifies which device associated with this user index should be queried. Must be BATTERY_DEVTYPE_GAMEPAD or BATTERY_DEVTYPE_HEADSET.
pBatteryInformationPointer to an _XINPUT_BATTERY_INFORMATION structure that receives the battery information.
Returns
Zero if no error. Any other value means an error occurred, ERROR_CALL_NOT_IMPLEMENTED means the function was not found

◆ XInputGetCapabilities()

uint32_t BURGER_API Burger::Win32::XInputGetCapabilities ( uint32_t dwUserIndex,
uint32_t dwFlags,
_XINPUT_CAPABILITIES * pCapabilities )
extern

Load in xinput1_4.dll and call XInputGetCapabilities.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputGetCapabilities if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputgetcapabilities(v=vs.85).aspx

Note
This is only available on Windows
Parameters
dwUserIndexIndex of the user's controller. Can be a value from 0 to 3.
dwFlagsInput flags that identify the controller type. If this value is 0, then the capabilities of all controllers connected to the system are returned.
pCapabilitiesPointer to an XINPUT_CAPABILITIES structure that receives the controller capabilities.
Returns
Zero if no error. Any other value means an error occurred, ERROR_CALL_NOT_IMPLEMENTED means the function was not found

◆ XInputGetDSoundAudioDeviceGuids()

uint32_t BURGER_API Burger::Win32::XInputGetDSoundAudioDeviceGuids ( uint32_t dwUserIndex,
GUID * pDSoundRenderGuid,
GUID * pDSoundCaptureGuid )
extern

Load in xinput1_4.dll and call XInputGetDSoundAudioDeviceGuids.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputGetDSoundAudioDeviceGuids if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputgetdsoundaudiodeviceguids(v=vs.85).aspx

Note
This function is deprecated as of Windows 8 (DLL XInput 1.4 or later)
This is only available on Windows
Parameters
dwUserIndexIndex of the user's controller. Can be a value from 0 to 3.
pDSoundRenderGuidPointer that receives the GUID of the headset sound rendering device.
pDSoundCaptureGuidPointer that receives the GUID of the headset sound capture device.
Returns
Zero if no error. Any other value means an error occurred, ERROR_CALL_NOT_IMPLEMENTED means the function was not found

◆ XInputGetKeystroke()

uint32_t BURGER_API Burger::Win32::XInputGetKeystroke ( uint32_t dwUserIndex,
uint32_t dwReserved,
_XINPUT_KEYSTROKE * pKeystroke )
extern

Load in xinput1_4.dll and call XInputGetKeystroke.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputGetKeystroke if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputgetkeystroke(v=vs.85).aspx

Note
This is only available on Windows
Parameters
dwUserIndexIndex of the signed-in gamer associated with the device. Can be a value in the range 0-XUSER_MAX_COUNT - 1 or XUSER_INDEX_ANY to fetch the next available input event from any user.
dwReservedSet to zero.
pKeystrokePointer to an XINPUT_KEYSTROKE structure that receives an input event.
Returns
Zero if no error. Any other value means an error occurred, ERROR_CALL_NOT_IMPLEMENTED means the function was not found

◆ XInputGetState()

uint32_t BURGER_API Burger::Win32::XInputGetState ( uint32_t dwUserIndex,
_XINPUT_STATE * pState )
extern

Load in xinput1_4.dll and call XInputGetState.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputGetState if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputgetstate(v=vs.85).aspx

Note
This is only available on Windows
Parameters
dwUserIndexIndex of the user's controller. Can be a value from 0 to 3.
pStatePointer to an XINPUT_STATE structure that receives the current state of the controller.
Returns
Zero if no error. Any other value means an error occurred, ERROR_CALL_NOT_IMPLEMENTED means the function was not found

◆ XInputSetState()

uint32_t BURGER_API Burger::Win32::XInputSetState ( uint32_t dwUserIndex,
_XINPUT_VIBRATION * pVibration )
extern

Load in xinput1_4.dll and call XInputSetState.


To allow maximum compatibility, this function will manually load xinput1_4.dll or xinput1_3.dll and then invoke XInputSetState if present.

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinputsetstate(v=vs.85).aspx

Note
This is only available on Windows
Parameters
dwUserIndexIndex of the user's controller. Can be a value from 0 to 3.
pVibrationPointer to an XINPUT_VIBRATION structure containing the vibration information to send to the controller.
Returns
Zero if no error. Any other value means an error occurred, ERROR_CALL_NOT_IMPLEMENTED means the function was not found