#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