aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDedicatedTest/sourceinterface.h
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-07-11 20:17:11 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-07-11 20:17:11 +0100
commit51d3d4a40c8579e29571bc80d35bbb62fa50661b (patch)
tree08d690a887e98c8110e9b76b2d4927a4bdc7afdc /NorthstarDedicatedTest/sourceinterface.h
parent4c4d605d10109e02708984755405bbe0947ef5c4 (diff)
downloadNorthstarLauncher-51d3d4a40c8579e29571bc80d35bbb62fa50661b.tar.gz
NorthstarLauncher-51d3d4a40c8579e29571bc80d35bbb62fa50661b.zip
add temp console support
Diffstat (limited to 'NorthstarDedicatedTest/sourceinterface.h')
-rw-r--r--NorthstarDedicatedTest/sourceinterface.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/NorthstarDedicatedTest/sourceinterface.h b/NorthstarDedicatedTest/sourceinterface.h
index bc4767f5..b6e9b92a 100644
--- a/NorthstarDedicatedTest/sourceinterface.h
+++ b/NorthstarDedicatedTest/sourceinterface.h
@@ -1,5 +1,6 @@
#pragma once
#include <string>
+#include "tier0.h"
// literally just copied from ttf2sdk definition
typedef void* (*CreateInterfaceFn)(const char* pName, int* pReturnCode);
@@ -10,7 +11,14 @@ private:
T* m_interface;
public:
- SourceInterface(const std::string& moduleName, const std::string& interfaceName);
+ SourceInterface(const std::string& moduleName, const std::string& interfaceName)
+ {
+ HMODULE handle = GetModuleHandleA(moduleName.c_str());
+ CreateInterfaceFn createInterface = (CreateInterfaceFn)GetProcAddress(handle, "CreateInterface");
+ m_interface = (T*)createInterface(interfaceName.c_str(), NULL);
+ if (m_interface == nullptr)
+ Error("Failed to call CreateInterface for %s in %s", interfaceName, moduleName);
+ }
T* operator->() const
{
@@ -21,4 +29,4 @@ public:
{
return m_interface;
}
-};
+}; \ No newline at end of file