#ifndef PDK_INCLUDE_H #define PDK_INCLUDE_H #include "dll/base.h" typedef void* (__cdecl* InterfaceMaker)(HSteamUser hSteamUser, HSteamPipe hSteamPipe); class PDK { static inline std::map interfaceMap; public: static void LoadPlugin(void* handle); static void UnLoadPlugin(void* handle); /// /// Registering from the Maker /// /// /// /// 0 for success, 1 if failed static int RegisterInterface(InterfaceMaker interfaceMakePtr, const char* interfaceVersion); /// /// Unregistering from the Maker /// /// /// 0 for success, 1 if failed static int UnRegisterInterface(InterfaceMaker interfaceMakePtr); /// /// Make Registered interface /// /// /// /// /// nullptr if not found, a vaild pointer to the interface static void* MakeInterface(HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char* interfaceVersion); /// /// Get PDK Version /// /// static int GetPDKVersion(); }; #endif //PDK_INCLUDE_H