78c27c54f3
- Steam API - SteamAppList API - SteamApps API - SteamController API (work-in-progress) - SteamClient API
35 lines
1.2 KiB
C++
35 lines
1.2 KiB
C++
#include "dllmain.h"
|
|
#include "Libraries/BlitzPointer.h"
|
|
|
|
// Callbacks
|
|
class BlitzSteamCallback : CCallbackBase {
|
|
public:
|
|
uint32_t blitzFunctionPointer;
|
|
|
|
virtual void Run(void *pvParam) {
|
|
BlitzPointer_CallFunction4((uint32_t)blitzFunctionPointer, (uint32_t)pvParam, 0, 0, 0);
|
|
}
|
|
|
|
virtual void Run(void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall) {
|
|
BlitzPointer_CallFunction4((uint32_t)blitzFunctionPointer, (uint32_t)pvParam, bIOFailure, (uint32_t)(hSteamAPICall & 0xFFFFFFFF), (uint32_t)(hSteamAPICall >> 32));
|
|
}
|
|
|
|
virtual int GetCallbackSizeBytes() {
|
|
return sizeof(BlitzSteamCallback);
|
|
}
|
|
};
|
|
|
|
DLL_EXPORT void* BlitzSteam_CreateCallback(uint32_t fpFunctionPointer) {
|
|
BlitzSteamCallback* lpBSCallback = new BlitzSteamCallback();
|
|
lpBSCallback->blitzFunctionPointer = fpFunctionPointer;
|
|
return lpBSCallback;
|
|
}
|
|
#pragma comment(linker, "/EXPORT:BlitzSteam_CreateCallback=_BlitzSteam_CreateCallback@4")
|
|
|
|
DLL_EXPORT void BlitzSteam_DestroyCallback(uint32_t lpCallback) {
|
|
BlitzSteamCallback* lpBSCallback = (BlitzSteamCallback*)lpCallback;
|
|
if (lpBSCallback != nullptr) {
|
|
delete lpBSCallback;
|
|
}
|
|
}
|
|
#pragma comment(linker, "/EXPORT:BlitzSteam_DestroyCallback=_BlitzSteam_DestroyCallback@4") |