Files
BlitzSteam/Helper.cpp
T

35 lines
1.2 KiB
C++
Raw Normal View History

2015-06-06 14:33:52 +02:00
#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")