1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#ifndef STEAMCALLBACKS_H
#define STEAMCALLBACKS_H
#include "steam/steam_api.h"
template <class P>
class SteamCallback : CCallbackBase {
void (*callback)(P*);
public:
SteamCallback(void (*func)(P *)) : callback(func) {
m_iCallback = P::k_iCallback;
SteamAPI_RegisterCallback(this, P::k_iCallback);
}
~SteamCallback() {
SteamAPI_UnregisterCallback(this);
}
protected:
virtual void Run(void *param) {
callback((P *) param);
}
virtual void Run( void *param, bool, SteamAPICall_t ) {
callback((P *) param);
}
int GetCallbackSizeBytes() {
return sizeof(P);
}
};
#endif
|