diff --git a/vrclient_x64/gen_wrapper.py b/vrclient_x64/gen_wrapper.py
index 3f3c317a..6deb7bff 100755
--- a/vrclient_x64/gen_wrapper.py
+++ b/vrclient_x64/gen_wrapper.py
@@ -650,15 +650,22 @@ def handle_method_cpp(method, classname, cppname, cpp):
     cpp.write("}\n\n")
 
 
+def handle_thiscall_wrapper(klass, method, cfile):
+    returns_record = method.result_type.get_canonical().kind == TypeKind.RECORD
+
+    def param_stack_size(param):
+        if param.type.kind == TypeKind.LVALUEREFERENCE: return 4
+        return ((param.type.get_size() + 3) // 4) * 4
+
+    size = 4 + sum(param_stack_size(p) for p in method.get_arguments())
+    if returns_record: size += 4
+
+    name = f'win{klass.spelling}_{klass.version}_{method.name}'
+    cfile.write(f'DEFINE_THISCALL_WRAPPER({name}, {size})\n')
+
+
 def handle_method_c(method, classname, winclassname, cppname, iface_version, cfile):
     returns_record = method.result_type.get_canonical().kind == TypeKind.RECORD
-    if returns_record:
-        parambytes = 8 #_this + return pointer
-    else:
-        parambytes = 4 #_this
-    for param in method.get_arguments():
-        parambytes += param.type.get_size()
-    cfile.write("DEFINE_THISCALL_WRAPPER(%s_%s, %s)\n" % (winclassname, method.name, parambytes))
     if strip_ns(method.result_type.spelling).startswith("IVR"):
         cfile.write("win%s " % (strip_ns(method.result_type.spelling)))
     elif returns_record:
@@ -850,6 +857,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(vrclient);
             break
     cfile.write("} %s;\n\n" % winclassname)
 
+    for method in klass.methods:
+        handle_thiscall_wrapper(klass, method, cfile)
+    cfile.write('\n')
+
     for method in klass.methods:
         if type(method) is Destructor:
             continue
diff --git a/vrclient_x64/vrclient_x64/winIVRApplications.c b/vrclient_x64/vrclient_x64/winIVRApplications.c
index 881db005..ae6be503 100644
--- a/vrclient_x64/vrclient_x64/winIVRApplications.c
+++ b/vrclient_x64/vrclient_x64/winIVRApplications.c
@@ -25,7 +25,28 @@ typedef struct __winIVRApplications_IVRApplications_001 {
     void *linux_side;
 } winIVRApplications_IVRApplications_001;
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_AddApplicationManifest, 9)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_AddApplicationManifest, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_RemoveApplicationManifest, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_IsApplicationInstalled, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationKeyByIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationKeyByProcessId, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_LaunchApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_LaunchDashboardOverlay, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_IdentifyApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationProcessId, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationPropertyString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationPropertyBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetHomeApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_SetHomeApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_SetApplicationAutoLaunch, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationAutoLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetStartingApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetTransitionState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_PerformApplicationPrelaunchCheck, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationsTransitionStateNameFromEnum, 8)
+
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_AddApplicationManifest(winIVRApplications_IVRApplications_001 *_this, const char * pchApplicationManifestFullPath, bool bTemporary)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -34,7 +55,6 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_AddApplica
     return cppIVRApplications_IVRApplications_001_AddApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL, bTemporary);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_RemoveApplicationManifest, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_RemoveApplicationManifest(winIVRApplications_IVRApplications_001 *_this, const char * pchApplicationManifestFullPath)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -43,133 +63,114 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_RemoveAppl
     return cppIVRApplications_IVRApplications_001_RemoveApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_IsApplicationInstalled, 8)
 bool __thiscall winIVRApplications_IVRApplications_001_IsApplicationInstalled(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_IsApplicationInstalled(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationCount, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_001_GetApplicationCount(winIVRApplications_IVRApplications_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationKeyByIndex, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_GetApplicationKeyByIndex(winIVRApplications_IVRApplications_001 *_this, uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationKeyByIndex(_this->linux_side, unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationKeyByProcessId, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_GetApplicationKeyByProcessId(winIVRApplications_IVRApplications_001 *_this, uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationKeyByProcessId(_this->linux_side, unProcessId, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_LaunchApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_LaunchApplication(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_LaunchApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_LaunchDashboardOverlay, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_LaunchDashboardOverlay(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_LaunchDashboardOverlay(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_IdentifyApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_IdentifyApplication(winIVRApplications_IVRApplications_001 *_this, uint32_t unProcessId, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_IdentifyApplication(_this->linux_side, unProcessId, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationProcessId, 8)
 uint32_t __thiscall winIVRApplications_IVRApplications_001_GetApplicationProcessId(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationProcessId(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationsErrorNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_001_GetApplicationsErrorNameFromEnum(winIVRApplications_IVRApplications_001 *_this, EVRApplicationError error)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationsErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationPropertyString, 24)
 uint32_t __thiscall winIVRApplications_IVRApplications_001_GetApplicationPropertyString(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationPropertyString(_this->linux_side, pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationPropertyBool, 16)
 bool __thiscall winIVRApplications_IVRApplications_001_GetApplicationPropertyBool(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationPropertyBool(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetHomeApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_GetHomeApplication(winIVRApplications_IVRApplications_001 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetHomeApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_SetHomeApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_SetHomeApplication(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_SetHomeApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_SetApplicationAutoLaunch, 9)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_SetApplicationAutoLaunch(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey, bool bAutoLaunch)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_SetApplicationAutoLaunch(_this->linux_side, pchAppKey, bAutoLaunch);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationAutoLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_001_GetApplicationAutoLaunch(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetApplicationAutoLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetStartingApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_GetStartingApplication(winIVRApplications_IVRApplications_001 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetStartingApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetTransitionState, 4)
 EVRApplicationTransitionState __thiscall winIVRApplications_IVRApplications_001_GetTransitionState(winIVRApplications_IVRApplications_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_GetTransitionState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_PerformApplicationPrelaunchCheck, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_001_PerformApplicationPrelaunchCheck(winIVRApplications_IVRApplications_001 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_001_PerformApplicationPrelaunchCheck(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_001_GetApplicationsTransitionStateNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_001_GetApplicationsTransitionStateNameFromEnum(winIVRApplications_IVRApplications_001 *_this, EVRApplicationTransitionState state)
 {
     TRACE("%p\n", _this);
@@ -275,7 +276,27 @@ typedef struct __winIVRApplications_IVRApplications_002 {
     void *linux_side;
 } winIVRApplications_IVRApplications_002;
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_AddApplicationManifest, 9)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_AddApplicationManifest, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_RemoveApplicationManifest, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_IsApplicationInstalled, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationKeyByIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationKeyByProcessId, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_LaunchApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_LaunchDashboardOverlay, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_IdentifyApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationProcessId, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationPropertyString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationPropertyBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_SetApplicationAutoLaunch, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationAutoLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetStartingApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetTransitionState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_PerformApplicationPrelaunchCheck, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationsTransitionStateNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_IsQuitUserPromptRequested, 4)
+
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_AddApplicationManifest(winIVRApplications_IVRApplications_002 *_this, const char * pchApplicationManifestFullPath, bool bTemporary)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -284,7 +305,6 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_AddApplica
     return cppIVRApplications_IVRApplications_002_AddApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL, bTemporary);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_RemoveApplicationManifest, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_RemoveApplicationManifest(winIVRApplications_IVRApplications_002 *_this, const char * pchApplicationManifestFullPath)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -293,126 +313,108 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_RemoveAppl
     return cppIVRApplications_IVRApplications_002_RemoveApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_IsApplicationInstalled, 8)
 bool __thiscall winIVRApplications_IVRApplications_002_IsApplicationInstalled(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_IsApplicationInstalled(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationCount, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_002_GetApplicationCount(winIVRApplications_IVRApplications_002 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationKeyByIndex, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_GetApplicationKeyByIndex(winIVRApplications_IVRApplications_002 *_this, uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationKeyByIndex(_this->linux_side, unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationKeyByProcessId, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_GetApplicationKeyByProcessId(winIVRApplications_IVRApplications_002 *_this, uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationKeyByProcessId(_this->linux_side, unProcessId, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_LaunchApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_LaunchApplication(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_LaunchApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_LaunchDashboardOverlay, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_LaunchDashboardOverlay(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_LaunchDashboardOverlay(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_IdentifyApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_IdentifyApplication(winIVRApplications_IVRApplications_002 *_this, uint32_t unProcessId, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_IdentifyApplication(_this->linux_side, unProcessId, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationProcessId, 8)
 uint32_t __thiscall winIVRApplications_IVRApplications_002_GetApplicationProcessId(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationProcessId(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationsErrorNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_002_GetApplicationsErrorNameFromEnum(winIVRApplications_IVRApplications_002 *_this, EVRApplicationError error)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationsErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationPropertyString, 24)
 uint32_t __thiscall winIVRApplications_IVRApplications_002_GetApplicationPropertyString(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationPropertyString(_this->linux_side, pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationPropertyBool, 16)
 bool __thiscall winIVRApplications_IVRApplications_002_GetApplicationPropertyBool(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationPropertyBool(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_SetApplicationAutoLaunch, 9)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_SetApplicationAutoLaunch(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey, bool bAutoLaunch)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_SetApplicationAutoLaunch(_this->linux_side, pchAppKey, bAutoLaunch);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationAutoLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_002_GetApplicationAutoLaunch(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationAutoLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetStartingApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_GetStartingApplication(winIVRApplications_IVRApplications_002 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetStartingApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetTransitionState, 4)
 EVRApplicationTransitionState __thiscall winIVRApplications_IVRApplications_002_GetTransitionState(winIVRApplications_IVRApplications_002 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetTransitionState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_PerformApplicationPrelaunchCheck, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_002_PerformApplicationPrelaunchCheck(winIVRApplications_IVRApplications_002 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_PerformApplicationPrelaunchCheck(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_GetApplicationsTransitionStateNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_002_GetApplicationsTransitionStateNameFromEnum(winIVRApplications_IVRApplications_002 *_this, EVRApplicationTransitionState state)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_002_GetApplicationsTransitionStateNameFromEnum(_this->linux_side, state);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_002_IsQuitUserPromptRequested, 4)
 bool __thiscall winIVRApplications_IVRApplications_002_IsQuitUserPromptRequested(winIVRApplications_IVRApplications_002 *_this)
 {
     TRACE("%p\n", _this);
@@ -516,7 +518,28 @@ typedef struct __winIVRApplications_IVRApplications_003 {
     void *linux_side;
 } winIVRApplications_IVRApplications_003;
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_AddApplicationManifest, 9)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_AddApplicationManifest, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_RemoveApplicationManifest, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_IsApplicationInstalled, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationKeyByIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationKeyByProcessId, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_LaunchApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_LaunchDashboardOverlay, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_IdentifyApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationProcessId, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationPropertyString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationPropertyBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationPropertyUint64, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_SetApplicationAutoLaunch, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationAutoLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetStartingApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetTransitionState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_PerformApplicationPrelaunchCheck, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationsTransitionStateNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_IsQuitUserPromptRequested, 4)
+
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_AddApplicationManifest(winIVRApplications_IVRApplications_003 *_this, const char * pchApplicationManifestFullPath, bool bTemporary)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -525,7 +548,6 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_AddApplica
     return cppIVRApplications_IVRApplications_003_AddApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL, bTemporary);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_RemoveApplicationManifest, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_RemoveApplicationManifest(winIVRApplications_IVRApplications_003 *_this, const char * pchApplicationManifestFullPath)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -534,133 +556,114 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_RemoveAppl
     return cppIVRApplications_IVRApplications_003_RemoveApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_IsApplicationInstalled, 8)
 bool __thiscall winIVRApplications_IVRApplications_003_IsApplicationInstalled(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_IsApplicationInstalled(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationCount, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_003_GetApplicationCount(winIVRApplications_IVRApplications_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationKeyByIndex, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_GetApplicationKeyByIndex(winIVRApplications_IVRApplications_003 *_this, uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationKeyByIndex(_this->linux_side, unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationKeyByProcessId, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_GetApplicationKeyByProcessId(winIVRApplications_IVRApplications_003 *_this, uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationKeyByProcessId(_this->linux_side, unProcessId, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_LaunchApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_LaunchApplication(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_LaunchApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_LaunchDashboardOverlay, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_LaunchDashboardOverlay(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_LaunchDashboardOverlay(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_IdentifyApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_IdentifyApplication(winIVRApplications_IVRApplications_003 *_this, uint32_t unProcessId, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_IdentifyApplication(_this->linux_side, unProcessId, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationProcessId, 8)
 uint32_t __thiscall winIVRApplications_IVRApplications_003_GetApplicationProcessId(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationProcessId(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationsErrorNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_003_GetApplicationsErrorNameFromEnum(winIVRApplications_IVRApplications_003 *_this, EVRApplicationError error)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationsErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationPropertyString, 24)
 uint32_t __thiscall winIVRApplications_IVRApplications_003_GetApplicationPropertyString(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationPropertyString(_this->linux_side, pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationPropertyBool, 16)
 bool __thiscall winIVRApplications_IVRApplications_003_GetApplicationPropertyBool(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationPropertyBool(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationPropertyUint64, 16)
 uint64_t __thiscall winIVRApplications_IVRApplications_003_GetApplicationPropertyUint64(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationPropertyUint64(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_SetApplicationAutoLaunch, 9)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_SetApplicationAutoLaunch(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey, bool bAutoLaunch)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_SetApplicationAutoLaunch(_this->linux_side, pchAppKey, bAutoLaunch);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationAutoLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_003_GetApplicationAutoLaunch(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationAutoLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetStartingApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_GetStartingApplication(winIVRApplications_IVRApplications_003 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetStartingApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetTransitionState, 4)
 EVRApplicationTransitionState __thiscall winIVRApplications_IVRApplications_003_GetTransitionState(winIVRApplications_IVRApplications_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetTransitionState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_PerformApplicationPrelaunchCheck, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_003_PerformApplicationPrelaunchCheck(winIVRApplications_IVRApplications_003 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_PerformApplicationPrelaunchCheck(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_GetApplicationsTransitionStateNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_003_GetApplicationsTransitionStateNameFromEnum(winIVRApplications_IVRApplications_003 *_this, EVRApplicationTransitionState state)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_003_GetApplicationsTransitionStateNameFromEnum(_this->linux_side, state);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_003_IsQuitUserPromptRequested, 4)
 bool __thiscall winIVRApplications_IVRApplications_003_IsQuitUserPromptRequested(winIVRApplications_IVRApplications_003 *_this)
 {
     TRACE("%p\n", _this);
@@ -766,7 +769,30 @@ typedef struct __winIVRApplications_IVRApplications_004 {
     void *linux_side;
 } winIVRApplications_IVRApplications_004;
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_AddApplicationManifest, 9)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_AddApplicationManifest, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_RemoveApplicationManifest, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_IsApplicationInstalled, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationKeyByIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationKeyByProcessId, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_LaunchApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_LaunchDashboardOverlay, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_CancelApplicationLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_IdentifyApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationProcessId, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationPropertyString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationPropertyBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationPropertyUint64, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_SetApplicationAutoLaunch, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationAutoLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetStartingApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetTransitionState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_PerformApplicationPrelaunchCheck, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationsTransitionStateNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_IsQuitUserPromptRequested, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_LaunchInternalProcess, 16)
+
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_AddApplicationManifest(winIVRApplications_IVRApplications_004 *_this, const char * pchApplicationManifestFullPath, bool bTemporary)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -775,7 +801,6 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_AddApplica
     return cppIVRApplications_IVRApplications_004_AddApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL, bTemporary);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_RemoveApplicationManifest, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_RemoveApplicationManifest(winIVRApplications_IVRApplications_004 *_this, const char * pchApplicationManifestFullPath)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -784,147 +809,126 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_RemoveAppl
     return cppIVRApplications_IVRApplications_004_RemoveApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_IsApplicationInstalled, 8)
 bool __thiscall winIVRApplications_IVRApplications_004_IsApplicationInstalled(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_IsApplicationInstalled(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationCount, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_004_GetApplicationCount(winIVRApplications_IVRApplications_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationKeyByIndex, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_GetApplicationKeyByIndex(winIVRApplications_IVRApplications_004 *_this, uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationKeyByIndex(_this->linux_side, unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationKeyByProcessId, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_GetApplicationKeyByProcessId(winIVRApplications_IVRApplications_004 *_this, uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationKeyByProcessId(_this->linux_side, unProcessId, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_LaunchApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_LaunchApplication(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_LaunchApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_LaunchDashboardOverlay, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_LaunchDashboardOverlay(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_LaunchDashboardOverlay(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_CancelApplicationLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_004_CancelApplicationLaunch(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_CancelApplicationLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_IdentifyApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_IdentifyApplication(winIVRApplications_IVRApplications_004 *_this, uint32_t unProcessId, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_IdentifyApplication(_this->linux_side, unProcessId, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationProcessId, 8)
 uint32_t __thiscall winIVRApplications_IVRApplications_004_GetApplicationProcessId(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationProcessId(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationsErrorNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_004_GetApplicationsErrorNameFromEnum(winIVRApplications_IVRApplications_004 *_this, EVRApplicationError error)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationsErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationPropertyString, 24)
 uint32_t __thiscall winIVRApplications_IVRApplications_004_GetApplicationPropertyString(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationPropertyString(_this->linux_side, pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationPropertyBool, 16)
 bool __thiscall winIVRApplications_IVRApplications_004_GetApplicationPropertyBool(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationPropertyBool(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationPropertyUint64, 16)
 uint64_t __thiscall winIVRApplications_IVRApplications_004_GetApplicationPropertyUint64(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationPropertyUint64(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_SetApplicationAutoLaunch, 9)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_SetApplicationAutoLaunch(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey, bool bAutoLaunch)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_SetApplicationAutoLaunch(_this->linux_side, pchAppKey, bAutoLaunch);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationAutoLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_004_GetApplicationAutoLaunch(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationAutoLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetStartingApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_GetStartingApplication(winIVRApplications_IVRApplications_004 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetStartingApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetTransitionState, 4)
 EVRApplicationTransitionState __thiscall winIVRApplications_IVRApplications_004_GetTransitionState(winIVRApplications_IVRApplications_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetTransitionState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_PerformApplicationPrelaunchCheck, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_PerformApplicationPrelaunchCheck(winIVRApplications_IVRApplications_004 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_PerformApplicationPrelaunchCheck(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_GetApplicationsTransitionStateNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_004_GetApplicationsTransitionStateNameFromEnum(winIVRApplications_IVRApplications_004 *_this, EVRApplicationTransitionState state)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_GetApplicationsTransitionStateNameFromEnum(_this->linux_side, state);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_IsQuitUserPromptRequested, 4)
 bool __thiscall winIVRApplications_IVRApplications_004_IsQuitUserPromptRequested(winIVRApplications_IVRApplications_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_004_IsQuitUserPromptRequested(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_004_LaunchInternalProcess, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_004_LaunchInternalProcess(winIVRApplications_IVRApplications_004 *_this, const char * pchBinaryPath, const char * pchArguments, const char * pchWorkingDirectory)
 {
     TRACE("%p\n", _this);
@@ -1034,7 +1038,31 @@ typedef struct __winIVRApplications_IVRApplications_005 {
     void *linux_side;
 } winIVRApplications_IVRApplications_005;
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_AddApplicationManifest, 9)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_AddApplicationManifest, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_RemoveApplicationManifest, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_IsApplicationInstalled, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationKeyByIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationKeyByProcessId, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchTemplateApplication, 20)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchDashboardOverlay, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_CancelApplicationLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_IdentifyApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationProcessId, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationPropertyString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationPropertyBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationPropertyUint64, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_SetApplicationAutoLaunch, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationAutoLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetStartingApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetTransitionState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_PerformApplicationPrelaunchCheck, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationsTransitionStateNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_IsQuitUserPromptRequested, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchInternalProcess, 16)
+
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_AddApplicationManifest(winIVRApplications_IVRApplications_005 *_this, const char * pchApplicationManifestFullPath, bool bTemporary)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -1043,7 +1071,6 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_AddApplica
     return cppIVRApplications_IVRApplications_005_AddApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL, bTemporary);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_RemoveApplicationManifest, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_RemoveApplicationManifest(winIVRApplications_IVRApplications_005 *_this, const char * pchApplicationManifestFullPath)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -1052,154 +1079,132 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_RemoveAppl
     return cppIVRApplications_IVRApplications_005_RemoveApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_IsApplicationInstalled, 8)
 bool __thiscall winIVRApplications_IVRApplications_005_IsApplicationInstalled(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_IsApplicationInstalled(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationCount, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_005_GetApplicationCount(winIVRApplications_IVRApplications_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationKeyByIndex, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_GetApplicationKeyByIndex(winIVRApplications_IVRApplications_005 *_this, uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationKeyByIndex(_this->linux_side, unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationKeyByProcessId, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_GetApplicationKeyByProcessId(winIVRApplications_IVRApplications_005 *_this, uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationKeyByProcessId(_this->linux_side, unProcessId, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_LaunchApplication(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_LaunchApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchTemplateApplication, 20)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_LaunchTemplateApplication(winIVRApplications_IVRApplications_005 *_this, const char * pchTemplateAppKey, const char * pchNewAppKey, AppOverrideKeys_t * pKeys, uint32_t unKeys)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_LaunchTemplateApplication(_this->linux_side, pchTemplateAppKey, pchNewAppKey, pKeys, unKeys);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchDashboardOverlay, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_LaunchDashboardOverlay(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_LaunchDashboardOverlay(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_CancelApplicationLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_005_CancelApplicationLaunch(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_CancelApplicationLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_IdentifyApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_IdentifyApplication(winIVRApplications_IVRApplications_005 *_this, uint32_t unProcessId, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_IdentifyApplication(_this->linux_side, unProcessId, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationProcessId, 8)
 uint32_t __thiscall winIVRApplications_IVRApplications_005_GetApplicationProcessId(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationProcessId(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationsErrorNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_005_GetApplicationsErrorNameFromEnum(winIVRApplications_IVRApplications_005 *_this, EVRApplicationError error)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationsErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationPropertyString, 24)
 uint32_t __thiscall winIVRApplications_IVRApplications_005_GetApplicationPropertyString(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationPropertyString(_this->linux_side, pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationPropertyBool, 16)
 bool __thiscall winIVRApplications_IVRApplications_005_GetApplicationPropertyBool(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationPropertyBool(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationPropertyUint64, 16)
 uint64_t __thiscall winIVRApplications_IVRApplications_005_GetApplicationPropertyUint64(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationPropertyUint64(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_SetApplicationAutoLaunch, 9)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_SetApplicationAutoLaunch(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey, bool bAutoLaunch)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_SetApplicationAutoLaunch(_this->linux_side, pchAppKey, bAutoLaunch);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationAutoLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_005_GetApplicationAutoLaunch(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationAutoLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetStartingApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_GetStartingApplication(winIVRApplications_IVRApplications_005 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetStartingApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetTransitionState, 4)
 EVRApplicationTransitionState __thiscall winIVRApplications_IVRApplications_005_GetTransitionState(winIVRApplications_IVRApplications_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetTransitionState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_PerformApplicationPrelaunchCheck, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_PerformApplicationPrelaunchCheck(winIVRApplications_IVRApplications_005 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_PerformApplicationPrelaunchCheck(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_GetApplicationsTransitionStateNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_005_GetApplicationsTransitionStateNameFromEnum(winIVRApplications_IVRApplications_005 *_this, EVRApplicationTransitionState state)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_GetApplicationsTransitionStateNameFromEnum(_this->linux_side, state);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_IsQuitUserPromptRequested, 4)
 bool __thiscall winIVRApplications_IVRApplications_005_IsQuitUserPromptRequested(winIVRApplications_IVRApplications_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_005_IsQuitUserPromptRequested(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_005_LaunchInternalProcess, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_005_LaunchInternalProcess(winIVRApplications_IVRApplications_005 *_this, const char * pchBinaryPath, const char * pchArguments, const char * pchWorkingDirectory)
 {
     TRACE("%p\n", _this);
@@ -1311,7 +1316,38 @@ typedef struct __winIVRApplications_IVRApplications_006 {
     void *linux_side;
 } winIVRApplications_IVRApplications_006;
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_AddApplicationManifest, 9)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_AddApplicationManifest, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_RemoveApplicationManifest, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_IsApplicationInstalled, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationKeyByIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationKeyByProcessId, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchTemplateApplication, 20)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchApplicationFromMimeType, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchDashboardOverlay, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_CancelApplicationLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_IdentifyApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationProcessId, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationPropertyString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationPropertyBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationPropertyUint64, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_SetApplicationAutoLaunch, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationAutoLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_SetDefaultApplicationForMimeType, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetDefaultApplicationForMimeType, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationSupportedMimeTypes, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationsThatSupportMimeType, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationLaunchArguments, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetStartingApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetTransitionState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_PerformApplicationPrelaunchCheck, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationsTransitionStateNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_IsQuitUserPromptRequested, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchInternalProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetCurrentSceneProcessId, 4)
+
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_AddApplicationManifest(winIVRApplications_IVRApplications_006 *_this, const char * pchApplicationManifestFullPath, bool bTemporary)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -1320,7 +1356,6 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_AddApplica
     return cppIVRApplications_IVRApplications_006_AddApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL, bTemporary);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_RemoveApplicationManifest, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_RemoveApplicationManifest(winIVRApplications_IVRApplications_006 *_this, const char * pchApplicationManifestFullPath)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -1329,203 +1364,174 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_RemoveAppl
     return cppIVRApplications_IVRApplications_006_RemoveApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_IsApplicationInstalled, 8)
 bool __thiscall winIVRApplications_IVRApplications_006_IsApplicationInstalled(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_IsApplicationInstalled(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationCount, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_006_GetApplicationCount(winIVRApplications_IVRApplications_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationKeyByIndex, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_GetApplicationKeyByIndex(winIVRApplications_IVRApplications_006 *_this, uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationKeyByIndex(_this->linux_side, unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationKeyByProcessId, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_GetApplicationKeyByProcessId(winIVRApplications_IVRApplications_006 *_this, uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationKeyByProcessId(_this->linux_side, unProcessId, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_LaunchApplication(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_LaunchApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchTemplateApplication, 20)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_LaunchTemplateApplication(winIVRApplications_IVRApplications_006 *_this, const char * pchTemplateAppKey, const char * pchNewAppKey, AppOverrideKeys_t * pKeys, uint32_t unKeys)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_LaunchTemplateApplication(_this->linux_side, pchTemplateAppKey, pchNewAppKey, pKeys, unKeys);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchApplicationFromMimeType, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_LaunchApplicationFromMimeType(winIVRApplications_IVRApplications_006 *_this, const char * pchMimeType, const char * pchArgs)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_LaunchApplicationFromMimeType(_this->linux_side, pchMimeType, pchArgs);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchDashboardOverlay, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_LaunchDashboardOverlay(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_LaunchDashboardOverlay(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_CancelApplicationLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_006_CancelApplicationLaunch(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_CancelApplicationLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_IdentifyApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_IdentifyApplication(winIVRApplications_IVRApplications_006 *_this, uint32_t unProcessId, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_IdentifyApplication(_this->linux_side, unProcessId, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationProcessId, 8)
 uint32_t __thiscall winIVRApplications_IVRApplications_006_GetApplicationProcessId(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationProcessId(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationsErrorNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_006_GetApplicationsErrorNameFromEnum(winIVRApplications_IVRApplications_006 *_this, EVRApplicationError error)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationsErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationPropertyString, 24)
 uint32_t __thiscall winIVRApplications_IVRApplications_006_GetApplicationPropertyString(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationPropertyString(_this->linux_side, pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationPropertyBool, 16)
 bool __thiscall winIVRApplications_IVRApplications_006_GetApplicationPropertyBool(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationPropertyBool(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationPropertyUint64, 16)
 uint64_t __thiscall winIVRApplications_IVRApplications_006_GetApplicationPropertyUint64(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationPropertyUint64(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_SetApplicationAutoLaunch, 9)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_SetApplicationAutoLaunch(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey, bool bAutoLaunch)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_SetApplicationAutoLaunch(_this->linux_side, pchAppKey, bAutoLaunch);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationAutoLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_006_GetApplicationAutoLaunch(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationAutoLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_SetDefaultApplicationForMimeType, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_SetDefaultApplicationForMimeType(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey, const char * pchMimeType)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_SetDefaultApplicationForMimeType(_this->linux_side, pchAppKey, pchMimeType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetDefaultApplicationForMimeType, 16)
 bool __thiscall winIVRApplications_IVRApplications_006_GetDefaultApplicationForMimeType(winIVRApplications_IVRApplications_006 *_this, const char * pchMimeType, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetDefaultApplicationForMimeType(_this->linux_side, pchMimeType, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationSupportedMimeTypes, 16)
 bool __thiscall winIVRApplications_IVRApplications_006_GetApplicationSupportedMimeTypes(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey, char * pchMimeTypesBuffer, uint32_t unMimeTypesBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationSupportedMimeTypes(_this->linux_side, pchAppKey, pchMimeTypesBuffer, unMimeTypesBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationsThatSupportMimeType, 16)
 uint32_t __thiscall winIVRApplications_IVRApplications_006_GetApplicationsThatSupportMimeType(winIVRApplications_IVRApplications_006 *_this, const char * pchMimeType, char * pchAppKeysThatSupportBuffer, uint32_t unAppKeysThatSupportBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationsThatSupportMimeType(_this->linux_side, pchMimeType, pchAppKeysThatSupportBuffer, unAppKeysThatSupportBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationLaunchArguments, 16)
 uint32_t __thiscall winIVRApplications_IVRApplications_006_GetApplicationLaunchArguments(winIVRApplications_IVRApplications_006 *_this, uint32_t unHandle, char * pchArgs, uint32_t unArgs)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationLaunchArguments(_this->linux_side, unHandle, pchArgs, unArgs);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetStartingApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_GetStartingApplication(winIVRApplications_IVRApplications_006 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetStartingApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetTransitionState, 4)
 EVRApplicationTransitionState __thiscall winIVRApplications_IVRApplications_006_GetTransitionState(winIVRApplications_IVRApplications_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetTransitionState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_PerformApplicationPrelaunchCheck, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_PerformApplicationPrelaunchCheck(winIVRApplications_IVRApplications_006 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_PerformApplicationPrelaunchCheck(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetApplicationsTransitionStateNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_006_GetApplicationsTransitionStateNameFromEnum(winIVRApplications_IVRApplications_006 *_this, EVRApplicationTransitionState state)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_GetApplicationsTransitionStateNameFromEnum(_this->linux_side, state);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_IsQuitUserPromptRequested, 4)
 bool __thiscall winIVRApplications_IVRApplications_006_IsQuitUserPromptRequested(winIVRApplications_IVRApplications_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_IsQuitUserPromptRequested(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_LaunchInternalProcess, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_006_LaunchInternalProcess(winIVRApplications_IVRApplications_006 *_this, const char * pchBinaryPath, const char * pchArguments, const char * pchWorkingDirectory)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_006_LaunchInternalProcess(_this->linux_side, pchBinaryPath, pchArguments, pchWorkingDirectory);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_006_GetCurrentSceneProcessId, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_006_GetCurrentSceneProcessId(winIVRApplications_IVRApplications_006 *_this)
 {
     TRACE("%p\n", _this);
@@ -1651,7 +1657,37 @@ typedef struct __winIVRApplications_IVRApplications_007 {
     void *linux_side;
 } winIVRApplications_IVRApplications_007;
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_AddApplicationManifest, 9)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_AddApplicationManifest, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_RemoveApplicationManifest, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_IsApplicationInstalled, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationKeyByIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationKeyByProcessId, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchApplication, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchTemplateApplication, 20)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchApplicationFromMimeType, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchDashboardOverlay, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_CancelApplicationLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_IdentifyApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationProcessId, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationPropertyString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationPropertyBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationPropertyUint64, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_SetApplicationAutoLaunch, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationAutoLaunch, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_SetDefaultApplicationForMimeType, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetDefaultApplicationForMimeType, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationSupportedMimeTypes, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationsThatSupportMimeType, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationLaunchArguments, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetStartingApplication, 12)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetSceneApplicationState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_PerformApplicationPrelaunchCheck, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetSceneApplicationStateNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchInternalProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetCurrentSceneProcessId, 4)
+
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_AddApplicationManifest(winIVRApplications_IVRApplications_007 *_this, const char * pchApplicationManifestFullPath, bool bTemporary)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -1660,7 +1696,6 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_AddApplica
     return cppIVRApplications_IVRApplications_007_AddApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL, bTemporary);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_RemoveApplicationManifest, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_RemoveApplicationManifest(winIVRApplications_IVRApplications_007 *_this, const char * pchApplicationManifestFullPath)
 {
     char lin_pchApplicationManifestFullPath[PATH_MAX];
@@ -1669,196 +1704,168 @@ EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_RemoveAppl
     return cppIVRApplications_IVRApplications_007_RemoveApplicationManifest(_this->linux_side, pchApplicationManifestFullPath ? lin_pchApplicationManifestFullPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_IsApplicationInstalled, 8)
 bool __thiscall winIVRApplications_IVRApplications_007_IsApplicationInstalled(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_IsApplicationInstalled(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationCount, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_007_GetApplicationCount(winIVRApplications_IVRApplications_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationKeyByIndex, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_GetApplicationKeyByIndex(winIVRApplications_IVRApplications_007 *_this, uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationKeyByIndex(_this->linux_side, unApplicationIndex, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationKeyByProcessId, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_GetApplicationKeyByProcessId(winIVRApplications_IVRApplications_007 *_this, uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationKeyByProcessId(_this->linux_side, unProcessId, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchApplication, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_LaunchApplication(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_LaunchApplication(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchTemplateApplication, 20)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_LaunchTemplateApplication(winIVRApplications_IVRApplications_007 *_this, const char * pchTemplateAppKey, const char * pchNewAppKey, AppOverrideKeys_t * pKeys, uint32_t unKeys)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_LaunchTemplateApplication(_this->linux_side, pchTemplateAppKey, pchNewAppKey, pKeys, unKeys);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchApplicationFromMimeType, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_LaunchApplicationFromMimeType(winIVRApplications_IVRApplications_007 *_this, const char * pchMimeType, const char * pchArgs)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_LaunchApplicationFromMimeType(_this->linux_side, pchMimeType, pchArgs);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchDashboardOverlay, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_LaunchDashboardOverlay(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_LaunchDashboardOverlay(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_CancelApplicationLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_007_CancelApplicationLaunch(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_CancelApplicationLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_IdentifyApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_IdentifyApplication(winIVRApplications_IVRApplications_007 *_this, uint32_t unProcessId, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_IdentifyApplication(_this->linux_side, unProcessId, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationProcessId, 8)
 uint32_t __thiscall winIVRApplications_IVRApplications_007_GetApplicationProcessId(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationProcessId(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationsErrorNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_007_GetApplicationsErrorNameFromEnum(winIVRApplications_IVRApplications_007 *_this, EVRApplicationError error)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationsErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationPropertyString, 24)
 uint32_t __thiscall winIVRApplications_IVRApplications_007_GetApplicationPropertyString(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationPropertyString(_this->linux_side, pchAppKey, eProperty, pchPropertyValueBuffer, unPropertyValueBufferLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationPropertyBool, 16)
 bool __thiscall winIVRApplications_IVRApplications_007_GetApplicationPropertyBool(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationPropertyBool(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationPropertyUint64, 16)
 uint64_t __thiscall winIVRApplications_IVRApplications_007_GetApplicationPropertyUint64(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationPropertyUint64(_this->linux_side, pchAppKey, eProperty, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_SetApplicationAutoLaunch, 9)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_SetApplicationAutoLaunch(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey, bool bAutoLaunch)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_SetApplicationAutoLaunch(_this->linux_side, pchAppKey, bAutoLaunch);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationAutoLaunch, 8)
 bool __thiscall winIVRApplications_IVRApplications_007_GetApplicationAutoLaunch(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationAutoLaunch(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_SetDefaultApplicationForMimeType, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_SetDefaultApplicationForMimeType(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey, const char * pchMimeType)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_SetDefaultApplicationForMimeType(_this->linux_side, pchAppKey, pchMimeType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetDefaultApplicationForMimeType, 16)
 bool __thiscall winIVRApplications_IVRApplications_007_GetDefaultApplicationForMimeType(winIVRApplications_IVRApplications_007 *_this, const char * pchMimeType, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetDefaultApplicationForMimeType(_this->linux_side, pchMimeType, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationSupportedMimeTypes, 16)
 bool __thiscall winIVRApplications_IVRApplications_007_GetApplicationSupportedMimeTypes(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey, char * pchMimeTypesBuffer, uint32_t unMimeTypesBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationSupportedMimeTypes(_this->linux_side, pchAppKey, pchMimeTypesBuffer, unMimeTypesBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationsThatSupportMimeType, 16)
 uint32_t __thiscall winIVRApplications_IVRApplications_007_GetApplicationsThatSupportMimeType(winIVRApplications_IVRApplications_007 *_this, const char * pchMimeType, char * pchAppKeysThatSupportBuffer, uint32_t unAppKeysThatSupportBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationsThatSupportMimeType(_this->linux_side, pchMimeType, pchAppKeysThatSupportBuffer, unAppKeysThatSupportBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetApplicationLaunchArguments, 16)
 uint32_t __thiscall winIVRApplications_IVRApplications_007_GetApplicationLaunchArguments(winIVRApplications_IVRApplications_007 *_this, uint32_t unHandle, char * pchArgs, uint32_t unArgs)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetApplicationLaunchArguments(_this->linux_side, unHandle, pchArgs, unArgs);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetStartingApplication, 12)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_GetStartingApplication(winIVRApplications_IVRApplications_007 *_this, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetStartingApplication(_this->linux_side, pchAppKeyBuffer, unAppKeyBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetSceneApplicationState, 4)
 EVRSceneApplicationState __thiscall winIVRApplications_IVRApplications_007_GetSceneApplicationState(winIVRApplications_IVRApplications_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetSceneApplicationState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_PerformApplicationPrelaunchCheck, 8)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_PerformApplicationPrelaunchCheck(winIVRApplications_IVRApplications_007 *_this, const char * pchAppKey)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_PerformApplicationPrelaunchCheck(_this->linux_side, pchAppKey);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetSceneApplicationStateNameFromEnum, 8)
 const char * __thiscall winIVRApplications_IVRApplications_007_GetSceneApplicationStateNameFromEnum(winIVRApplications_IVRApplications_007 *_this, EVRSceneApplicationState state)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_GetSceneApplicationStateNameFromEnum(_this->linux_side, state);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_LaunchInternalProcess, 16)
 EVRApplicationError __thiscall winIVRApplications_IVRApplications_007_LaunchInternalProcess(winIVRApplications_IVRApplications_007 *_this, const char * pchBinaryPath, const char * pchArguments, const char * pchWorkingDirectory)
 {
     TRACE("%p\n", _this);
     return cppIVRApplications_IVRApplications_007_LaunchInternalProcess(_this->linux_side, pchBinaryPath, pchArguments, pchWorkingDirectory);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRApplications_IVRApplications_007_GetCurrentSceneProcessId, 4)
 uint32_t __thiscall winIVRApplications_IVRApplications_007_GetCurrentSceneProcessId(winIVRApplications_IVRApplications_007 *_this)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRChaperone.c b/vrclient_x64/vrclient_x64/winIVRChaperone.c
index 3d0a3729..e54f9f37 100644
--- a/vrclient_x64/vrclient_x64/winIVRChaperone.c
+++ b/vrclient_x64/vrclient_x64/winIVRChaperone.c
@@ -26,62 +26,63 @@ typedef struct __winIVRChaperone_IVRChaperone_002 {
 } winIVRChaperone_IVRChaperone_002;
 
 DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetCalibrationState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetSoftBoundsInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetHardBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetSeatedBoundsInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_ReloadInfo, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_SetSceneColor, 20)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetBoundsColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_AreBoundsVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_ForceBoundsVisible, 8)
+
 ChaperoneCalibrationState __thiscall winIVRChaperone_IVRChaperone_002_GetCalibrationState(winIVRChaperone_IVRChaperone_002 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_002_GetCalibrationState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetSoftBoundsInfo, 8)
 bool __thiscall winIVRChaperone_IVRChaperone_002_GetSoftBoundsInfo(winIVRChaperone_IVRChaperone_002 *_this, ChaperoneSoftBoundsInfo_t * pInfo)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_002_GetSoftBoundsInfo(_this->linux_side, pInfo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetHardBoundsInfo, 12)
 bool __thiscall winIVRChaperone_IVRChaperone_002_GetHardBoundsInfo(winIVRChaperone_IVRChaperone_002 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_002_GetHardBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetSeatedBoundsInfo, 8)
 bool __thiscall winIVRChaperone_IVRChaperone_002_GetSeatedBoundsInfo(winIVRChaperone_IVRChaperone_002 *_this, ChaperoneSeatedBoundsInfo_t * pInfo)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_002_GetSeatedBoundsInfo(_this->linux_side, pInfo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_ReloadInfo, 4)
 void __thiscall winIVRChaperone_IVRChaperone_002_ReloadInfo(winIVRChaperone_IVRChaperone_002 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_002_ReloadInfo(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_SetSceneColor, 20)
 void __thiscall winIVRChaperone_IVRChaperone_002_SetSceneColor(winIVRChaperone_IVRChaperone_002 *_this, HmdColor_t color)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_002_SetSceneColor(_this->linux_side, color);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_GetBoundsColor, 12)
 void __thiscall winIVRChaperone_IVRChaperone_002_GetBoundsColor(winIVRChaperone_IVRChaperone_002 *_this, HmdColor_t * pOutputColorArray, int nNumOutputColors)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_002_GetBoundsColor(_this->linux_side, pOutputColorArray, nNumOutputColors);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_AreBoundsVisible, 4)
 bool __thiscall winIVRChaperone_IVRChaperone_002_AreBoundsVisible(winIVRChaperone_IVRChaperone_002 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_002_AreBoundsVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_002_ForceBoundsVisible, 5)
 void __thiscall winIVRChaperone_IVRChaperone_002_ForceBoundsVisible(winIVRChaperone_IVRChaperone_002 *_this, bool bForce)
 {
     TRACE("%p\n", _this);
@@ -164,55 +165,56 @@ typedef struct __winIVRChaperone_IVRChaperone_003 {
 } winIVRChaperone_IVRChaperone_003;
 
 DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_GetCalibrationState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_GetPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_GetPlayAreaRect, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_ReloadInfo, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_SetSceneColor, 20)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_GetBoundsColor, 20)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_AreBoundsVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_ForceBoundsVisible, 8)
+
 ChaperoneCalibrationState __thiscall winIVRChaperone_IVRChaperone_003_GetCalibrationState(winIVRChaperone_IVRChaperone_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_003_GetCalibrationState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_GetPlayAreaSize, 12)
 bool __thiscall winIVRChaperone_IVRChaperone_003_GetPlayAreaSize(winIVRChaperone_IVRChaperone_003 *_this, float * pSizeX, float * pSizeZ)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_003_GetPlayAreaSize(_this->linux_side, pSizeX, pSizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_GetPlayAreaRect, 8)
 bool __thiscall winIVRChaperone_IVRChaperone_003_GetPlayAreaRect(winIVRChaperone_IVRChaperone_003 *_this, HmdQuad_t * rect)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_003_GetPlayAreaRect(_this->linux_side, rect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_ReloadInfo, 4)
 void __thiscall winIVRChaperone_IVRChaperone_003_ReloadInfo(winIVRChaperone_IVRChaperone_003 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_003_ReloadInfo(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_SetSceneColor, 20)
 void __thiscall winIVRChaperone_IVRChaperone_003_SetSceneColor(winIVRChaperone_IVRChaperone_003 *_this, HmdColor_t color)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_003_SetSceneColor(_this->linux_side, color);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_GetBoundsColor, 20)
 void __thiscall winIVRChaperone_IVRChaperone_003_GetBoundsColor(winIVRChaperone_IVRChaperone_003 *_this, HmdColor_t * pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, HmdColor_t * pOutputCameraColor)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_003_GetBoundsColor(_this->linux_side, pOutputColorArray, nNumOutputColors, flCollisionBoundsFadeDistance, pOutputCameraColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_AreBoundsVisible, 4)
 bool __thiscall winIVRChaperone_IVRChaperone_003_AreBoundsVisible(winIVRChaperone_IVRChaperone_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_003_AreBoundsVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_003_ForceBoundsVisible, 5)
 void __thiscall winIVRChaperone_IVRChaperone_003_ForceBoundsVisible(winIVRChaperone_IVRChaperone_003 *_this, bool bForce)
 {
     TRACE("%p\n", _this);
@@ -293,62 +295,63 @@ typedef struct __winIVRChaperone_IVRChaperone_004 {
 } winIVRChaperone_IVRChaperone_004;
 
 DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_GetCalibrationState, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_GetPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_GetPlayAreaRect, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_ReloadInfo, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_SetSceneColor, 20)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_GetBoundsColor, 20)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_AreBoundsVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_ForceBoundsVisible, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_ResetZeroPose, 8)
+
 ChaperoneCalibrationState __thiscall winIVRChaperone_IVRChaperone_004_GetCalibrationState(winIVRChaperone_IVRChaperone_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_004_GetCalibrationState(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_GetPlayAreaSize, 12)
 bool __thiscall winIVRChaperone_IVRChaperone_004_GetPlayAreaSize(winIVRChaperone_IVRChaperone_004 *_this, float * pSizeX, float * pSizeZ)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_004_GetPlayAreaSize(_this->linux_side, pSizeX, pSizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_GetPlayAreaRect, 8)
 bool __thiscall winIVRChaperone_IVRChaperone_004_GetPlayAreaRect(winIVRChaperone_IVRChaperone_004 *_this, HmdQuad_t * rect)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_004_GetPlayAreaRect(_this->linux_side, rect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_ReloadInfo, 4)
 void __thiscall winIVRChaperone_IVRChaperone_004_ReloadInfo(winIVRChaperone_IVRChaperone_004 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_004_ReloadInfo(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_SetSceneColor, 20)
 void __thiscall winIVRChaperone_IVRChaperone_004_SetSceneColor(winIVRChaperone_IVRChaperone_004 *_this, HmdColor_t color)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_004_SetSceneColor(_this->linux_side, color);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_GetBoundsColor, 20)
 void __thiscall winIVRChaperone_IVRChaperone_004_GetBoundsColor(winIVRChaperone_IVRChaperone_004 *_this, HmdColor_t * pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, HmdColor_t * pOutputCameraColor)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_004_GetBoundsColor(_this->linux_side, pOutputColorArray, nNumOutputColors, flCollisionBoundsFadeDistance, pOutputCameraColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_AreBoundsVisible, 4)
 bool __thiscall winIVRChaperone_IVRChaperone_004_AreBoundsVisible(winIVRChaperone_IVRChaperone_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperone_IVRChaperone_004_AreBoundsVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_ForceBoundsVisible, 5)
 void __thiscall winIVRChaperone_IVRChaperone_004_ForceBoundsVisible(winIVRChaperone_IVRChaperone_004 *_this, bool bForce)
 {
     TRACE("%p\n", _this);
     cppIVRChaperone_IVRChaperone_004_ForceBoundsVisible(_this->linux_side, bForce);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperone_IVRChaperone_004_ResetZeroPose, 8)
 void __thiscall winIVRChaperone_IVRChaperone_004_ResetZeroPose(winIVRChaperone_IVRChaperone_004 *_this, ETrackingUniverseOrigin eTrackingUniverseOrigin)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRChaperoneSetup.c b/vrclient_x64/vrclient_x64/winIVRChaperoneSetup.c
index 18016e15..5021a5fd 100644
--- a/vrclient_x64/vrclient_x64/winIVRChaperoneSetup.c
+++ b/vrclient_x64/vrclient_x64/winIVRChaperoneSetup.c
@@ -26,111 +26,112 @@ typedef struct __winIVRChaperoneSetup_IVRChaperoneSetup_004 {
 } winIVRChaperoneSetup_IVRChaperoneSetup_004;
 
 DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_CommitWorkingCopy, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_RevertWorkingCopy, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaRect, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingStandingZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingStandingZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_ReloadFromDisk, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingWallTagInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveWallTagInfo, 12)
+
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_CommitWorkingCopy(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, EChaperoneConfigFile configFile)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_CommitWorkingCopy(_this->linux_side, configFile);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_RevertWorkingCopy, 4)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_RevertWorkingCopy(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_004_RevertWorkingCopy(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaSize, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaSize(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, float * pSizeX, float * pSizeZ)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaSize(_this->linux_side, pSizeX, pSizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaRect, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaRect(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdQuad_t * rect)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingPlayAreaRect(_this->linux_side, rect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingCollisionBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveCollisionBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingSeatedZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingSeatedZeroPoseToRawTrackingPose(_this->linux_side, pmatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingStandingZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingStandingZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdMatrix34_t * pmatStandingZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_GetWorkingStandingZeroPoseToRawTrackingPose(_this->linux_side, pmatStandingZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingPlayAreaSize, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingPlayAreaSize(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, float sizeX, float sizeZ)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingPlayAreaSize(_this->linux_side, sizeX, sizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingCollisionBoundsInfo, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, unQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingSeatedZeroPoseToRawTrackingPose, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdMatrix34_t * pMatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingSeatedZeroPoseToRawTrackingPose(_this->linux_side, pMatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingStandingZeroPoseToRawTrackingPose, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingStandingZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdMatrix34_t * pMatStandingZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingStandingZeroPoseToRawTrackingPose(_this->linux_side, pMatStandingZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_ReloadFromDisk, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_ReloadFromDisk(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, EChaperoneConfigFile configFile)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_004_ReloadFromDisk(_this->linux_side, configFile);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveSeatedZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveSeatedZeroPoseToRawTrackingPose(_this->linux_side, pmatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingWallTagInfo, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingWallTagInfo(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, uint8_t * pTagsBuffer, uint32_t unTagCount)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_004_SetWorkingWallTagInfo(_this->linux_side, pTagsBuffer, unTagCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveWallTagInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_004_GetLiveWallTagInfo(winIVRChaperoneSetup_IVRChaperoneSetup_004 *_this, uint8_t * pTagsBuffer, uint32_t * punTagCount)
 {
     TRACE("%p\n", _this);
@@ -227,139 +228,140 @@ typedef struct __winIVRChaperoneSetup_IVRChaperoneSetup_005 {
 } winIVRChaperoneSetup_IVRChaperoneSetup_005;
 
 DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_CommitWorkingCopy, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_RevertWorkingCopy, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaRect, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingStandingZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingStandingZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_ReloadFromDisk, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsTagsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsTagsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPhysicalBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLivePhysicalBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_ExportLiveToBuffer, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_ImportFromBufferToWorking, 12)
+
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_CommitWorkingCopy(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, EChaperoneConfigFile configFile)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_CommitWorkingCopy(_this->linux_side, configFile);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_RevertWorkingCopy, 4)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_RevertWorkingCopy(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_005_RevertWorkingCopy(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaSize, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaSize(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, float * pSizeX, float * pSizeZ)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaSize(_this->linux_side, pSizeX, pSizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaRect, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaRect(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdQuad_t * rect)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingPlayAreaRect(_this->linux_side, rect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingCollisionBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingSeatedZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingSeatedZeroPoseToRawTrackingPose(_this->linux_side, pmatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingStandingZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingStandingZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdMatrix34_t * pmatStandingZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetWorkingStandingZeroPoseToRawTrackingPose(_this->linux_side, pmatStandingZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPlayAreaSize, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPlayAreaSize(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, float sizeX, float sizeZ)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPlayAreaSize(_this->linux_side, sizeX, sizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsInfo, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, unQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingSeatedZeroPoseToRawTrackingPose, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdMatrix34_t * pMatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingSeatedZeroPoseToRawTrackingPose(_this->linux_side, pMatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingStandingZeroPoseToRawTrackingPose, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingStandingZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdMatrix34_t * pMatStandingZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingStandingZeroPoseToRawTrackingPose(_this->linux_side, pMatStandingZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_ReloadFromDisk, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_ReloadFromDisk(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, EChaperoneConfigFile configFile)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_005_ReloadFromDisk(_this->linux_side, configFile);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveSeatedZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveSeatedZeroPoseToRawTrackingPose(_this->linux_side, pmatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsTagsInfo, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsTagsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, uint8_t * pTagsBuffer, uint32_t unTagCount)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingCollisionBoundsTagsInfo(_this->linux_side, pTagsBuffer, unTagCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsTagsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsTagsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, uint8_t * pTagsBuffer, uint32_t * punTagCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetLiveCollisionBoundsTagsInfo(_this->linux_side, pTagsBuffer, punTagCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPhysicalBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPhysicalBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_SetWorkingPhysicalBoundsInfo(_this->linux_side, pQuadsBuffer, unQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLivePhysicalBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_GetLivePhysicalBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_GetLivePhysicalBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_ExportLiveToBuffer, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_ExportLiveToBuffer(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, char * pBuffer, uint32_t * pnBufferLength)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_005_ExportLiveToBuffer(_this->linux_side, pBuffer, pnBufferLength);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_005_ImportFromBufferToWorking, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_005_ImportFromBufferToWorking(winIVRChaperoneSetup_IVRChaperoneSetup_005 *_this, const char * pBuffer, uint32_t nImportFlags)
 {
     TRACE("%p\n", _this);
@@ -464,139 +466,140 @@ typedef struct __winIVRChaperoneSetup_IVRChaperoneSetup_006 {
 } winIVRChaperoneSetup_IVRChaperoneSetup_006;
 
 DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_CommitWorkingCopy, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_RevertWorkingCopy, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaRect, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingStandingZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPlayAreaSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingCollisionBoundsInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPerimeter, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingStandingZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ReloadFromDisk, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveSeatedZeroPoseToRawTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ExportLiveToBuffer, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ImportFromBufferToWorking, 12)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ShowWorkingSetPreview, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_HideWorkingSetPreview, 4)
+DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_RoomSetupStarting, 4)
+
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_CommitWorkingCopy(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, EChaperoneConfigFile configFile)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_CommitWorkingCopy(_this->linux_side, configFile);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_RevertWorkingCopy, 4)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_RevertWorkingCopy(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_RevertWorkingCopy(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaSize, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaSize(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, float * pSizeX, float * pSizeZ)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaSize(_this->linux_side, pSizeX, pSizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaRect, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaRect(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdQuad_t * rect)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingPlayAreaRect(_this->linux_side, rect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingCollisionBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveCollisionBoundsInfo, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, punQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingSeatedZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingSeatedZeroPoseToRawTrackingPose(_this->linux_side, pmatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingStandingZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingStandingZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdMatrix34_t * pmatStandingZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_GetWorkingStandingZeroPoseToRawTrackingPose(_this->linux_side, pmatStandingZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPlayAreaSize, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPlayAreaSize(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, float sizeX, float sizeZ)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPlayAreaSize(_this->linux_side, sizeX, sizeZ);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingCollisionBoundsInfo, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingCollisionBoundsInfo(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingCollisionBoundsInfo(_this->linux_side, pQuadsBuffer, unQuadsCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPerimeter, 12)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPerimeter(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdVector2_t * pPointBuffer, uint32_t unPointCount)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingPerimeter(_this->linux_side, pPointBuffer, unPointCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingSeatedZeroPoseToRawTrackingPose, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdMatrix34_t * pMatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingSeatedZeroPoseToRawTrackingPose(_this->linux_side, pMatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingStandingZeroPoseToRawTrackingPose, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingStandingZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdMatrix34_t * pMatStandingZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_SetWorkingStandingZeroPoseToRawTrackingPose(_this->linux_side, pMatStandingZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ReloadFromDisk, 8)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_ReloadFromDisk(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, EChaperoneConfigFile configFile)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_ReloadFromDisk(_this->linux_side, configFile);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveSeatedZeroPoseToRawTrackingPose, 8)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveSeatedZeroPoseToRawTrackingPose(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_GetLiveSeatedZeroPoseToRawTrackingPose(_this->linux_side, pmatSeatedZeroPoseToRawTrackingPose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ExportLiveToBuffer, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_ExportLiveToBuffer(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, char * pBuffer, uint32_t * pnBufferLength)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_ExportLiveToBuffer(_this->linux_side, pBuffer, pnBufferLength);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ImportFromBufferToWorking, 12)
 bool __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_ImportFromBufferToWorking(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this, const char * pBuffer, uint32_t nImportFlags)
 {
     TRACE("%p\n", _this);
     return cppIVRChaperoneSetup_IVRChaperoneSetup_006_ImportFromBufferToWorking(_this->linux_side, pBuffer, nImportFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_ShowWorkingSetPreview, 4)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_ShowWorkingSetPreview(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_ShowWorkingSetPreview(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_HideWorkingSetPreview, 4)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_HideWorkingSetPreview(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRChaperoneSetup_IVRChaperoneSetup_006_HideWorkingSetPreview(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRChaperoneSetup_IVRChaperoneSetup_006_RoomSetupStarting, 4)
 void __thiscall winIVRChaperoneSetup_IVRChaperoneSetup_006_RoomSetupStarting(winIVRChaperoneSetup_IVRChaperoneSetup_006 *_this)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRClientCore.c b/vrclient_x64/vrclient_x64/winIVRClientCore.c
index f05495b1..edd83618 100644
--- a/vrclient_x64/vrclient_x64/winIVRClientCore.c
+++ b/vrclient_x64/vrclient_x64/winIVRClientCore.c
@@ -27,48 +27,49 @@ typedef struct __winIVRClientCore_IVRClientCore_002 {
 } winIVRClientCore_IVRClientCore_002;
 
 DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_Init, 8)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_Cleanup, 4)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_IsInterfaceVersionValid, 8)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_GetGenericInterface, 12)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_BIsHmdPresent, 4)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_GetEnglishStringForHmdError, 8)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_GetIDForVRInitError, 8)
+
 EVRInitError __thiscall winIVRClientCore_IVRClientCore_002_Init(winIVRClientCore_IVRClientCore_002 *_this, EVRApplicationType eApplicationType)
 {
     TRACE("%p\n", _this);
     return ivrclientcore_002_init(cppIVRClientCore_IVRClientCore_002_Init, _this->linux_side, eApplicationType, 2, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_Cleanup, 4)
 void __thiscall winIVRClientCore_IVRClientCore_002_Cleanup(winIVRClientCore_IVRClientCore_002 *_this)
 {
     TRACE("%p\n", _this);
     ivrclientcore_cleanup(cppIVRClientCore_IVRClientCore_002_Cleanup, _this->linux_side, 2, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_IsInterfaceVersionValid, 8)
 EVRInitError __thiscall winIVRClientCore_IVRClientCore_002_IsInterfaceVersionValid(winIVRClientCore_IVRClientCore_002 *_this, const char * pchInterfaceVersion)
 {
     TRACE("%p\n", _this);
     return cppIVRClientCore_IVRClientCore_002_IsInterfaceVersionValid(_this->linux_side, pchInterfaceVersion);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_GetGenericInterface, 12)
 void * __thiscall winIVRClientCore_IVRClientCore_002_GetGenericInterface(winIVRClientCore_IVRClientCore_002 *_this, const char * pchNameAndVersion, EVRInitError * peError)
 {
     TRACE("%p\n", _this);
     return ivrclientcore_get_generic_interface(cppIVRClientCore_IVRClientCore_002_GetGenericInterface, _this->linux_side, pchNameAndVersion, peError, 2, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_BIsHmdPresent, 4)
 bool __thiscall winIVRClientCore_IVRClientCore_002_BIsHmdPresent(winIVRClientCore_IVRClientCore_002 *_this)
 {
     TRACE("%p\n", _this);
     return ivrclientcore_is_hmd_present(cppIVRClientCore_IVRClientCore_002_BIsHmdPresent, _this->linux_side, 2, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_GetEnglishStringForHmdError, 8)
 const char * __thiscall winIVRClientCore_IVRClientCore_002_GetEnglishStringForHmdError(winIVRClientCore_IVRClientCore_002 *_this, EVRInitError eError)
 {
     TRACE("%p\n", _this);
     return cppIVRClientCore_IVRClientCore_002_GetEnglishStringForHmdError(_this->linux_side, eError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_GetIDForVRInitError, 8)
 const char * __thiscall winIVRClientCore_IVRClientCore_002_GetIDForVRInitError(winIVRClientCore_IVRClientCore_002 *_this, EVRInitError eError)
 {
     TRACE("%p\n", _this);
@@ -148,48 +149,49 @@ typedef struct __winIVRClientCore_IVRClientCore_003 {
 } winIVRClientCore_IVRClientCore_003;
 
 DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_Init, 12)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_Cleanup, 4)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_IsInterfaceVersionValid, 8)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_GetGenericInterface, 12)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_BIsHmdPresent, 4)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_GetEnglishStringForHmdError, 8)
+DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_GetIDForVRInitError, 8)
+
 EVRInitError __thiscall winIVRClientCore_IVRClientCore_003_Init(winIVRClientCore_IVRClientCore_003 *_this, EVRApplicationType eApplicationType, const char * pStartupInfo)
 {
     TRACE("%p\n", _this);
     return ivrclientcore_init(cppIVRClientCore_IVRClientCore_003_Init, _this->linux_side, eApplicationType, pStartupInfo, 3, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_Cleanup, 4)
 void __thiscall winIVRClientCore_IVRClientCore_003_Cleanup(winIVRClientCore_IVRClientCore_003 *_this)
 {
     TRACE("%p\n", _this);
     ivrclientcore_cleanup(cppIVRClientCore_IVRClientCore_003_Cleanup, _this->linux_side, 3, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_IsInterfaceVersionValid, 8)
 EVRInitError __thiscall winIVRClientCore_IVRClientCore_003_IsInterfaceVersionValid(winIVRClientCore_IVRClientCore_003 *_this, const char * pchInterfaceVersion)
 {
     TRACE("%p\n", _this);
     return cppIVRClientCore_IVRClientCore_003_IsInterfaceVersionValid(_this->linux_side, pchInterfaceVersion);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_GetGenericInterface, 12)
 void * __thiscall winIVRClientCore_IVRClientCore_003_GetGenericInterface(winIVRClientCore_IVRClientCore_003 *_this, const char * pchNameAndVersion, EVRInitError * peError)
 {
     TRACE("%p\n", _this);
     return ivrclientcore_get_generic_interface(cppIVRClientCore_IVRClientCore_003_GetGenericInterface, _this->linux_side, pchNameAndVersion, peError, 3, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_BIsHmdPresent, 4)
 bool __thiscall winIVRClientCore_IVRClientCore_003_BIsHmdPresent(winIVRClientCore_IVRClientCore_003 *_this)
 {
     TRACE("%p\n", _this);
     return ivrclientcore_is_hmd_present(cppIVRClientCore_IVRClientCore_003_BIsHmdPresent, _this->linux_side, 3, &_this->user_data);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_GetEnglishStringForHmdError, 8)
 const char * __thiscall winIVRClientCore_IVRClientCore_003_GetEnglishStringForHmdError(winIVRClientCore_IVRClientCore_003 *_this, EVRInitError eError)
 {
     TRACE("%p\n", _this);
     return cppIVRClientCore_IVRClientCore_003_GetEnglishStringForHmdError(_this->linux_side, eError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_GetIDForVRInitError, 8)
 const char * __thiscall winIVRClientCore_IVRClientCore_003_GetIDForVRInitError(winIVRClientCore_IVRClientCore_003 *_this, EVRInitError eError)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRCompositor.c b/vrclient_x64/vrclient_x64/winIVRCompositor.c
index 9b16a430..90fbc1f7 100644
--- a/vrclient_x64/vrclient_x64/winIVRCompositor.c
+++ b/vrclient_x64/vrclient_x64/winIVRCompositor.c
@@ -26,90 +26,102 @@ typedef struct __winIVRCompositor_IVRCompositor_005 {
 } winIVRCompositor_IVRCompositor_005;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetLastError, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetVSync, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetVSync, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetGamma, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetGamma, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetGraphicsDevice, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_WaitGetPoses, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_Submit, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetOverlayDefaults, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetOverlayRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetOverlayFromFile, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_ClearOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_ComputeOverlayIntersection, 48)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetTrackingSpace, 4)
+
 uint32_t __thiscall winIVRCompositor_IVRCompositor_005_GetLastError(winIVRCompositor_IVRCompositor_005 *_this, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_005_GetLastError(_this->linux_side, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetVSync, 5)
 void __thiscall winIVRCompositor_IVRCompositor_005_SetVSync(winIVRCompositor_IVRCompositor_005 *_this, bool bVSync)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_SetVSync(_this->linux_side, bVSync);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetVSync, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_005_GetVSync(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_005_GetVSync(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetGamma, 8)
 void __thiscall winIVRCompositor_IVRCompositor_005_SetGamma(winIVRCompositor_IVRCompositor_005 *_this, float fGamma)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_SetGamma(_this->linux_side, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetGamma, 4)
 float __thiscall winIVRCompositor_IVRCompositor_005_GetGamma(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_005_GetGamma(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetGraphicsDevice, 12)
 void __thiscall winIVRCompositor_IVRCompositor_005_SetGraphicsDevice(winIVRCompositor_IVRCompositor_005 *_this, Compositor_DeviceType eType, void * pDevice)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_SetGraphicsDevice(_this->linux_side, eType, pDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_WaitGetPoses, 12)
 void __thiscall winIVRCompositor_IVRCompositor_005_WaitGetPoses(winIVRCompositor_IVRCompositor_005 *_this, TrackedDevicePose_t * pPoseArray, uint32_t unPoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_WaitGetPoses(_this->linux_side, pPoseArray, unPoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_Submit, 16)
 void __thiscall winIVRCompositor_IVRCompositor_005_Submit(winIVRCompositor_IVRCompositor_005 *_this, Hmd_Eye eEye, void * pTexture, Compositor_TextureBounds * pBounds)
 {
     TRACE("%p\n", _this);
     ivrcompositor_005_submit(cppIVRCompositor_IVRCompositor_005_Submit, _this->linux_side, eEye, pTexture, pBounds, 5);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_005_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetOverlayDefaults, 8)
 void __thiscall winIVRCompositor_IVRCompositor_005_GetOverlayDefaults(winIVRCompositor_IVRCompositor_005 *_this, Compositor_OverlaySettings * pSettings)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_GetOverlayDefaults(_this->linux_side, pSettings);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetOverlay, 12)
 void __thiscall winIVRCompositor_IVRCompositor_005_SetOverlay(winIVRCompositor_IVRCompositor_005 *_this, void * pTexture, Compositor_OverlaySettings * pSettings)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_SetOverlay(_this->linux_side, pTexture, pSettings);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetOverlayRaw, 24)
 void __thiscall winIVRCompositor_IVRCompositor_005_SetOverlayRaw(winIVRCompositor_IVRCompositor_005 *_this, void * buffer, uint32_t width, uint32_t height, uint32_t depth, Compositor_OverlaySettings * pSettings)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_SetOverlayRaw(_this->linux_side, buffer, width, height, depth, pSettings);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetOverlayFromFile, 12)
 void __thiscall winIVRCompositor_IVRCompositor_005_SetOverlayFromFile(winIVRCompositor_IVRCompositor_005 *_this, const char * pchFilePath, Compositor_OverlaySettings * pSettings)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -118,77 +130,66 @@ void __thiscall winIVRCompositor_IVRCompositor_005_SetOverlayFromFile(winIVRComp
     cppIVRCompositor_IVRCompositor_005_SetOverlayFromFile(_this->linux_side, pchFilePath ? lin_pchFilePath : NULL, pSettings);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_ClearOverlay, 4)
 void __thiscall winIVRCompositor_IVRCompositor_005_ClearOverlay(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_ClearOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_005_GetFrameTiming(winIVRCompositor_IVRCompositor_005 *_this, winCompositor_FrameTiming_091 * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_005_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_005_FadeToColor(winIVRCompositor_IVRCompositor_005 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_005_FadeGrid(winIVRCompositor_IVRCompositor_005 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_005_CompositorBringToFront(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_005_CompositorGoToBack(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_005_CompositorQuit(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_005_IsFullscreen(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_005_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_ComputeOverlayIntersection, 48)
 bool __thiscall winIVRCompositor_IVRCompositor_005_ComputeOverlayIntersection(winIVRCompositor_IVRCompositor_005 *_this, Compositor_OverlaySettings * pSettings, float fAspectRatio, TrackingUniverseOrigin eOrigin, HmdVector3_t vSource, HmdVector3_t vDirection, HmdVector2_t * pvecIntersectionUV, HmdVector3_t * pvecIntersectionTrackingSpace)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_005_ComputeOverlayIntersection(_this->linux_side, pSettings, fAspectRatio, eOrigin, vSource, vDirection, pvecIntersectionUV, pvecIntersectionTrackingSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_SetTrackingSpace, 8)
 void __thiscall winIVRCompositor_IVRCompositor_005_SetTrackingSpace(winIVRCompositor_IVRCompositor_005 *_this, TrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_005_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_005_GetTrackingSpace, 4)
 TrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_005_GetTrackingSpace(winIVRCompositor_IVRCompositor_005 *_this)
 {
     TRACE("%p\n", _this);
@@ -301,139 +302,140 @@ typedef struct __winIVRCompositor_IVRCompositor_006 {
 } winIVRCompositor_IVRCompositor_006;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetLastError, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetVSync, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetVSync, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetGamma, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetGamma, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetGraphicsDevice, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_Submit, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CanRenderScene, 4)
+
 uint32_t __thiscall winIVRCompositor_IVRCompositor_006_GetLastError(winIVRCompositor_IVRCompositor_006 *_this, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_GetLastError(_this->linux_side, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetVSync, 5)
 void __thiscall winIVRCompositor_IVRCompositor_006_SetVSync(winIVRCompositor_IVRCompositor_006 *_this, bool bVSync)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_SetVSync(_this->linux_side, bVSync);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetVSync, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_006_GetVSync(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_GetVSync(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetGamma, 8)
 void __thiscall winIVRCompositor_IVRCompositor_006_SetGamma(winIVRCompositor_IVRCompositor_006 *_this, float fGamma)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_SetGamma(_this->linux_side, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetGamma, 4)
 float __thiscall winIVRCompositor_IVRCompositor_006_GetGamma(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_GetGamma(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetGraphicsDevice, 12)
 void __thiscall winIVRCompositor_IVRCompositor_006_SetGraphicsDevice(winIVRCompositor_IVRCompositor_006 *_this, Compositor_DeviceType eType, void * pDevice)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_SetGraphicsDevice(_this->linux_side, eType, pDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_WaitGetPoses, 20)
 VRCompositorError __thiscall winIVRCompositor_IVRCompositor_006_WaitGetPoses(winIVRCompositor_IVRCompositor_006 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_Submit, 16)
 VRCompositorError __thiscall winIVRCompositor_IVRCompositor_006_Submit(winIVRCompositor_IVRCompositor_006 *_this, Hmd_Eye eEye, void * pTexture, VRTextureBounds_t * pBounds)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_006_submit(cppIVRCompositor_IVRCompositor_006_Submit, _this->linux_side, eEye, pTexture, pBounds, 6);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_006_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_006_GetFrameTiming(winIVRCompositor_IVRCompositor_006 *_this, winCompositor_FrameTiming_092 * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_006_FadeToColor(winIVRCompositor_IVRCompositor_006 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_006_FadeGrid(winIVRCompositor_IVRCompositor_006 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_006_CompositorBringToFront(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_006_CompositorGoToBack(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_006_CompositorQuit(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_006_IsFullscreen(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_SetTrackingSpace, 8)
 void __thiscall winIVRCompositor_IVRCompositor_006_SetTrackingSpace(winIVRCompositor_IVRCompositor_006 *_this, TrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_006_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetTrackingSpace, 4)
 TrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_006_GetTrackingSpace(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_006_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_006_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_006_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_006_CanRenderScene(winIVRCompositor_IVRCompositor_006 *_this)
 {
     TRACE("%p\n", _this);
@@ -538,132 +540,133 @@ typedef struct __winIVRCompositor_IVRCompositor_007 {
 } winIVRCompositor_IVRCompositor_007;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetLastError, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_SetVSync, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetVSync, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_SetGamma, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetGamma, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CanRenderScene, 4)
+
 uint32_t __thiscall winIVRCompositor_IVRCompositor_007_GetLastError(winIVRCompositor_IVRCompositor_007 *_this, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_GetLastError(_this->linux_side, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_SetVSync, 5)
 void __thiscall winIVRCompositor_IVRCompositor_007_SetVSync(winIVRCompositor_IVRCompositor_007 *_this, bool bVSync)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_SetVSync(_this->linux_side, bVSync);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetVSync, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_007_GetVSync(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_GetVSync(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_SetGamma, 8)
 void __thiscall winIVRCompositor_IVRCompositor_007_SetGamma(winIVRCompositor_IVRCompositor_007 *_this, float fGamma)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_SetGamma(_this->linux_side, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetGamma, 4)
 float __thiscall winIVRCompositor_IVRCompositor_007_GetGamma(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_GetGamma(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_WaitGetPoses, 20)
 VRCompositorError __thiscall winIVRCompositor_IVRCompositor_007_WaitGetPoses(winIVRCompositor_IVRCompositor_007 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_Submit, 20)
 VRCompositorError __thiscall winIVRCompositor_IVRCompositor_007_Submit(winIVRCompositor_IVRCompositor_007 *_this, Hmd_Eye eEye, GraphicsAPIConvention eTextureType, void * pTexture, VRTextureBounds_t * pBounds)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_007_submit(cppIVRCompositor_IVRCompositor_007_Submit, _this->linux_side, eEye, eTextureType, pTexture, pBounds, 7);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_007_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_007_GetFrameTiming(winIVRCompositor_IVRCompositor_007 *_this, winCompositor_FrameTiming_098 * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_007_FadeToColor(winIVRCompositor_IVRCompositor_007 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_007_FadeGrid(winIVRCompositor_IVRCompositor_007 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_007_CompositorBringToFront(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_007_CompositorGoToBack(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_007_CompositorQuit(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_007_IsFullscreen(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_SetTrackingSpace, 8)
 void __thiscall winIVRCompositor_IVRCompositor_007_SetTrackingSpace(winIVRCompositor_IVRCompositor_007 *_this, TrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_007_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetTrackingSpace, 4)
 TrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_007_GetTrackingSpace(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_007_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_007_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_007_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_007_CanRenderScene(winIVRCompositor_IVRCompositor_007 *_this)
 {
     TRACE("%p\n", _this);
@@ -766,181 +769,182 @@ typedef struct __winIVRCompositor_IVRCompositor_008 {
 } winIVRCompositor_IVRCompositor_008;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetLastError, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetVSync, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetVSync, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetGamma, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetGamma, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_Submit, 24)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetSkyboxOverride, 32)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetLastFrameRenderer, 4)
+
 uint32_t __thiscall winIVRCompositor_IVRCompositor_008_GetLastError(winIVRCompositor_IVRCompositor_008 *_this, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_GetLastError(_this->linux_side, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetVSync, 5)
 void __thiscall winIVRCompositor_IVRCompositor_008_SetVSync(winIVRCompositor_IVRCompositor_008 *_this, bool bVSync)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_SetVSync(_this->linux_side, bVSync);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetVSync, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_008_GetVSync(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_GetVSync(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetGamma, 8)
 void __thiscall winIVRCompositor_IVRCompositor_008_SetGamma(winIVRCompositor_IVRCompositor_008 *_this, float fGamma)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_SetGamma(_this->linux_side, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetGamma, 4)
 float __thiscall winIVRCompositor_IVRCompositor_008_GetGamma(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_GetGamma(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_WaitGetPoses, 20)
 VRCompositorError __thiscall winIVRCompositor_IVRCompositor_008_WaitGetPoses(winIVRCompositor_IVRCompositor_008 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_Submit, 24)
 VRCompositorError __thiscall winIVRCompositor_IVRCompositor_008_Submit(winIVRCompositor_IVRCompositor_008 *_this, Hmd_Eye eEye, GraphicsAPIConvention eTextureType, void * pTexture, VRTextureBounds_t * pBounds, VRSubmitFlags_t nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_008_submit(cppIVRCompositor_IVRCompositor_008_Submit, _this->linux_side, eEye, eTextureType, pTexture, pBounds, nSubmitFlags, 8);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_008_GetFrameTiming(winIVRCompositor_IVRCompositor_008 *_this, winCompositor_FrameTiming_0910 * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_008_FadeToColor(winIVRCompositor_IVRCompositor_008 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_008_FadeGrid(winIVRCompositor_IVRCompositor_008 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetSkyboxOverride, 32)
 void __thiscall winIVRCompositor_IVRCompositor_008_SetSkyboxOverride(winIVRCompositor_IVRCompositor_008 *_this, GraphicsAPIConvention eTextureType, void * pFront, void * pBack, void * pLeft, void * pRight, void * pTop, void * pBottom)
 {
     TRACE("%p\n", _this);
     ivrcompositor_008_set_skybox_override(cppIVRCompositor_IVRCompositor_008_SetSkyboxOverride, _this->linux_side, eTextureType, pFront, pBack, pLeft, pRight, pTop, pBottom, 8);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_CompositorBringToFront(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_CompositorGoToBack(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_CompositorQuit(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_008_IsFullscreen(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_SetTrackingSpace, 8)
 void __thiscall winIVRCompositor_IVRCompositor_008_SetTrackingSpace(winIVRCompositor_IVRCompositor_008 *_this, TrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetTrackingSpace, 4)
 TrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_008_GetTrackingSpace(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_008_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_008_CanRenderScene(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_ShowMirrorWindow(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_HideMirrorWindow(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_008_CompositorDumpImages(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_008_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_008_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_008_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_008_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_008_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_008 *_this)
 {
     TRACE("%p\n", _this);
@@ -1057,167 +1061,168 @@ typedef struct __winIVRCompositor_IVRCompositor_009 {
 } winIVRCompositor_IVRCompositor_009;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorDumpImages, 4)
+
 void __thiscall winIVRCompositor_IVRCompositor_009_SetTrackingSpace(winIVRCompositor_IVRCompositor_009 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_009_GetTrackingSpace(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_009_WaitGetPoses(winIVRCompositor_IVRCompositor_009 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_009_GetLastPoses(winIVRCompositor_IVRCompositor_009 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_009_Submit(winIVRCompositor_IVRCompositor_009 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_009_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 9);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_PostPresentHandoff(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_009_PostPresentHandoff, _this->linux_side, 9);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_009_GetFrameTiming(winIVRCompositor_IVRCompositor_009 *_this, winCompositor_FrameTiming_0913 * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_009_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_009_FadeToColor(winIVRCompositor_IVRCompositor_009 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_009_FadeGrid(winIVRCompositor_IVRCompositor_009 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_009_SetSkyboxOverride(winIVRCompositor_IVRCompositor_009 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_009_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 9);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_CompositorBringToFront(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_CompositorGoToBack(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_CompositorQuit(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_009_IsFullscreen(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_009_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_009_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_009_CanRenderScene(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_ShowMirrorWindow(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_HideMirrorWindow(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_009_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_009_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_009_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_009_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_009_CompositorDumpImages(winIVRCompositor_IVRCompositor_009 *_this)
 {
     TRACE("%p\n", _this);
@@ -1330,167 +1335,168 @@ typedef struct __winIVRCompositor_IVRCompositor_010 {
 } winIVRCompositor_IVRCompositor_010;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorDumpImages, 4)
+
 void __thiscall winIVRCompositor_IVRCompositor_010_SetTrackingSpace(winIVRCompositor_IVRCompositor_010 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_010_GetTrackingSpace(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_010_WaitGetPoses(winIVRCompositor_IVRCompositor_010 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_010_GetLastPoses(winIVRCompositor_IVRCompositor_010 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_010_Submit(winIVRCompositor_IVRCompositor_010 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_010_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 10);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_PostPresentHandoff(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_010_PostPresentHandoff, _this->linux_side, 10);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_010_GetFrameTiming(winIVRCompositor_IVRCompositor_010 *_this, winCompositor_FrameTiming_0914 * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_010_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_010_FadeToColor(winIVRCompositor_IVRCompositor_010 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_010_FadeGrid(winIVRCompositor_IVRCompositor_010 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_010_SetSkyboxOverride(winIVRCompositor_IVRCompositor_010 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_010_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 10);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_CompositorBringToFront(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_CompositorGoToBack(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_CompositorQuit(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_010_IsFullscreen(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_010_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_010_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_010_CanRenderScene(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_ShowMirrorWindow(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_HideMirrorWindow(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_010_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_010_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_010_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_010_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_010_CompositorDumpImages(winIVRCompositor_IVRCompositor_010 *_this)
 {
     TRACE("%p\n", _this);
@@ -1603,167 +1609,168 @@ typedef struct __winIVRCompositor_IVRCompositor_011 {
 } winIVRCompositor_IVRCompositor_011;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorDumpImages, 4)
+
 void __thiscall winIVRCompositor_IVRCompositor_011_SetTrackingSpace(winIVRCompositor_IVRCompositor_011 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_011_GetTrackingSpace(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_011_WaitGetPoses(winIVRCompositor_IVRCompositor_011 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_011_GetLastPoses(winIVRCompositor_IVRCompositor_011 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_011_Submit(winIVRCompositor_IVRCompositor_011 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_011_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 11);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_PostPresentHandoff(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_011_PostPresentHandoff, _this->linux_side, 11);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_011_GetFrameTiming(winIVRCompositor_IVRCompositor_011 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_011_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_011_FadeToColor(winIVRCompositor_IVRCompositor_011 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_011_FadeGrid(winIVRCompositor_IVRCompositor_011 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_011_SetSkyboxOverride(winIVRCompositor_IVRCompositor_011 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_011_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 11);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_CompositorBringToFront(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_CompositorGoToBack(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_CompositorQuit(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_011_IsFullscreen(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_011_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_011_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_011_CanRenderScene(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_ShowMirrorWindow(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_HideMirrorWindow(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_011_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_011_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_011_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_011_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_011_CompositorDumpImages(winIVRCompositor_IVRCompositor_011 *_this)
 {
     TRACE("%p\n", _this);
@@ -1876,181 +1883,182 @@ typedef struct __winIVRCompositor_IVRCompositor_012 {
 } winIVRCompositor_IVRCompositor_012;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ShouldAppRenderWithLowResources, 4)
+
 void __thiscall winIVRCompositor_IVRCompositor_012_SetTrackingSpace(winIVRCompositor_IVRCompositor_012 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_012_GetTrackingSpace(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_012_WaitGetPoses(winIVRCompositor_IVRCompositor_012 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_012_GetLastPoses(winIVRCompositor_IVRCompositor_012 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_012_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_012 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_012_Submit(winIVRCompositor_IVRCompositor_012 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_012_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 12);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_PostPresentHandoff(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_012_PostPresentHandoff, _this->linux_side, 12);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_012_GetFrameTiming(winIVRCompositor_IVRCompositor_012 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_012_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_012_FadeToColor(winIVRCompositor_IVRCompositor_012 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_012_FadeGrid(winIVRCompositor_IVRCompositor_012 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_012_SetSkyboxOverride(winIVRCompositor_IVRCompositor_012 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_012_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 12);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_CompositorBringToFront(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_CompositorGoToBack(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_CompositorQuit(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_012_IsFullscreen(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_012_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_012_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_012_CanRenderScene(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_ShowMirrorWindow(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_HideMirrorWindow(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_012_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_012_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_012_CompositorDumpImages(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_012_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_012_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_012_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_012 *_this)
 {
     TRACE("%p\n", _this);
@@ -2167,188 +2175,189 @@ typedef struct __winIVRCompositor_IVRCompositor_013 {
 } winIVRCompositor_IVRCompositor_013;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ForceInterleavedReprojectionOn, 8)
+
 void __thiscall winIVRCompositor_IVRCompositor_013_SetTrackingSpace(winIVRCompositor_IVRCompositor_013 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_013_GetTrackingSpace(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_013_WaitGetPoses(winIVRCompositor_IVRCompositor_013 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_013_GetLastPoses(winIVRCompositor_IVRCompositor_013 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_013_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_013 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_013_Submit(winIVRCompositor_IVRCompositor_013 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_013_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 13);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_PostPresentHandoff(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_013_PostPresentHandoff, _this->linux_side, 13);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_013_GetFrameTiming(winIVRCompositor_IVRCompositor_013 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_013_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_013_FadeToColor(winIVRCompositor_IVRCompositor_013 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_013_FadeGrid(winIVRCompositor_IVRCompositor_013 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_013_SetSkyboxOverride(winIVRCompositor_IVRCompositor_013 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_013_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 13);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_CompositorBringToFront(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_CompositorGoToBack(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_CompositorQuit(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_013_IsFullscreen(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_013_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_013_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_013_CanRenderScene(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_ShowMirrorWindow(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_HideMirrorWindow(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_013_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_013_CompositorDumpImages(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_013_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_013_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_013_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_013_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_013_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_013 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
@@ -2467,202 +2476,203 @@ typedef struct __winIVRCompositor_IVRCompositor_014 {
 } winIVRCompositor_IVRCompositor_014;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_SuspendRendering, 8)
+
 void __thiscall winIVRCompositor_IVRCompositor_014_SetTrackingSpace(winIVRCompositor_IVRCompositor_014 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_014_GetTrackingSpace(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_014_WaitGetPoses(winIVRCompositor_IVRCompositor_014 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_014_GetLastPoses(winIVRCompositor_IVRCompositor_014 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_014_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_014 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_014_Submit(winIVRCompositor_IVRCompositor_014 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_014_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 14);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_PostPresentHandoff(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_014_PostPresentHandoff, _this->linux_side, 14);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_014_GetFrameTiming(winIVRCompositor_IVRCompositor_014 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_014_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_014_FadeToColor(winIVRCompositor_IVRCompositor_014 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_014_FadeGrid(winIVRCompositor_IVRCompositor_014 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_014_SetSkyboxOverride(winIVRCompositor_IVRCompositor_014 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_014_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 14);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_CompositorBringToFront(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_CompositorGoToBack(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_CompositorQuit(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_014_IsFullscreen(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_014_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_014_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_014_CanRenderScene(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_ShowMirrorWindow(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_HideMirrorWindow(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_014_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_CompositorDumpImages(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_014_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_014_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_014_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_014 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_014_ForceReconnectProcess(winIVRCompositor_IVRCompositor_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_014_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_014_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_014_SuspendRendering(winIVRCompositor_IVRCompositor_014 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
@@ -2785,258 +2795,259 @@ typedef struct __winIVRCompositor_IVRCompositor_015 {
 } winIVRCompositor_IVRCompositor_015;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_RequestScreenshot, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetCurrentScreenshotType, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_UnlockGLSharedTextureForAccess, 8)
+
 void __thiscall winIVRCompositor_IVRCompositor_015_SetTrackingSpace(winIVRCompositor_IVRCompositor_015 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_015_GetTrackingSpace(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_WaitGetPoses(winIVRCompositor_IVRCompositor_015 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_GetLastPoses(winIVRCompositor_IVRCompositor_015 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_015 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_Submit(winIVRCompositor_IVRCompositor_015 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_015_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 15);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_PostPresentHandoff(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_015_PostPresentHandoff, _this->linux_side, 15);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_015_GetFrameTiming(winIVRCompositor_IVRCompositor_015 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_015_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_015_GetCumulativeStats(winIVRCompositor_IVRCompositor_015 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_015_FadeToColor(winIVRCompositor_IVRCompositor_015 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_015_FadeGrid(winIVRCompositor_IVRCompositor_015 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_SetSkyboxOverride(winIVRCompositor_IVRCompositor_015 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_015_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 15);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_CompositorBringToFront(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_CompositorGoToBack(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_CompositorQuit(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_015_IsFullscreen(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_015_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_015_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_015_CanRenderScene(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_ShowMirrorWindow(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_HideMirrorWindow(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_015_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_CompositorDumpImages(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_015_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_015_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_015 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_015_ForceReconnectProcess(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_015_SuspendRendering(winIVRCompositor_IVRCompositor_015 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_RequestScreenshot, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_RequestScreenshot(winIVRCompositor_IVRCompositor_015 *_this, EVRScreenshotType type, const char * pchDestinationFileName, const char * pchVRDestinationFileName)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_RequestScreenshot(_this->linux_side, type, pchDestinationFileName, pchVRDestinationFileName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetCurrentScreenshotType, 4)
 EVRScreenshotType __thiscall winIVRCompositor_IVRCompositor_015_GetCurrentScreenshotType(winIVRCompositor_IVRCompositor_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetCurrentScreenshotType(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_015 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_015_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_015 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_015_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_015 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_015_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_015_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_015 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_015_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_015_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_015_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_015 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
@@ -3175,244 +3186,245 @@ typedef struct __winIVRCompositor_IVRCompositor_016 {
 } winIVRCompositor_IVRCompositor_016;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_UnlockGLSharedTextureForAccess, 8)
+
 void __thiscall winIVRCompositor_IVRCompositor_016_SetTrackingSpace(winIVRCompositor_IVRCompositor_016 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_016_GetTrackingSpace(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_016_WaitGetPoses(winIVRCompositor_IVRCompositor_016 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_016_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 16);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_016_GetLastPoses(winIVRCompositor_IVRCompositor_016 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_016_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_016 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_016_Submit(winIVRCompositor_IVRCompositor_016 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_016_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 16);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_PostPresentHandoff(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_016_PostPresentHandoff, _this->linux_side, 16);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_016_GetFrameTiming(winIVRCompositor_IVRCompositor_016 *_this, winCompositor_FrameTiming_103 * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_016_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_016_GetCumulativeStats(winIVRCompositor_IVRCompositor_016 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_016_FadeToColor(winIVRCompositor_IVRCompositor_016 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_016_FadeGrid(winIVRCompositor_IVRCompositor_016 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_016_SetSkyboxOverride(winIVRCompositor_IVRCompositor_016 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_016_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 16);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_CompositorBringToFront(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_CompositorGoToBack(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_CompositorQuit(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_016_IsFullscreen(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_016_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_016_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_016_CanRenderScene(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_ShowMirrorWindow(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_HideMirrorWindow(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_016_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_CompositorDumpImages(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_016_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_016_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_016 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_016_ForceReconnectProcess(winIVRCompositor_IVRCompositor_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_016_SuspendRendering(winIVRCompositor_IVRCompositor_016 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_016_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_016 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_016_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_016 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_016_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_016 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_016_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_016_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_016 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_016_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_016_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_016_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_016 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
@@ -3547,251 +3559,252 @@ typedef struct __winIVRCompositor_IVRCompositor_017 {
 } winIVRCompositor_IVRCompositor_017;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_UnlockGLSharedTextureForAccess, 8)
+
 void __thiscall winIVRCompositor_IVRCompositor_017_SetTrackingSpace(winIVRCompositor_IVRCompositor_017 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_017_GetTrackingSpace(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_017_WaitGetPoses(winIVRCompositor_IVRCompositor_017 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_017_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 17);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_017_GetLastPoses(winIVRCompositor_IVRCompositor_017 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_017_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_017 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_017_Submit(winIVRCompositor_IVRCompositor_017 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_017_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 17);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_PostPresentHandoff(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_017_PostPresentHandoff, _this->linux_side, 17);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_017_GetFrameTiming(winIVRCompositor_IVRCompositor_017 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_017_GetFrameTimings(winIVRCompositor_IVRCompositor_017 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_017_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_017_GetCumulativeStats(winIVRCompositor_IVRCompositor_017 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_017_FadeToColor(winIVRCompositor_IVRCompositor_017 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_017_FadeGrid(winIVRCompositor_IVRCompositor_017 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_017_SetSkyboxOverride(winIVRCompositor_IVRCompositor_017 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_017_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 17);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_CompositorBringToFront(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_CompositorGoToBack(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_CompositorQuit(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_017_IsFullscreen(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_017_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_017_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_017_CanRenderScene(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_ShowMirrorWindow(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_HideMirrorWindow(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_017_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_CompositorDumpImages(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_017_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_017_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_017 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_017_ForceReconnectProcess(winIVRCompositor_IVRCompositor_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_017_SuspendRendering(winIVRCompositor_IVRCompositor_017 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_017_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_017 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_017_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_017 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_017_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_017 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_017_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_017_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_017 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_017_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_017_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_017_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_017 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
@@ -3928,97 +3941,122 @@ typedef struct __winIVRCompositor_IVRCompositor_018 {
 } winIVRCompositor_IVRCompositor_018;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_UnlockGLSharedTextureForAccess, 8)
+
 void __thiscall winIVRCompositor_IVRCompositor_018_SetTrackingSpace(winIVRCompositor_IVRCompositor_018 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_018_GetTrackingSpace(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_018_WaitGetPoses(winIVRCompositor_IVRCompositor_018 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_018_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 18);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_018_GetLastPoses(winIVRCompositor_IVRCompositor_018 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_018_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_018 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_018_Submit(winIVRCompositor_IVRCompositor_018 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_018_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 18);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_PostPresentHandoff(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_018_PostPresentHandoff, _this->linux_side, 18);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_018_GetFrameTiming(winIVRCompositor_IVRCompositor_018 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_018_GetFrameTimings(winIVRCompositor_IVRCompositor_018 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_018_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_018_GetCumulativeStats(winIVRCompositor_IVRCompositor_018 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_018_FadeToColor(winIVRCompositor_IVRCompositor_018 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_018_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_018 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -4026,168 +4064,144 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_018_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_018_FadeGrid(winIVRCompositor_IVRCompositor_018 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_018_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_018_SetSkyboxOverride(winIVRCompositor_IVRCompositor_018 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_018_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 18);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_CompositorBringToFront(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_CompositorGoToBack(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_CompositorQuit(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_018_IsFullscreen(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_018_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_018_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_018_CanRenderScene(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_ShowMirrorWindow(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_HideMirrorWindow(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_018_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_CompositorDumpImages(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_018_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_018_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_018 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_018_ForceReconnectProcess(winIVRCompositor_IVRCompositor_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_018_SuspendRendering(winIVRCompositor_IVRCompositor_018 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_018_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_018 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_018_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_018 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_018_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_018 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_018_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_018_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_018 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_018_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_018_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_018_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_018 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
@@ -4328,97 +4342,124 @@ typedef struct __winIVRCompositor_IVRCompositor_019 {
 } winIVRCompositor_IVRCompositor_019;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_UnlockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetVulkanInstanceExtensionsRequired, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired, 16)
+
 void __thiscall winIVRCompositor_IVRCompositor_019_SetTrackingSpace(winIVRCompositor_IVRCompositor_019 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_019_GetTrackingSpace(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_019_WaitGetPoses(winIVRCompositor_IVRCompositor_019 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_019_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 19);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_019_GetLastPoses(winIVRCompositor_IVRCompositor_019 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_019_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_019 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_019_Submit(winIVRCompositor_IVRCompositor_019 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_019_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 19);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_PostPresentHandoff(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_019_PostPresentHandoff, _this->linux_side, 19);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_019_GetFrameTiming(winIVRCompositor_IVRCompositor_019 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetFrameTimings(winIVRCompositor_IVRCompositor_019 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_019_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_019_GetCumulativeStats(winIVRCompositor_IVRCompositor_019 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_019_FadeToColor(winIVRCompositor_IVRCompositor_019 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_019_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_019 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -4426,182 +4467,156 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_019_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_019_FadeGrid(winIVRCompositor_IVRCompositor_019 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_019_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_019_SetSkyboxOverride(winIVRCompositor_IVRCompositor_019 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_019_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 19);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_CompositorBringToFront(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_CompositorGoToBack(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_CompositorQuit(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_019_IsFullscreen(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_019_CanRenderScene(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_ShowMirrorWindow(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_HideMirrorWindow(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_019_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_CompositorDumpImages(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_019_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_019_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_019 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_019_ForceReconnectProcess(winIVRCompositor_IVRCompositor_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_019_SuspendRendering(winIVRCompositor_IVRCompositor_019 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_019_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_019 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_019_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_019 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_019_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_019 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_019_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_019 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_019_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_019 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_019_UnlockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetVulkanInstanceExtensionsRequired, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetVulkanInstanceExtensionsRequired(winIVRCompositor_IVRCompositor_019 *_this, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_019_GetVulkanInstanceExtensionsRequired(_this->linux_side, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired, 16)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_019_GetVulkanDeviceExtensionsRequired(winIVRCompositor_IVRCompositor_019 *_this, VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
@@ -4746,97 +4761,125 @@ typedef struct __winIVRCompositor_IVRCompositor_020 {
 } winIVRCompositor_IVRCompositor_020;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ReleaseMirrorTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_UnlockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetVulkanInstanceExtensionsRequired, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired, 16)
+
 void __thiscall winIVRCompositor_IVRCompositor_020_SetTrackingSpace(winIVRCompositor_IVRCompositor_020 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_020_GetTrackingSpace(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_020_WaitGetPoses(winIVRCompositor_IVRCompositor_020 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_020_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 20);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_020_GetLastPoses(winIVRCompositor_IVRCompositor_020 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_020_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_020 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_020_Submit(winIVRCompositor_IVRCompositor_020 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_020_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 20);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_PostPresentHandoff(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_020_PostPresentHandoff, _this->linux_side, 20);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_020_GetFrameTiming(winIVRCompositor_IVRCompositor_020 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetFrameTimings(winIVRCompositor_IVRCompositor_020 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_020_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_020_GetCumulativeStats(winIVRCompositor_IVRCompositor_020 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_020_FadeToColor(winIVRCompositor_IVRCompositor_020 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_020_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_020 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -4844,189 +4887,162 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_020_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_020_FadeGrid(winIVRCompositor_IVRCompositor_020 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_020_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_020_SetSkyboxOverride(winIVRCompositor_IVRCompositor_020 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_020_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 20);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_CompositorBringToFront(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_CompositorGoToBack(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_CompositorQuit(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_020_IsFullscreen(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_020_CanRenderScene(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_ShowMirrorWindow(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_HideMirrorWindow(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_020_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_CompositorDumpImages(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_020_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_020_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_020 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_020_ForceReconnectProcess(winIVRCompositor_IVRCompositor_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_020_SuspendRendering(winIVRCompositor_IVRCompositor_020 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_020_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_020 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ReleaseMirrorTextureD3D11, 8)
 void __thiscall winIVRCompositor_IVRCompositor_020_ReleaseMirrorTextureD3D11(winIVRCompositor_IVRCompositor_020 *_this, void * pD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_ReleaseMirrorTextureD3D11(_this->linux_side, pD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_020_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_020 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_020_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_020 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_020_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_020 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_020_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_020 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_020_UnlockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetVulkanInstanceExtensionsRequired, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetVulkanInstanceExtensionsRequired(winIVRCompositor_IVRCompositor_020 *_this, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_020_GetVulkanInstanceExtensionsRequired(_this->linux_side, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired, 16)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_020_GetVulkanDeviceExtensionsRequired(winIVRCompositor_IVRCompositor_020 *_this, VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
@@ -5173,97 +5189,127 @@ typedef struct __winIVRCompositor_IVRCompositor_021 {
 } winIVRCompositor_IVRCompositor_021;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ReleaseMirrorTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_UnlockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetVulkanInstanceExtensionsRequired, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SetExplicitTimingMode, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SubmitExplicitTimingData, 4)
+
 void __thiscall winIVRCompositor_IVRCompositor_021_SetTrackingSpace(winIVRCompositor_IVRCompositor_021 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_021_GetTrackingSpace(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_WaitGetPoses(winIVRCompositor_IVRCompositor_021 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_021_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_GetLastPoses(winIVRCompositor_IVRCompositor_021 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_021 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_Submit(winIVRCompositor_IVRCompositor_021 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_021_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_PostPresentHandoff(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_021_PostPresentHandoff, _this->linux_side, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_021_GetFrameTiming(winIVRCompositor_IVRCompositor_021 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetFrameTimings(winIVRCompositor_IVRCompositor_021 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_021_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_021_GetCumulativeStats(winIVRCompositor_IVRCompositor_021 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_021_FadeToColor(winIVRCompositor_IVRCompositor_021 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_021_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_021 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -5271,203 +5317,174 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_021_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_021_FadeGrid(winIVRCompositor_IVRCompositor_021 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_021_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_SetSkyboxOverride(winIVRCompositor_IVRCompositor_021 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_021_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_CompositorBringToFront(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_CompositorGoToBack(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_CompositorQuit(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_021_IsFullscreen(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_021_CanRenderScene(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_ShowMirrorWindow(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_HideMirrorWindow(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_021_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_CompositorDumpImages(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_021_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_021_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_021 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_021_ForceReconnectProcess(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_021_SuspendRendering(winIVRCompositor_IVRCompositor_021 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_021 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ReleaseMirrorTextureD3D11, 8)
 void __thiscall winIVRCompositor_IVRCompositor_021_ReleaseMirrorTextureD3D11(winIVRCompositor_IVRCompositor_021 *_this, void * pD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_ReleaseMirrorTextureD3D11(_this->linux_side, pD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_021 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_021_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_021 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_021_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_021 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_021_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_021 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_UnlockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetVulkanInstanceExtensionsRequired, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetVulkanInstanceExtensionsRequired(winIVRCompositor_IVRCompositor_021 *_this, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_021_GetVulkanInstanceExtensionsRequired(_this->linux_side, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired, 16)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired(winIVRCompositor_IVRCompositor_021 *_this, VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_get_vulkan_device_extensions_required(cppIVRCompositor_IVRCompositor_021_GetVulkanDeviceExtensionsRequired, _this->linux_side, pPhysicalDevice, pchValue, unBufferSize, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SetExplicitTimingMode, 5)
 void __thiscall winIVRCompositor_IVRCompositor_021_SetExplicitTimingMode(winIVRCompositor_IVRCompositor_021 *_this, bool bExplicitTimingMode)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_021_SetExplicitTimingMode(_this->linux_side, bExplicitTimingMode);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_021_SubmitExplicitTimingData, 4)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_021_SubmitExplicitTimingData(winIVRCompositor_IVRCompositor_021 *_this)
 {
     TRACE("%p\n", _this);
@@ -5618,97 +5635,130 @@ typedef struct __winIVRCompositor_IVRCompositor_022 {
 } winIVRCompositor_IVRCompositor_022;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ReleaseMirrorTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_UnlockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetVulkanInstanceExtensionsRequired, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SetExplicitTimingMode, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SubmitExplicitTimingData, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsMotionSmoothingEnabled, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsMotionSmoothingSupported, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsCurrentSceneFocusAppLoading, 4)
+
 void __thiscall winIVRCompositor_IVRCompositor_022_SetTrackingSpace(winIVRCompositor_IVRCompositor_022 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_022_GetTrackingSpace(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_WaitGetPoses(winIVRCompositor_IVRCompositor_022 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_022_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_GetLastPoses(winIVRCompositor_IVRCompositor_022 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_022 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_Submit(winIVRCompositor_IVRCompositor_022 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_022_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_PostPresentHandoff(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_022_PostPresentHandoff, _this->linux_side, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_022_GetFrameTiming(winIVRCompositor_IVRCompositor_022 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetFrameTimings(winIVRCompositor_IVRCompositor_022 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_022_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_022_GetCumulativeStats(winIVRCompositor_IVRCompositor_022 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_022_FadeToColor(winIVRCompositor_IVRCompositor_022 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_022_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_022 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -5716,224 +5766,192 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_022_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_022_FadeGrid(winIVRCompositor_IVRCompositor_022 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_022_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_SetSkyboxOverride(winIVRCompositor_IVRCompositor_022 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_022_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_CompositorBringToFront(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_CompositorGoToBack(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_CompositorQuit(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_022_IsFullscreen(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_022_CanRenderScene(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_ShowMirrorWindow(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_HideMirrorWindow(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_022_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_CompositorDumpImages(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_022_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_022_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_022 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_022_ForceReconnectProcess(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_022_SuspendRendering(winIVRCompositor_IVRCompositor_022 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_022 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ReleaseMirrorTextureD3D11, 8)
 void __thiscall winIVRCompositor_IVRCompositor_022_ReleaseMirrorTextureD3D11(winIVRCompositor_IVRCompositor_022 *_this, void * pD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_ReleaseMirrorTextureD3D11(_this->linux_side, pD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_022 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_022_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_022 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_022_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_022 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_022_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_022 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_UnlockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetVulkanInstanceExtensionsRequired, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetVulkanInstanceExtensionsRequired(winIVRCompositor_IVRCompositor_022 *_this, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_GetVulkanInstanceExtensionsRequired(_this->linux_side, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired, 16)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired(winIVRCompositor_IVRCompositor_022 *_this, VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_get_vulkan_device_extensions_required(cppIVRCompositor_IVRCompositor_022_GetVulkanDeviceExtensionsRequired, _this->linux_side, pPhysicalDevice, pchValue, unBufferSize, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SetExplicitTimingMode, 8)
 void __thiscall winIVRCompositor_IVRCompositor_022_SetExplicitTimingMode(winIVRCompositor_IVRCompositor_022 *_this, EVRCompositorTimingMode eTimingMode)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_022_SetExplicitTimingMode(_this->linux_side, eTimingMode);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_SubmitExplicitTimingData, 4)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_022_SubmitExplicitTimingData(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_SubmitExplicitTimingData(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsMotionSmoothingEnabled, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_022_IsMotionSmoothingEnabled(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_IsMotionSmoothingEnabled(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsMotionSmoothingSupported, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_022_IsMotionSmoothingSupported(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_022_IsMotionSmoothingSupported(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_022_IsCurrentSceneFocusAppLoading, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_022_IsCurrentSceneFocusAppLoading(winIVRCompositor_IVRCompositor_022 *_this)
 {
     TRACE("%p\n", _this);
@@ -6090,97 +6108,132 @@ typedef struct __winIVRCompositor_IVRCompositor_024 {
 } winIVRCompositor_IVRCompositor_024;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ReleaseMirrorTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_UnlockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetVulkanInstanceExtensionsRequired, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SetExplicitTimingMode, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SubmitExplicitTimingData, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsMotionSmoothingEnabled, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsMotionSmoothingSupported, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsCurrentSceneFocusAppLoading, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SetStageOverride_Async, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ClearStageOverride, 4)
+
 void __thiscall winIVRCompositor_IVRCompositor_024_SetTrackingSpace(winIVRCompositor_IVRCompositor_024 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_024_GetTrackingSpace(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_WaitGetPoses(winIVRCompositor_IVRCompositor_024 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_024_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 24);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_GetLastPoses(winIVRCompositor_IVRCompositor_024 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_024 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_Submit(winIVRCompositor_IVRCompositor_024 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_024_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 24);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_PostPresentHandoff(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_024_PostPresentHandoff, _this->linux_side, 24);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_024_GetFrameTiming(winIVRCompositor_IVRCompositor_024 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetFrameTimings(winIVRCompositor_IVRCompositor_024 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_024_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_024_GetCumulativeStats(winIVRCompositor_IVRCompositor_024 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_024_FadeToColor(winIVRCompositor_IVRCompositor_024 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_024_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_024 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -6188,231 +6241,198 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_024_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_024_FadeGrid(winIVRCompositor_IVRCompositor_024 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_024_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_SetSkyboxOverride(winIVRCompositor_IVRCompositor_024 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_024_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 24);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_CompositorBringToFront(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_CompositorGoToBack(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_CompositorQuit(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_024_IsFullscreen(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_024_CanRenderScene(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_ShowMirrorWindow(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_HideMirrorWindow(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_024_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_CompositorDumpImages(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_024_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_024_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_024 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_ForceReconnectProcess(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_024_SuspendRendering(winIVRCompositor_IVRCompositor_024 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_024 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ReleaseMirrorTextureD3D11, 8)
 void __thiscall winIVRCompositor_IVRCompositor_024_ReleaseMirrorTextureD3D11(winIVRCompositor_IVRCompositor_024 *_this, void * pD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_ReleaseMirrorTextureD3D11(_this->linux_side, pD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_024 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_024_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_024 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_024_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_024 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_024_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_024 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_UnlockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetVulkanInstanceExtensionsRequired, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetVulkanInstanceExtensionsRequired(winIVRCompositor_IVRCompositor_024 *_this, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_GetVulkanInstanceExtensionsRequired(_this->linux_side, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired, 16)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired(winIVRCompositor_IVRCompositor_024 *_this, VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_get_vulkan_device_extensions_required(cppIVRCompositor_IVRCompositor_024_GetVulkanDeviceExtensionsRequired, _this->linux_side, pPhysicalDevice, pchValue, unBufferSize, 24);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SetExplicitTimingMode, 8)
 void __thiscall winIVRCompositor_IVRCompositor_024_SetExplicitTimingMode(winIVRCompositor_IVRCompositor_024 *_this, EVRCompositorTimingMode eTimingMode)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_024_SetExplicitTimingMode(_this->linux_side, eTimingMode);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SubmitExplicitTimingData, 4)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_SubmitExplicitTimingData(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_SubmitExplicitTimingData(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsMotionSmoothingEnabled, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_024_IsMotionSmoothingEnabled(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_IsMotionSmoothingEnabled(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsMotionSmoothingSupported, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_024_IsMotionSmoothingSupported(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_IsMotionSmoothingSupported(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_IsCurrentSceneFocusAppLoading, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_024_IsCurrentSceneFocusAppLoading(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_024_IsCurrentSceneFocusAppLoading(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_SetStageOverride_Async, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_SetStageOverride_Async(winIVRCompositor_IVRCompositor_024 *_this, const char * pchRenderModelPath, HmdMatrix34_t * pTransform, Compositor_StageRenderSettings * pRenderSettings, uint32_t nSizeOfRenderSettings)
 {
     char lin_pchRenderModelPath[PATH_MAX];
@@ -6421,7 +6441,6 @@ EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_024_SetStageOverrid
     return cppIVRCompositor_IVRCompositor_024_SetStageOverride_Async(_this->linux_side, pchRenderModelPath ? lin_pchRenderModelPath : NULL, pTransform, pRenderSettings, nSizeOfRenderSettings);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_024_ClearStageOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_024_ClearStageOverride(winIVRCompositor_IVRCompositor_024 *_this)
 {
     TRACE("%p\n", _this);
@@ -6582,97 +6601,135 @@ typedef struct __winIVRCompositor_IVRCompositor_026 {
 } winIVRCompositor_IVRCompositor_026;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ReleaseMirrorTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_UnlockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetVulkanInstanceExtensionsRequired, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SetExplicitTimingMode, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SubmitExplicitTimingData, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsMotionSmoothingEnabled, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsMotionSmoothingSupported, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsCurrentSceneFocusAppLoading, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SetStageOverride_Async, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ClearStageOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCompositorBenchmarkResults, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastPosePredictionIDs, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetPosesForFrame, 16)
+
 void __thiscall winIVRCompositor_IVRCompositor_026_SetTrackingSpace(winIVRCompositor_IVRCompositor_026 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_026_GetTrackingSpace(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_WaitGetPoses(winIVRCompositor_IVRCompositor_026 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_wait_get_poses(cppIVRCompositor_IVRCompositor_026_WaitGetPoses, _this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount, 26);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_GetLastPoses(winIVRCompositor_IVRCompositor_026 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_026 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_Submit(winIVRCompositor_IVRCompositor_026 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_026_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 26);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_PostPresentHandoff(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_026_PostPresentHandoff, _this->linux_side, 26);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_026_GetFrameTiming(winIVRCompositor_IVRCompositor_026 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetFrameTimings(winIVRCompositor_IVRCompositor_026 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_026_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_026_GetCumulativeStats(winIVRCompositor_IVRCompositor_026 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_026_FadeToColor(winIVRCompositor_IVRCompositor_026 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_026_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_026 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -6680,231 +6737,198 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_026_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_026_FadeGrid(winIVRCompositor_IVRCompositor_026 *_this, float fSeconds, bool bFadeIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_FadeGrid(_this->linux_side, fSeconds, bFadeIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_026_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_SetSkyboxOverride(winIVRCompositor_IVRCompositor_026 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_026_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 26);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_CompositorBringToFront(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_CompositorGoToBack(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_CompositorQuit(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_026_IsFullscreen(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_026_CanRenderScene(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_ShowMirrorWindow(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_HideMirrorWindow(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_026_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_CompositorDumpImages(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_026_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_026_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_026 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_ForceReconnectProcess(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_026_SuspendRendering(winIVRCompositor_IVRCompositor_026 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_026 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ReleaseMirrorTextureD3D11, 8)
 void __thiscall winIVRCompositor_IVRCompositor_026_ReleaseMirrorTextureD3D11(winIVRCompositor_IVRCompositor_026 *_this, void * pD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_ReleaseMirrorTextureD3D11(_this->linux_side, pD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_026 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_026_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_026 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_026_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_026 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_026_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_026 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_UnlockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetVulkanInstanceExtensionsRequired, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetVulkanInstanceExtensionsRequired(winIVRCompositor_IVRCompositor_026 *_this, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetVulkanInstanceExtensionsRequired(_this->linux_side, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired, 16)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired(winIVRCompositor_IVRCompositor_026 *_this, VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_get_vulkan_device_extensions_required(cppIVRCompositor_IVRCompositor_026_GetVulkanDeviceExtensionsRequired, _this->linux_side, pPhysicalDevice, pchValue, unBufferSize, 26);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SetExplicitTimingMode, 8)
 void __thiscall winIVRCompositor_IVRCompositor_026_SetExplicitTimingMode(winIVRCompositor_IVRCompositor_026 *_this, EVRCompositorTimingMode eTimingMode)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_SetExplicitTimingMode(_this->linux_side, eTimingMode);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SubmitExplicitTimingData, 4)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_SubmitExplicitTimingData(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_SubmitExplicitTimingData(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsMotionSmoothingEnabled, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_026_IsMotionSmoothingEnabled(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_IsMotionSmoothingEnabled(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsMotionSmoothingSupported, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_026_IsMotionSmoothingSupported(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_IsMotionSmoothingSupported(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_IsCurrentSceneFocusAppLoading, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_026_IsCurrentSceneFocusAppLoading(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_IsCurrentSceneFocusAppLoading(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_SetStageOverride_Async, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_SetStageOverride_Async(winIVRCompositor_IVRCompositor_026 *_this, const char * pchRenderModelPath, HmdMatrix34_t * pTransform, Compositor_StageRenderSettings * pRenderSettings, uint32_t nSizeOfRenderSettings)
 {
     char lin_pchRenderModelPath[PATH_MAX];
@@ -6913,28 +6937,24 @@ EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_SetStageOverrid
     return cppIVRCompositor_IVRCompositor_026_SetStageOverride_Async(_this->linux_side, pchRenderModelPath ? lin_pchRenderModelPath : NULL, pTransform, pRenderSettings, nSizeOfRenderSettings);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_ClearStageOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_026_ClearStageOverride(winIVRCompositor_IVRCompositor_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_026_ClearStageOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetCompositorBenchmarkResults, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_026_GetCompositorBenchmarkResults(winIVRCompositor_IVRCompositor_026 *_this, Compositor_BenchmarkResults * pBenchmarkResults, uint32_t nSizeOfBenchmarkResults)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetCompositorBenchmarkResults(_this->linux_side, pBenchmarkResults, nSizeOfBenchmarkResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetLastPosePredictionIDs, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_GetLastPosePredictionIDs(winIVRCompositor_IVRCompositor_026 *_this, uint32_t * pRenderPosePredictionID, uint32_t * pGamePosePredictionID)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_026_GetLastPosePredictionIDs(_this->linux_side, pRenderPosePredictionID, pGamePosePredictionID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_026_GetPosesForFrame, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_026_GetPosesForFrame(winIVRCompositor_IVRCompositor_026 *_this, uint32_t unPosePredictionID, TrackedDevicePose_t * pPoseArray, uint32_t unPoseArrayCount)
 {
     TRACE("%p\n", _this);
@@ -7101,97 +7121,135 @@ typedef struct __winIVRCompositor_IVRCompositor_027 {
 } winIVRCompositor_IVRCompositor_027;
 
 DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SetTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetTrackingSpace, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_WaitGetPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastPoses, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastPoseForTrackedDeviceIndex, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_Submit, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ClearLastSubmittedFrame, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_PostPresentHandoff, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetFrameTiming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetFrameTimings, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetFrameTimeRemaining, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCumulativeStats, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_FadeToColor, 28)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCurrentFadeColor, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_FadeGrid, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCurrentGridAlpha, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SetSkyboxOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ClearSkyboxOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorBringToFront, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorGoToBack, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorQuit, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsFullscreen, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCurrentSceneFocusProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastFrameRenderer, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CanRenderScene, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ShowMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_HideMirrorWindow, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsMirrorWindowVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorDumpImages, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ShouldAppRenderWithLowResources, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ForceInterleavedReprojectionOn, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ForceReconnectProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SuspendRendering, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetMirrorTextureD3D11, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ReleaseMirrorTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetMirrorTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ReleaseSharedGLTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_LockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_UnlockGLSharedTextureForAccess, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetVulkanInstanceExtensionsRequired, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired, 16)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SetExplicitTimingMode, 8)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SubmitExplicitTimingData, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsMotionSmoothingEnabled, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsMotionSmoothingSupported, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsCurrentSceneFocusAppLoading, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SetStageOverride_Async, 20)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ClearStageOverride, 4)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCompositorBenchmarkResults, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastPosePredictionIDs, 12)
+DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetPosesForFrame, 16)
+
 void __thiscall winIVRCompositor_IVRCompositor_027_SetTrackingSpace(winIVRCompositor_IVRCompositor_027 *_this, ETrackingUniverseOrigin eOrigin)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_SetTrackingSpace(_this->linux_side, eOrigin);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRCompositor_IVRCompositor_027_GetTrackingSpace(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetTrackingSpace(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_WaitGetPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_WaitGetPoses(winIVRCompositor_IVRCompositor_027 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_WaitGetPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastPoses, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_GetLastPoses(winIVRCompositor_IVRCompositor_027 *_this, TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetLastPoses(_this->linux_side, pRenderPoseArray, unRenderPoseArrayCount, pGamePoseArray, unGamePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastPoseForTrackedDeviceIndex, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_GetLastPoseForTrackedDeviceIndex(winIVRCompositor_IVRCompositor_027 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pOutputGamePose)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetLastPoseForTrackedDeviceIndex(_this->linux_side, unDeviceIndex, pOutputPose, pOutputGamePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_Submit, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_Submit(winIVRCompositor_IVRCompositor_027 *_this, EVREye eEye, Texture_t * pTexture, VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_submit(cppIVRCompositor_IVRCompositor_027_Submit, _this->linux_side, eEye, pTexture, pBounds, nSubmitFlags, 27);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ClearLastSubmittedFrame, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_ClearLastSubmittedFrame(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_ClearLastSubmittedFrame(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_PostPresentHandoff, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_PostPresentHandoff(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     ivrcompositor_post_present_handoff(cppIVRCompositor_IVRCompositor_027_PostPresentHandoff, _this->linux_side, 27);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetFrameTiming, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_027_GetFrameTiming(winIVRCompositor_IVRCompositor_027 *_this, Compositor_FrameTiming * pTiming, uint32_t unFramesAgo)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetFrameTiming(_this->linux_side, pTiming, unFramesAgo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetFrameTimings, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetFrameTimings(winIVRCompositor_IVRCompositor_027 *_this, Compositor_FrameTiming * pTiming, uint32_t nFrames)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetFrameTimings(_this->linux_side, pTiming, nFrames);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetFrameTimeRemaining, 4)
 float __thiscall winIVRCompositor_IVRCompositor_027_GetFrameTimeRemaining(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetFrameTimeRemaining(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCumulativeStats, 12)
 void __thiscall winIVRCompositor_IVRCompositor_027_GetCumulativeStats(winIVRCompositor_IVRCompositor_027 *_this, Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_GetCumulativeStats(_this->linux_side, pStats, nStatsSizeInBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_FadeToColor, 25)
 void __thiscall winIVRCompositor_IVRCompositor_027_FadeToColor(winIVRCompositor_IVRCompositor_027 *_this, float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_FadeToColor(_this->linux_side, fSeconds, fRed, fGreen, fBlue, fAlpha, bBackground);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCurrentFadeColor, 9)
 HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_027_GetCurrentFadeColor(winIVRCompositor_IVRCompositor_027 *_this, HmdColor_t *_r, bool bBackground)
 {
     TRACE("%p\n", _this);
@@ -7199,231 +7257,198 @@ HmdColor_t *__thiscall winIVRCompositor_IVRCompositor_027_GetCurrentFadeColor(wi
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_FadeGrid, 9)
 void __thiscall winIVRCompositor_IVRCompositor_027_FadeGrid(winIVRCompositor_IVRCompositor_027 *_this, float fSeconds, bool bFadeGridIn)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_FadeGrid(_this->linux_side, fSeconds, bFadeGridIn);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCurrentGridAlpha, 4)
 float __thiscall winIVRCompositor_IVRCompositor_027_GetCurrentGridAlpha(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetCurrentGridAlpha(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SetSkyboxOverride, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_SetSkyboxOverride(winIVRCompositor_IVRCompositor_027 *_this, Texture_t * pTextures, uint32_t unTextureCount)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_set_skybox_override(cppIVRCompositor_IVRCompositor_027_SetSkyboxOverride, _this->linux_side, pTextures, unTextureCount, 27);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ClearSkyboxOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_ClearSkyboxOverride(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_ClearSkyboxOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorBringToFront, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_CompositorBringToFront(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_CompositorBringToFront(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorGoToBack, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_CompositorGoToBack(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_CompositorGoToBack(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorQuit, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_CompositorQuit(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_CompositorQuit(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsFullscreen, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_027_IsFullscreen(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_IsFullscreen(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCurrentSceneFocusProcess, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetCurrentSceneFocusProcess(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetCurrentSceneFocusProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastFrameRenderer, 4)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetLastFrameRenderer(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetLastFrameRenderer(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CanRenderScene, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_027_CanRenderScene(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_CanRenderScene(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ShowMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_ShowMirrorWindow(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_ShowMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_HideMirrorWindow, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_HideMirrorWindow(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_HideMirrorWindow(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsMirrorWindowVisible, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_027_IsMirrorWindowVisible(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_IsMirrorWindowVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_CompositorDumpImages, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_CompositorDumpImages(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_CompositorDumpImages(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ShouldAppRenderWithLowResources, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_027_ShouldAppRenderWithLowResources(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_ShouldAppRenderWithLowResources(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ForceInterleavedReprojectionOn, 5)
 void __thiscall winIVRCompositor_IVRCompositor_027_ForceInterleavedReprojectionOn(winIVRCompositor_IVRCompositor_027 *_this, bool bOverride)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_ForceInterleavedReprojectionOn(_this->linux_side, bOverride);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ForceReconnectProcess, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_ForceReconnectProcess(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_ForceReconnectProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SuspendRendering, 5)
 void __thiscall winIVRCompositor_IVRCompositor_027_SuspendRendering(winIVRCompositor_IVRCompositor_027 *_this, bool bSuspend)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_SuspendRendering(_this->linux_side, bSuspend);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetMirrorTextureD3D11, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_GetMirrorTextureD3D11(winIVRCompositor_IVRCompositor_027 *_this, EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetMirrorTextureD3D11(_this->linux_side, eEye, pD3D11DeviceOrResource, ppD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ReleaseMirrorTextureD3D11, 8)
 void __thiscall winIVRCompositor_IVRCompositor_027_ReleaseMirrorTextureD3D11(winIVRCompositor_IVRCompositor_027 *_this, void * pD3D11ShaderResourceView)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_ReleaseMirrorTextureD3D11(_this->linux_side, pD3D11ShaderResourceView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetMirrorTextureGL, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_GetMirrorTextureGL(winIVRCompositor_IVRCompositor_027 *_this, EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetMirrorTextureGL(_this->linux_side, eEye, pglTextureId, pglSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ReleaseSharedGLTexture, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_027_ReleaseSharedGLTexture(winIVRCompositor_IVRCompositor_027 *_this, glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_ReleaseSharedGLTexture(_this->linux_side, glTextureId, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_LockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_027_LockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_027 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_LockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_UnlockGLSharedTextureForAccess, 8)
 void __thiscall winIVRCompositor_IVRCompositor_027_UnlockGLSharedTextureForAccess(winIVRCompositor_IVRCompositor_027 *_this, glSharedTextureHandle_t glSharedTextureHandle)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_UnlockGLSharedTextureForAccess(_this->linux_side, glSharedTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetVulkanInstanceExtensionsRequired, 12)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetVulkanInstanceExtensionsRequired(winIVRCompositor_IVRCompositor_027 *_this, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetVulkanInstanceExtensionsRequired(_this->linux_side, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired, 16)
 uint32_t __thiscall winIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired(winIVRCompositor_IVRCompositor_027 *_this, VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return ivrcompositor_get_vulkan_device_extensions_required(cppIVRCompositor_IVRCompositor_027_GetVulkanDeviceExtensionsRequired, _this->linux_side, pPhysicalDevice, pchValue, unBufferSize, 27);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SetExplicitTimingMode, 8)
 void __thiscall winIVRCompositor_IVRCompositor_027_SetExplicitTimingMode(winIVRCompositor_IVRCompositor_027 *_this, EVRCompositorTimingMode eTimingMode)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_SetExplicitTimingMode(_this->linux_side, eTimingMode);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SubmitExplicitTimingData, 4)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_SubmitExplicitTimingData(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_SubmitExplicitTimingData(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsMotionSmoothingEnabled, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_027_IsMotionSmoothingEnabled(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_IsMotionSmoothingEnabled(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsMotionSmoothingSupported, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_027_IsMotionSmoothingSupported(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_IsMotionSmoothingSupported(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_IsCurrentSceneFocusAppLoading, 4)
 bool __thiscall winIVRCompositor_IVRCompositor_027_IsCurrentSceneFocusAppLoading(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_IsCurrentSceneFocusAppLoading(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_SetStageOverride_Async, 20)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_SetStageOverride_Async(winIVRCompositor_IVRCompositor_027 *_this, const char * pchRenderModelPath, HmdMatrix34_t * pTransform, Compositor_StageRenderSettings * pRenderSettings, uint32_t nSizeOfRenderSettings)
 {
     char lin_pchRenderModelPath[PATH_MAX];
@@ -7432,28 +7457,24 @@ EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_SetStageOverrid
     return cppIVRCompositor_IVRCompositor_027_SetStageOverride_Async(_this->linux_side, pchRenderModelPath ? lin_pchRenderModelPath : NULL, pTransform, pRenderSettings, nSizeOfRenderSettings);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_ClearStageOverride, 4)
 void __thiscall winIVRCompositor_IVRCompositor_027_ClearStageOverride(winIVRCompositor_IVRCompositor_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRCompositor_IVRCompositor_027_ClearStageOverride(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetCompositorBenchmarkResults, 12)
 bool __thiscall winIVRCompositor_IVRCompositor_027_GetCompositorBenchmarkResults(winIVRCompositor_IVRCompositor_027 *_this, Compositor_BenchmarkResults * pBenchmarkResults, uint32_t nSizeOfBenchmarkResults)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetCompositorBenchmarkResults(_this->linux_side, pBenchmarkResults, nSizeOfBenchmarkResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetLastPosePredictionIDs, 12)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_GetLastPosePredictionIDs(winIVRCompositor_IVRCompositor_027 *_this, uint32_t * pRenderPosePredictionID, uint32_t * pGamePosePredictionID)
 {
     TRACE("%p\n", _this);
     return cppIVRCompositor_IVRCompositor_027_GetLastPosePredictionIDs(_this->linux_side, pRenderPosePredictionID, pGamePosePredictionID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRCompositor_IVRCompositor_027_GetPosesForFrame, 16)
 EVRCompositorError __thiscall winIVRCompositor_IVRCompositor_027_GetPosesForFrame(winIVRCompositor_IVRCompositor_027 *_this, uint32_t unPosePredictionID, TrackedDevicePose_t * pPoseArray, uint32_t unPoseArrayCount)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRControlPanel.c b/vrclient_x64/vrclient_x64/winIVRControlPanel.c
index 91489ea4..278711f5 100644
--- a/vrclient_x64/vrclient_x64/winIVRControlPanel.c
+++ b/vrclient_x64/vrclient_x64/winIVRControlPanel.c
@@ -26,160 +26,166 @@ typedef struct __winIVRControlPanel_IVRControlPanel_006 {
 } winIVRControlPanel_IVRControlPanel_006;
 
 DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc1, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc2, 16)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc3, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc4, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc5, 20)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc6, 20)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc7, 20)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc8, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc9, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc10, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc12, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc13, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc14, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc15, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc16, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc17, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc18, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc19, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc20, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc21, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc22, 28)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc23, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc24, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc25, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc26, 4)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc27, 8)
+DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc28, 12)
+
 uint32_t __thiscall winIVRControlPanel_IVRControlPanel_006_undoc1(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc1(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc2, 16)
 uint32_t __thiscall winIVRControlPanel_IVRControlPanel_006_undoc2(winIVRControlPanel_IVRControlPanel_006 *_this, uint32_t a, char * b, uint32_t c)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc2(_this->linux_side, a, b, c);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc3, 8)
 EVRInitError __thiscall winIVRControlPanel_IVRControlPanel_006_undoc3(winIVRControlPanel_IVRControlPanel_006 *_this, const char * a)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc3(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc4, 8)
 uint32_t __thiscall winIVRControlPanel_IVRControlPanel_006_undoc4(winIVRControlPanel_IVRControlPanel_006 *_this, const char * a)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc4(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc5, 20)
 uint32_t __thiscall winIVRControlPanel_IVRControlPanel_006_undoc5(winIVRControlPanel_IVRControlPanel_006 *_this, const char * a, uint32_t b, char * c, uint32_t d)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc5(_this->linux_side, a, b, c, d);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc6, 20)
 uint32_t __thiscall winIVRControlPanel_IVRControlPanel_006_undoc6(winIVRControlPanel_IVRControlPanel_006 *_this, const char * a, const char * b, char * c, uint32_t d)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc6(_this->linux_side, a, b, c, d);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc7, 20)
 uint32_t __thiscall winIVRControlPanel_IVRControlPanel_006_undoc7(winIVRControlPanel_IVRControlPanel_006 *_this, const char * a, const char * b, char * c, uint32_t d)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc7(_this->linux_side, a, b, c, d);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc8, 8)
 bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc8(winIVRControlPanel_IVRControlPanel_006 *_this, uint32_t a)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc8(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc9, 4)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc9(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc9(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc10, 4)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc10(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc10(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc11, 8)
 bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc11(winIVRControlPanel_IVRControlPanel_006 *_this, uint32_t a)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc11(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc12, 4)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc12(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc12(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc13, 8)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc13(winIVRControlPanel_IVRControlPanel_006 *_this, TrackedDeviceIndex_t a)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc13(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc14, 8)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc14(winIVRControlPanel_IVRControlPanel_006 *_this, EVRState a)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc14(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc15, 4)
 EVRState __thiscall winIVRControlPanel_IVRControlPanel_006_undoc15(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc15(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc16, 5)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc16(winIVRControlPanel_IVRControlPanel_006 *_this, bool a)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc16(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc17, 4)
 bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc17(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc17(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc18, 4)
 EVRApplicationError __thiscall winIVRControlPanel_IVRControlPanel_006_undoc18(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc18(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc19, 5)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc19(winIVRControlPanel_IVRControlPanel_006 *_this, bool a)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc19(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc20, 4)
 bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc20(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc20(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc21, 4)
 EVRInitError __thiscall winIVRControlPanel_IVRControlPanel_006_undoc21(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc21(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc22, 28)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc22(winIVRControlPanel_IVRControlPanel_006 *_this, WebConsoleHandle_t a, const char * b, uint32_t c, uint32_t d, const char * e)
 {
     TRACE("%p\n", _this);
     cppIVRControlPanel_IVRControlPanel_006_undoc22(_this->linux_side, a, b, c, d, e);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc23, 8)
 bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc23(winIVRControlPanel_IVRControlPanel_006 *_this, const char * a)
 {
     char lin_a[PATH_MAX];
@@ -188,28 +194,24 @@ bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc23(winIVRControlPane
     return cppIVRControlPanel_IVRControlPanel_006_undoc23(_this->linux_side, a ? lin_a : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc24, 4)
 bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc24(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc24(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc25, 5)
 bool __thiscall winIVRControlPanel_IVRControlPanel_006_undoc25(winIVRControlPanel_IVRControlPanel_006 *_this, bool a)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc25(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc26, 4)
 uint64_t __thiscall winIVRControlPanel_IVRControlPanel_006_undoc26(winIVRControlPanel_IVRControlPanel_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRControlPanel_IVRControlPanel_006_undoc26(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc27, 8)
 EVRCompositorError __thiscall winIVRControlPanel_IVRControlPanel_006_undoc27(winIVRControlPanel_IVRControlPanel_006 *_this, const char * a)
 {
     char lin_a[PATH_MAX];
@@ -218,7 +220,6 @@ EVRCompositorError __thiscall winIVRControlPanel_IVRControlPanel_006_undoc27(win
     return cppIVRControlPanel_IVRControlPanel_006_undoc27(_this->linux_side, a ? lin_a : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRControlPanel_IVRControlPanel_006_undoc28, 12)
 void __thiscall winIVRControlPanel_IVRControlPanel_006_undoc28(winIVRControlPanel_IVRControlPanel_006 *_this, VROverlayHandle_t a)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRDriverManager.c b/vrclient_x64/vrclient_x64/winIVRDriverManager.c
index a60f3229..9b035342 100644
--- a/vrclient_x64/vrclient_x64/winIVRDriverManager.c
+++ b/vrclient_x64/vrclient_x64/winIVRDriverManager.c
@@ -26,27 +26,28 @@ typedef struct __winIVRDriverManager_IVRDriverManager_001 {
 } winIVRDriverManager_IVRDriverManager_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRDriverManager_IVRDriverManager_001_GetDriverCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRDriverManager_IVRDriverManager_001_GetDriverName, 16)
+DEFINE_THISCALL_WRAPPER(winIVRDriverManager_IVRDriverManager_001_GetDriverHandle, 8)
+DEFINE_THISCALL_WRAPPER(winIVRDriverManager_IVRDriverManager_001_IsEnabled, 8)
+
 uint32_t __thiscall winIVRDriverManager_IVRDriverManager_001_GetDriverCount(winIVRDriverManager_IVRDriverManager_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRDriverManager_IVRDriverManager_001_GetDriverCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRDriverManager_IVRDriverManager_001_GetDriverName, 16)
 uint32_t __thiscall winIVRDriverManager_IVRDriverManager_001_GetDriverName(winIVRDriverManager_IVRDriverManager_001 *_this, DriverId_t nDriver, char * pchValue, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRDriverManager_IVRDriverManager_001_GetDriverName(_this->linux_side, nDriver, pchValue, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRDriverManager_IVRDriverManager_001_GetDriverHandle, 8)
 DriverHandle_t __thiscall winIVRDriverManager_IVRDriverManager_001_GetDriverHandle(winIVRDriverManager_IVRDriverManager_001 *_this, const char * pchDriverName)
 {
     TRACE("%p\n", _this);
     return cppIVRDriverManager_IVRDriverManager_001_GetDriverHandle(_this->linux_side, pchDriverName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRDriverManager_IVRDriverManager_001_IsEnabled, 8)
 bool __thiscall winIVRDriverManager_IVRDriverManager_001_IsEnabled(winIVRDriverManager_IVRDriverManager_001 *_this, DriverId_t nDriver)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRExtendedDisplay.c b/vrclient_x64/vrclient_x64/winIVRExtendedDisplay.c
index 8df1650c..393d1c83 100644
--- a/vrclient_x64/vrclient_x64/winIVRExtendedDisplay.c
+++ b/vrclient_x64/vrclient_x64/winIVRExtendedDisplay.c
@@ -26,20 +26,21 @@ typedef struct __winIVRExtendedDisplay_IVRExtendedDisplay_001 {
 } winIVRExtendedDisplay_IVRExtendedDisplay_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRExtendedDisplay_IVRExtendedDisplay_001_GetWindowBounds, 20)
+DEFINE_THISCALL_WRAPPER(winIVRExtendedDisplay_IVRExtendedDisplay_001_GetEyeOutputViewport, 24)
+DEFINE_THISCALL_WRAPPER(winIVRExtendedDisplay_IVRExtendedDisplay_001_GetDXGIOutputInfo, 12)
+
 void __thiscall winIVRExtendedDisplay_IVRExtendedDisplay_001_GetWindowBounds(winIVRExtendedDisplay_IVRExtendedDisplay_001 *_this, int32_t * pnX, int32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRExtendedDisplay_IVRExtendedDisplay_001_GetWindowBounds(_this->linux_side, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRExtendedDisplay_IVRExtendedDisplay_001_GetEyeOutputViewport, 24)
 void __thiscall winIVRExtendedDisplay_IVRExtendedDisplay_001_GetEyeOutputViewport(winIVRExtendedDisplay_IVRExtendedDisplay_001 *_this, EVREye eEye, uint32_t * pnX, uint32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRExtendedDisplay_IVRExtendedDisplay_001_GetEyeOutputViewport(_this->linux_side, eEye, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRExtendedDisplay_IVRExtendedDisplay_001_GetDXGIOutputInfo, 12)
 void __thiscall winIVRExtendedDisplay_IVRExtendedDisplay_001_GetDXGIOutputInfo(winIVRExtendedDisplay_IVRExtendedDisplay_001 *_this, int32_t * pnAdapterIndex, int32_t * pnAdapterOutputIndex)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRHeadsetView.c b/vrclient_x64/vrclient_x64/winIVRHeadsetView.c
index ec11b257..c812f44c 100644
--- a/vrclient_x64/vrclient_x64/winIVRHeadsetView.c
+++ b/vrclient_x64/vrclient_x64/winIVRHeadsetView.c
@@ -26,62 +26,63 @@ typedef struct __winIVRHeadsetView_IVRHeadsetView_001 {
 } winIVRHeadsetView_IVRHeadsetView_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewMode, 8)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewMode, 4)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewCropped, 8)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewCropped, 4)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewAspectRatio, 4)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewBlendRange, 12)
+DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewBlendRange, 12)
+
 void __thiscall winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewSize(winIVRHeadsetView_IVRHeadsetView_001 *_this, uint32_t nWidth, uint32_t nHeight)
 {
     TRACE("%p\n", _this);
     cppIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewSize(_this->linux_side, nWidth, nHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewSize, 12)
 void __thiscall winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewSize(winIVRHeadsetView_IVRHeadsetView_001 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewMode, 8)
 void __thiscall winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewMode(winIVRHeadsetView_IVRHeadsetView_001 *_this, HeadsetViewMode_t eHeadsetViewMode)
 {
     TRACE("%p\n", _this);
     cppIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewMode(_this->linux_side, eHeadsetViewMode);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewMode, 4)
 HeadsetViewMode_t __thiscall winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewMode(winIVRHeadsetView_IVRHeadsetView_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewMode(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewCropped, 5)
 void __thiscall winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewCropped(winIVRHeadsetView_IVRHeadsetView_001 *_this, bool bCropped)
 {
     TRACE("%p\n", _this);
     cppIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewCropped(_this->linux_side, bCropped);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewCropped, 4)
 bool __thiscall winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewCropped(winIVRHeadsetView_IVRHeadsetView_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewCropped(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewAspectRatio, 4)
 float __thiscall winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewAspectRatio(winIVRHeadsetView_IVRHeadsetView_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewAspectRatio(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewBlendRange, 12)
 void __thiscall winIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewBlendRange(winIVRHeadsetView_IVRHeadsetView_001 *_this, float flStartPct, float flEndPct)
 {
     TRACE("%p\n", _this);
     cppIVRHeadsetView_IVRHeadsetView_001_SetHeadsetViewBlendRange(_this->linux_side, flStartPct, flEndPct);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewBlendRange, 12)
 void __thiscall winIVRHeadsetView_IVRHeadsetView_001_GetHeadsetViewBlendRange(winIVRHeadsetView_IVRHeadsetView_001 *_this, float * pStartPct, float * pEndPct)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRIOBuffer.c b/vrclient_x64/vrclient_x64/winIVRIOBuffer.c
index a3f8d5e3..be00022d 100644
--- a/vrclient_x64/vrclient_x64/winIVRIOBuffer.c
+++ b/vrclient_x64/vrclient_x64/winIVRIOBuffer.c
@@ -26,34 +26,35 @@ typedef struct __winIVRIOBuffer_IVRIOBuffer_001 {
 } winIVRIOBuffer_IVRIOBuffer_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_Open, 24)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_Close, 12)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_Read, 24)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_Write, 20)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_PropertyContainer, 12)
+
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_001_Open(winIVRIOBuffer_IVRIOBuffer_001 *_this, const char * pchPath, EIOBufferMode mode, uint32_t unElementSize, uint32_t unElements, IOBufferHandle_t * pulBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_001_Open(_this->linux_side, pchPath, mode, unElementSize, unElements, pulBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_Close, 12)
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_001_Close(winIVRIOBuffer_IVRIOBuffer_001 *_this, IOBufferHandle_t ulBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_001_Close(_this->linux_side, ulBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_Read, 24)
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_001_Read(winIVRIOBuffer_IVRIOBuffer_001 *_this, IOBufferHandle_t ulBuffer, void * pDst, uint32_t unBytes, uint32_t * punRead)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_001_Read(_this->linux_side, ulBuffer, pDst, unBytes, punRead);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_Write, 20)
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_001_Write(winIVRIOBuffer_IVRIOBuffer_001 *_this, IOBufferHandle_t ulBuffer, void * pSrc, uint32_t unBytes)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_001_Write(_this->linux_side, ulBuffer, pSrc, unBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_001_PropertyContainer, 12)
 PropertyContainerHandle_t __thiscall winIVRIOBuffer_IVRIOBuffer_001_PropertyContainer(winIVRIOBuffer_IVRIOBuffer_001 *_this, IOBufferHandle_t ulBuffer)
 {
     TRACE("%p\n", _this);
@@ -128,41 +129,42 @@ typedef struct __winIVRIOBuffer_IVRIOBuffer_002 {
 } winIVRIOBuffer_IVRIOBuffer_002;
 
 DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_Open, 24)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_Close, 12)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_Read, 24)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_Write, 20)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_PropertyContainer, 12)
+DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_HasReaders, 12)
+
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_002_Open(winIVRIOBuffer_IVRIOBuffer_002 *_this, const char * pchPath, EIOBufferMode mode, uint32_t unElementSize, uint32_t unElements, IOBufferHandle_t * pulBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_002_Open(_this->linux_side, pchPath, mode, unElementSize, unElements, pulBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_Close, 12)
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_002_Close(winIVRIOBuffer_IVRIOBuffer_002 *_this, IOBufferHandle_t ulBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_002_Close(_this->linux_side, ulBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_Read, 24)
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_002_Read(winIVRIOBuffer_IVRIOBuffer_002 *_this, IOBufferHandle_t ulBuffer, void * pDst, uint32_t unBytes, uint32_t * punRead)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_002_Read(_this->linux_side, ulBuffer, pDst, unBytes, punRead);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_Write, 20)
 EIOBufferError __thiscall winIVRIOBuffer_IVRIOBuffer_002_Write(winIVRIOBuffer_IVRIOBuffer_002 *_this, IOBufferHandle_t ulBuffer, void * pSrc, uint32_t unBytes)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_002_Write(_this->linux_side, ulBuffer, pSrc, unBytes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_PropertyContainer, 12)
 PropertyContainerHandle_t __thiscall winIVRIOBuffer_IVRIOBuffer_002_PropertyContainer(winIVRIOBuffer_IVRIOBuffer_002 *_this, IOBufferHandle_t ulBuffer)
 {
     TRACE("%p\n", _this);
     return cppIVRIOBuffer_IVRIOBuffer_002_PropertyContainer(_this->linux_side, ulBuffer);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRIOBuffer_IVRIOBuffer_002_HasReaders, 12)
 bool __thiscall winIVRIOBuffer_IVRIOBuffer_002_HasReaders(winIVRIOBuffer_IVRIOBuffer_002 *_this, IOBufferHandle_t ulBuffer)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRInput.c b/vrclient_x64/vrclient_x64/winIVRInput.c
index 8d1186ad..45cc42d7 100644
--- a/vrclient_x64/vrclient_x64/winIVRInput.c
+++ b/vrclient_x64/vrclient_x64/winIVRInput.c
@@ -26,6 +26,23 @@ typedef struct __winIVRInput_IVRInput_003 {
 } winIVRInput_IVRInput_003;
 
 DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_SetActionManifestPath, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetActionSetHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetActionHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetInputSourceHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_UpdateActionState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetDigitalActionData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetAnalogActionData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetPoseActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetSkeletalActionData, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetSkeletalActionDataCompressed, 32)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_UncompressSkeletalActionData, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_TriggerHapticVibrationAction, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetActionOrigins, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetOriginLocalizedName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetOriginTrackedDeviceInfo, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_ShowActionOrigins, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_ShowBindingsForActionSet, 24)
+
 EVRInputError __thiscall winIVRInput_IVRInput_003_SetActionManifestPath(winIVRInput_IVRInput_003 *_this, const char * pchActionManifestPath)
 {
     char lin_pchActionManifestPath[PATH_MAX];
@@ -34,112 +51,96 @@ EVRInputError __thiscall winIVRInput_IVRInput_003_SetActionManifestPath(winIVRIn
     return cppIVRInput_IVRInput_003_SetActionManifestPath(_this->linux_side, pchActionManifestPath ? lin_pchActionManifestPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetActionSetHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetActionSetHandle(winIVRInput_IVRInput_003 *_this, const char * pchActionSetName, VRActionSetHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetActionSetHandle(_this->linux_side, pchActionSetName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetActionHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetActionHandle(winIVRInput_IVRInput_003 *_this, const char * pchActionName, VRActionHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetActionHandle(_this->linux_side, pchActionName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetInputSourceHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetInputSourceHandle(winIVRInput_IVRInput_003 *_this, const char * pchInputSourcePath, VRInputValueHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetInputSourceHandle(_this->linux_side, pchInputSourcePath, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_UpdateActionState, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_003_UpdateActionState(winIVRInput_IVRInput_003 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_UpdateActionState(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetDigitalActionData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetDigitalActionData(winIVRInput_IVRInput_003 *_this, VRActionHandle_t action, winInputDigitalActionData_t_1015 * pActionData, uint32_t unActionDataSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetDigitalActionData(_this->linux_side, action, pActionData, unActionDataSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetAnalogActionData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetAnalogActionData(winIVRInput_IVRInput_003 *_this, VRActionHandle_t action, winInputAnalogActionData_t_1015 * pActionData, uint32_t unActionDataSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetAnalogActionData(_this->linux_side, action, pActionData, unActionDataSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetPoseActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetPoseActionData(winIVRInput_IVRInput_003 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, winInputPoseActionData_t_1015 * pActionData, uint32_t unActionDataSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetPoseActionData(_this->linux_side, action, eOrigin, fPredictedSecondsFromNow, pActionData, unActionDataSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetSkeletalActionData, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetSkeletalActionData(winIVRInput_IVRInput_003 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eBoneParent, float fPredictedSecondsFromNow, winInputSkeletonActionData_t_1015 * pActionData, uint32_t unActionDataSize, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetSkeletalActionData(_this->linux_side, action, eBoneParent, fPredictedSecondsFromNow, pActionData, unActionDataSize, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetSkeletalActionDataCompressed, 32)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetSkeletalActionDataCompressed(winIVRInput_IVRInput_003 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eBoneParent, float fPredictedSecondsFromNow, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetSkeletalActionDataCompressed(_this->linux_side, action, eBoneParent, fPredictedSecondsFromNow, pvCompressedData, unCompressedSize, punRequiredCompressedSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_UncompressSkeletalActionData, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_003_UncompressSkeletalActionData(winIVRInput_IVRInput_003 *_this, void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace * peBoneParent, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_UncompressSkeletalActionData(_this->linux_side, pvCompressedBuffer, unCompressedBufferSize, peBoneParent, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_TriggerHapticVibrationAction, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_003_TriggerHapticVibrationAction(winIVRInput_IVRInput_003 *_this, VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_TriggerHapticVibrationAction(_this->linux_side, action, fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetActionOrigins, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetActionOrigins(winIVRInput_IVRInput_003 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VRInputValueHandle_t * originsOut, uint32_t originOutCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetActionOrigins(_this->linux_side, actionSetHandle, digitalActionHandle, originsOut, originOutCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetOriginLocalizedName, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetOriginLocalizedName(winIVRInput_IVRInput_003 *_this, VRInputValueHandle_t origin, char * pchNameArray, uint32_t unNameArraySize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetOriginLocalizedName(_this->linux_side, origin, pchNameArray, unNameArraySize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_GetOriginTrackedDeviceInfo, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_003_GetOriginTrackedDeviceInfo(winIVRInput_IVRInput_003 *_this, VRInputValueHandle_t origin, InputOriginInfo_t * pOriginInfo, uint32_t unOriginInfoSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_GetOriginTrackedDeviceInfo(_this->linux_side, origin, pOriginInfo, unOriginInfoSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_ShowActionOrigins, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_003_ShowActionOrigins(winIVRInput_IVRInput_003 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_003_ShowActionOrigins(_this->linux_side, actionSetHandle, ulActionHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_003_ShowBindingsForActionSet, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_003_ShowBindingsForActionSet(winIVRInput_IVRInput_003 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight)
 {
     TRACE("%p\n", _this);
@@ -238,6 +239,24 @@ typedef struct __winIVRInput_IVRInput_004 {
 } winIVRInput_IVRInput_004;
 
 DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_SetActionManifestPath, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetActionSetHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetActionHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetInputSourceHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_UpdateActionState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetDigitalActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetAnalogActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetPoseActionData, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetSkeletalActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetSkeletalBoneData, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetSkeletalBoneDataCompressed, 40)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_DecompressSkeletalBoneData, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_TriggerHapticVibrationAction, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetActionOrigins, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetOriginLocalizedName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetOriginTrackedDeviceInfo, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_ShowActionOrigins, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_ShowBindingsForActionSet, 24)
+
 EVRInputError __thiscall winIVRInput_IVRInput_004_SetActionManifestPath(winIVRInput_IVRInput_004 *_this, const char * pchActionManifestPath)
 {
     char lin_pchActionManifestPath[PATH_MAX];
@@ -246,119 +265,102 @@ EVRInputError __thiscall winIVRInput_IVRInput_004_SetActionManifestPath(winIVRIn
     return cppIVRInput_IVRInput_004_SetActionManifestPath(_this->linux_side, pchActionManifestPath ? lin_pchActionManifestPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetActionSetHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetActionSetHandle(winIVRInput_IVRInput_004 *_this, const char * pchActionSetName, VRActionSetHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetActionSetHandle(_this->linux_side, pchActionSetName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetActionHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetActionHandle(winIVRInput_IVRInput_004 *_this, const char * pchActionName, VRActionHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetActionHandle(_this->linux_side, pchActionName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetInputSourceHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetInputSourceHandle(winIVRInput_IVRInput_004 *_this, const char * pchInputSourcePath, VRInputValueHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetInputSourceHandle(_this->linux_side, pchInputSourcePath, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_UpdateActionState, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_004_UpdateActionState(winIVRInput_IVRInput_004 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_UpdateActionState(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetDigitalActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetDigitalActionData(winIVRInput_IVRInput_004 *_this, VRActionHandle_t action, winInputDigitalActionData_t_1017 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return ivrinput_get_digital_action_data(cppIVRInput_IVRInput_004_GetDigitalActionData, _this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice, 4);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetAnalogActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetAnalogActionData(winIVRInput_IVRInput_004 *_this, VRActionHandle_t action, winInputAnalogActionData_t_1017 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetAnalogActionData(_this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetPoseActionData, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetPoseActionData(winIVRInput_IVRInput_004 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, winInputPoseActionData_t_1017 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetPoseActionData(_this->linux_side, action, eOrigin, fPredictedSecondsFromNow, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetSkeletalActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetSkeletalActionData(winIVRInput_IVRInput_004 *_this, VRActionHandle_t action, winInputSkeletalActionData_t_1017 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetSkeletalActionData(_this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetSkeletalBoneData, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetSkeletalBoneData(winIVRInput_IVRInput_004 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetSkeletalBoneData(_this->linux_side, action, eTransformSpace, eMotionRange, pTransformArray, unTransformArrayCount, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetSkeletalBoneDataCompressed, 40)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetSkeletalBoneDataCompressed(winIVRInput_IVRInput_004 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetSkeletalBoneDataCompressed(_this->linux_side, action, eTransformSpace, eMotionRange, pvCompressedData, unCompressedSize, punRequiredCompressedSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_DecompressSkeletalBoneData, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_004_DecompressSkeletalBoneData(winIVRInput_IVRInput_004 *_this, void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace * peTransformSpace, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_DecompressSkeletalBoneData(_this->linux_side, pvCompressedBuffer, unCompressedBufferSize, peTransformSpace, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_TriggerHapticVibrationAction, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_004_TriggerHapticVibrationAction(winIVRInput_IVRInput_004 *_this, VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_TriggerHapticVibrationAction(_this->linux_side, action, fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetActionOrigins, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetActionOrigins(winIVRInput_IVRInput_004 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VRInputValueHandle_t * originsOut, uint32_t originOutCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetActionOrigins(_this->linux_side, actionSetHandle, digitalActionHandle, originsOut, originOutCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetOriginLocalizedName, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetOriginLocalizedName(winIVRInput_IVRInput_004 *_this, VRInputValueHandle_t origin, char * pchNameArray, uint32_t unNameArraySize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetOriginLocalizedName(_this->linux_side, origin, pchNameArray, unNameArraySize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_GetOriginTrackedDeviceInfo, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_004_GetOriginTrackedDeviceInfo(winIVRInput_IVRInput_004 *_this, VRInputValueHandle_t origin, InputOriginInfo_t * pOriginInfo, uint32_t unOriginInfoSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_GetOriginTrackedDeviceInfo(_this->linux_side, origin, pOriginInfo, unOriginInfoSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_ShowActionOrigins, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_004_ShowActionOrigins(winIVRInput_IVRInput_004 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_004_ShowActionOrigins(_this->linux_side, actionSetHandle, ulActionHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_004_ShowBindingsForActionSet, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_004_ShowBindingsForActionSet(winIVRInput_IVRInput_004 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight)
 {
     TRACE("%p\n", _this);
@@ -459,6 +461,31 @@ typedef struct __winIVRInput_IVRInput_005 {
 } winIVRInput_IVRInput_005;
 
 DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_SetActionManifestPath, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetActionSetHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetActionHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetInputSourceHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_UpdateActionState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetDigitalActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetAnalogActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetPoseActionData, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalActionData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetBoneCount, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetBoneHierarchy, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetBoneName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalReferenceTransforms, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalTrackingLevel, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalBoneData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalSummaryData, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalBoneDataCompressed, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_DecompressSkeletalBoneData, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_TriggerHapticVibrationAction, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetActionOrigins, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetOriginLocalizedName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetOriginTrackedDeviceInfo, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_ShowActionOrigins, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_ShowBindingsForActionSet, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_IsUsingLegacyInput, 4)
+
 EVRInputError __thiscall winIVRInput_IVRInput_005_SetActionManifestPath(winIVRInput_IVRInput_005 *_this, const char * pchActionManifestPath)
 {
     char lin_pchActionManifestPath[PATH_MAX];
@@ -467,168 +494,144 @@ EVRInputError __thiscall winIVRInput_IVRInput_005_SetActionManifestPath(winIVRIn
     return cppIVRInput_IVRInput_005_SetActionManifestPath(_this->linux_side, pchActionManifestPath ? lin_pchActionManifestPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetActionSetHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetActionSetHandle(winIVRInput_IVRInput_005 *_this, const char * pchActionSetName, VRActionSetHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetActionSetHandle(_this->linux_side, pchActionSetName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetActionHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetActionHandle(winIVRInput_IVRInput_005 *_this, const char * pchActionName, VRActionHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetActionHandle(_this->linux_side, pchActionName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetInputSourceHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetInputSourceHandle(winIVRInput_IVRInput_005 *_this, const char * pchInputSourcePath, VRInputValueHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetInputSourceHandle(_this->linux_side, pchInputSourcePath, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_UpdateActionState, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_005_UpdateActionState(winIVRInput_IVRInput_005 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_UpdateActionState(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetDigitalActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetDigitalActionData(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, winInputDigitalActionData_t_1322 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return ivrinput_get_digital_action_data(cppIVRInput_IVRInput_005_GetDigitalActionData, _this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice, 5);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetAnalogActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetAnalogActionData(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, winInputAnalogActionData_t_1322 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetAnalogActionData(_this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetPoseActionData, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetPoseActionData(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, winInputPoseActionData_t_1322 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetPoseActionData(_this->linux_side, action, eOrigin, fPredictedSecondsFromNow, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalActionData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetSkeletalActionData(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, winInputSkeletalActionData_t_1322 * pActionData, uint32_t unActionDataSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetSkeletalActionData(_this->linux_side, action, pActionData, unActionDataSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetBoneCount, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetBoneCount(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, uint32_t * pBoneCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetBoneCount(_this->linux_side, action, pBoneCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetBoneHierarchy, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetBoneHierarchy(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, BoneIndex_t * pParentIndices, uint32_t unIndexArayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetBoneHierarchy(_this->linux_side, action, pParentIndices, unIndexArayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetBoneName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetBoneName(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, BoneIndex_t nBoneIndex, char * pchBoneName, uint32_t unNameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetBoneName(_this->linux_side, action, nBoneIndex, pchBoneName, unNameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalReferenceTransforms, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetSkeletalReferenceTransforms(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetSkeletalReferenceTransforms(_this->linux_side, action, eTransformSpace, eReferencePose, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalTrackingLevel, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetSkeletalTrackingLevel(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, EVRSkeletalTrackingLevel * pSkeletalTrackingLevel)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetSkeletalTrackingLevel(_this->linux_side, action, pSkeletalTrackingLevel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalBoneData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetSkeletalBoneData(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetSkeletalBoneData(_this->linux_side, action, eTransformSpace, eMotionRange, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalSummaryData, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetSkeletalSummaryData(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, VRSkeletalSummaryData_t * pSkeletalSummaryData)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetSkeletalSummaryData(_this->linux_side, action, pSkeletalSummaryData);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetSkeletalBoneDataCompressed, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetSkeletalBoneDataCompressed(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetSkeletalBoneDataCompressed(_this->linux_side, action, eMotionRange, pvCompressedData, unCompressedSize, punRequiredCompressedSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_DecompressSkeletalBoneData, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_005_DecompressSkeletalBoneData(winIVRInput_IVRInput_005 *_this, const void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_DecompressSkeletalBoneData(_this->linux_side, pvCompressedBuffer, unCompressedBufferSize, eTransformSpace, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_TriggerHapticVibrationAction, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_005_TriggerHapticVibrationAction(winIVRInput_IVRInput_005 *_this, VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_TriggerHapticVibrationAction(_this->linux_side, action, fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetActionOrigins, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetActionOrigins(winIVRInput_IVRInput_005 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VRInputValueHandle_t * originsOut, uint32_t originOutCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetActionOrigins(_this->linux_side, actionSetHandle, digitalActionHandle, originsOut, originOutCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetOriginLocalizedName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetOriginLocalizedName(winIVRInput_IVRInput_005 *_this, VRInputValueHandle_t origin, char * pchNameArray, uint32_t unNameArraySize, int32_t unStringSectionsToInclude)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetOriginLocalizedName(_this->linux_side, origin, pchNameArray, unNameArraySize, unStringSectionsToInclude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_GetOriginTrackedDeviceInfo, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_005_GetOriginTrackedDeviceInfo(winIVRInput_IVRInput_005 *_this, VRInputValueHandle_t origin, InputOriginInfo_t * pOriginInfo, uint32_t unOriginInfoSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_GetOriginTrackedDeviceInfo(_this->linux_side, origin, pOriginInfo, unOriginInfoSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_ShowActionOrigins, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_005_ShowActionOrigins(winIVRInput_IVRInput_005 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_ShowActionOrigins(_this->linux_side, actionSetHandle, ulActionHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_ShowBindingsForActionSet, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_005_ShowBindingsForActionSet(winIVRInput_IVRInput_005 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_005_ShowBindingsForActionSet(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount, originToHighlight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_005_IsUsingLegacyInput, 4)
 bool __thiscall winIVRInput_IVRInput_005_IsUsingLegacyInput(winIVRInput_IVRInput_005 *_this)
 {
     TRACE("%p\n", _this);
@@ -743,6 +746,32 @@ typedef struct __winIVRInput_IVRInput_006 {
 } winIVRInput_IVRInput_006;
 
 DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_SetActionManifestPath, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetActionSetHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetActionHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetInputSourceHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_UpdateActionState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetDigitalActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetAnalogActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetPoseActionDataRelativeToNow, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetPoseActionDataForNextFrame, 32)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalActionData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetBoneCount, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetBoneHierarchy, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetBoneName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalReferenceTransforms, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalTrackingLevel, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalBoneData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalSummaryData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalBoneDataCompressed, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_DecompressSkeletalBoneData, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_TriggerHapticVibrationAction, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetActionOrigins, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetOriginLocalizedName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetOriginTrackedDeviceInfo, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_ShowActionOrigins, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_ShowBindingsForActionSet, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_IsUsingLegacyInput, 4)
+
 EVRInputError __thiscall winIVRInput_IVRInput_006_SetActionManifestPath(winIVRInput_IVRInput_006 *_this, const char * pchActionManifestPath)
 {
     char lin_pchActionManifestPath[PATH_MAX];
@@ -751,175 +780,150 @@ EVRInputError __thiscall winIVRInput_IVRInput_006_SetActionManifestPath(winIVRIn
     return cppIVRInput_IVRInput_006_SetActionManifestPath(_this->linux_side, pchActionManifestPath ? lin_pchActionManifestPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetActionSetHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetActionSetHandle(winIVRInput_IVRInput_006 *_this, const char * pchActionSetName, VRActionSetHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetActionSetHandle(_this->linux_side, pchActionSetName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetActionHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetActionHandle(winIVRInput_IVRInput_006 *_this, const char * pchActionName, VRActionHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetActionHandle(_this->linux_side, pchActionName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetInputSourceHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetInputSourceHandle(winIVRInput_IVRInput_006 *_this, const char * pchInputSourcePath, VRInputValueHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetInputSourceHandle(_this->linux_side, pchInputSourcePath, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_UpdateActionState, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_006_UpdateActionState(winIVRInput_IVRInput_006 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_UpdateActionState(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetDigitalActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetDigitalActionData(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, winInputDigitalActionData_t_1418 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return ivrinput_get_digital_action_data(cppIVRInput_IVRInput_006_GetDigitalActionData, _this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice, 6);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetAnalogActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetAnalogActionData(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, winInputAnalogActionData_t_1418 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetAnalogActionData(_this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetPoseActionDataRelativeToNow, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetPoseActionDataRelativeToNow(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, winInputPoseActionData_t_1418 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetPoseActionDataRelativeToNow(_this->linux_side, action, eOrigin, fPredictedSecondsFromNow, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetPoseActionDataForNextFrame, 32)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetPoseActionDataForNextFrame(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, winInputPoseActionData_t_1418 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetPoseActionDataForNextFrame(_this->linux_side, action, eOrigin, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalActionData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetSkeletalActionData(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, winInputSkeletalActionData_t_1418 * pActionData, uint32_t unActionDataSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetSkeletalActionData(_this->linux_side, action, pActionData, unActionDataSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetBoneCount, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetBoneCount(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, uint32_t * pBoneCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetBoneCount(_this->linux_side, action, pBoneCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetBoneHierarchy, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetBoneHierarchy(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, BoneIndex_t * pParentIndices, uint32_t unIndexArayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetBoneHierarchy(_this->linux_side, action, pParentIndices, unIndexArayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetBoneName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetBoneName(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, BoneIndex_t nBoneIndex, char * pchBoneName, uint32_t unNameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetBoneName(_this->linux_side, action, nBoneIndex, pchBoneName, unNameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalReferenceTransforms, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetSkeletalReferenceTransforms(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetSkeletalReferenceTransforms(_this->linux_side, action, eTransformSpace, eReferencePose, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalTrackingLevel, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetSkeletalTrackingLevel(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, EVRSkeletalTrackingLevel * pSkeletalTrackingLevel)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetSkeletalTrackingLevel(_this->linux_side, action, pSkeletalTrackingLevel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalBoneData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetSkeletalBoneData(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetSkeletalBoneData(_this->linux_side, action, eTransformSpace, eMotionRange, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalSummaryData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetSkeletalSummaryData(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, EVRSummaryType eSummaryType, VRSkeletalSummaryData_t * pSkeletalSummaryData)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetSkeletalSummaryData(_this->linux_side, action, eSummaryType, pSkeletalSummaryData);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetSkeletalBoneDataCompressed, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetSkeletalBoneDataCompressed(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetSkeletalBoneDataCompressed(_this->linux_side, action, eMotionRange, pvCompressedData, unCompressedSize, punRequiredCompressedSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_DecompressSkeletalBoneData, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_006_DecompressSkeletalBoneData(winIVRInput_IVRInput_006 *_this, const void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_DecompressSkeletalBoneData(_this->linux_side, pvCompressedBuffer, unCompressedBufferSize, eTransformSpace, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_TriggerHapticVibrationAction, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_006_TriggerHapticVibrationAction(winIVRInput_IVRInput_006 *_this, VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_TriggerHapticVibrationAction(_this->linux_side, action, fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetActionOrigins, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetActionOrigins(winIVRInput_IVRInput_006 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VRInputValueHandle_t * originsOut, uint32_t originOutCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetActionOrigins(_this->linux_side, actionSetHandle, digitalActionHandle, originsOut, originOutCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetOriginLocalizedName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetOriginLocalizedName(winIVRInput_IVRInput_006 *_this, VRInputValueHandle_t origin, char * pchNameArray, uint32_t unNameArraySize, int32_t unStringSectionsToInclude)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetOriginLocalizedName(_this->linux_side, origin, pchNameArray, unNameArraySize, unStringSectionsToInclude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_GetOriginTrackedDeviceInfo, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_006_GetOriginTrackedDeviceInfo(winIVRInput_IVRInput_006 *_this, VRInputValueHandle_t origin, InputOriginInfo_t * pOriginInfo, uint32_t unOriginInfoSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_GetOriginTrackedDeviceInfo(_this->linux_side, origin, pOriginInfo, unOriginInfoSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_ShowActionOrigins, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_006_ShowActionOrigins(winIVRInput_IVRInput_006 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_ShowActionOrigins(_this->linux_side, actionSetHandle, ulActionHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_ShowBindingsForActionSet, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_006_ShowBindingsForActionSet(winIVRInput_IVRInput_006 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_006_ShowBindingsForActionSet(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount, originToHighlight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_006_IsUsingLegacyInput, 4)
 bool __thiscall winIVRInput_IVRInput_006_IsUsingLegacyInput(winIVRInput_IVRInput_006 *_this)
 {
     TRACE("%p\n", _this);
@@ -1036,6 +1040,34 @@ typedef struct __winIVRInput_IVRInput_007 {
 } winIVRInput_IVRInput_007;
 
 DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_SetActionManifestPath, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionSetHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetInputSourceHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_UpdateActionState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetDigitalActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetAnalogActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetPoseActionDataRelativeToNow, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetPoseActionDataForNextFrame, 32)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalActionData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetBoneCount, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetBoneHierarchy, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetBoneName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalReferenceTransforms, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalTrackingLevel, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalBoneData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalSummaryData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalBoneDataCompressed, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_DecompressSkeletalBoneData, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_TriggerHapticVibrationAction, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionOrigins, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetOriginLocalizedName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetOriginTrackedDeviceInfo, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionBindingInfo, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_ShowActionOrigins, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_ShowBindingsForActionSet, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_IsUsingLegacyInput, 4)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_OpenBindingUI, 28)
+
 EVRInputError __thiscall winIVRInput_IVRInput_007_SetActionManifestPath(winIVRInput_IVRInput_007 *_this, const char * pchActionManifestPath)
 {
     char lin_pchActionManifestPath[PATH_MAX];
@@ -1044,189 +1076,162 @@ EVRInputError __thiscall winIVRInput_IVRInput_007_SetActionManifestPath(winIVRIn
     return cppIVRInput_IVRInput_007_SetActionManifestPath(_this->linux_side, pchActionManifestPath ? lin_pchActionManifestPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionSetHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetActionSetHandle(winIVRInput_IVRInput_007 *_this, const char * pchActionSetName, VRActionSetHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetActionSetHandle(_this->linux_side, pchActionSetName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetActionHandle(winIVRInput_IVRInput_007 *_this, const char * pchActionName, VRActionHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetActionHandle(_this->linux_side, pchActionName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetInputSourceHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetInputSourceHandle(winIVRInput_IVRInput_007 *_this, const char * pchInputSourcePath, VRInputValueHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetInputSourceHandle(_this->linux_side, pchInputSourcePath, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_UpdateActionState, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_007_UpdateActionState(winIVRInput_IVRInput_007 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_UpdateActionState(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetDigitalActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetDigitalActionData(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, winInputDigitalActionData_t_1916 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return ivrinput_get_digital_action_data(cppIVRInput_IVRInput_007_GetDigitalActionData, _this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice, 7);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetAnalogActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetAnalogActionData(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, winInputAnalogActionData_t_1916 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetAnalogActionData(_this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetPoseActionDataRelativeToNow, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetPoseActionDataRelativeToNow(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, winInputPoseActionData_t_1916 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetPoseActionDataRelativeToNow(_this->linux_side, action, eOrigin, fPredictedSecondsFromNow, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetPoseActionDataForNextFrame, 32)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetPoseActionDataForNextFrame(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, winInputPoseActionData_t_1916 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetPoseActionDataForNextFrame(_this->linux_side, action, eOrigin, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalActionData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetSkeletalActionData(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, winInputSkeletalActionData_t_1916 * pActionData, uint32_t unActionDataSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetSkeletalActionData(_this->linux_side, action, pActionData, unActionDataSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetBoneCount, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetBoneCount(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, uint32_t * pBoneCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetBoneCount(_this->linux_side, action, pBoneCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetBoneHierarchy, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetBoneHierarchy(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, BoneIndex_t * pParentIndices, uint32_t unIndexArayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetBoneHierarchy(_this->linux_side, action, pParentIndices, unIndexArayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetBoneName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetBoneName(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, BoneIndex_t nBoneIndex, char * pchBoneName, uint32_t unNameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetBoneName(_this->linux_side, action, nBoneIndex, pchBoneName, unNameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalReferenceTransforms, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetSkeletalReferenceTransforms(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetSkeletalReferenceTransforms(_this->linux_side, action, eTransformSpace, eReferencePose, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalTrackingLevel, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetSkeletalTrackingLevel(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, EVRSkeletalTrackingLevel * pSkeletalTrackingLevel)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetSkeletalTrackingLevel(_this->linux_side, action, pSkeletalTrackingLevel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalBoneData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetSkeletalBoneData(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetSkeletalBoneData(_this->linux_side, action, eTransformSpace, eMotionRange, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalSummaryData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetSkeletalSummaryData(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, EVRSummaryType eSummaryType, VRSkeletalSummaryData_t * pSkeletalSummaryData)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetSkeletalSummaryData(_this->linux_side, action, eSummaryType, pSkeletalSummaryData);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetSkeletalBoneDataCompressed, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetSkeletalBoneDataCompressed(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetSkeletalBoneDataCompressed(_this->linux_side, action, eMotionRange, pvCompressedData, unCompressedSize, punRequiredCompressedSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_DecompressSkeletalBoneData, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_007_DecompressSkeletalBoneData(winIVRInput_IVRInput_007 *_this, const void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_DecompressSkeletalBoneData(_this->linux_side, pvCompressedBuffer, unCompressedBufferSize, eTransformSpace, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_TriggerHapticVibrationAction, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_007_TriggerHapticVibrationAction(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_TriggerHapticVibrationAction(_this->linux_side, action, fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionOrigins, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetActionOrigins(winIVRInput_IVRInput_007 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VRInputValueHandle_t * originsOut, uint32_t originOutCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetActionOrigins(_this->linux_side, actionSetHandle, digitalActionHandle, originsOut, originOutCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetOriginLocalizedName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetOriginLocalizedName(winIVRInput_IVRInput_007 *_this, VRInputValueHandle_t origin, char * pchNameArray, uint32_t unNameArraySize, int32_t unStringSectionsToInclude)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetOriginLocalizedName(_this->linux_side, origin, pchNameArray, unNameArraySize, unStringSectionsToInclude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetOriginTrackedDeviceInfo, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetOriginTrackedDeviceInfo(winIVRInput_IVRInput_007 *_this, VRInputValueHandle_t origin, InputOriginInfo_t * pOriginInfo, uint32_t unOriginInfoSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetOriginTrackedDeviceInfo(_this->linux_side, origin, pOriginInfo, unOriginInfoSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_GetActionBindingInfo, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_007_GetActionBindingInfo(winIVRInput_IVRInput_007 *_this, VRActionHandle_t action, InputBindingInfo_t * pOriginInfo, uint32_t unBindingInfoSize, uint32_t unBindingInfoCount, uint32_t * punReturnedBindingInfoCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_GetActionBindingInfo(_this->linux_side, action, pOriginInfo, unBindingInfoSize, unBindingInfoCount, punReturnedBindingInfoCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_ShowActionOrigins, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_007_ShowActionOrigins(winIVRInput_IVRInput_007 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_ShowActionOrigins(_this->linux_side, actionSetHandle, ulActionHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_ShowBindingsForActionSet, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_007_ShowBindingsForActionSet(winIVRInput_IVRInput_007 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_ShowBindingsForActionSet(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount, originToHighlight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_IsUsingLegacyInput, 4)
 bool __thiscall winIVRInput_IVRInput_007_IsUsingLegacyInput(winIVRInput_IVRInput_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_007_IsUsingLegacyInput(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_007_OpenBindingUI, 25)
 EVRInputError __thiscall winIVRInput_IVRInput_007_OpenBindingUI(winIVRInput_IVRInput_007 *_this, const char * pchAppKey, VRActionSetHandle_t ulActionSetHandle, VRInputValueHandle_t ulDeviceHandle, bool bShowOnDesktop)
 {
     TRACE("%p\n", _this);
@@ -1347,6 +1352,38 @@ typedef struct __winIVRInput_IVRInput_010 {
 } winIVRInput_IVRInput_010;
 
 DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_SetActionManifestPath, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionSetHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetInputSourceHandle, 12)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_UpdateActionState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetDigitalActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetAnalogActionData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetPoseActionDataRelativeToNow, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetPoseActionDataForNextFrame, 32)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalActionData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetDominantHand, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_SetDominantHand, 8)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBoneCount, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBoneHierarchy, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBoneName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalReferenceTransforms, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalTrackingLevel, 16)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalBoneData, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalSummaryData, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalBoneDataCompressed, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_DecompressSkeletalBoneData, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_TriggerHapticVibrationAction, 36)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionOrigins, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetOriginLocalizedName, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetOriginTrackedDeviceInfo, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionBindingInfo, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_ShowActionOrigins, 20)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_ShowBindingsForActionSet, 24)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetComponentStateForBinding, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_IsUsingLegacyInput, 4)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_OpenBindingUI, 28)
+DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBindingVariant, 20)
+
 EVRInputError __thiscall winIVRInput_IVRInput_010_SetActionManifestPath(winIVRInput_IVRInput_010 *_this, const char * pchActionManifestPath)
 {
     char lin_pchActionManifestPath[PATH_MAX];
@@ -1355,217 +1392,186 @@ EVRInputError __thiscall winIVRInput_IVRInput_010_SetActionManifestPath(winIVRIn
     return cppIVRInput_IVRInput_010_SetActionManifestPath(_this->linux_side, pchActionManifestPath ? lin_pchActionManifestPath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionSetHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetActionSetHandle(winIVRInput_IVRInput_010 *_this, const char * pchActionSetName, VRActionSetHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetActionSetHandle(_this->linux_side, pchActionSetName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetActionHandle(winIVRInput_IVRInput_010 *_this, const char * pchActionName, VRActionHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetActionHandle(_this->linux_side, pchActionName, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetInputSourceHandle, 12)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetInputSourceHandle(winIVRInput_IVRInput_010 *_this, const char * pchInputSourcePath, VRInputValueHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetInputSourceHandle(_this->linux_side, pchInputSourcePath, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_UpdateActionState, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_010_UpdateActionState(winIVRInput_IVRInput_010 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_UpdateActionState(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetDigitalActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetDigitalActionData(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, winInputDigitalActionData_t_1267 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return ivrinput_get_digital_action_data(cppIVRInput_IVRInput_010_GetDigitalActionData, _this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice, 10);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetAnalogActionData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetAnalogActionData(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, winInputAnalogActionData_t_1267 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetAnalogActionData(_this->linux_side, action, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetPoseActionDataRelativeToNow, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetPoseActionDataRelativeToNow(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, winInputPoseActionData_t_1267 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetPoseActionDataRelativeToNow(_this->linux_side, action, eOrigin, fPredictedSecondsFromNow, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetPoseActionDataForNextFrame, 32)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetPoseActionDataForNextFrame(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, winInputPoseActionData_t_1267 * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetPoseActionDataForNextFrame(_this->linux_side, action, eOrigin, pActionData, unActionDataSize, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalActionData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetSkeletalActionData(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, winInputSkeletalActionData_t_1267 * pActionData, uint32_t unActionDataSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetSkeletalActionData(_this->linux_side, action, pActionData, unActionDataSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetDominantHand, 8)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetDominantHand(winIVRInput_IVRInput_010 *_this, ETrackedControllerRole * peDominantHand)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetDominantHand(_this->linux_side, peDominantHand);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_SetDominantHand, 8)
 EVRInputError __thiscall winIVRInput_IVRInput_010_SetDominantHand(winIVRInput_IVRInput_010 *_this, ETrackedControllerRole eDominantHand)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_SetDominantHand(_this->linux_side, eDominantHand);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBoneCount, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetBoneCount(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, uint32_t * pBoneCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetBoneCount(_this->linux_side, action, pBoneCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBoneHierarchy, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetBoneHierarchy(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, BoneIndex_t * pParentIndices, uint32_t unIndexArayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetBoneHierarchy(_this->linux_side, action, pParentIndices, unIndexArayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBoneName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetBoneName(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, BoneIndex_t nBoneIndex, char * pchBoneName, uint32_t unNameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetBoneName(_this->linux_side, action, nBoneIndex, pchBoneName, unNameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalReferenceTransforms, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetSkeletalReferenceTransforms(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetSkeletalReferenceTransforms(_this->linux_side, action, eTransformSpace, eReferencePose, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalTrackingLevel, 16)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetSkeletalTrackingLevel(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, EVRSkeletalTrackingLevel * pSkeletalTrackingLevel)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetSkeletalTrackingLevel(_this->linux_side, action, pSkeletalTrackingLevel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalBoneData, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetSkeletalBoneData(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetSkeletalBoneData(_this->linux_side, action, eTransformSpace, eMotionRange, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalSummaryData, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetSkeletalSummaryData(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, EVRSummaryType eSummaryType, VRSkeletalSummaryData_t * pSkeletalSummaryData)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetSkeletalSummaryData(_this->linux_side, action, eSummaryType, pSkeletalSummaryData);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetSkeletalBoneDataCompressed, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetSkeletalBoneDataCompressed(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetSkeletalBoneDataCompressed(_this->linux_side, action, eMotionRange, pvCompressedData, unCompressedSize, punRequiredCompressedSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_DecompressSkeletalBoneData, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_010_DecompressSkeletalBoneData(winIVRInput_IVRInput_010 *_this, const void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_DecompressSkeletalBoneData(_this->linux_side, pvCompressedBuffer, unCompressedBufferSize, eTransformSpace, pTransformArray, unTransformArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_TriggerHapticVibrationAction, 36)
 EVRInputError __thiscall winIVRInput_IVRInput_010_TriggerHapticVibrationAction(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, VRInputValueHandle_t ulRestrictToDevice)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_TriggerHapticVibrationAction(_this->linux_side, action, fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude, ulRestrictToDevice);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionOrigins, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetActionOrigins(winIVRInput_IVRInput_010 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VRInputValueHandle_t * originsOut, uint32_t originOutCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetActionOrigins(_this->linux_side, actionSetHandle, digitalActionHandle, originsOut, originOutCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetOriginLocalizedName, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetOriginLocalizedName(winIVRInput_IVRInput_010 *_this, VRInputValueHandle_t origin, char * pchNameArray, uint32_t unNameArraySize, int32_t unStringSectionsToInclude)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetOriginLocalizedName(_this->linux_side, origin, pchNameArray, unNameArraySize, unStringSectionsToInclude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetOriginTrackedDeviceInfo, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetOriginTrackedDeviceInfo(winIVRInput_IVRInput_010 *_this, VRInputValueHandle_t origin, InputOriginInfo_t * pOriginInfo, uint32_t unOriginInfoSize)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetOriginTrackedDeviceInfo(_this->linux_side, origin, pOriginInfo, unOriginInfoSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetActionBindingInfo, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetActionBindingInfo(winIVRInput_IVRInput_010 *_this, VRActionHandle_t action, InputBindingInfo_t * pOriginInfo, uint32_t unBindingInfoSize, uint32_t unBindingInfoCount, uint32_t * punReturnedBindingInfoCount)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetActionBindingInfo(_this->linux_side, action, pOriginInfo, unBindingInfoSize, unBindingInfoCount, punReturnedBindingInfoCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_ShowActionOrigins, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_010_ShowActionOrigins(winIVRInput_IVRInput_010 *_this, VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_ShowActionOrigins(_this->linux_side, actionSetHandle, ulActionHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_ShowBindingsForActionSet, 24)
 EVRInputError __thiscall winIVRInput_IVRInput_010_ShowBindingsForActionSet(winIVRInput_IVRInput_010 *_this, VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_ShowBindingsForActionSet(_this->linux_side, pSets, unSizeOfVRSelectedActionSet_t, unSetCount, originToHighlight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetComponentStateForBinding, 28)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetComponentStateForBinding(winIVRInput_IVRInput_010 *_this, const char * pchRenderModelName, const char * pchComponentName, InputBindingInfo_t * pOriginInfo, uint32_t unBindingInfoSize, uint32_t unBindingInfoCount, RenderModel_ComponentState_t * pComponentState)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_GetComponentStateForBinding(_this->linux_side, pchRenderModelName, pchComponentName, pOriginInfo, unBindingInfoSize, unBindingInfoCount, pComponentState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_IsUsingLegacyInput, 4)
 bool __thiscall winIVRInput_IVRInput_010_IsUsingLegacyInput(winIVRInput_IVRInput_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_IsUsingLegacyInput(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_OpenBindingUI, 25)
 EVRInputError __thiscall winIVRInput_IVRInput_010_OpenBindingUI(winIVRInput_IVRInput_010 *_this, const char * pchAppKey, VRActionSetHandle_t ulActionSetHandle, VRInputValueHandle_t ulDeviceHandle, bool bShowOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRInput_IVRInput_010_OpenBindingUI(_this->linux_side, pchAppKey, ulActionSetHandle, ulDeviceHandle, bShowOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRInput_IVRInput_010_GetBindingVariant, 20)
 EVRInputError __thiscall winIVRInput_IVRInput_010_GetBindingVariant(winIVRInput_IVRInput_010 *_this, VRInputValueHandle_t ulDevicePath, char * pchVariantArray, uint32_t unVariantArraySize)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRMailbox.c b/vrclient_x64/vrclient_x64/winIVRMailbox.c
index f7b65885..34366394 100644
--- a/vrclient_x64/vrclient_x64/winIVRMailbox.c
+++ b/vrclient_x64/vrclient_x64/winIVRMailbox.c
@@ -26,27 +26,28 @@ typedef struct __winIVRMailbox_IVRMailbox_001 {
 } winIVRMailbox_IVRMailbox_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRMailbox_IVRMailbox_001_undoc1, 12)
+DEFINE_THISCALL_WRAPPER(winIVRMailbox_IVRMailbox_001_undoc2, 12)
+DEFINE_THISCALL_WRAPPER(winIVRMailbox_IVRMailbox_001_undoc3, 20)
+DEFINE_THISCALL_WRAPPER(winIVRMailbox_IVRMailbox_001_undoc4, 24)
+
 vrmb_typeb __thiscall winIVRMailbox_IVRMailbox_001_undoc1(winIVRMailbox_IVRMailbox_001 *_this, const char * a, vrmb_typea * b)
 {
     TRACE("%p\n", _this);
     return cppIVRMailbox_IVRMailbox_001_undoc1(_this->linux_side, a, b);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRMailbox_IVRMailbox_001_undoc2, 12)
 vrmb_typeb __thiscall winIVRMailbox_IVRMailbox_001_undoc2(winIVRMailbox_IVRMailbox_001 *_this, vrmb_typea a)
 {
     TRACE("%p\n", _this);
     return cppIVRMailbox_IVRMailbox_001_undoc2(_this->linux_side, a);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRMailbox_IVRMailbox_001_undoc3, 20)
 vrmb_typeb __thiscall winIVRMailbox_IVRMailbox_001_undoc3(winIVRMailbox_IVRMailbox_001 *_this, vrmb_typea a, const char * b, const char * c)
 {
     TRACE("%p\n", _this);
     return ivrmailbox_undoc3(cppIVRMailbox_IVRMailbox_001_undoc3, _this->linux_side, a, b, c, 1);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRMailbox_IVRMailbox_001_undoc4, 24)
 vrmb_typeb __thiscall winIVRMailbox_IVRMailbox_001_undoc4(winIVRMailbox_IVRMailbox_001 *_this, vrmb_typea a, char * b, uint32_t c, uint32_t * d)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRNotifications.c b/vrclient_x64/vrclient_x64/winIVRNotifications.c
index 378c4f53..f9bb821d 100644
--- a/vrclient_x64/vrclient_x64/winIVRNotifications.c
+++ b/vrclient_x64/vrclient_x64/winIVRNotifications.c
@@ -26,20 +26,21 @@ typedef struct __winIVRNotifications_IVRNotifications_001 {
 } winIVRNotifications_IVRNotifications_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_001_GetErrorString, 16)
+DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_001_CreateNotification, 40)
+DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_001_DismissNotification, 8)
+
 uint32_t __thiscall winIVRNotifications_IVRNotifications_001_GetErrorString(winIVRNotifications_IVRNotifications_001 *_this, NotificationError_t error, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRNotifications_IVRNotifications_001_GetErrorString(_this->linux_side, error, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_001_CreateNotification, 40)
 NotificationError_t __thiscall winIVRNotifications_IVRNotifications_001_CreateNotification(winIVRNotifications_IVRNotifications_001 *_this, VROverlayHandle_t ulOverlayHandle, uint64_t ulUserValue, const char * strType, const char * strText, const char * strCategory, NotificationBitmap * photo, VRNotificationId * notificationId)
 {
     TRACE("%p\n", _this);
     return cppIVRNotifications_IVRNotifications_001_CreateNotification(_this->linux_side, ulOverlayHandle, ulUserValue, strType, strText, strCategory, photo, notificationId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_001_DismissNotification, 8)
 NotificationError_t __thiscall winIVRNotifications_IVRNotifications_001_DismissNotification(winIVRNotifications_IVRNotifications_001 *_this, VRNotificationId notificationId)
 {
     TRACE("%p\n", _this);
@@ -110,13 +111,14 @@ typedef struct __winIVRNotifications_IVRNotifications_002 {
 } winIVRNotifications_IVRNotifications_002;
 
 DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_002_CreateNotification, 40)
+DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_002_RemoveNotification, 8)
+
 EVRNotificationError __thiscall winIVRNotifications_IVRNotifications_002_CreateNotification(winIVRNotifications_IVRNotifications_002 *_this, VROverlayHandle_t ulOverlayHandle, uint64_t ulUserValue, EVRNotificationType type, const char * pchText, EVRNotificationStyle style, NotificationBitmap_t * pImage, VRNotificationId * pNotificationId)
 {
     TRACE("%p\n", _this);
     return cppIVRNotifications_IVRNotifications_002_CreateNotification(_this->linux_side, ulOverlayHandle, ulUserValue, type, pchText, style, pImage, pNotificationId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRNotifications_IVRNotifications_002_RemoveNotification, 8)
 EVRNotificationError __thiscall winIVRNotifications_IVRNotifications_002_RemoveNotification(winIVRNotifications_IVRNotifications_002 *_this, VRNotificationId notificationId)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVROverlay.c b/vrclient_x64/vrclient_x64/winIVROverlay.c
index 68bcc730..890c4f4a 100644
--- a/vrclient_x64/vrclient_x64/winIVROverlay.c
+++ b/vrclient_x64/vrclient_x64/winIVROverlay.c
@@ -26,251 +26,256 @@ typedef struct __winIVROverlay_IVROverlay_001 {
 } winIVROverlay_IVROverlay_001;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayVisibility, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayVisibility, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_PollNextOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_IsSystemOverlayVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_IsActiveSystemOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetSystemOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetSystemOverlaySceneProcess, 16)
+
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_FindOverlay(winIVROverlay_IVROverlay_001 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_CreateOverlay, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_CreateOverlay(winIVROverlay_IVROverlay_001 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_DestroyOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_DestroyOverlay(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetHighQualityOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetHighQualityOverlay(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_001_GetHighQualityOverlay(winIVROverlay_IVROverlay_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_001_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_001 *_this, VROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayFlag, 17)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayFlag(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayFlag, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayFlag(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayAlpha(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayAlpha(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayGamma(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, float fGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayGamma(_this->linux_side, ulOverlayHandle, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayGamma(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, float * pfGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayGamma(_this->linux_side, ulOverlayHandle, pfGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayTextureBounds(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayTextureBounds(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTransformType, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayTransformType(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayVisibility, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayVisibility(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayVisibility * peOverlayVisibility)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayVisibility(_this->linux_side, ulOverlayHandle, peOverlayVisibility);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayVisibility, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayVisibility(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayVisibility eOverlayVisibility)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayVisibility(_this->linux_side, ulOverlayHandle, eOverlayVisibility);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_ShowOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_ShowOverlay(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_HideOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_HideOverlay(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_001_IsOverlayVisible(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_PollNextOverlayEvent, 16)
 bool __thiscall winIVROverlay_IVROverlay_001_PollNextOverlayEvent(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayInputMethod(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayInputMethod(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetOverlayMouseScale(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayMouseScale(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_001_ComputeOverlayIntersection(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_001_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayTexture, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayTexture(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, void * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_001_set_overlay_texture(cppIVROverlay_IVROverlay_001_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 1);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayRaw, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayRaw(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetOverlayFromFile, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayFromFile(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -279,28 +284,24 @@ VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetOverlayFromFile(winIVR
     return cppIVROverlay_IVROverlay_001_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_IsSystemOverlayVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_001_IsSystemOverlayVisible(winIVROverlay_IVROverlay_001 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_IsSystemOverlayVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_IsActiveSystemOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_001_IsActiveSystemOverlay(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_IsActiveSystemOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_SetSystemOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_SetSystemOverlaySceneProcess(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_001_SetSystemOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_001_GetSystemOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_001_GetSystemOverlaySceneProcess(winIVROverlay_IVROverlay_001 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
@@ -445,258 +446,264 @@ typedef struct __winIVROverlay_IVROverlay_002 {
 } winIVROverlay_IVROverlay_002;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_PollNextOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTexture, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetDashboardOverlaySceneProcess, 16)
+
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_FindOverlay(winIVROverlay_IVROverlay_002 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_CreateOverlay, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_CreateOverlay(winIVROverlay_IVROverlay_002 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_DestroyOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_DestroyOverlay(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetHighQualityOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetHighQualityOverlay(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_002_GetHighQualityOverlay(winIVROverlay_IVROverlay_002 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_002_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_002 *_this, VROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayFlag, 17)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayFlag(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayFlag, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayFlag(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayColor(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayColor(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayAlpha(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayAlpha(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayGamma(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float fGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayGamma(_this->linux_side, ulOverlayHandle, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayGamma(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float * pfGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayGamma(_this->linux_side, ulOverlayHandle, pfGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayTextureBounds(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayTextureBounds(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTransformType, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayTransformType(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ShowOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_ShowOverlay(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_HideOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_HideOverlay(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_002_IsOverlayVisible(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_PollNextOverlayEvent, 16)
 bool __thiscall winIVROverlay_IVROverlay_002_PollNextOverlayEvent(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayInputMethod(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayInputMethod(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetOverlayMouseScale(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayMouseScale(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_002_ComputeOverlayIntersection(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_002_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayTexture, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayTexture(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_002_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 2);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_ClearOverlayTexture, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_ClearOverlayTexture(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayRaw, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayRaw(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetOverlayFromFile, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayFromFile(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -705,35 +712,30 @@ VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetOverlayFromFile(winIVR
     return cppIVROverlay_IVROverlay_002_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_CreateDashboardOverlay, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_CreateDashboardOverlay(winIVROverlay_IVROverlay_002 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_002_IsDashboardVisible(winIVROverlay_IVROverlay_002 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_002_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_SetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_002_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_002_GetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_002_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_002 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
@@ -882,279 +884,286 @@ typedef struct __winIVROverlay_IVROverlay_003 {
 } winIVROverlay_IVROverlay_003;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_PollNextOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTexture, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ShowDashboard, 8)
+
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_FindOverlay(winIVROverlay_IVROverlay_003 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_CreateOverlay, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_CreateOverlay(winIVROverlay_IVROverlay_003 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_DestroyOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_DestroyOverlay(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetHighQualityOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetHighQualityOverlay(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_003_GetHighQualityOverlay(winIVROverlay_IVROverlay_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_003_GetOverlayKey(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, VROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_003_GetOverlayName(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, VROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayImageData, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayImageData(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_003_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_003 *_this, VROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayFlag, 17)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayFlag(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayFlag, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayFlag(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayColor(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayColor(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayAlpha(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayAlpha(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayGamma(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float fGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayGamma(_this->linux_side, ulOverlayHandle, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayGamma(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float * pfGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayGamma(_this->linux_side, ulOverlayHandle, pfGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayTextureBounds(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayTextureBounds(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTransformType, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayTransformType(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ShowOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_ShowOverlay(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_HideOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_HideOverlay(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_003_IsOverlayVisible(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_PollNextOverlayEvent, 16)
 bool __thiscall winIVROverlay_IVROverlay_003_PollNextOverlayEvent(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayInputMethod(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayInputMethod(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetOverlayMouseScale(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayMouseScale(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_003_ComputeOverlayIntersection(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_003_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayTexture, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayTexture(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_003_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 3);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ClearOverlayTexture, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_ClearOverlayTexture(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayRaw, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayRaw(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetOverlayFromFile, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayFromFile(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -1163,42 +1172,36 @@ VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetOverlayFromFile(winIVR
     return cppIVROverlay_IVROverlay_003_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_CreateDashboardOverlay, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_CreateDashboardOverlay(winIVROverlay_IVROverlay_003 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_003_IsDashboardVisible(winIVROverlay_IVROverlay_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_003_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_SetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_GetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_003_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_003 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_003_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_003_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_003_ShowDashboard(winIVROverlay_IVROverlay_003 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
@@ -1355,293 +1358,300 @@ typedef struct __winIVROverlay_IVROverlay_004 {
 } winIVROverlay_IVROverlay_004;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_PollNextOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTexture, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ShowDashboard, 8)
+
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_FindOverlay(winIVROverlay_IVROverlay_004 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_CreateOverlay, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_CreateOverlay(winIVROverlay_IVROverlay_004 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_DestroyOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_DestroyOverlay(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetHighQualityOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetHighQualityOverlay(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_004_GetHighQualityOverlay(winIVROverlay_IVROverlay_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_004_GetOverlayKey(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, VROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_004_GetOverlayName(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, VROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayImageData, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayImageData(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_004_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_004 *_this, VROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayFlag, 17)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayFlag(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayFlag, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayFlag(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayColor(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayColor(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayAlpha(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayAlpha(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayGamma(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float fGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayGamma(_this->linux_side, ulOverlayHandle, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayGamma(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float * pfGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayGamma(_this->linux_side, ulOverlayHandle, pfGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayTextureBounds(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayTextureBounds(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTransformType, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayTransformType(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ShowOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_ShowOverlay(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_HideOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_HideOverlay(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_004_IsOverlayVisible(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_PollNextOverlayEvent, 16)
 bool __thiscall winIVROverlay_IVROverlay_004_PollNextOverlayEvent(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayInputMethod(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayInputMethod(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetOverlayMouseScale(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayMouseScale(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_004_ComputeOverlayIntersection(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_004_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayTexture, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayTexture(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_004_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 4);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ClearOverlayTexture, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_ClearOverlayTexture(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayRaw, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayRaw(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetOverlayFromFile, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayFromFile(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -1650,42 +1660,36 @@ VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetOverlayFromFile(winIVR
     return cppIVROverlay_IVROverlay_004_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_CreateDashboardOverlay, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_CreateDashboardOverlay(winIVROverlay_IVROverlay_004 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_004_IsDashboardVisible(winIVROverlay_IVROverlay_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_004_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_SetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_GetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_004_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_004 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_004_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_004_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_004_ShowDashboard(winIVROverlay_IVROverlay_004 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
@@ -1846,300 +1850,310 @@ typedef struct __winIVROverlay_IVROverlay_005 {
 } winIVROverlay_IVROverlay_005;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayGamma, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_PollNextOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTexture, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ShowKeyboard, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_HideKeyboard, 4)
+
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_FindOverlay(winIVROverlay_IVROverlay_005 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_CreateOverlay, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_CreateOverlay(winIVROverlay_IVROverlay_005 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_DestroyOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_DestroyOverlay(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetHighQualityOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetHighQualityOverlay(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_005_GetHighQualityOverlay(winIVROverlay_IVROverlay_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_005_GetOverlayKey(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, VROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_005_GetOverlayName(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, VROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayImageData, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayImageData(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_005_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_005 *_this, VROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayFlag, 17)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayFlag(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayFlag, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayFlag(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayColor(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayColor, 24)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayColor(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayAlpha(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayAlpha, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayAlpha(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayGamma(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float fGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayGamma(_this->linux_side, ulOverlayHandle, fGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayGamma, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayGamma(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float * pfGamma)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayGamma(_this->linux_side, ulOverlayHandle, pfGamma);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayWidthInMeters, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayTextureBounds(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTextureBounds, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayTextureBounds(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTransformType, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayTransformType(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTransformAbsolute, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, TrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayTransformTrackedDeviceRelative, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ShowOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_ShowOverlay(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_HideOverlay, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_HideOverlay(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_005_IsOverlayVisible(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_PollNextOverlayEvent, 16)
 bool __thiscall winIVROverlay_IVROverlay_005_PollNextOverlayEvent(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayInputMethod(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayInputMethod, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayInputMethod(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetOverlayMouseScale(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayMouseScale, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayMouseScale(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_005_ComputeOverlayIntersection(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_005_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsFocusOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_005_IsFocusOverlay(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_IsFocusOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayTexture, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayTexture(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, GraphicsAPIConvention eTextureType, void * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_005_set_overlay_texture(cppIVROverlay_IVROverlay_005_SetOverlayTexture, _this->linux_side, ulOverlayHandle, eTextureType, pTexture, 5);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ClearOverlayTexture, 12)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_ClearOverlayTexture(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayRaw, 28)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayRaw(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetOverlayFromFile, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayFromFile(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -2148,63 +2162,54 @@ VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetOverlayFromFile(winIVR
     return cppIVROverlay_IVROverlay_005_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_CreateDashboardOverlay, 20)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_CreateDashboardOverlay(winIVROverlay_IVROverlay_005 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_005_IsDashboardVisible(winIVROverlay_IVROverlay_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_005_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_SetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetDashboardOverlaySceneProcess, 16)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_005 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_005_ShowDashboard(winIVROverlay_IVROverlay_005 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_005_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_ShowKeyboard, 25)
 VROverlayError __thiscall winIVROverlay_IVROverlay_005_ShowKeyboard(winIVROverlay_IVROverlay_005 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_005_GetKeyboardText(winIVROverlay_IVROverlay_005 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_005_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_005_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_005_HideKeyboard(winIVROverlay_IVROverlay_005 *_this)
 {
     TRACE("%p\n", _this);
@@ -2373,328 +2378,339 @@ typedef struct __winIVROverlay_IVROverlay_007 {
 } winIVROverlay_IVROverlay_007;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_PollNextOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_HideKeyboard, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_FindOverlay(winIVROverlay_IVROverlay_007 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_CreateOverlay(winIVROverlay_IVROverlay_007 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_DestroyOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetHighQualityOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_007_GetHighQualityOverlay(winIVROverlay_IVROverlay_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_007_GetOverlayKey(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_007_GetOverlayName(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayImageData(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_007 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayFlag(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayFlag(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayColor(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayColor(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayAlpha(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayAlpha(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayTextureBounds(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayTextureBounds(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayTransformType(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_ShowOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_HideOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_007_IsOverlayVisible(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_PollNextOverlayEvent, 16)
 bool __thiscall winIVROverlay_IVROverlay_007_PollNextOverlayEvent(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayInputMethod(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayInputMethod(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetOverlayMouseScale(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayMouseScale(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_007_ComputeOverlayIntersection(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_007_IsHoverTargetOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_007_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayNeighbor(winIVROverlay_IVROverlay_007 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_007 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayTexture(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_007_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 7);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_ClearOverlayTexture(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayRaw(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayFromFile(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -2703,70 +2719,60 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_007_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_CreateDashboardOverlay(winIVROverlay_IVROverlay_007 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_007_IsDashboardVisible(winIVROverlay_IVROverlay_007 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_007_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_007_ShowDashboard(winIVROverlay_IVROverlay_007 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_007_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_ShowKeyboard(winIVROverlay_IVROverlay_007 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_007_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_007 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_007_GetKeyboardText(winIVROverlay_IVROverlay_007 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_007_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_007_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_007_HideKeyboard(winIVROverlay_IVROverlay_007 *_this)
 {
     TRACE("%p\n", _this);
@@ -2945,335 +2951,348 @@ typedef struct __winIVROverlay_IVROverlay_008 {
 } winIVROverlay_IVROverlay_008;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_PollNextOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetKeyboardPositionForOverlay, 28)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_FindOverlay(winIVROverlay_IVROverlay_008 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_CreateOverlay(winIVROverlay_IVROverlay_008 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_DestroyOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetHighQualityOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_008_GetHighQualityOverlay(winIVROverlay_IVROverlay_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_008_GetOverlayKey(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_008_GetOverlayName(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayImageData(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_008 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayFlag(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayFlag(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayColor(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayColor(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayAlpha(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayAlpha(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayTextureBounds(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayTextureBounds(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayTransformType(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_ShowOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_HideOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_008_IsOverlayVisible(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_PollNextOverlayEvent, 16)
 bool __thiscall winIVROverlay_IVROverlay_008_PollNextOverlayEvent(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayInputMethod(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayInputMethod(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetOverlayMouseScale(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayMouseScale(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_008_ComputeOverlayIntersection(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_008_IsHoverTargetOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_008_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayNeighbor(winIVROverlay_IVROverlay_008 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_008 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayTexture(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_008_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 8);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_ClearOverlayTexture(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayRaw(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayFromFile(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -3282,84 +3301,72 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_008_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_CreateDashboardOverlay(winIVROverlay_IVROverlay_008 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_008_IsDashboardVisible(winIVROverlay_IVROverlay_008 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_008_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_008_ShowDashboard(winIVROverlay_IVROverlay_008 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_008_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_ShowKeyboard(winIVROverlay_IVROverlay_008 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_008_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_008_GetKeyboardText(winIVROverlay_IVROverlay_008 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_008_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_008_HideKeyboard(winIVROverlay_IVROverlay_008 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_008_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_008 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_008_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_008_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_008_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_008 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
@@ -3544,349 +3551,363 @@ typedef struct __winIVROverlay_IVROverlay_010 {
 } winIVROverlay_IVROverlay_010;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetKeyboardPositionForOverlay, 28)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_FindOverlay(winIVROverlay_IVROverlay_010 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_CreateOverlay(winIVROverlay_IVROverlay_010 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_DestroyOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetHighQualityOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_010_GetHighQualityOverlay(winIVROverlay_IVROverlay_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_010_GetOverlayKey(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_010_GetOverlayName(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayImageData(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_010 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayFlag(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayFlag(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayColor(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayColor(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayAlpha(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayAlpha(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTextureBounds(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayTextureBounds(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayTransformType(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_ShowOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_HideOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_010_IsOverlayVisible(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_010_PollNextOverlayEvent(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_0918 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayInputMethod(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayInputMethod(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetOverlayMouseScale(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayMouseScale(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_010_ComputeOverlayIntersection(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_010_IsHoverTargetOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_010_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayNeighbor(winIVROverlay_IVROverlay_010 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_010 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayTexture(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_010_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 10);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_ClearOverlayTexture(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayRaw(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayFromFile(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -3895,91 +3916,78 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_010_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_CreateDashboardOverlay(winIVROverlay_IVROverlay_010 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_010_IsDashboardVisible(winIVROverlay_IVROverlay_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_010_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_010_ShowDashboard(winIVROverlay_IVROverlay_010 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_010_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_010_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_ShowKeyboard(winIVROverlay_IVROverlay_010 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_010_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_010_GetKeyboardText(winIVROverlay_IVROverlay_010 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_010_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_010_HideKeyboard(winIVROverlay_IVROverlay_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_010_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_010 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_010_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_010_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_010_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_010 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
@@ -4170,363 +4178,379 @@ typedef struct __winIVROverlay_IVROverlay_011 {
 } winIVROverlay_IVROverlay_011;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTexture, 40)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetKeyboardPositionForOverlay, 28)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_FindOverlay(winIVROverlay_IVROverlay_011 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_CreateOverlay(winIVROverlay_IVROverlay_011 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_DestroyOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetHighQualityOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_011_GetHighQualityOverlay(winIVROverlay_IVROverlay_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_011_GetOverlayKey(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_011_GetOverlayName(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayImageData(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_011 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayRenderingPid(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_011_GetOverlayRenderingPid(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayFlag(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayFlag(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayColor(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayColor(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayAlpha(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayAlpha(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTextureBounds(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayTextureBounds(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayTransformType(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_ShowOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_HideOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_011_IsOverlayVisible(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_011_PollNextOverlayEvent(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_0920 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayInputMethod(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayInputMethod(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayMouseScale(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayMouseScale(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_011_ComputeOverlayIntersection(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_011_IsHoverTargetOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_011_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayNeighbor(winIVROverlay_IVROverlay_011 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_011 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayTexture(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_011_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 11);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_ClearOverlayTexture(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayRaw(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayFromFile(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -4535,105 +4559,90 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_011_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetOverlayTexture, 40)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetOverlayTexture(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, EGraphicsAPIConvention * pAPI, EColorSpace * pColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPI, pColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_CreateDashboardOverlay(winIVROverlay_IVROverlay_011 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_011_IsDashboardVisible(winIVROverlay_IVROverlay_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_011_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_011_ShowDashboard(winIVROverlay_IVROverlay_011 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_011_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_011_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_ShowKeyboard(winIVROverlay_IVROverlay_011 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_011_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_011_GetKeyboardText(winIVROverlay_IVROverlay_011 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_011_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_011_HideKeyboard(winIVROverlay_IVROverlay_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_011_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_011 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_011_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_011_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_011_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_011 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
@@ -4832,363 +4841,380 @@ typedef struct __winIVROverlay_IVROverlay_012 {
 } winIVROverlay_IVROverlay_012;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTexture, 40)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetKeyboardPositionForOverlay, 28)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_FindOverlay(winIVROverlay_IVROverlay_012 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_CreateOverlay(winIVROverlay_IVROverlay_012 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_DestroyOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetHighQualityOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_012_GetHighQualityOverlay(winIVROverlay_IVROverlay_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_012_GetOverlayKey(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_012_GetOverlayName(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayImageData(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_012 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayRenderingPid(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_012_GetOverlayRenderingPid(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayFlag(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayFlag(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayColor(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayColor(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayAlpha(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayAlpha(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTextureBounds(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTextureBounds(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTransformType(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_ShowOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_HideOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_012_IsOverlayVisible(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_012_PollNextOverlayEvent(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_101 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayInputMethod(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayInputMethod(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayMouseScale(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayMouseScale(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_012_ComputeOverlayIntersection(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_012_IsHoverTargetOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_012_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayNeighbor(winIVROverlay_IVROverlay_012 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_012 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayTexture(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_012_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 12);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_ClearOverlayTexture(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayRaw(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayFromFile(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -5197,112 +5223,96 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_012_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTexture, 40)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTexture(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, EGraphicsAPIConvention * pAPI, EColorSpace * pColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPI, pColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetOverlayTextureSize(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_CreateDashboardOverlay(winIVROverlay_IVROverlay_012 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_012_IsDashboardVisible(winIVROverlay_IVROverlay_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_012_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_012_ShowDashboard(winIVROverlay_IVROverlay_012 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_012_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_012_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_ShowKeyboard(winIVROverlay_IVROverlay_012 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_012_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_012_GetKeyboardText(winIVROverlay_IVROverlay_012 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_012_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_012_HideKeyboard(winIVROverlay_IVROverlay_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_012_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_012 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_012_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_012_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_012_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_012 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
@@ -5503,391 +5513,409 @@ typedef struct __winIVROverlay_IVROverlay_013 {
 } winIVROverlay_IVROverlay_013;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTexture, 40)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayIntersectionMask, 24)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_FindOverlay(winIVROverlay_IVROverlay_013 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_CreateOverlay(winIVROverlay_IVROverlay_013 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_DestroyOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetHighQualityOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_013_GetHighQualityOverlay(winIVROverlay_IVROverlay_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_013_GetOverlayKey(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_013_GetOverlayName(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayImageData(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_013 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayRenderingPid(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_013_GetOverlayRenderingPid(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayFlag(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayFlag(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayColor(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayColor(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayAlpha(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayAlpha(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTexelAspect(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTexelAspect(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlaySortOrder(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlaySortOrder(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTextureBounds(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTextureBounds(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTransformType(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_ShowOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_HideOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_013_IsOverlayVisible(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_013_PollNextOverlayEvent(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_104 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayInputMethod(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayInputMethod(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayMouseScale(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayMouseScale(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_013_ComputeOverlayIntersection(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_013_IsHoverTargetOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_013_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayNeighbor(winIVROverlay_IVROverlay_013 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_013 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayTexture(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_013_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 13);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_ClearOverlayTexture(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayRaw(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayFromFile(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -5896,119 +5924,102 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_013_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTexture, 40)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTexture(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, EGraphicsAPIConvention * pAPI, EColorSpace * pColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPI, pColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetOverlayTextureSize(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_CreateDashboardOverlay(winIVROverlay_IVROverlay_013 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_013_IsDashboardVisible(winIVROverlay_IVROverlay_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_013_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_013_ShowDashboard(winIVROverlay_IVROverlay_013 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_013_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_013_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_013 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_ShowKeyboard(winIVROverlay_IVROverlay_013 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_013_GetKeyboardText(winIVROverlay_IVROverlay_013 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_013_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_013_HideKeyboard(winIVROverlay_IVROverlay_013 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_013_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_013 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_013_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_013_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_013_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_013_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_013 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
@@ -6219,391 +6230,411 @@ typedef struct __winIVROverlay_IVROverlay_014 {
 } winIVROverlay_IVROverlay_014;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowMessageOverlay, 28)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_FindOverlay(winIVROverlay_IVROverlay_014 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_CreateOverlay(winIVROverlay_IVROverlay_014 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_DestroyOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetHighQualityOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_014_GetHighQualityOverlay(winIVROverlay_IVROverlay_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_014_GetOverlayKey(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_014_GetOverlayName(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayImageData(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_014 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayRenderingPid(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_014_GetOverlayRenderingPid(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayFlag(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayFlag(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayColor(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayColor(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayAlpha(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayAlpha(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTexelAspect(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTexelAspect(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlaySortOrder(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlaySortOrder(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTextureBounds(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTextureBounds(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTransformType(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_ShowOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_HideOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_014_IsOverlayVisible(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_014_PollNextOverlayEvent(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_106 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayInputMethod(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayInputMethod(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayMouseScale(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayMouseScale(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_014_ComputeOverlayIntersection(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_014_IsHoverTargetOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_014_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayNeighbor(winIVROverlay_IVROverlay_014 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_014 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayTexture(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_014_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 14);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_ClearOverlayTexture(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayRaw(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayFromFile(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -6612,133 +6643,114 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_014_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTexture(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayTextureSize(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_CreateDashboardOverlay(winIVROverlay_IVROverlay_014 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_014_IsDashboardVisible(winIVROverlay_IVROverlay_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_014_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_014_ShowDashboard(winIVROverlay_IVROverlay_014 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_014_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_014_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_ShowKeyboard(winIVROverlay_IVROverlay_014 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_014_GetKeyboardText(winIVROverlay_IVROverlay_014 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_014_HideKeyboard(winIVROverlay_IVROverlay_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_014_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_014 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_014_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_014_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_014_GetOverlayFlags(winIVROverlay_IVROverlay_014 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_014_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_014_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_014_ShowMessageOverlay(winIVROverlay_IVROverlay_014 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
@@ -6953,426 +6965,447 @@ typedef struct __winIVROverlay_IVROverlay_016 {
 } winIVROverlay_IVROverlay_016;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayRenderModel, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayRenderModel, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_FindOverlay(winIVROverlay_IVROverlay_016 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_CreateOverlay(winIVROverlay_IVROverlay_016 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_DestroyOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetHighQualityOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_016_GetHighQualityOverlay(winIVROverlay_IVROverlay_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_016_GetOverlayKey(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_016_GetOverlayName(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayName(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayImageData(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_016 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayRenderingPid(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_016_GetOverlayRenderingPid(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayFlag(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayFlag(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayColor(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayColor(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayAlpha(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayAlpha(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTexelAspect(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTexelAspect(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlaySortOrder(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlaySortOrder(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTextureBounds(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTextureBounds(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayRenderModel, 28)
 uint32_t __thiscall winIVROverlay_IVROverlay_016_GetOverlayRenderModel(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, HmdColor_t * pColor, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pColor, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayRenderModel, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayRenderModel(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchRenderModel, HmdColor_t * pColor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchRenderModel, pColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTransformType(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_ShowOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_HideOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_016_IsOverlayVisible(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_016_PollNextOverlayEvent(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1010 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayInputMethod(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayInputMethod(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayMouseScale(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayMouseScale(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_016_ComputeOverlayIntersection(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_016_IsHoverTargetOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_016_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayNeighbor(winIVROverlay_IVROverlay_016 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_016 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayTexture(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_016_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 16);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_ClearOverlayTexture(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayRaw(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayFromFile(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -7381,140 +7414,120 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_016_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTexture(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayTextureSize(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_CreateDashboardOverlay(winIVROverlay_IVROverlay_016 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_016_IsDashboardVisible(winIVROverlay_IVROverlay_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_016_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_016_ShowDashboard(winIVROverlay_IVROverlay_016 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_016_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_016_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_ShowKeyboard(winIVROverlay_IVROverlay_016 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_016_GetKeyboardText(winIVROverlay_IVROverlay_016 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_016_HideKeyboard(winIVROverlay_IVROverlay_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_016_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_016 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_016_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_016_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_016_GetOverlayFlags(winIVROverlay_IVROverlay_016 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_016_ShowMessageOverlay(winIVROverlay_IVROverlay_016 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_016_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_016_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_016_CloseMessageOverlay(winIVROverlay_IVROverlay_016 *_this)
 {
     TRACE("%p\n", _this);
@@ -7741,440 +7754,461 @@ typedef struct __winIVROverlay_IVROverlay_017 {
 } winIVROverlay_IVROverlay_017;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayRenderModel, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayRenderModel, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_FindOverlay(winIVROverlay_IVROverlay_017 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_CreateOverlay(winIVROverlay_IVROverlay_017 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_DestroyOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetHighQualityOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_017_GetHighQualityOverlay(winIVROverlay_IVROverlay_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_017_GetOverlayKey(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_017_GetOverlayName(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayName(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayImageData(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_017 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayRenderingPid(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_017_GetOverlayRenderingPid(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayFlag(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayFlag(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayColor(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayColor(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayAlpha(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayAlpha(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTexelAspect(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTexelAspect(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlaySortOrder(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlaySortOrder(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTextureBounds(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTextureBounds(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayRenderModel, 28)
 uint32_t __thiscall winIVROverlay_IVROverlay_017_GetOverlayRenderModel(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, HmdColor_t * pColor, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pColor, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayRenderModel, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayRenderModel(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchRenderModel, HmdColor_t * pColor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchRenderModel, pColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTransformType(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_ShowOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_HideOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_017_IsOverlayVisible(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_017_PollNextOverlayEvent(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1011 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayInputMethod(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayInputMethod(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayMouseScale(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayMouseScale(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_017_ComputeOverlayIntersection(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse, 16)
 bool __thiscall winIVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_HandleControllerOverlayInteractionAsMouse(_this->linux_side, ulOverlayHandle, unControllerDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_017_IsHoverTargetOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_017_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayNeighbor(winIVROverlay_IVROverlay_017 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_017 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * vCenter, float fRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, vCenter, fRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float * pfRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, pfRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayTexture(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_017_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 17);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_ClearOverlayTexture(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayRaw(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayFromFile(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -8183,140 +8217,120 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_017_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTexture(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayTextureSize(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_CreateDashboardOverlay(winIVROverlay_IVROverlay_017 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_017_IsDashboardVisible(winIVROverlay_IVROverlay_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_017_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_017_ShowDashboard(winIVROverlay_IVROverlay_017 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_017_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_017_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_ShowKeyboard(winIVROverlay_IVROverlay_017 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_017_GetKeyboardText(winIVROverlay_IVROverlay_017 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_017_HideKeyboard(winIVROverlay_IVROverlay_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_017_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_017 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_017_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_017_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_017_GetOverlayFlags(winIVROverlay_IVROverlay_017 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_017_ShowMessageOverlay(winIVROverlay_IVROverlay_017 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_017_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_017_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_017_CloseMessageOverlay(winIVROverlay_IVROverlay_017 *_this)
 {
     TRACE("%p\n", _this);
@@ -8547,433 +8561,454 @@ typedef struct __winIVROverlay_IVROverlay_018 {
 } winIVROverlay_IVROverlay_018;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayRenderModel, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayRenderModel, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_FindOverlay(winIVROverlay_IVROverlay_018 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_CreateOverlay(winIVROverlay_IVROverlay_018 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_DestroyOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetHighQualityOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_018_GetHighQualityOverlay(winIVROverlay_IVROverlay_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_018_GetOverlayKey(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_018_GetOverlayName(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayName(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayImageData(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_018 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayRenderingPid(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_018_GetOverlayRenderingPid(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayFlag(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayFlag(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayColor(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayColor(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayAlpha(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayAlpha(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTexelAspect(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTexelAspect(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlaySortOrder(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlaySortOrder(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTextureBounds(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTextureBounds(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayRenderModel, 28)
 uint32_t __thiscall winIVROverlay_IVROverlay_018_GetOverlayRenderModel(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, HmdColor_t * pColor, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pColor, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayRenderModel, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayRenderModel(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchRenderModel, HmdColor_t * pColor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchRenderModel, pColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTransformType(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_ShowOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_HideOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_018_IsOverlayVisible(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_018_PollNextOverlayEvent(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1017 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayInputMethod(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayInputMethod(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayMouseScale(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayMouseScale(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_018_ComputeOverlayIntersection(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_018_IsHoverTargetOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_018_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayNeighbor(winIVROverlay_IVROverlay_018 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_018 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * vCenter, float fRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, vCenter, fRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float * pfRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, pfRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayTexture(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_018_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 18);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_ClearOverlayTexture(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayRaw(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayFromFile(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -8982,140 +9017,120 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_018_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTexture(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayTextureSize(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_CreateDashboardOverlay(winIVROverlay_IVROverlay_018 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_018_IsDashboardVisible(winIVROverlay_IVROverlay_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_018_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_018_ShowDashboard(winIVROverlay_IVROverlay_018 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_018_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_018_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_018 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_ShowKeyboard(winIVROverlay_IVROverlay_018 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_018_GetKeyboardText(winIVROverlay_IVROverlay_018 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_018_HideKeyboard(winIVROverlay_IVROverlay_018 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_018_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_018 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_018_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_018_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_018_GetOverlayFlags(winIVROverlay_IVROverlay_018 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_018_ShowMessageOverlay(winIVROverlay_IVROverlay_018 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_018_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_018_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_018_CloseMessageOverlay(winIVROverlay_IVROverlay_018 *_this)
 {
     TRACE("%p\n", _this);
@@ -9344,433 +9359,454 @@ typedef struct __winIVROverlay_IVROverlay_019 {
 } winIVROverlay_IVROverlay_019;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetHighQualityOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetHighQualityOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayRenderModel, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayRenderModel, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_FindOverlay(winIVROverlay_IVROverlay_019 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_CreateOverlay(winIVROverlay_IVROverlay_019 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_DestroyOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetHighQualityOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetHighQualityOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetHighQualityOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetHighQualityOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_019_GetHighQualityOverlay(winIVROverlay_IVROverlay_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetHighQualityOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_019_GetOverlayKey(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_019_GetOverlayName(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayName(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayImageData(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_019 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayRenderingPid(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_019_GetOverlayRenderingPid(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayFlag(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayFlag(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayColor(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayColor(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayAlpha(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayAlpha(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTexelAspect(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTexelAspect(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlaySortOrder(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlaySortOrder(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTextureBounds(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTextureBounds(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayRenderModel, 28)
 uint32_t __thiscall winIVROverlay_IVROverlay_019_GetOverlayRenderModel(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, HmdColor_t * pColor, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pColor, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayRenderModel, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayRenderModel(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchRenderModel, HmdColor_t * pColor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchRenderModel, pColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTransformType(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_ShowOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_HideOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_019_IsOverlayVisible(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_019_PollNextOverlayEvent(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1610 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayInputMethod(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayInputMethod(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayMouseScale(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayMouseScale(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_019_ComputeOverlayIntersection(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_019_IsHoverTargetOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_019_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayNeighbor(winIVROverlay_IVROverlay_019 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_019 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float fRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, fRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float * pfRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, pfRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayTexture(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_019_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 19);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_ClearOverlayTexture(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayRaw(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayFromFile(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -9779,140 +9815,120 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_019_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTexture(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayTextureSize(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_CreateDashboardOverlay(winIVROverlay_IVROverlay_019 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_019_IsDashboardVisible(winIVROverlay_IVROverlay_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_019_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_019_ShowDashboard(winIVROverlay_IVROverlay_019 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_019_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_019_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_ShowKeyboard(winIVROverlay_IVROverlay_019 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_019_GetKeyboardText(winIVROverlay_IVROverlay_019 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_019_HideKeyboard(winIVROverlay_IVROverlay_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_019_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_019 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_019_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_019_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_019_GetOverlayFlags(winIVROverlay_IVROverlay_019 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_019_ShowMessageOverlay(winIVROverlay_IVROverlay_019 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_019_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_019_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_019_CloseMessageOverlay(winIVROverlay_IVROverlay_019 *_this)
 {
     TRACE("%p\n", _this);
@@ -10141,419 +10157,440 @@ typedef struct __winIVROverlay_IVROverlay_020 {
 } winIVROverlay_IVROverlay_020;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayRenderModel, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayRenderModel, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetGamepadFocusOverlay, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetGamepadFocusOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayNeighbor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_FindOverlay(winIVROverlay_IVROverlay_020 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_CreateOverlay(winIVROverlay_IVROverlay_020 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_DestroyOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_020_GetOverlayKey(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_020_GetOverlayName(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayName(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayImageData(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_020 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayRenderingPid(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_020_GetOverlayRenderingPid(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayFlag(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayFlag(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayColor(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayColor(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayAlpha(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayAlpha(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTexelAspect(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTexelAspect(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlaySortOrder(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlaySortOrder(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayAutoCurveDistanceRangeInMeters(_this->linux_side, ulOverlayHandle, pfMinDistanceInMeters, pfMaxDistanceInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTextureBounds(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTextureBounds(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayRenderModel, 28)
 uint32_t __thiscall winIVROverlay_IVROverlay_020_GetOverlayRenderModel(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, HmdColor_t * pColor, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pColor, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayRenderModel, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayRenderModel(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchRenderModel, HmdColor_t * pColor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchRenderModel, pColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTransformType(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_ShowOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_HideOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_020_IsOverlayVisible(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_020_PollNextOverlayEvent(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1715 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayInputMethod(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayInputMethod(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayMouseScale(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayMouseScale(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_020_ComputeOverlayIntersection(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_020_IsHoverTargetOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetGamepadFocusOverlay, 4)
 VROverlayHandle_t __thiscall winIVROverlay_IVROverlay_020_GetGamepadFocusOverlay(winIVROverlay_IVROverlay_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetGamepadFocusOverlay(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetGamepadFocusOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetGamepadFocusOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulNewFocusOverlay)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetGamepadFocusOverlay(_this->linux_side, ulNewFocusOverlay);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayNeighbor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayNeighbor(winIVROverlay_IVROverlay_020 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayNeighbor(_this->linux_side, eDirection, ulFrom, ulTo);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor(winIVROverlay_IVROverlay_020 *_this, EOverlayDirection eDirection, VROverlayHandle_t ulFrom)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_MoveGamepadFocusToNeighbor(_this->linux_side, eDirection, ulFrom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float fRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, fRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float * pfRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, pfRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayTexture(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_020_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 20);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_ClearOverlayTexture(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayRaw(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayFromFile(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -10562,140 +10599,120 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_020_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTexture(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayTextureSize(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_CreateDashboardOverlay(winIVROverlay_IVROverlay_020 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_020_IsDashboardVisible(winIVROverlay_IVROverlay_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_020_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_020_ShowDashboard(winIVROverlay_IVROverlay_020 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_020_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_020_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_ShowKeyboard(winIVROverlay_IVROverlay_020 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_020_GetKeyboardText(winIVROverlay_IVROverlay_020 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_020_HideKeyboard(winIVROverlay_IVROverlay_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_020_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_020 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_020_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_020_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_020_GetOverlayFlags(winIVROverlay_IVROverlay_020 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_020_ShowMessageOverlay(winIVROverlay_IVROverlay_020 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_020_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_020_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_020_CloseMessageOverlay(winIVROverlay_IVROverlay_020 *_this)
 {
     TRACE("%p\n", _this);
@@ -10920,391 +10937,412 @@ typedef struct __winIVROverlay_IVROverlay_021 {
 } winIVROverlay_IVROverlay_021;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayRenderModel, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayRenderModel, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_FindOverlay(winIVROverlay_IVROverlay_021 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_CreateOverlay(winIVROverlay_IVROverlay_021 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_DestroyOverlay(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_021_GetOverlayKey(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_021_GetOverlayName(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayName(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayImageData(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_021 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayRenderingPid(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_021_GetOverlayRenderingPid(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayFlag(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayFlag(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayColor(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayColor(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayAlpha(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayAlpha(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTexelAspect(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTexelAspect(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlaySortOrder(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlaySortOrder(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayCurvature(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float fCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayCurvature(_this->linux_side, ulOverlayHandle, fCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayCurvature(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, float * pfCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayCurvature(_this->linux_side, ulOverlayHandle, pfCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTextureBounds(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTextureBounds(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayRenderModel, 28)
 uint32_t __thiscall winIVROverlay_IVROverlay_021_GetOverlayRenderModel(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, HmdColor_t * pColor, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pColor, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayRenderModel, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayRenderModel(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchRenderModel, HmdColor_t * pColor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchRenderModel, pColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTransformType(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_ShowOverlay(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_HideOverlay(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_021_IsOverlayVisible(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_021_PollNextOverlayEvent(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1819 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayInputMethod(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayInputMethod(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayMouseScale(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayMouseScale(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_021_ComputeOverlayIntersection(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_021_IsHoverTargetOverlay(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float fRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, fRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float * pfRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, pfRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayTexture(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_021_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_ClearOverlayTexture(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayRaw(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unDepth);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayFromFile(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -11313,140 +11351,120 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_021_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTexture(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayTextureSize(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_CreateDashboardOverlay(winIVROverlay_IVROverlay_021 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_021_IsDashboardVisible(winIVROverlay_IVROverlay_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_021_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_021_ShowDashboard(winIVROverlay_IVROverlay_021 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_021_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_021_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_ShowKeyboard(winIVROverlay_IVROverlay_021 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_021_GetKeyboardText(winIVROverlay_IVROverlay_021 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_021_HideKeyboard(winIVROverlay_IVROverlay_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_021_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_021 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_021_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_021_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_021_GetOverlayFlags(winIVROverlay_IVROverlay_021 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_021_ShowMessageOverlay(winIVROverlay_IVROverlay_021 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_021_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_021_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_021_CloseMessageOverlay(winIVROverlay_IVROverlay_021 *_this)
 {
     TRACE("%p\n", _this);
@@ -11663,447 +11681,466 @@ typedef struct __winIVROverlay_IVROverlay_022 {
 } winIVROverlay_IVROverlay_022;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayRenderModel, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayRenderModel, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayCursor, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_FindOverlay(winIVROverlay_IVROverlay_022 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_CreateOverlay(winIVROverlay_IVROverlay_022 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_DestroyOverlay(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_022_GetOverlayKey(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_022_GetOverlayName(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayName(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayImageData(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_022 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayRenderingPid(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_022_GetOverlayRenderingPid(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayFlag(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayFlag(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayFlags(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayColor(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayColor(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayAlpha(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayAlpha(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTexelAspect(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTexelAspect(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlaySortOrder(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlaySortOrder(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayCurvature(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float fCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayCurvature(_this->linux_side, ulOverlayHandle, fCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayCurvature(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float * pfCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayCurvature(_this->linux_side, ulOverlayHandle, pfCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTextureBounds(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTextureBounds(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayRenderModel, 28)
 uint32_t __thiscall winIVROverlay_IVROverlay_022_GetOverlayRenderModel(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, HmdColor_t * pColor, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pColor, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayRenderModel, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayRenderModel(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchRenderModel, HmdColor_t * pColor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayRenderModel(_this->linux_side, ulOverlayHandle, pchRenderModel, pColor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTransformType(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTransformCursor(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulCursorOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayTransformCursor(_this->linux_side, ulCursorOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTransformCursor(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTransformCursor(_this->linux_side, ulOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_ShowOverlay(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_HideOverlay(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_022_IsOverlayVisible(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_022_PollNextOverlayEvent(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1916 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayInputMethod(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayInputMethod(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayMouseScale(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayMouseScale(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_022_ComputeOverlayIntersection(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_022_IsHoverTargetOverlay(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float fRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, fRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t * pvCenter, float * pfRadius)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayDualAnalogTransform(_this->linux_side, ulOverlay, eWhich, pvCenter, pfRadius);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, float fDurationSeconds, float fFrequency, float fAmplitude)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_TriggerLaserMouseHapticVibration(_this->linux_side, ulOverlayHandle, fDurationSeconds, fFrequency, fAmplitude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayCursor, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayCursor(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulCursorHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayCursor(_this->linux_side, ulOverlayHandle, ulCursorHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvCursor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle, pvCursor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ClearOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayTexture(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_022_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_ClearOverlayTexture(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayRaw(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unBytesPerPixel)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unBytesPerPixel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayFromFile(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -12112,126 +12149,108 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_022_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTexture(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetOverlayTextureSize(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_CreateDashboardOverlay(winIVROverlay_IVROverlay_022 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_022_IsDashboardVisible(winIVROverlay_IVROverlay_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_022_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_022_ShowDashboard(winIVROverlay_IVROverlay_022 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_022_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_022_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowKeyboard, 33)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_ShowKeyboard(winIVROverlay_IVROverlay_022 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowKeyboardForOverlay, 41)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_022_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, pchDescription, unCharMax, pchExistingText, bUseMinimalMode, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_022_GetKeyboardText(winIVROverlay_IVROverlay_022 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_022_HideKeyboard(winIVROverlay_IVROverlay_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_022_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_022 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_022_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_022 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_022_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_022_ShowMessageOverlay(winIVROverlay_IVROverlay_022 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_022_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_022_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_022_CloseMessageOverlay(winIVROverlay_IVROverlay_022 *_this)
 {
     TRACE("%p\n", _this);
@@ -12460,419 +12479,438 @@ typedef struct __winIVROverlay_IVROverlay_024 {
 } winIVROverlay_IVROverlay_024;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayCursor, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_FindOverlay(winIVROverlay_IVROverlay_024 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_CreateOverlay(winIVROverlay_IVROverlay_024 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_DestroyOverlay(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_024_GetOverlayKey(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_024_GetOverlayName(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayName(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayImageData(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_024 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayRenderingPid(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_024_GetOverlayRenderingPid(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayFlag(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayFlag(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayFlags(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayColor(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayColor(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayAlpha(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayAlpha(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTexelAspect(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTexelAspect(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlaySortOrder(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlaySortOrder(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayCurvature(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float fCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayCurvature(_this->linux_side, ulOverlayHandle, fCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayCurvature(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float * pfCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayCurvature(_this->linux_side, ulOverlayHandle, pfCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTextureBounds(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTextureBounds(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTransformType(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTransformCursor(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulCursorOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayTransformCursor(_this->linux_side, ulCursorOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTransformCursor(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTransformCursor(_this->linux_side, ulOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_ShowOverlay(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_HideOverlay(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_024_IsOverlayVisible(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_024_PollNextOverlayEvent(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_11415 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayInputMethod(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayInputMethod(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayMouseScale(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayMouseScale(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_024_ComputeOverlayIntersection(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_024_IsHoverTargetOverlay(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, float fDurationSeconds, float fFrequency, float fAmplitude)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_TriggerLaserMouseHapticVibration(_this->linux_side, ulOverlayHandle, fDurationSeconds, fFrequency, fAmplitude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayCursor, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayCursor(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulCursorHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayCursor(_this->linux_side, ulOverlayHandle, ulCursorHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvCursor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle, pvCursor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ClearOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayTexture(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_024_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 24);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_ClearOverlayTexture(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayRaw(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unBytesPerPixel)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unBytesPerPixel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayFromFile(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -12881,126 +12919,108 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_024_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTexture(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetOverlayTextureSize(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_CreateDashboardOverlay(winIVROverlay_IVROverlay_024 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_024_IsDashboardVisible(winIVROverlay_IVROverlay_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_024_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_024_ShowDashboard(winIVROverlay_IVROverlay_024 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_024_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_024_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_024 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowKeyboard, 36)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_ShowKeyboard(winIVROverlay_IVROverlay_024 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowKeyboardForOverlay, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_024_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_024_GetKeyboardText(winIVROverlay_IVROverlay_024 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_024_HideKeyboard(winIVROverlay_IVROverlay_024 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_024_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_024 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_024_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_024 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_024_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_024_ShowMessageOverlay(winIVROverlay_IVROverlay_024 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_024_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_024_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_024_CloseMessageOverlay(winIVROverlay_IVROverlay_024 *_this)
 {
     TRACE("%p\n", _this);
@@ -13221,426 +13241,445 @@ typedef struct __winIVROverlay_IVROverlay_025 {
 } winIVROverlay_IVROverlay_025;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformProjection, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayCursor, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_FindOverlay(winIVROverlay_IVROverlay_025 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_CreateOverlay(winIVROverlay_IVROverlay_025 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_DestroyOverlay(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_025_GetOverlayKey(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_025_GetOverlayName(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayName(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayImageData(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_025 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayRenderingPid(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_025_GetOverlayRenderingPid(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayFlag(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayFlag(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayFlags(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayColor(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayColor(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayAlpha(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayAlpha(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTexelAspect(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTexelAspect(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlaySortOrder(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlaySortOrder(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayCurvature(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float fCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayCurvature(_this->linux_side, ulOverlayHandle, fCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayCurvature(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float * pfCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayCurvature(_this->linux_side, ulOverlayHandle, pfCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTextureBounds(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTextureBounds(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTransformType(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTransformCursor(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulCursorOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTransformCursor(_this->linux_side, ulCursorOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTransformCursor(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTransformCursor(_this->linux_side, ulOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTransformProjection, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTransformProjection(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform, VROverlayProjection_t * pProjection, EVREye eEye)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayTransformProjection(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform, pProjection, eEye);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_ShowOverlay(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_HideOverlay(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_025_IsOverlayVisible(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_025_PollNextOverlayEvent(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1168 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayInputMethod(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayInputMethod(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayMouseScale(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayMouseScale(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_025_ComputeOverlayIntersection(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_025_IsHoverTargetOverlay(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, float fDurationSeconds, float fFrequency, float fAmplitude)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_TriggerLaserMouseHapticVibration(_this->linux_side, ulOverlayHandle, fDurationSeconds, fFrequency, fAmplitude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayCursor, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayCursor(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulCursorHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayCursor(_this->linux_side, ulOverlayHandle, ulCursorHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvCursor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle, pvCursor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ClearOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayTexture(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_025_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 25);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_ClearOverlayTexture(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayRaw(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unBytesPerPixel)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unBytesPerPixel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayFromFile(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -13649,126 +13688,108 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_025_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTexture(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetOverlayTextureSize(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_CreateDashboardOverlay(winIVROverlay_IVROverlay_025 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_025_IsDashboardVisible(winIVROverlay_IVROverlay_025 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_025_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_025_ShowDashboard(winIVROverlay_IVROverlay_025 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_025_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_025_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_025 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowKeyboard, 36)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_ShowKeyboard(winIVROverlay_IVROverlay_025 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowKeyboardForOverlay, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_025_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_025_GetKeyboardText(winIVROverlay_IVROverlay_025 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_025_HideKeyboard(winIVROverlay_IVROverlay_025 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_025_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_025 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_025_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_025 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_025_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_025_ShowMessageOverlay(winIVROverlay_IVROverlay_025 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_025_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_025_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_025_CloseMessageOverlay(winIVROverlay_IVROverlay_025 *_this)
 {
     TRACE("%p\n", _this);
@@ -13991,447 +14012,466 @@ typedef struct __winIVROverlay_IVROverlay_026 {
 } winIVROverlay_IVROverlay_026;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayPreCurvePitch, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayPreCurvePitch, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformProjection, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_WaitFrameSync, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayCursor, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_FindOverlay(winIVROverlay_IVROverlay_026 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_CreateOverlay(winIVROverlay_IVROverlay_026 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_DestroyOverlay(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_026_GetOverlayKey(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_026_GetOverlayName(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayName(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayImageData(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_026 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayRenderingPid(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_026_GetOverlayRenderingPid(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayFlag(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayFlag(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayFlags(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayColor(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayColor(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayAlpha(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayAlpha(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTexelAspect(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTexelAspect(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlaySortOrder(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlaySortOrder(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayCurvature(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float fCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayCurvature(_this->linux_side, ulOverlayHandle, fCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayCurvature(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float * pfCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayCurvature(_this->linux_side, ulOverlayHandle, pfCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayPreCurvePitch, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayPreCurvePitch(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float fRadians)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayPreCurvePitch(_this->linux_side, ulOverlayHandle, fRadians);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayPreCurvePitch, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayPreCurvePitch(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRadians)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayPreCurvePitch(_this->linux_side, ulOverlayHandle, pfRadians);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTextureBounds(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTextureBounds(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTransformType(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, HmdMatrix34_t * pmatParentOverlayToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTransformOverlayRelative(_this->linux_side, ulOverlayHandle, ulOverlayHandleParent, pmatParentOverlayToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTransformCursor(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulCursorOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTransformCursor(_this->linux_side, ulCursorOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTransformCursor(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTransformCursor(_this->linux_side, ulOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTransformProjection, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTransformProjection(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform, VROverlayProjection_t * pProjection, EVREye eEye)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayTransformProjection(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform, pProjection, eEye);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_ShowOverlay(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_HideOverlay(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_026_IsOverlayVisible(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_WaitFrameSync, 8)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_WaitFrameSync(winIVROverlay_IVROverlay_026 *_this, uint32_t nTimeoutMs)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_WaitFrameSync(_this->linux_side, nTimeoutMs);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_026_PollNextOverlayEvent(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1237 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayInputMethod(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayInputMethod(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayMouseScale(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayMouseScale(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_026_ComputeOverlayIntersection(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_026_IsHoverTargetOverlay(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, float fDurationSeconds, float fFrequency, float fAmplitude)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_TriggerLaserMouseHapticVibration(_this->linux_side, ulOverlayHandle, fDurationSeconds, fFrequency, fAmplitude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayCursor, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayCursor(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulCursorHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayCursor(_this->linux_side, ulOverlayHandle, ulCursorHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvCursor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle, pvCursor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ClearOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayTexture(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_026_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 26);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_ClearOverlayTexture(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayRaw(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unBytesPerPixel)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unBytesPerPixel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayFromFile(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -14440,126 +14480,108 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_026_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTexture(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetOverlayTextureSize(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_CreateDashboardOverlay(winIVROverlay_IVROverlay_026 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_026_IsDashboardVisible(winIVROverlay_IVROverlay_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_026_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_026_ShowDashboard(winIVROverlay_IVROverlay_026 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_026_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_026_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_026 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowKeyboard, 36)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_ShowKeyboard(winIVROverlay_IVROverlay_026 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowKeyboardForOverlay, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_026_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_026_GetKeyboardText(winIVROverlay_IVROverlay_026 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_026_HideKeyboard(winIVROverlay_IVROverlay_026 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_026_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_026 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_026_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_026 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_026_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_026_ShowMessageOverlay(winIVROverlay_IVROverlay_026 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_026_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_026_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_026_CloseMessageOverlay(winIVROverlay_IVROverlay_026 *_this)
 {
     TRACE("%p\n", _this);
@@ -14788,433 +14810,452 @@ typedef struct __winIVROverlay_IVROverlay_027 {
 } winIVROverlay_IVROverlay_027;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_FindOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_CreateOverlay, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_DestroyOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayKey, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayName, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayName, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayImageData, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayRenderingPid, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayRenderingPid, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayFlag, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayFlags, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayColor, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayAlpha, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTexelAspect, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlaySortOrder, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayWidthInMeters, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayCurvature, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayPreCurvePitch, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayPreCurvePitch, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTextureColorSpace, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTextureBounds, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformType, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformAbsolute, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformCursor, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformProjection, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_HideOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsOverlayVisible, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_WaitFrameSync, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_PollNextOverlayEvent, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayInputMethod, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayMouseScale, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ComputeOverlayIntersection, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsHoverTargetOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayIntersectionMask, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayCursor, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTexture, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ClearOverlayTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayRaw, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayFromFile, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTexture, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTextureSize, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_CreateDashboardOverlay, 20)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsDashboardVisible, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsActiveDashboardOverlay, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowDashboard, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetPrimaryDashboardDevice, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowKeyboard, 36)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowKeyboardForOverlay, 44)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetKeyboardText, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_HideKeyboard, 4)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute, 12)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowMessageOverlay, 28)
+DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_CloseMessageOverlay, 4)
+
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_FindOverlay(winIVROverlay_IVROverlay_027 *_this, const char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_FindOverlay(_this->linux_side, pchOverlayKey, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_CreateOverlay, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_CreateOverlay(winIVROverlay_IVROverlay_027 *_this, const char * pchOverlayKey, const char * pchOverlayName, VROverlayHandle_t * pOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_CreateOverlay(_this->linux_side, pchOverlayKey, pchOverlayName, pOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_DestroyOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_DestroyOverlay(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_DestroyOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayKey, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_027_GetOverlayKey(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayKey(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayName, 24)
 uint32_t __thiscall winIVROverlay_IVROverlay_027_GetOverlayName(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayName(_this->linux_side, ulOverlayHandle, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayName, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayName(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayName(_this->linux_side, ulOverlayHandle, pchName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayImageData, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayImageData(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayImageData(_this->linux_side, ulOverlayHandle, pvBuffer, unBufferSize, punWidth, punHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum, 8)
 const char * __thiscall winIVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum(winIVROverlay_IVROverlay_027 *_this, EVROverlayError error)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayRenderingPid, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayRenderingPid(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unPID)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayRenderingPid(_this->linux_side, ulOverlayHandle, unPID);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayRenderingPid, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_027_GetOverlayRenderingPid(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayRenderingPid(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayFlag, 17)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayFlag(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, bEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayFlag, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayFlag(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayFlag(_this->linux_side, ulOverlayHandle, eOverlayFlag, pbEnabled);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayFlags, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayFlags(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayFlags(_this->linux_side, ulOverlayHandle, pFlags);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayColor(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayColor(_this->linux_side, ulOverlayHandle, fRed, fGreen, fBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayColor, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayColor(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayColor(_this->linux_side, ulOverlayHandle, pfRed, pfGreen, pfBlue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayAlpha(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float fAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayAlpha(_this->linux_side, ulOverlayHandle, fAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayAlpha, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayAlpha(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float * pfAlpha)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayAlpha(_this->linux_side, ulOverlayHandle, pfAlpha);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTexelAspect(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float fTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, fTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTexelAspect, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTexelAspect(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTexelAspect(_this->linux_side, ulOverlayHandle, pfTexelAspect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlaySortOrder(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlaySortOrder(_this->linux_side, ulOverlayHandle, unSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlaySortOrder, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlaySortOrder(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlaySortOrder(_this->linux_side, ulOverlayHandle, punSortOrder);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayWidthInMeters(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float fWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, fWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayWidthInMeters, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayWidthInMeters(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayWidthInMeters(_this->linux_side, ulOverlayHandle, pfWidthInMeters);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayCurvature(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float fCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayCurvature(_this->linux_side, ulOverlayHandle, fCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayCurvature, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayCurvature(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float * pfCurvature)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayCurvature(_this->linux_side, ulOverlayHandle, pfCurvature);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayPreCurvePitch, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayPreCurvePitch(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float fRadians)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayPreCurvePitch(_this->linux_side, ulOverlayHandle, fRadians);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayPreCurvePitch, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayPreCurvePitch(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float * pfRadians)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayPreCurvePitch(_this->linux_side, ulOverlayHandle, pfRadians);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTextureColorSpace(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, eTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTextureColorSpace, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTextureColorSpace(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTextureColorSpace(_this->linux_side, ulOverlayHandle, peTextureColorSpace);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTextureBounds(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTextureBounds, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTextureBounds(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VRTextureBounds_t * pOverlayTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTextureBounds(_this->linux_side, ulOverlayHandle, pOverlayTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformType, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTransformType(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTransformType(_this->linux_side, ulOverlayHandle, peTransformType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTransformAbsolute(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformAbsolute, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTransformAbsolute(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTransformAbsolute(_this->linux_side, ulOverlayHandle, peTrackingOrigin, pmatTrackingOriginToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, unTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceRelative(_this->linux_side, ulOverlayHandle, punTrackedDevice, pmatTrackedDeviceToOverlayTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, unDeviceIndex, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTransformTrackedDeviceComponent(_this->linux_side, ulOverlayHandle, punDeviceIndex, pchComponentName, unComponentNameSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTransformCursor(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulCursorOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTransformCursor(_this->linux_side, ulCursorOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTransformCursor, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTransformCursor(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvHotspot)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTransformCursor(_this->linux_side, ulOverlayHandle, pvHotspot);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTransformProjection, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTransformProjection(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToOverlayTransform, VROverlayProjection_t * pProjection, EVREye eEye)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayTransformProjection(_this->linux_side, ulOverlayHandle, eTrackingOrigin, pmatTrackingOriginToOverlayTransform, pProjection, eEye);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_ShowOverlay(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ShowOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_HideOverlay, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_HideOverlay(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_HideOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsOverlayVisible, 12)
 bool __thiscall winIVROverlay_IVROverlay_027_IsOverlayVisible(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_IsOverlayVisible(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, HmdMatrix34_t * pmatTransform)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetTransformForOverlayCoordinates(_this->linux_side, ulOverlayHandle, eTrackingOrigin, coordinatesInOverlay, pmatTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_WaitFrameSync, 8)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_WaitFrameSync(winIVROverlay_IVROverlay_027 *_this, uint32_t nTimeoutMs)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_WaitFrameSync(_this->linux_side, nTimeoutMs);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_PollNextOverlayEvent, 20)
 bool __thiscall winIVROverlay_IVROverlay_027_PollNextOverlayEvent(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, winVREvent_t_1267 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_PollNextOverlayEvent(_this->linux_side, ulOverlayHandle, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayInputMethod(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayInputMethod(_this->linux_side, ulOverlayHandle, peInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayInputMethod, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayInputMethod(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayInputMethod(_this->linux_side, ulOverlayHandle, eInputMethod);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayMouseScale(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayMouseScale, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayMouseScale(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvecMouseScale)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayMouseScale(_this->linux_side, ulOverlayHandle, pvecMouseScale);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ComputeOverlayIntersection, 20)
 bool __thiscall winIVROverlay_IVROverlay_027_ComputeOverlayIntersection(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionParams_t * pParams, VROverlayIntersectionResults_t * pResults)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ComputeOverlayIntersection(_this->linux_side, ulOverlayHandle, pParams, pResults);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsHoverTargetOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_027_IsHoverTargetOverlay(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_IsHoverTargetOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayIntersectionMask, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayIntersectionMask(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayIntersectionMask(_this->linux_side, ulOverlayHandle, pMaskPrimitives, unNumMaskPrimitives, unPrimitiveSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration, 24)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, float fDurationSeconds, float fFrequency, float fAmplitude)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_TriggerLaserMouseHapticVibration(_this->linux_side, ulOverlayHandle, fDurationSeconds, fFrequency, fAmplitude);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayCursor, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayCursor(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulCursorHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayCursor(_this->linux_side, ulOverlayHandle, ulCursorHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, HmdVector2_t * pvCursor)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle, pvCursor);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ClearOverlayCursorPositionOverride(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayTexture, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayTexture(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, Texture_t * pTexture)
 {
     TRACE("%p\n", _this);
     return ivroverlay_set_overlay_texture(cppIVROverlay_IVROverlay_027_SetOverlayTexture, _this->linux_side, ulOverlayHandle, pTexture, 27);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ClearOverlayTexture, 12)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_ClearOverlayTexture(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ClearOverlayTexture(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayRaw, 28)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayRaw(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unBytesPerPixel)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetOverlayRaw(_this->linux_side, ulOverlayHandle, pvBuffer, unWidth, unHeight, unBytesPerPixel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetOverlayFromFile, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayFromFile(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, const char * pchFilePath)
 {
     char lin_pchFilePath[PATH_MAX];
@@ -15223,126 +15264,108 @@ EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetOverlayFromFile(winIV
     return cppIVROverlay_IVROverlay_027_SetOverlayFromFile(_this->linux_side, ulOverlayHandle, pchFilePath ? lin_pchFilePath : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTexture, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTexture(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, VRTextureBounds_t * pTextureBounds)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTexture(_this->linux_side, ulOverlayHandle, pNativeTextureHandle, pNativeTextureRef, pWidth, pHeight, pNativeFormat, pAPIType, pColorSpace, pTextureBounds);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ReleaseNativeOverlayHandle(_this->linux_side, ulOverlayHandle, pNativeTextureHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetOverlayTextureSize, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetOverlayTextureSize(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetOverlayTextureSize(_this->linux_side, ulOverlayHandle, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_CreateDashboardOverlay, 20)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_CreateDashboardOverlay(winIVROverlay_IVROverlay_027 *_this, const char * pchOverlayKey, const char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_CreateDashboardOverlay(_this->linux_side, pchOverlayKey, pchOverlayFriendlyName, pMainHandle, pThumbnailHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsDashboardVisible, 4)
 bool __thiscall winIVROverlay_IVROverlay_027_IsDashboardVisible(winIVROverlay_IVROverlay_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_IsDashboardVisible(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_IsActiveDashboardOverlay, 12)
 bool __thiscall winIVROverlay_IVROverlay_027_IsActiveDashboardOverlay(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_IsActiveDashboardOverlay(_this->linux_side, ulOverlayHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_SetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, unProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess, 16)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetDashboardOverlaySceneProcess(_this->linux_side, ulOverlayHandle, punProcessId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowDashboard, 8)
 void __thiscall winIVROverlay_IVROverlay_027_ShowDashboard(winIVROverlay_IVROverlay_027 *_this, const char * pchOverlayToShow)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_027_ShowDashboard(_this->linux_side, pchOverlayToShow);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetPrimaryDashboardDevice, 4)
 TrackedDeviceIndex_t __thiscall winIVROverlay_IVROverlay_027_GetPrimaryDashboardDevice(winIVROverlay_IVROverlay_027 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetPrimaryDashboardDevice(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowKeyboard, 36)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_ShowKeyboard(winIVROverlay_IVROverlay_027 *_this, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ShowKeyboard(_this->linux_side, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowKeyboardForOverlay, 44)
 EVROverlayError __thiscall winIVROverlay_IVROverlay_027_ShowKeyboardForOverlay(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, uint32_t unFlags, const char * pchDescription, uint32_t unCharMax, const char * pchExistingText, uint64_t uUserValue)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ShowKeyboardForOverlay(_this->linux_side, ulOverlayHandle, eInputMode, eLineInputMode, unFlags, pchDescription, unCharMax, pchExistingText, uUserValue);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_GetKeyboardText, 12)
 uint32_t __thiscall winIVROverlay_IVROverlay_027_GetKeyboardText(winIVROverlay_IVROverlay_027 *_this, char * pchText, uint32_t cchText)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_GetKeyboardText(_this->linux_side, pchText, cchText);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_HideKeyboard, 4)
 void __thiscall winIVROverlay_IVROverlay_027_HideKeyboard(winIVROverlay_IVROverlay_027 *_this)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_027_HideKeyboard(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute, 12)
 void __thiscall winIVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute(winIVROverlay_IVROverlay_027 *_this, ETrackingUniverseOrigin eTrackingOrigin, HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_027_SetKeyboardTransformAbsolute(_this->linux_side, eTrackingOrigin, pmatTrackingOriginToKeyboardTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay, 28)
 void __thiscall winIVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay(winIVROverlay_IVROverlay_027 *_this, VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect)
 {
     TRACE("%p\n", _this);
     cppIVROverlay_IVROverlay_027_SetKeyboardPositionForOverlay(_this->linux_side, ulOverlayHandle, avoidRect);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_ShowMessageOverlay, 28)
 VRMessageOverlayResponse __thiscall winIVROverlay_IVROverlay_027_ShowMessageOverlay(winIVROverlay_IVROverlay_027 *_this, const char * pchText, const char * pchCaption, const char * pchButton0Text, const char * pchButton1Text, const char * pchButton2Text, const char * pchButton3Text)
 {
     TRACE("%p\n", _this);
     return cppIVROverlay_IVROverlay_027_ShowMessageOverlay(_this->linux_side, pchText, pchCaption, pchButton0Text, pchButton1Text, pchButton2Text, pchButton3Text);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlay_IVROverlay_027_CloseMessageOverlay, 4)
 void __thiscall winIVROverlay_IVROverlay_027_CloseMessageOverlay(winIVROverlay_IVROverlay_027 *_this)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVROverlayView.c b/vrclient_x64/vrclient_x64/winIVROverlayView.c
index 9b7c475a..4f9bfbb9 100644
--- a/vrclient_x64/vrclient_x64/winIVROverlayView.c
+++ b/vrclient_x64/vrclient_x64/winIVROverlayView.c
@@ -26,27 +26,28 @@ typedef struct __winIVROverlayView_IVROverlayView_003 {
 } winIVROverlayView_IVROverlayView_003;
 
 DEFINE_THISCALL_WRAPPER(winIVROverlayView_IVROverlayView_003_AcquireOverlayView, 24)
+DEFINE_THISCALL_WRAPPER(winIVROverlayView_IVROverlayView_003_ReleaseOverlayView, 8)
+DEFINE_THISCALL_WRAPPER(winIVROverlayView_IVROverlayView_003_PostOverlayEvent, 16)
+DEFINE_THISCALL_WRAPPER(winIVROverlayView_IVROverlayView_003_IsViewingPermitted, 12)
+
 EVROverlayError __thiscall winIVROverlayView_IVROverlayView_003_AcquireOverlayView(winIVROverlayView_IVROverlayView_003 *_this, VROverlayHandle_t ulOverlayHandle, VRNativeDevice_t * pNativeDevice, VROverlayView_t * pOverlayView, uint32_t unOverlayViewSize)
 {
     TRACE("%p\n", _this);
     return cppIVROverlayView_IVROverlayView_003_AcquireOverlayView(_this->linux_side, ulOverlayHandle, pNativeDevice, pOverlayView, unOverlayViewSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlayView_IVROverlayView_003_ReleaseOverlayView, 8)
 EVROverlayError __thiscall winIVROverlayView_IVROverlayView_003_ReleaseOverlayView(winIVROverlayView_IVROverlayView_003 *_this, VROverlayView_t * pOverlayView)
 {
     TRACE("%p\n", _this);
     return cppIVROverlayView_IVROverlayView_003_ReleaseOverlayView(_this->linux_side, pOverlayView);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlayView_IVROverlayView_003_PostOverlayEvent, 16)
 void __thiscall winIVROverlayView_IVROverlayView_003_PostOverlayEvent(winIVROverlayView_IVROverlayView_003 *_this, VROverlayHandle_t ulOverlayHandle, VREvent_t * pvrEvent)
 {
     TRACE("%p\n", _this);
     cppIVROverlayView_IVROverlayView_003_PostOverlayEvent(_this->linux_side, ulOverlayHandle, pvrEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVROverlayView_IVROverlayView_003_IsViewingPermitted, 12)
 bool __thiscall winIVROverlayView_IVROverlayView_003_IsViewingPermitted(winIVROverlayView_IVROverlayView_003 *_this, VROverlayHandle_t ulOverlayHandle)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRRenderModels.c b/vrclient_x64/vrclient_x64/winIVRRenderModels.c
index abc3609a..bfeae29c 100644
--- a/vrclient_x64/vrclient_x64/winIVRRenderModels.c
+++ b/vrclient_x64/vrclient_x64/winIVRRenderModels.c
@@ -26,27 +26,28 @@ typedef struct __winIVRRenderModels_IVRRenderModels_001 {
 } winIVRRenderModels_IVRRenderModels_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_LoadRenderModel, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_FreeRenderModel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetRenderModelName, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount, 4)
+
 bool __thiscall winIVRRenderModels_IVRRenderModels_001_LoadRenderModel(winIVRRenderModels_IVRRenderModels_001 *_this, const char * pchRenderModelName, winRenderModel_t_0910 * pRenderModel)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_001_LoadRenderModel(_this->linux_side, pchRenderModelName, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_FreeRenderModel, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_001_FreeRenderModel(winIVRRenderModels_IVRRenderModels_001 *_this, winRenderModel_t_0910 * pRenderModel)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_001_FreeRenderModel(_this->linux_side, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetRenderModelName, 16)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetRenderModelName(winIVRRenderModels_IVRRenderModels_001 *_this, uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_001_GetRenderModelName(_this->linux_side, unRenderModelIndex, pchRenderModelName, unRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount, 4)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_001_GetRenderModelCount(winIVRRenderModels_IVRRenderModels_001 *_this)
 {
     TRACE("%p\n", _this);
@@ -119,83 +120,84 @@ typedef struct __winIVRRenderModels_IVRRenderModels_002 {
 } winIVRRenderModels_IVRRenderModels_002;
 
 DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_LoadRenderModel, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_FreeRenderModel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_LoadTexture, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_FreeTexture, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetRenderModelName, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetRenderModelCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentCount, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentState, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_RenderModelHasComponent, 12)
+
 bool __thiscall winIVRRenderModels_IVRRenderModels_002_LoadRenderModel(winIVRRenderModels_IVRRenderModels_002 *_this, const char * pchRenderModelName, winRenderModel_t_0915 ** ppRenderModel)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_LoadRenderModel(_this->linux_side, pchRenderModelName, ppRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_FreeRenderModel, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_002_FreeRenderModel(winIVRRenderModels_IVRRenderModels_002 *_this, winRenderModel_t_0915 * pRenderModel)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_002_FreeRenderModel(_this->linux_side, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_LoadTexture, 12)
 bool __thiscall winIVRRenderModels_IVRRenderModels_002_LoadTexture(winIVRRenderModels_IVRRenderModels_002 *_this, TextureID_t textureId, winRenderModel_TextureMap_t_0915 ** ppTexture)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_LoadTexture(_this->linux_side, textureId, ppTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_FreeTexture, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_002_FreeTexture(winIVRRenderModels_IVRRenderModels_002 *_this, winRenderModel_TextureMap_t_0915 * pTexture)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_002_FreeTexture(_this->linux_side, pTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetRenderModelName, 16)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_002_GetRenderModelName(winIVRRenderModels_IVRRenderModels_002 *_this, uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_GetRenderModelName(_this->linux_side, unRenderModelIndex, pchRenderModelName, unRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetRenderModelCount, 4)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_002_GetRenderModelCount(winIVRRenderModels_IVRRenderModels_002 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_GetRenderModelCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentCount, 8)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_002_GetComponentCount(winIVRRenderModels_IVRRenderModels_002 *_this, const char * pchRenderModelName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_GetComponentCount(_this->linux_side, pchRenderModelName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_002_GetComponentName(winIVRRenderModels_IVRRenderModels_002 *_this, const char * pchRenderModelName, uint32_t unComponentIndex, char * pchComponentName, uint32_t unComponentNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_GetComponentName(_this->linux_side, pchRenderModelName, unComponentIndex, pchComponentName, unComponentNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask, 12)
 uint64_t __thiscall winIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask(winIVRRenderModels_IVRRenderModels_002 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_GetComponentButtonMask(_this->linux_side, pchRenderModelName, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName(winIVRRenderModels_IVRRenderModels_002 *_this, const char * pchRenderModelName, const char * pchComponentName, char * pchComponentRenderModelName, uint32_t unComponentRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_GetComponentRenderModelName(_this->linux_side, pchRenderModelName, pchComponentName, pchComponentRenderModelName, unComponentRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_GetComponentState, 20)
 bool __thiscall winIVRRenderModels_IVRRenderModels_002_GetComponentState(winIVRRenderModels_IVRRenderModels_002 *_this, const char * pchRenderModelName, const char * pchComponentName, VRControllerState_t * pControllerState, RenderModel_ComponentState_t * pComponentState)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_002_GetComponentState(_this->linux_side, pchRenderModelName, pchComponentName, pControllerState, pComponentState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_002_RenderModelHasComponent, 12)
 bool __thiscall winIVRRenderModels_IVRRenderModels_002_RenderModelHasComponent(winIVRRenderModels_IVRRenderModels_002 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
@@ -284,97 +286,98 @@ typedef struct __winIVRRenderModels_IVRRenderModels_004 {
 } winIVRRenderModels_IVRRenderModels_004;
 
 DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_FreeRenderModel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_LoadTexture_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_FreeTexture, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetRenderModelName, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetRenderModelCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentCount, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentState, 24)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_RenderModelHasComponent, 12)
+
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async(winIVRRenderModels_IVRRenderModels_004 *_this, const char * pchRenderModelName, winRenderModel_t_0918 ** ppRenderModel)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_LoadRenderModel_Async(_this->linux_side, pchRenderModelName, ppRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_FreeRenderModel, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_004_FreeRenderModel(winIVRRenderModels_IVRRenderModels_004 *_this, winRenderModel_t_0918 * pRenderModel)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_004_FreeRenderModel(_this->linux_side, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_LoadTexture_Async, 12)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_004_LoadTexture_Async(winIVRRenderModels_IVRRenderModels_004 *_this, TextureID_t textureId, winRenderModel_TextureMap_t_0918 ** ppTexture)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_LoadTexture_Async(_this->linux_side, textureId, ppTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_FreeTexture, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_004_FreeTexture(winIVRRenderModels_IVRRenderModels_004 *_this, winRenderModel_TextureMap_t_0918 * pTexture)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_004_FreeTexture(_this->linux_side, pTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async, 16)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async(winIVRRenderModels_IVRRenderModels_004 *_this, TextureID_t textureId, void * pD3D11Device, void ** ppD3D11Texture2D)
 {
     TRACE("%p\n", _this);
     return ivrrendermodels_load_texture_d3d11_async(cppIVRRenderModels_IVRRenderModels_004_LoadTextureD3D11_Async, _this->linux_side, textureId, pD3D11Device, ppD3D11Texture2D, 4);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11(winIVRRenderModels_IVRRenderModels_004 *_this, void * pD3D11Texture2D)
 {
     TRACE("%p\n", _this);
     ivrrendermodels_free_texture_d3d11(cppIVRRenderModels_IVRRenderModels_004_FreeTextureD3D11, _this->linux_side, pD3D11Texture2D, 4);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetRenderModelName, 16)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_004_GetRenderModelName(winIVRRenderModels_IVRRenderModels_004 *_this, uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_GetRenderModelName(_this->linux_side, unRenderModelIndex, pchRenderModelName, unRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetRenderModelCount, 4)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_004_GetRenderModelCount(winIVRRenderModels_IVRRenderModels_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_GetRenderModelCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentCount, 8)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_004_GetComponentCount(winIVRRenderModels_IVRRenderModels_004 *_this, const char * pchRenderModelName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_GetComponentCount(_this->linux_side, pchRenderModelName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_004_GetComponentName(winIVRRenderModels_IVRRenderModels_004 *_this, const char * pchRenderModelName, uint32_t unComponentIndex, char * pchComponentName, uint32_t unComponentNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_GetComponentName(_this->linux_side, pchRenderModelName, unComponentIndex, pchComponentName, unComponentNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask, 12)
 uint64_t __thiscall winIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask(winIVRRenderModels_IVRRenderModels_004 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_GetComponentButtonMask(_this->linux_side, pchRenderModelName, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName(winIVRRenderModels_IVRRenderModels_004 *_this, const char * pchRenderModelName, const char * pchComponentName, char * pchComponentRenderModelName, uint32_t unComponentRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_GetComponentRenderModelName(_this->linux_side, pchRenderModelName, pchComponentName, pchComponentRenderModelName, unComponentRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_GetComponentState, 24)
 bool __thiscall winIVRRenderModels_IVRRenderModels_004_GetComponentState(winIVRRenderModels_IVRRenderModels_004 *_this, const char * pchRenderModelName, const char * pchComponentName, VRControllerState_t * pControllerState, RenderModel_ControllerMode_State_t * pState, RenderModel_ComponentState_t * pComponentState)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_004_GetComponentState(_this->linux_side, pchRenderModelName, pchComponentName, pControllerState, pState, pComponentState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_004_RenderModelHasComponent, 12)
 bool __thiscall winIVRRenderModels_IVRRenderModels_004_RenderModelHasComponent(winIVRRenderModels_IVRRenderModels_004 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
@@ -467,125 +470,126 @@ typedef struct __winIVRRenderModels_IVRRenderModels_005 {
 } winIVRRenderModels_IVRRenderModels_005;
 
 DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_FreeRenderModel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_LoadTexture_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_FreeTexture, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_FreeTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelName, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentCount, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentButtonMask, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentState, 24)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_RenderModelHasComponent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum, 8)
+
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, winRenderModel_t_1015 ** ppRenderModel)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_LoadRenderModel_Async(_this->linux_side, pchRenderModelName, ppRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_FreeRenderModel, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_005_FreeRenderModel(winIVRRenderModels_IVRRenderModels_005 *_this, winRenderModel_t_1015 * pRenderModel)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_005_FreeRenderModel(_this->linux_side, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_LoadTexture_Async, 12)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_005_LoadTexture_Async(winIVRRenderModels_IVRRenderModels_005 *_this, TextureID_t textureId, winRenderModel_TextureMap_t_1015 ** ppTexture)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_LoadTexture_Async(_this->linux_side, textureId, ppTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_FreeTexture, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_005_FreeTexture(winIVRRenderModels_IVRRenderModels_005 *_this, winRenderModel_TextureMap_t_1015 * pTexture)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_005_FreeTexture(_this->linux_side, pTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async, 16)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async(winIVRRenderModels_IVRRenderModels_005 *_this, TextureID_t textureId, void * pD3D11Device, void ** ppD3D11Texture2D)
 {
     TRACE("%p\n", _this);
     return ivrrendermodels_load_texture_d3d11_async(cppIVRRenderModels_IVRRenderModels_005_LoadTextureD3D11_Async, _this->linux_side, textureId, pD3D11Device, ppD3D11Texture2D, 5);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async, 12)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async(winIVRRenderModels_IVRRenderModels_005 *_this, TextureID_t textureId, void * pDstTexture)
 {
     TRACE("%p\n", _this);
     return ivrrendermodels_load_into_texture_d3d11_async(cppIVRRenderModels_IVRRenderModels_005_LoadIntoTextureD3D11_Async, _this->linux_side, textureId, pDstTexture, 5);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_FreeTextureD3D11, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_005_FreeTextureD3D11(winIVRRenderModels_IVRRenderModels_005 *_this, void * pD3D11Texture2D)
 {
     TRACE("%p\n", _this);
     ivrrendermodels_free_texture_d3d11(cppIVRRenderModels_IVRRenderModels_005_FreeTextureD3D11, _this->linux_side, pD3D11Texture2D, 5);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelName, 16)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetRenderModelName(winIVRRenderModels_IVRRenderModels_005 *_this, uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetRenderModelName(_this->linux_side, unRenderModelIndex, pchRenderModelName, unRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelCount, 4)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetRenderModelCount(winIVRRenderModels_IVRRenderModels_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetRenderModelCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentCount, 8)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetComponentCount(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetComponentCount(_this->linux_side, pchRenderModelName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetComponentName(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, uint32_t unComponentIndex, char * pchComponentName, uint32_t unComponentNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetComponentName(_this->linux_side, pchRenderModelName, unComponentIndex, pchComponentName, unComponentNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentButtonMask, 12)
 uint64_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetComponentButtonMask(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetComponentButtonMask(_this->linux_side, pchRenderModelName, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, const char * pchComponentName, char * pchComponentRenderModelName, uint32_t unComponentRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetComponentRenderModelName(_this->linux_side, pchRenderModelName, pchComponentName, pchComponentRenderModelName, unComponentRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetComponentState, 24)
 bool __thiscall winIVRRenderModels_IVRRenderModels_005_GetComponentState(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, const char * pchComponentName, VRControllerState_t * pControllerState, RenderModel_ControllerMode_State_t * pState, RenderModel_ComponentState_t * pComponentState)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetComponentState(_this->linux_side, pchRenderModelName, pchComponentName, pControllerState, pState, pComponentState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_RenderModelHasComponent, 12)
 bool __thiscall winIVRRenderModels_IVRRenderModels_005_RenderModelHasComponent(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_RenderModelHasComponent(_this->linux_side, pchRenderModelName, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, char * pchThumbnailURL, uint32_t unThumbnailURLLen, EVRRenderModelError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetRenderModelThumbnailURL(_this->linux_side, pchRenderModelName, pchThumbnailURL, unThumbnailURLLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath(winIVRRenderModels_IVRRenderModels_005 *_this, const char * pchRenderModelName, char * pchOriginalPath, uint32_t unOriginalPathLen, EVRRenderModelError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_005_GetRenderModelOriginalPath(_this->linux_side, pchRenderModelName, pchOriginalPath, unOriginalPathLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum, 8)
 const char * __thiscall winIVRRenderModels_IVRRenderModels_005_GetRenderModelErrorNameFromEnum(winIVRRenderModels_IVRRenderModels_005 *_this, EVRRenderModelError error)
 {
     TRACE("%p\n", _this);
@@ -686,132 +690,133 @@ typedef struct __winIVRRenderModels_IVRRenderModels_006 {
 } winIVRRenderModels_IVRRenderModels_006;
 
 DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_LoadRenderModel_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_FreeRenderModel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_LoadTexture_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_FreeTexture, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_FreeTextureD3D11, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelName, 16)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelCount, 4)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentCount, 8)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentButtonMask, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath, 28)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentState, 24)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_RenderModelHasComponent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath, 20)
+DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelErrorNameFromEnum, 8)
+
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_006_LoadRenderModel_Async(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, winRenderModel_t_1267 ** ppRenderModel)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_LoadRenderModel_Async(_this->linux_side, pchRenderModelName, ppRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_FreeRenderModel, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_006_FreeRenderModel(winIVRRenderModels_IVRRenderModels_006 *_this, winRenderModel_t_1267 * pRenderModel)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_006_FreeRenderModel(_this->linux_side, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_LoadTexture_Async, 12)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_006_LoadTexture_Async(winIVRRenderModels_IVRRenderModels_006 *_this, TextureID_t textureId, winRenderModel_TextureMap_t_1267 ** ppTexture)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_LoadTexture_Async(_this->linux_side, textureId, ppTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_FreeTexture, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_006_FreeTexture(winIVRRenderModels_IVRRenderModels_006 *_this, winRenderModel_TextureMap_t_1267 * pTexture)
 {
     TRACE("%p\n", _this);
     cppIVRRenderModels_IVRRenderModels_006_FreeTexture(_this->linux_side, pTexture);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async, 16)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async(winIVRRenderModels_IVRRenderModels_006 *_this, TextureID_t textureId, void * pD3D11Device, void ** ppD3D11Texture2D)
 {
     TRACE("%p\n", _this);
     return ivrrendermodels_load_texture_d3d11_async(cppIVRRenderModels_IVRRenderModels_006_LoadTextureD3D11_Async, _this->linux_side, textureId, pD3D11Device, ppD3D11Texture2D, 6);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async, 12)
 EVRRenderModelError __thiscall winIVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async(winIVRRenderModels_IVRRenderModels_006 *_this, TextureID_t textureId, void * pDstTexture)
 {
     TRACE("%p\n", _this);
     return ivrrendermodels_load_into_texture_d3d11_async(cppIVRRenderModels_IVRRenderModels_006_LoadIntoTextureD3D11_Async, _this->linux_side, textureId, pDstTexture, 6);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_FreeTextureD3D11, 8)
 void __thiscall winIVRRenderModels_IVRRenderModels_006_FreeTextureD3D11(winIVRRenderModels_IVRRenderModels_006 *_this, void * pD3D11Texture2D)
 {
     TRACE("%p\n", _this);
     ivrrendermodels_free_texture_d3d11(cppIVRRenderModels_IVRRenderModels_006_FreeTextureD3D11, _this->linux_side, pD3D11Texture2D, 6);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelName, 16)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetRenderModelName(winIVRRenderModels_IVRRenderModels_006 *_this, uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetRenderModelName(_this->linux_side, unRenderModelIndex, pchRenderModelName, unRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelCount, 4)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetRenderModelCount(winIVRRenderModels_IVRRenderModels_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetRenderModelCount(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentCount, 8)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetComponentCount(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetComponentCount(_this->linux_side, pchRenderModelName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetComponentName(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, uint32_t unComponentIndex, char * pchComponentName, uint32_t unComponentNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetComponentName(_this->linux_side, pchRenderModelName, unComponentIndex, pchComponentName, unComponentNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentButtonMask, 12)
 uint64_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetComponentButtonMask(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetComponentButtonMask(_this->linux_side, pchRenderModelName, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, const char * pchComponentName, char * pchComponentRenderModelName, uint32_t unComponentRenderModelNameLen)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetComponentRenderModelName(_this->linux_side, pchRenderModelName, pchComponentName, pchComponentRenderModelName, unComponentRenderModelNameLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath, 28)
 bool __thiscall winIVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, const char * pchComponentName, VRInputValueHandle_t devicePath, RenderModel_ControllerMode_State_t * pState, RenderModel_ComponentState_t * pComponentState)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetComponentStateForDevicePath(_this->linux_side, pchRenderModelName, pchComponentName, devicePath, pState, pComponentState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetComponentState, 24)
 bool __thiscall winIVRRenderModels_IVRRenderModels_006_GetComponentState(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, const char * pchComponentName, VRControllerState_t * pControllerState, RenderModel_ControllerMode_State_t * pState, RenderModel_ComponentState_t * pComponentState)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetComponentState(_this->linux_side, pchRenderModelName, pchComponentName, pControllerState, pState, pComponentState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_RenderModelHasComponent, 12)
 bool __thiscall winIVRRenderModels_IVRRenderModels_006_RenderModelHasComponent(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, const char * pchComponentName)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_RenderModelHasComponent(_this->linux_side, pchRenderModelName, pchComponentName);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, char * pchThumbnailURL, uint32_t unThumbnailURLLen, EVRRenderModelError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetRenderModelThumbnailURL(_this->linux_side, pchRenderModelName, pchThumbnailURL, unThumbnailURLLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath, 20)
 uint32_t __thiscall winIVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath(winIVRRenderModels_IVRRenderModels_006 *_this, const char * pchRenderModelName, char * pchOriginalPath, uint32_t unOriginalPathLen, EVRRenderModelError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRRenderModels_IVRRenderModels_006_GetRenderModelOriginalPath(_this->linux_side, pchRenderModelName, pchOriginalPath, unOriginalPathLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRRenderModels_IVRRenderModels_006_GetRenderModelErrorNameFromEnum, 8)
 const char * __thiscall winIVRRenderModels_IVRRenderModels_006_GetRenderModelErrorNameFromEnum(winIVRRenderModels_IVRRenderModels_006 *_this, EVRRenderModelError error)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRResources.c b/vrclient_x64/vrclient_x64/winIVRResources.c
index 88d9c3b8..76f9f7db 100644
--- a/vrclient_x64/vrclient_x64/winIVRResources.c
+++ b/vrclient_x64/vrclient_x64/winIVRResources.c
@@ -26,13 +26,14 @@ typedef struct __winIVRResources_IVRResources_001 {
 } winIVRResources_IVRResources_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRResources_IVRResources_001_LoadSharedResource, 16)
+DEFINE_THISCALL_WRAPPER(winIVRResources_IVRResources_001_GetResourceFullPath, 20)
+
 uint32_t __thiscall winIVRResources_IVRResources_001_LoadSharedResource(winIVRResources_IVRResources_001 *_this, const char * pchResourceName, char * pchBuffer, uint32_t unBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRResources_IVRResources_001_LoadSharedResource(_this->linux_side, pchResourceName, pchBuffer, unBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRResources_IVRResources_001_GetResourceFullPath, 20)
 uint32_t __thiscall winIVRResources_IVRResources_001_GetResourceFullPath(winIVRResources_IVRResources_001 *_this, const char * pchResourceName, const char * pchResourceTypeDirectory, char * pchPathBuffer, uint32_t unBufferLen)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRScreenshots.c b/vrclient_x64/vrclient_x64/winIVRScreenshots.c
index ef9920f0..4cc603e2 100644
--- a/vrclient_x64/vrclient_x64/winIVRScreenshots.c
+++ b/vrclient_x64/vrclient_x64/winIVRScreenshots.c
@@ -26,6 +26,13 @@ typedef struct __winIVRScreenshots_IVRScreenshots_001 {
 } winIVRScreenshots_IVRScreenshots_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_RequestScreenshot, 20)
+DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_HookScreenshot, 12)
+DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType, 12)
+DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename, 24)
+DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress, 12)
+DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot, 16)
+DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_SubmitScreenshot, 20)
+
 EVRScreenshotError __thiscall winIVRScreenshots_IVRScreenshots_001_RequestScreenshot(winIVRScreenshots_IVRScreenshots_001 *_this, ScreenshotHandle_t * pOutScreenshotHandle, EVRScreenshotType type, const char * pchPreviewFilename, const char * pchVRFilename)
 {
     char lin_pchPreviewFilename[PATH_MAX];
@@ -36,21 +43,18 @@ EVRScreenshotError __thiscall winIVRScreenshots_IVRScreenshots_001_RequestScreen
     return cppIVRScreenshots_IVRScreenshots_001_RequestScreenshot(_this->linux_side, pOutScreenshotHandle, type, pchPreviewFilename ? lin_pchPreviewFilename : NULL, pchVRFilename ? lin_pchVRFilename : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_HookScreenshot, 12)
 EVRScreenshotError __thiscall winIVRScreenshots_IVRScreenshots_001_HookScreenshot(winIVRScreenshots_IVRScreenshots_001 *_this, EVRScreenshotType * pSupportedTypes, int numTypes)
 {
     TRACE("%p\n", _this);
     return cppIVRScreenshots_IVRScreenshots_001_HookScreenshot(_this->linux_side, pSupportedTypes, numTypes);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType, 12)
 EVRScreenshotType __thiscall winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType(winIVRScreenshots_IVRScreenshots_001 *_this, ScreenshotHandle_t screenshotHandle, EVRScreenshotError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyType(_this->linux_side, screenshotHandle, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename, 24)
 uint32_t __thiscall winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFilename(winIVRScreenshots_IVRScreenshots_001 *_this, ScreenshotHandle_t screenshotHandle, EVRScreenshotPropertyFilenames filenameType, char * pchFilename, uint32_t cchFilename, EVRScreenshotError * pError)
 {
     uint32_t path_result;
@@ -60,14 +64,12 @@ uint32_t __thiscall winIVRScreenshots_IVRScreenshots_001_GetScreenshotPropertyFi
     return path_result;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress, 12)
 EVRScreenshotError __thiscall winIVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress(winIVRScreenshots_IVRScreenshots_001 *_this, ScreenshotHandle_t screenshotHandle, float flProgress)
 {
     TRACE("%p\n", _this);
     return cppIVRScreenshots_IVRScreenshots_001_UpdateScreenshotProgress(_this->linux_side, screenshotHandle, flProgress);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot, 16)
 EVRScreenshotError __thiscall winIVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot(winIVRScreenshots_IVRScreenshots_001 *_this, ScreenshotHandle_t * pOutScreenshotHandle, const char * pchPreviewFilename, const char * pchVRFilename)
 {
     char lin_pchPreviewFilename[PATH_MAX];
@@ -78,7 +80,6 @@ EVRScreenshotError __thiscall winIVRScreenshots_IVRScreenshots_001_TakeStereoScr
     return cppIVRScreenshots_IVRScreenshots_001_TakeStereoScreenshot(_this->linux_side, pOutScreenshotHandle, pchPreviewFilename ? lin_pchPreviewFilename : NULL, pchVRFilename ? lin_pchVRFilename : NULL);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRScreenshots_IVRScreenshots_001_SubmitScreenshot, 20)
 EVRScreenshotError __thiscall winIVRScreenshots_IVRScreenshots_001_SubmitScreenshot(winIVRScreenshots_IVRScreenshots_001 *_this, ScreenshotHandle_t screenshotHandle, EVRScreenshotType type, const char * pchSourcePreviewFilename, const char * pchSourceVRFilename)
 {
     char lin_pchSourcePreviewFilename[PATH_MAX];
diff --git a/vrclient_x64/vrclient_x64/winIVRSettings.c b/vrclient_x64/vrclient_x64/winIVRSettings.c
index 28e167a7..6a13df08 100644
--- a/vrclient_x64/vrclient_x64/winIVRSettings.c
+++ b/vrclient_x64/vrclient_x64/winIVRSettings.c
@@ -26,83 +26,84 @@ typedef struct __winIVRSettings_IVRSettings_001 {
 } winIVRSettings_IVRSettings_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_Sync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetBool, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetBool, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetInt32, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetInt32, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetFloat, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetFloat, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetString, 28)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetString, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_RemoveSection, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_RemoveKeyInSection, 16)
+
 const char * __thiscall winIVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum(winIVRSettings_IVRSettings_001 *_this, EVRSettingsError eError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_001_GetSettingsErrorNameFromEnum(_this->linux_side, eError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_Sync, 9)
 bool __thiscall winIVRSettings_IVRSettings_001_Sync(winIVRSettings_IVRSettings_001 *_this, bool bForce, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_001_Sync(_this->linux_side, bForce, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetBool, 17)
 bool __thiscall winIVRSettings_IVRSettings_001_GetBool(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, bool bDefaultValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_001_GetBool(_this->linux_side, pchSection, pchSettingsKey, bDefaultValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetBool, 17)
 void __thiscall winIVRSettings_IVRSettings_001_SetBool(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, bool bValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_001_SetBool(_this->linux_side, pchSection, pchSettingsKey, bValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetInt32, 20)
 int32_t __thiscall winIVRSettings_IVRSettings_001_GetInt32(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, int32_t nDefaultValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_001_GetInt32(_this->linux_side, pchSection, pchSettingsKey, nDefaultValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetInt32, 20)
 void __thiscall winIVRSettings_IVRSettings_001_SetInt32(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, int32_t nValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_001_SetInt32(_this->linux_side, pchSection, pchSettingsKey, nValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetFloat, 20)
 float __thiscall winIVRSettings_IVRSettings_001_GetFloat(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, float flDefaultValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_001_GetFloat(_this->linux_side, pchSection, pchSettingsKey, flDefaultValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetFloat, 20)
 void __thiscall winIVRSettings_IVRSettings_001_SetFloat(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, float flValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_001_SetFloat(_this->linux_side, pchSection, pchSettingsKey, flValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_GetString, 28)
 void __thiscall winIVRSettings_IVRSettings_001_GetString(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, char * pchValue, uint32_t unValueLen, const char * pchDefaultValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_001_GetString(_this->linux_side, pchSection, pchSettingsKey, pchValue, unValueLen, pchDefaultValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_SetString, 20)
 void __thiscall winIVRSettings_IVRSettings_001_SetString(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, const char * pchValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_001_SetString(_this->linux_side, pchSection, pchSettingsKey, pchValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_RemoveSection, 12)
 void __thiscall winIVRSettings_IVRSettings_001_RemoveSection(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_001_RemoveSection(_this->linux_side, pchSection, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_001_RemoveKeyInSection, 16)
 void __thiscall winIVRSettings_IVRSettings_001_RemoveKeyInSection(winIVRSettings_IVRSettings_001 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
@@ -191,83 +192,84 @@ typedef struct __winIVRSettings_IVRSettings_002 {
 } winIVRSettings_IVRSettings_002;
 
 DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_Sync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetBool, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetInt32, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetFloat, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetString, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetInt32, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetFloat, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_RemoveSection, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_RemoveKeyInSection, 16)
+
 const char * __thiscall winIVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum(winIVRSettings_IVRSettings_002 *_this, EVRSettingsError eError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_002_GetSettingsErrorNameFromEnum(_this->linux_side, eError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_Sync, 9)
 bool __thiscall winIVRSettings_IVRSettings_002_Sync(winIVRSettings_IVRSettings_002 *_this, bool bForce, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_002_Sync(_this->linux_side, bForce, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetBool, 17)
 void __thiscall winIVRSettings_IVRSettings_002_SetBool(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, bool bValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_002_SetBool(_this->linux_side, pchSection, pchSettingsKey, bValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetInt32, 20)
 void __thiscall winIVRSettings_IVRSettings_002_SetInt32(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, int32_t nValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_002_SetInt32(_this->linux_side, pchSection, pchSettingsKey, nValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetFloat, 20)
 void __thiscall winIVRSettings_IVRSettings_002_SetFloat(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, float flValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_002_SetFloat(_this->linux_side, pchSection, pchSettingsKey, flValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_SetString, 20)
 void __thiscall winIVRSettings_IVRSettings_002_SetString(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, const char * pchValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_002_SetString(_this->linux_side, pchSection, pchSettingsKey, pchValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetBool, 16)
 bool __thiscall winIVRSettings_IVRSettings_002_GetBool(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_002_GetBool(_this->linux_side, pchSection, pchSettingsKey, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetInt32, 16)
 int32_t __thiscall winIVRSettings_IVRSettings_002_GetInt32(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_002_GetInt32(_this->linux_side, pchSection, pchSettingsKey, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetFloat, 16)
 float __thiscall winIVRSettings_IVRSettings_002_GetFloat(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_002_GetFloat(_this->linux_side, pchSection, pchSettingsKey, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_GetString, 24)
 void __thiscall winIVRSettings_IVRSettings_002_GetString(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, char * pchValue, uint32_t unValueLen, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_002_GetString(_this->linux_side, pchSection, pchSettingsKey, pchValue, unValueLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_RemoveSection, 12)
 void __thiscall winIVRSettings_IVRSettings_002_RemoveSection(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_002_RemoveSection(_this->linux_side, pchSection, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_002_RemoveKeyInSection, 16)
 void __thiscall winIVRSettings_IVRSettings_002_RemoveKeyInSection(winIVRSettings_IVRSettings_002 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
@@ -356,76 +358,77 @@ typedef struct __winIVRSettings_IVRSettings_003 {
 } winIVRSettings_IVRSettings_003;
 
 DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetSettingsErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetBool, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetInt32, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetFloat, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetString, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetBool, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetInt32, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetFloat, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetString, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_RemoveSection, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_RemoveKeyInSection, 16)
+
 const char * __thiscall winIVRSettings_IVRSettings_003_GetSettingsErrorNameFromEnum(winIVRSettings_IVRSettings_003 *_this, EVRSettingsError eError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_003_GetSettingsErrorNameFromEnum(_this->linux_side, eError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetBool, 17)
 void __thiscall winIVRSettings_IVRSettings_003_SetBool(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, bool bValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_003_SetBool(_this->linux_side, pchSection, pchSettingsKey, bValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetInt32, 20)
 void __thiscall winIVRSettings_IVRSettings_003_SetInt32(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, int32_t nValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_003_SetInt32(_this->linux_side, pchSection, pchSettingsKey, nValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetFloat, 20)
 void __thiscall winIVRSettings_IVRSettings_003_SetFloat(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, float flValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_003_SetFloat(_this->linux_side, pchSection, pchSettingsKey, flValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_SetString, 20)
 void __thiscall winIVRSettings_IVRSettings_003_SetString(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, const char * pchValue, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_003_SetString(_this->linux_side, pchSection, pchSettingsKey, pchValue, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetBool, 16)
 bool __thiscall winIVRSettings_IVRSettings_003_GetBool(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_003_GetBool(_this->linux_side, pchSection, pchSettingsKey, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetInt32, 16)
 int32_t __thiscall winIVRSettings_IVRSettings_003_GetInt32(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_003_GetInt32(_this->linux_side, pchSection, pchSettingsKey, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetFloat, 16)
 float __thiscall winIVRSettings_IVRSettings_003_GetFloat(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     return cppIVRSettings_IVRSettings_003_GetFloat(_this->linux_side, pchSection, pchSettingsKey, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_GetString, 24)
 void __thiscall winIVRSettings_IVRSettings_003_GetString(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, char * pchValue, uint32_t unValueLen, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_003_GetString(_this->linux_side, pchSection, pchSettingsKey, pchValue, unValueLen, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_RemoveSection, 12)
 void __thiscall winIVRSettings_IVRSettings_003_RemoveSection(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
     cppIVRSettings_IVRSettings_003_RemoveSection(_this->linux_side, pchSection, peError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSettings_IVRSettings_003_RemoveKeyInSection, 16)
 void __thiscall winIVRSettings_IVRSettings_003_RemoveKeyInSection(winIVRSettings_IVRSettings_003 *_this, const char * pchSection, const char * pchSettingsKey, EVRSettingsError * peError)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRSystem.c b/vrclient_x64/vrclient_x64/winIVRSystem.c
index 0d94515c..d978f173 100644
--- a/vrclient_x64/vrclient_x64/winIVRSystem.c
+++ b/vrclient_x64/vrclient_x64/winIVRSystem.c
@@ -26,27 +26,62 @@ typedef struct __winIVRSystem_IVRSystem_003 {
 } winIVRSystem_IVRSystem_003;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetWindowBounds, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetEyeOutputViewport, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetDXGIOutputInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_AttachToWindow, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_LoadRenderModel, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_FreeRenderModel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_PollNextEvent, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_PollNextEventWithPose, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse, 32)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_IsInputFocusCapturedByAnotherProcess, 4)
+
 void __thiscall winIVRSystem_IVRSystem_003_GetWindowBounds(winIVRSystem_IVRSystem_003 *_this, int32_t * pnX, int32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_GetWindowBounds(_this->linux_side, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize, 12)
 void __thiscall winIVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_003 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetEyeOutputViewport, 24)
 void __thiscall winIVRSystem_IVRSystem_003_GetEyeOutputViewport(winIVRSystem_IVRSystem_003 *_this, Hmd_Eye eEye, uint32_t * pnX, uint32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_GetEyeOutputViewport(_this->linux_side, eEye, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_003_GetProjectionMatrix(winIVRSystem_IVRSystem_003 *_this, HmdMatrix44_t *_r, Hmd_Eye eEye, float fNearZ, float fFarZ, GraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -54,14 +89,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_003_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_003_GetProjectionRaw(winIVRSystem_IVRSystem_003 *_this, Hmd_Eye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_003_ComputeDistortion(winIVRSystem_IVRSystem_003 *_this, DistortionCoordinates_t *_r, Hmd_Eye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -69,7 +102,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_003_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_003_GetEyeToHeadTransform(winIVRSystem_IVRSystem_003 *_this, HmdMatrix34_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -77,49 +109,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_003_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_003_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_003 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_003_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetDXGIOutputInfo, 12)
 void __thiscall winIVRSystem_IVRSystem_003_GetDXGIOutputInfo(winIVRSystem_IVRSystem_003 *_this, int32_t * pnAdapterIndex, int32_t * pnAdapterOutputIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info2(cppIVRSystem_IVRSystem_003_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, pnAdapterOutputIndex, 3);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_AttachToWindow, 8)
 bool __thiscall winIVRSystem_IVRSystem_003_AttachToWindow(winIVRSystem_IVRSystem_003 *_this, void * hWnd)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_AttachToWindow(_this->linux_side, hWnd);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_003 *_this, TrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_003_ResetSeatedZeroPose(winIVRSystem_IVRSystem_003 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_003_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_003 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -127,63 +152,54 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_003_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_LoadRenderModel, 12)
 bool __thiscall winIVRSystem_IVRSystem_003_LoadRenderModel(winIVRSystem_IVRSystem_003 *_this, const char * pchRenderModelName, winRenderModel_t_091 * pRenderModel)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_LoadRenderModel(_this->linux_side, pchRenderModelName, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_FreeRenderModel, 8)
 void __thiscall winIVRSystem_IVRSystem_003_FreeRenderModel(winIVRSystem_IVRSystem_003 *_this, winRenderModel_t_091 * pRenderModel)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_FreeRenderModel(_this->linux_side, pRenderModel);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetTrackedDeviceClass, 8)
 TrackedDeviceClass __thiscall winIVRSystem_IVRSystem_003_GetTrackedDeviceClass(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_003_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_003_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_003 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -191,42 +207,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_003_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_003_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_003 *_this, TrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_PollNextEvent, 8)
 bool __thiscall winIVRSystem_IVRSystem_003_PollNextEvent(winIVRSystem_IVRSystem_003 *_this, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_PollNextEvent(_this->linux_side, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_PollNextEventWithPose, 16)
 bool __thiscall winIVRSystem_IVRSystem_003_PollNextEventWithPose(winIVRSystem_IVRSystem_003 *_this, TrackingUniverseOrigin eOrigin, VREvent_t * pEvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_003_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_003 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_003_GetHiddenAreaMesh(winIVRSystem_IVRSystem_003 *_this, HiddenAreaMesh_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -234,63 +244,54 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_003_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_003_GetControllerState(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_091 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_003_GetControllerStateWithPose(winIVRSystem_IVRSystem_003 *_this, TrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_091 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_003_TriggerHapticPulse(winIVRSystem_IVRSystem_003 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_003_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_003 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_003 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse, 140)
 bool __thiscall winIVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse(winIVRSystem_IVRSystem_003 *_this, Compositor_OverlaySettings * overlaySettings, HmdVector2_t vecWindowClientPositionOnScreen, HmdVector2_t vecWindowClientSize, TrackedDeviceIndex_t unControllerDeviceIndex, EVRControllerEventOutputType eOutputType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_HandleControllerOverlayInteractionAsMouse(_this->linux_side, overlaySettings, vecWindowClientPositionOnScreen, vecWindowClientSize, unControllerDeviceIndex, eOutputType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_003_CaptureInputFocus(winIVRSystem_IVRSystem_003 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_003_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_003_ReleaseInputFocus(winIVRSystem_IVRSystem_003 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_003_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_003_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_003_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_003 *_this)
 {
     TRACE("%p\n", _this);
@@ -431,27 +432,60 @@ typedef struct __winIVRSystem_IVRSystem_004 {
 } winIVRSystem_IVRSystem_004;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetWindowBounds, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetEyeOutputViewport, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetDXGIOutputInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_AttachToWindow, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_PollNextEvent, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_PollNextEventWithPose, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_DriverDebugRequest, 20)
+
 void __thiscall winIVRSystem_IVRSystem_004_GetWindowBounds(winIVRSystem_IVRSystem_004 *_this, int32_t * pnX, int32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_GetWindowBounds(_this->linux_side, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize, 12)
 void __thiscall winIVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_004 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetEyeOutputViewport, 24)
 void __thiscall winIVRSystem_IVRSystem_004_GetEyeOutputViewport(winIVRSystem_IVRSystem_004 *_this, Hmd_Eye eEye, uint32_t * pnX, uint32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_GetEyeOutputViewport(_this->linux_side, eEye, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_004_GetProjectionMatrix(winIVRSystem_IVRSystem_004 *_this, HmdMatrix44_t *_r, Hmd_Eye eEye, float fNearZ, float fFarZ, GraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -459,14 +493,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_004_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_004_GetProjectionRaw(winIVRSystem_IVRSystem_004 *_this, Hmd_Eye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_004_ComputeDistortion(winIVRSystem_IVRSystem_004 *_this, DistortionCoordinates_t *_r, Hmd_Eye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -474,7 +506,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_004_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_004_GetEyeToHeadTransform(winIVRSystem_IVRSystem_004 *_this, HmdMatrix34_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -482,49 +513,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_004_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_004_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_004 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_004_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetDXGIOutputInfo, 12)
 void __thiscall winIVRSystem_IVRSystem_004_GetDXGIOutputInfo(winIVRSystem_IVRSystem_004 *_this, int32_t * pnAdapterIndex, int32_t * pnAdapterOutputIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info2(cppIVRSystem_IVRSystem_004_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, pnAdapterOutputIndex, 4);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_AttachToWindow, 8)
 bool __thiscall winIVRSystem_IVRSystem_004_AttachToWindow(winIVRSystem_IVRSystem_004 *_this, void * hWnd)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_AttachToWindow(_this->linux_side, hWnd);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_004 *_this, TrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_004_ResetSeatedZeroPose(winIVRSystem_IVRSystem_004 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_004_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_004 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -532,49 +556,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_004_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetTrackedDeviceClass, 8)
 TrackedDeviceClass __thiscall winIVRSystem_IVRSystem_004_GetTrackedDeviceClass(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_004_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_004_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_004 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -582,42 +599,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_004_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_004_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_004 *_this, TrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_PollNextEvent, 8)
 bool __thiscall winIVRSystem_IVRSystem_004_PollNextEvent(winIVRSystem_IVRSystem_004 *_this, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_PollNextEvent(_this->linux_side, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_PollNextEventWithPose, 16)
 bool __thiscall winIVRSystem_IVRSystem_004_PollNextEventWithPose(winIVRSystem_IVRSystem_004 *_this, TrackingUniverseOrigin eOrigin, VREvent_t * pEvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_004_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_004 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_004_GetHiddenAreaMesh(winIVRSystem_IVRSystem_004 *_this, HiddenAreaMesh_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -625,63 +636,54 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_004_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_004_GetControllerState(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_092 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_004_GetControllerStateWithPose(winIVRSystem_IVRSystem_004 *_this, TrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_092 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_004_TriggerHapticPulse(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_004_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_004 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_004 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_004_CaptureInputFocus(winIVRSystem_IVRSystem_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_004_ReleaseInputFocus(winIVRSystem_IVRSystem_004 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_004_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_004 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_004_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_004_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_004_DriverDebugRequest(winIVRSystem_IVRSystem_004 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
@@ -818,27 +820,61 @@ typedef struct __winIVRSystem_IVRSystem_005 {
 } winIVRSystem_IVRSystem_005;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetWindowBounds, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetEyeOutputViewport, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetDXGIOutputInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_AttachToWindow, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_PollNextEvent, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_PollNextEventWithPose, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_DriverDebugRequest, 20)
+
 void __thiscall winIVRSystem_IVRSystem_005_GetWindowBounds(winIVRSystem_IVRSystem_005 *_this, int32_t * pnX, int32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_GetWindowBounds(_this->linux_side, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize, 12)
 void __thiscall winIVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_005 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetEyeOutputViewport, 24)
 void __thiscall winIVRSystem_IVRSystem_005_GetEyeOutputViewport(winIVRSystem_IVRSystem_005 *_this, Hmd_Eye eEye, uint32_t * pnX, uint32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_GetEyeOutputViewport(_this->linux_side, eEye, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_005_GetProjectionMatrix(winIVRSystem_IVRSystem_005 *_this, HmdMatrix44_t *_r, Hmd_Eye eEye, float fNearZ, float fFarZ, GraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -846,14 +882,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_005_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_005_GetProjectionRaw(winIVRSystem_IVRSystem_005 *_this, Hmd_Eye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_005_ComputeDistortion(winIVRSystem_IVRSystem_005 *_this, DistortionCoordinates_t *_r, Hmd_Eye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -861,7 +895,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_005_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_005_GetEyeToHeadTransform(winIVRSystem_IVRSystem_005 *_this, HmdMatrix34_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -869,49 +902,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_005_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_005_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_005 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_005_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetDXGIOutputInfo, 12)
 void __thiscall winIVRSystem_IVRSystem_005_GetDXGIOutputInfo(winIVRSystem_IVRSystem_005 *_this, int32_t * pnAdapterIndex, int32_t * pnAdapterOutputIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info2(cppIVRSystem_IVRSystem_005_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, pnAdapterOutputIndex, 5);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_AttachToWindow, 8)
 bool __thiscall winIVRSystem_IVRSystem_005_AttachToWindow(winIVRSystem_IVRSystem_005 *_this, void * hWnd)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_AttachToWindow(_this->linux_side, hWnd);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_005 *_this, TrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_005_ResetSeatedZeroPose(winIVRSystem_IVRSystem_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_005_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_005 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -919,56 +945,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_005_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetTrackedDeviceClass, 8)
 TrackedDeviceClass __thiscall winIVRSystem_IVRSystem_005_GetTrackedDeviceClass(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_005_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_005_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_005 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -976,42 +994,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_005_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_005_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_005 *_this, TrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_PollNextEvent, 8)
 bool __thiscall winIVRSystem_IVRSystem_005_PollNextEvent(winIVRSystem_IVRSystem_005 *_this, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_PollNextEvent(_this->linux_side, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_PollNextEventWithPose, 16)
 bool __thiscall winIVRSystem_IVRSystem_005_PollNextEventWithPose(winIVRSystem_IVRSystem_005 *_this, TrackingUniverseOrigin eOrigin, VREvent_t * pEvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_005_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_005 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_005_GetHiddenAreaMesh(winIVRSystem_IVRSystem_005 *_this, HiddenAreaMesh_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -1019,63 +1031,54 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_005_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_005_GetControllerState(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_098 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_005_GetControllerStateWithPose(winIVRSystem_IVRSystem_005 *_this, TrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_098 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_005_TriggerHapticPulse(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_005_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_005 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_005 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_005_CaptureInputFocus(winIVRSystem_IVRSystem_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_005_ReleaseInputFocus(winIVRSystem_IVRSystem_005 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_005_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_005 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_005_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_005_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_005_DriverDebugRequest(winIVRSystem_IVRSystem_005 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
@@ -1214,27 +1217,66 @@ typedef struct __winIVRSystem_IVRSystem_006 {
 } winIVRSystem_IVRSystem_006;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetWindowBounds, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetEyeOutputViewport, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetDXGIOutputInfo, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_AttachToWindow, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_PollNextEvent, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_PollNextEventWithPose, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_SetDisplayVisibility, 8)
+
 void __thiscall winIVRSystem_IVRSystem_006_GetWindowBounds(winIVRSystem_IVRSystem_006 *_this, int32_t * pnX, int32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_GetWindowBounds(_this->linux_side, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize, 12)
 void __thiscall winIVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_006 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetEyeOutputViewport, 24)
 void __thiscall winIVRSystem_IVRSystem_006_GetEyeOutputViewport(winIVRSystem_IVRSystem_006 *_this, Hmd_Eye eEye, uint32_t * pnX, uint32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_GetEyeOutputViewport(_this->linux_side, eEye, pnX, pnY, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_006_GetProjectionMatrix(winIVRSystem_IVRSystem_006 *_this, HmdMatrix44_t *_r, Hmd_Eye eEye, float fNearZ, float fFarZ, GraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -1242,14 +1284,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_006_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_006_GetProjectionRaw(winIVRSystem_IVRSystem_006 *_this, Hmd_Eye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_006_ComputeDistortion(winIVRSystem_IVRSystem_006 *_this, DistortionCoordinates_t *_r, Hmd_Eye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -1257,7 +1297,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_006_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetEyeToHeadTransform(winIVRSystem_IVRSystem_006 *_this, HmdMatrix34_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -1265,49 +1304,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_006_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_006 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_006_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetDXGIOutputInfo, 12)
 void __thiscall winIVRSystem_IVRSystem_006_GetDXGIOutputInfo(winIVRSystem_IVRSystem_006 *_this, int32_t * pnAdapterIndex, int32_t * pnAdapterOutputIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info2(cppIVRSystem_IVRSystem_006_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, pnAdapterOutputIndex, 6);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_AttachToWindow, 8)
 bool __thiscall winIVRSystem_IVRSystem_006_AttachToWindow(winIVRSystem_IVRSystem_006 *_this, void * hWnd)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_AttachToWindow(_this->linux_side, hWnd);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_006 *_this, TrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_006_ResetSeatedZeroPose(winIVRSystem_IVRSystem_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_006 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -1315,7 +1347,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_006 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -1323,63 +1354,54 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetTrackedDeviceClass, 8)
 TrackedDeviceClass __thiscall winIVRSystem_IVRSystem_006_GetTrackedDeviceClass(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_006_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_006 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -1387,42 +1409,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_006_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex, TrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, TrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_006_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_006 *_this, TrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_PollNextEvent, 8)
 bool __thiscall winIVRSystem_IVRSystem_006_PollNextEvent(winIVRSystem_IVRSystem_006 *_this, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_PollNextEvent(_this->linux_side, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_PollNextEventWithPose, 16)
 bool __thiscall winIVRSystem_IVRSystem_006_PollNextEventWithPose(winIVRSystem_IVRSystem_006 *_this, TrackingUniverseOrigin eOrigin, VREvent_t * pEvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_006_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_006 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_006_GetHiddenAreaMesh(winIVRSystem_IVRSystem_006 *_this, HiddenAreaMesh_t *_r, Hmd_Eye eEye)
 {
     TRACE("%p\n", _this);
@@ -1430,84 +1446,72 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_006_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_006_GetControllerState(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0910 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_006_GetControllerStateWithPose(winIVRSystem_IVRSystem_006 *_this, TrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0910 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_006_TriggerHapticPulse(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_006_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_006 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_006 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_006_CaptureInputFocus(winIVRSystem_IVRSystem_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_006_ReleaseInputFocus(winIVRSystem_IVRSystem_006 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_006_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_006_DriverDebugRequest(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_PerformFirmwareUpdate, 8)
 VRFirmwareError __thiscall winIVRSystem_IVRSystem_006_PerformFirmwareUpdate(winIVRSystem_IVRSystem_006 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_006_IsDisplayOnDesktop(winIVRSystem_IVRSystem_006 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_006_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_006_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_006_SetDisplayVisibility(winIVRSystem_IVRSystem_006 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
@@ -1656,13 +1660,54 @@ typedef struct __winIVRSystem_IVRSystem_009 {
 } winIVRSystem_IVRSystem_009;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_PollNextEvent, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_PollNextEventWithPose, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_AcknowledgeQuit_UserPrompt, 4)
+
 void __thiscall winIVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_009 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_009_GetProjectionMatrix(winIVRSystem_IVRSystem_009 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -1670,14 +1715,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_009_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_009_GetProjectionRaw(winIVRSystem_IVRSystem_009 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_009_ComputeDistortion(winIVRSystem_IVRSystem_009 *_this, DistortionCoordinates_t *_r, EVREye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -1685,7 +1728,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_009_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetEyeToHeadTransform(winIVRSystem_IVRSystem_009 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -1693,56 +1735,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_009_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_009 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_009_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_009_GetDXGIOutputInfo(winIVRSystem_IVRSystem_009 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_009_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 9);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_009_IsDisplayOnDesktop(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_009_SetDisplayVisibility(winIVRSystem_IVRSystem_009 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_009_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_009 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_009_ResetSeatedZeroPose(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_009 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -1750,7 +1784,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_009 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -1758,70 +1791,60 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_009_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_009 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_009_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_009_ApplyTransform(winIVRSystem_IVRSystem_009 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_009_GetTrackedDeviceClass(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_009_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_009_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_009_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_009_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_009_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_009 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -1829,42 +1852,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_009_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_009_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_009_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_009 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_PollNextEvent, 8)
 bool __thiscall winIVRSystem_IVRSystem_009_PollNextEvent(winIVRSystem_IVRSystem_009 *_this, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_PollNextEvent(_this->linux_side, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_PollNextEventWithPose, 16)
 bool __thiscall winIVRSystem_IVRSystem_009_PollNextEventWithPose(winIVRSystem_IVRSystem_009 *_this, ETrackingUniverseOrigin eOrigin, VREvent_t * pEvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_009_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_009 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_009_GetHiddenAreaMesh(winIVRSystem_IVRSystem_009 *_this, HiddenAreaMesh_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -1872,84 +1889,72 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_009_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_009_GetControllerState(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0912 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_009_GetControllerStateWithPose(winIVRSystem_IVRSystem_009 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0912 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_009_TriggerHapticPulse(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_009_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_009 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_009_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_009 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_009_CaptureInputFocus(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_009_ReleaseInputFocus(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_009_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_009_DriverDebugRequest(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_009_PerformFirmwareUpdate(winIVRSystem_IVRSystem_009 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_009_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_009_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_009_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_009_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_009_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_009 *_this)
 {
     TRACE("%p\n", _this);
@@ -2098,13 +2103,58 @@ typedef struct __winIVRSystem_IVRSystem_010 {
 } winIVRSystem_IVRSystem_010;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PollNextEvent, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PollNextEventWithPose, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_AcknowledgeQuit_UserPrompt, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PerformanceTestEnableCapture, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PerformanceTestReportFidelityLevelChange, 8)
+
 void __thiscall winIVRSystem_IVRSystem_010_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_010 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_010_GetProjectionMatrix(winIVRSystem_IVRSystem_010 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -2112,14 +2162,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_010_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_010_GetProjectionRaw(winIVRSystem_IVRSystem_010 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_010_ComputeDistortion(winIVRSystem_IVRSystem_010 *_this, DistortionCoordinates_t *_r, EVREye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -2127,7 +2175,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_010_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetEyeToHeadTransform(winIVRSystem_IVRSystem_010 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -2135,56 +2182,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_010_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_010 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_010_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_010_GetDXGIOutputInfo(winIVRSystem_IVRSystem_010 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_010_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 10);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_010_IsDisplayOnDesktop(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_010_SetDisplayVisibility(winIVRSystem_IVRSystem_010 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_010_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_010 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_010_ResetSeatedZeroPose(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_010 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -2192,7 +2231,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_010 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -2200,84 +2238,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_010_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_010 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_010_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_010_ApplyTransform(winIVRSystem_IVRSystem_010 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_010_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_010 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_010_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_010_GetTrackedDeviceClass(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_010_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_010_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_010_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_010_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_010_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_010 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -2285,42 +2311,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_010_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_010_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_010_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_010 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PollNextEvent, 8)
 bool __thiscall winIVRSystem_IVRSystem_010_PollNextEvent(winIVRSystem_IVRSystem_010 *_this, VREvent_t * pEvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_PollNextEvent(_this->linux_side, pEvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PollNextEventWithPose, 16)
 bool __thiscall winIVRSystem_IVRSystem_010_PollNextEventWithPose(winIVRSystem_IVRSystem_010 *_this, ETrackingUniverseOrigin eOrigin, VREvent_t * pEvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_010_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_010 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_010_GetHiddenAreaMesh(winIVRSystem_IVRSystem_010 *_this, HiddenAreaMesh_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -2328,98 +2348,84 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_010_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_010_GetControllerState(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0914 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_010_GetControllerStateWithPose(winIVRSystem_IVRSystem_010 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0914 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_010_TriggerHapticPulse(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_010_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_010 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_010_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_010 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_010_CaptureInputFocus(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_010_ReleaseInputFocus(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_010_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_010_DriverDebugRequest(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_010_PerformFirmwareUpdate(winIVRSystem_IVRSystem_010 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_010_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_010_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_010_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_010 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_AcknowledgeQuit_UserPrompt(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PerformanceTestEnableCapture, 5)
 void __thiscall winIVRSystem_IVRSystem_010_PerformanceTestEnableCapture(winIVRSystem_IVRSystem_010 *_this, bool bEnable)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_010_PerformanceTestEnableCapture(_this->linux_side, bEnable);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_010_PerformanceTestReportFidelityLevelChange, 8)
 void __thiscall winIVRSystem_IVRSystem_010_PerformanceTestReportFidelityLevelChange(winIVRSystem_IVRSystem_010 *_this, int nFidelityLevel)
 {
     TRACE("%p\n", _this);
@@ -2576,13 +2582,58 @@ typedef struct __winIVRSystem_IVRSystem_011 {
 } winIVRSystem_IVRSystem_011;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_AcknowledgeQuit_UserPrompt, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PerformanceTestEnableCapture, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PerformanceTestReportFidelityLevelChange, 8)
+
 void __thiscall winIVRSystem_IVRSystem_011_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_011 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_011_GetProjectionMatrix(winIVRSystem_IVRSystem_011 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -2590,14 +2641,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_011_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_011_GetProjectionRaw(winIVRSystem_IVRSystem_011 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_011_ComputeDistortion(winIVRSystem_IVRSystem_011 *_this, DistortionCoordinates_t *_r, EVREye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -2605,7 +2654,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_011_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetEyeToHeadTransform(winIVRSystem_IVRSystem_011 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -2613,56 +2661,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_011_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_011 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_011_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_011_GetDXGIOutputInfo(winIVRSystem_IVRSystem_011 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_011_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 11);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_011_IsDisplayOnDesktop(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_011_SetDisplayVisibility(winIVRSystem_IVRSystem_011 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_011_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_011 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_011_ResetSeatedZeroPose(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_011 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -2670,7 +2710,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_011 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -2678,84 +2717,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_011_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_011 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_011_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_011_ApplyTransform(winIVRSystem_IVRSystem_011 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_011_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_011 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_011_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_011_GetTrackedDeviceClass(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_011_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_011_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_011_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_011_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_011_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_011 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -2763,42 +2790,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_011_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_011_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_011_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_011 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_011_PollNextEvent(winIVRSystem_IVRSystem_011 *_this, winVREvent_t_0918 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_011_PollNextEventWithPose(winIVRSystem_IVRSystem_011 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_0918 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_011_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_011 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_011_GetHiddenAreaMesh(winIVRSystem_IVRSystem_011 *_this, HiddenAreaMesh_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -2806,98 +2827,84 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_011_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_011_GetControllerState(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0918 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_011_GetControllerStateWithPose(winIVRSystem_IVRSystem_011 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_0918 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_011_TriggerHapticPulse(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_011_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_011 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_011_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_011 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_011_CaptureInputFocus(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_011_ReleaseInputFocus(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_011_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_011_DriverDebugRequest(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_011_PerformFirmwareUpdate(winIVRSystem_IVRSystem_011 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_011_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_011_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_011_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_011 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_AcknowledgeQuit_UserPrompt(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PerformanceTestEnableCapture, 5)
 void __thiscall winIVRSystem_IVRSystem_011_PerformanceTestEnableCapture(winIVRSystem_IVRSystem_011 *_this, bool bEnable)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_011_PerformanceTestEnableCapture(_this->linux_side, bEnable);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_011_PerformanceTestReportFidelityLevelChange, 8)
 void __thiscall winIVRSystem_IVRSystem_011_PerformanceTestReportFidelityLevelChange(winIVRSystem_IVRSystem_011 *_this, int nFidelityLevel)
 {
     TRACE("%p\n", _this);
@@ -3054,13 +3061,56 @@ typedef struct __winIVRSystem_IVRSystem_012 {
 } winIVRSystem_IVRSystem_012;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetHiddenAreaMesh, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerState, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerStateWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_AcknowledgeQuit_UserPrompt, 4)
+
 void __thiscall winIVRSystem_IVRSystem_012_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_012 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_012_GetProjectionMatrix(winIVRSystem_IVRSystem_012 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -3068,14 +3118,12 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_012_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_012_GetProjectionRaw(winIVRSystem_IVRSystem_012 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ComputeDistortion, 20)
 DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_012_ComputeDistortion(winIVRSystem_IVRSystem_012 *_this, DistortionCoordinates_t *_r, EVREye eEye, float fU, float fV)
 {
     TRACE("%p\n", _this);
@@ -3083,7 +3131,6 @@ DistortionCoordinates_t *__thiscall winIVRSystem_IVRSystem_012_ComputeDistortion
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetEyeToHeadTransform(winIVRSystem_IVRSystem_012 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -3091,56 +3138,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_012_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_012 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_012_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_012_GetDXGIOutputInfo(winIVRSystem_IVRSystem_012 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_012_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 12);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_012_IsDisplayOnDesktop(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_012_SetDisplayVisibility(winIVRSystem_IVRSystem_012 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_012_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_012 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_012_ResetSeatedZeroPose(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_012 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -3148,7 +3187,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_012 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -3156,84 +3194,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_012_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_012 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_012_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_012_ApplyTransform(winIVRSystem_IVRSystem_012 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_012_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_012 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_012_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_012_GetTrackedDeviceClass(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_012_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_012_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_012_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_012_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_012_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_012 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -3241,42 +3267,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_012_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_012_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_012_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_012 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_012_PollNextEvent(winIVRSystem_IVRSystem_012 *_this, winVREvent_t_103 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_012_PollNextEventWithPose(winIVRSystem_IVRSystem_012 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_103 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_012_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_012 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetHiddenAreaMesh, 12)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_012_GetHiddenAreaMesh(winIVRSystem_IVRSystem_012 *_this, HiddenAreaMesh_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -3284,84 +3304,72 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_012_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerState, 12)
 bool __thiscall winIVRSystem_IVRSystem_012_GetControllerState(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_103 * pControllerState)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerStateWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_012_GetControllerStateWithPose(winIVRSystem_IVRSystem_012 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_103 * pControllerState, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_012_TriggerHapticPulse(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_012_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_012 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_012_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_012 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_012_CaptureInputFocus(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_012_ReleaseInputFocus(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_012_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_012_DriverDebugRequest(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_012_PerformFirmwareUpdate(winIVRSystem_IVRSystem_012 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_012_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_012_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_012_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_012_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_012_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_012 *_this)
 {
     TRACE("%p\n", _this);
@@ -3514,13 +3522,56 @@ typedef struct __winIVRSystem_IVRSystem_014 {
 } winIVRSystem_IVRSystem_014;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetProjectionMatrix, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_AcknowledgeQuit_UserPrompt, 4)
+
 void __thiscall winIVRSystem_IVRSystem_014_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_014 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetProjectionMatrix, 24)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_014_GetProjectionMatrix(winIVRSystem_IVRSystem_014 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType)
 {
     TRACE("%p\n", _this);
@@ -3528,21 +3579,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_014_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_014_GetProjectionRaw(winIVRSystem_IVRSystem_014 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_014_ComputeDistortion(winIVRSystem_IVRSystem_014 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetEyeToHeadTransform(winIVRSystem_IVRSystem_014 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -3550,56 +3598,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_014_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_014 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_014_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_014_GetDXGIOutputInfo(winIVRSystem_IVRSystem_014 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_014_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 14);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_014_IsDisplayOnDesktop(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_014_SetDisplayVisibility(winIVRSystem_IVRSystem_014 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_014_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_014 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_014_ResetSeatedZeroPose(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_014 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -3607,7 +3647,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_014 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -3615,84 +3654,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_014_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_014 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_014_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_014_ApplyTransform(winIVRSystem_IVRSystem_014 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_014_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_014 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_014_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_014_GetTrackedDeviceClass(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_014_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_014_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_014_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_014_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_014_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_014 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -3700,42 +3727,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_014_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_014_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_014_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_014 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_014_PollNextEvent(winIVRSystem_IVRSystem_014 *_this, winVREvent_t_104 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_014_PollNextEventWithPose(winIVRSystem_IVRSystem_014 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_104 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_014_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_014 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_014_GetHiddenAreaMesh(winIVRSystem_IVRSystem_014 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -3743,84 +3764,72 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_014_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_014_GetControllerState(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_104 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_014_GetControllerStateWithPose(winIVRSystem_IVRSystem_014 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_104 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_014_TriggerHapticPulse(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_014_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_014 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_014_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_014 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_014_CaptureInputFocus(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_014_ReleaseInputFocus(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_014_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_014_DriverDebugRequest(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_014_PerformFirmwareUpdate(winIVRSystem_IVRSystem_014 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_014_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_014_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_014_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_014_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_014_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_014 *_this)
 {
     TRACE("%p\n", _this);
@@ -3973,13 +3982,56 @@ typedef struct __winIVRSystem_IVRSystem_015 {
 } winIVRSystem_IVRSystem_015;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetProjectionMatrix, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_AcknowledgeQuit_UserPrompt, 4)
+
 void __thiscall winIVRSystem_IVRSystem_015_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_015 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetProjectionMatrix, 20)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_015_GetProjectionMatrix(winIVRSystem_IVRSystem_015 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ)
 {
     TRACE("%p\n", _this);
@@ -3987,21 +4039,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_015_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_015_GetProjectionRaw(winIVRSystem_IVRSystem_015 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_015_ComputeDistortion(winIVRSystem_IVRSystem_015 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetEyeToHeadTransform(winIVRSystem_IVRSystem_015 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -4009,56 +4058,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_015_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_015 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_015_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_015_GetDXGIOutputInfo(winIVRSystem_IVRSystem_015 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_015_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 15);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_015_IsDisplayOnDesktop(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_015_SetDisplayVisibility(winIVRSystem_IVRSystem_015 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_015_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_015 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_015_ResetSeatedZeroPose(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_015 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -4066,7 +4107,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_015 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -4074,84 +4114,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_015_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_015 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_015_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_015_ApplyTransform(winIVRSystem_IVRSystem_015 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_015_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_015 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_015_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_015_GetTrackedDeviceClass(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_015_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_015_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_015_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_015_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_015_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_015 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -4159,42 +4187,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_015_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_015_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_015_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_015 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_015_PollNextEvent(winIVRSystem_IVRSystem_015 *_this, winVREvent_t_107 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_015_PollNextEventWithPose(winIVRSystem_IVRSystem_015 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_107 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_015_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_015 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_015_GetHiddenAreaMesh(winIVRSystem_IVRSystem_015 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -4202,84 +4224,72 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_015_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_015_GetControllerState(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_107 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_015_GetControllerStateWithPose(winIVRSystem_IVRSystem_015 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_107 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_015_TriggerHapticPulse(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_015_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_015 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_015_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_015 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_015_CaptureInputFocus(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_015_ReleaseInputFocus(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_015_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_015_DriverDebugRequest(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_015_PerformFirmwareUpdate(winIVRSystem_IVRSystem_015 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_015_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_015_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_015_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_015_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_015_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_015 *_this)
 {
     TRACE("%p\n", _this);
@@ -4432,13 +4442,57 @@ typedef struct __winIVRSystem_IVRSystem_016 {
 } winIVRSystem_IVRSystem_016;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetProjectionMatrix, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetOutputDevice, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_AcknowledgeQuit_UserPrompt, 4)
+
 void __thiscall winIVRSystem_IVRSystem_016_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_016 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetProjectionMatrix, 20)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_016_GetProjectionMatrix(winIVRSystem_IVRSystem_016 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ)
 {
     TRACE("%p\n", _this);
@@ -4446,21 +4500,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_016_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_016_GetProjectionRaw(winIVRSystem_IVRSystem_016 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_016_ComputeDistortion(winIVRSystem_IVRSystem_016 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetEyeToHeadTransform(winIVRSystem_IVRSystem_016 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -4468,63 +4519,54 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_016_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_016 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_016_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_016_GetDXGIOutputInfo(winIVRSystem_IVRSystem_016 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_016_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 16);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetOutputDevice, 12)
 void __thiscall winIVRSystem_IVRSystem_016_GetOutputDevice(winIVRSystem_IVRSystem_016 *_this, uint64_t * pnDevice, ETextureType textureType)
 {
     TRACE("%p\n", _this);
     ivrsystem_016_get_output_device(cppIVRSystem_IVRSystem_016_GetOutputDevice, _this->linux_side, pnDevice, textureType, 16);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_016_IsDisplayOnDesktop(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_016_SetDisplayVisibility(winIVRSystem_IVRSystem_016 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_016_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_016 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_016_ResetSeatedZeroPose(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_016 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -4532,7 +4574,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_016 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -4540,84 +4581,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_016_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_016 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_016_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_016_ApplyTransform(winIVRSystem_IVRSystem_016 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_016_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_016 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_016_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_016_GetTrackedDeviceClass(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_016_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_016_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_016_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_016_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_016_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_016 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -4625,42 +4654,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_016_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_016_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_016_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_016 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_016_PollNextEvent(winIVRSystem_IVRSystem_016 *_this, winVREvent_t_109 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_016_PollNextEventWithPose(winIVRSystem_IVRSystem_016 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_109 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_016_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_016 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_016_GetHiddenAreaMesh(winIVRSystem_IVRSystem_016 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -4668,84 +4691,72 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_016_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_016_GetControllerState(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_109 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_016_GetControllerStateWithPose(winIVRSystem_IVRSystem_016 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_109 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_016_TriggerHapticPulse(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_016_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_016 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_016_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_016 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_016_CaptureInputFocus(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_016_ReleaseInputFocus(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_016_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_016_DriverDebugRequest(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_016_PerformFirmwareUpdate(winIVRSystem_IVRSystem_016 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_016_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_016_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_016_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_016_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_016_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_016 *_this)
 {
     TRACE("%p\n", _this);
@@ -4900,13 +4911,57 @@ typedef struct __winIVRSystem_IVRSystem_017 {
 } winIVRSystem_IVRSystem_017;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetProjectionMatrix, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetOutputDevice, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_CaptureInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ReleaseInputFocus, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_IsInputFocusCapturedByAnotherProcess, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_AcknowledgeQuit_UserPrompt, 4)
+
 void __thiscall winIVRSystem_IVRSystem_017_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_017 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetProjectionMatrix, 20)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_017_GetProjectionMatrix(winIVRSystem_IVRSystem_017 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ)
 {
     TRACE("%p\n", _this);
@@ -4914,21 +4969,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_017_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_017_GetProjectionRaw(winIVRSystem_IVRSystem_017 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_017_ComputeDistortion(winIVRSystem_IVRSystem_017 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetEyeToHeadTransform(winIVRSystem_IVRSystem_017 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -4936,63 +4988,54 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_017_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_017 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_017_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_017_GetDXGIOutputInfo(winIVRSystem_IVRSystem_017 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_017_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 17);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetOutputDevice, 16)
 void __thiscall winIVRSystem_IVRSystem_017_GetOutputDevice(winIVRSystem_IVRSystem_017 *_this, uint64_t * pnDevice, ETextureType textureType, VkInstance_T * pInstance)
 {
     TRACE("%p\n", _this);
     ivrsystem_get_output_device(cppIVRSystem_IVRSystem_017_GetOutputDevice, _this->linux_side, pnDevice, textureType, pInstance, 17);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_017_IsDisplayOnDesktop(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_017_SetDisplayVisibility(winIVRSystem_IVRSystem_017 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_017_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_017 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_017_ResetSeatedZeroPose(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_017 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -5000,7 +5043,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_017 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -5008,84 +5050,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_017_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_017 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_017_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_017_ApplyTransform(winIVRSystem_IVRSystem_017 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_017_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_017 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_017_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_017_GetTrackedDeviceClass(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_017_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_017_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_017_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_017_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_017_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_017 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -5093,42 +5123,36 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_017_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_017_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_017_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_017 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_017_PollNextEvent(winIVRSystem_IVRSystem_017 *_this, winVREvent_t_1011 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_017_PollNextEventWithPose(winIVRSystem_IVRSystem_017 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_1011 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_017_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_017 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_017_GetHiddenAreaMesh(winIVRSystem_IVRSystem_017 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -5136,84 +5160,72 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_017_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_017_GetControllerState(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1011 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_017_GetControllerStateWithPose(winIVRSystem_IVRSystem_017 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1011 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_017_TriggerHapticPulse(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_017_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_017 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_017_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_017 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_CaptureInputFocus, 4)
 bool __thiscall winIVRSystem_IVRSystem_017_CaptureInputFocus(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_CaptureInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_ReleaseInputFocus, 4)
 void __thiscall winIVRSystem_IVRSystem_017_ReleaseInputFocus(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_ReleaseInputFocus(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_IsInputFocusCapturedByAnotherProcess, 4)
 bool __thiscall winIVRSystem_IVRSystem_017_IsInputFocusCapturedByAnotherProcess(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_IsInputFocusCapturedByAnotherProcess(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_017_DriverDebugRequest(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_017_PerformFirmwareUpdate(winIVRSystem_IVRSystem_017 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_017_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_017_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_017_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_017_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_017_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_017 *_this)
 {
     TRACE("%p\n", _this);
@@ -5368,13 +5380,59 @@ typedef struct __winIVRSystem_IVRSystem_019 {
 } winIVRSystem_IVRSystem_019;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetProjectionMatrix, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetOutputDevice, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetArrayTrackedDeviceProperty, 28)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsInputAvailable, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsSteamVRDrawingControllers, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ShouldApplicationPause, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ShouldApplicationReduceRenderingWork, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_DriverDebugRequest, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_AcknowledgeQuit_UserPrompt, 4)
+
 void __thiscall winIVRSystem_IVRSystem_019_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_019 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_019_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetProjectionMatrix, 20)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_019_GetProjectionMatrix(winIVRSystem_IVRSystem_019 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ)
 {
     TRACE("%p\n", _this);
@@ -5382,21 +5440,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_019_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_019_GetProjectionRaw(winIVRSystem_IVRSystem_019 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_019_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_019_ComputeDistortion(winIVRSystem_IVRSystem_019 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetEyeToHeadTransform(winIVRSystem_IVRSystem_019 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -5404,63 +5459,54 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_019_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_019 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_019_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_019_GetDXGIOutputInfo(winIVRSystem_IVRSystem_019 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_019_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 19);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetOutputDevice, 16)
 void __thiscall winIVRSystem_IVRSystem_019_GetOutputDevice(winIVRSystem_IVRSystem_019 *_this, uint64_t * pnDevice, ETextureType textureType, VkInstance_T * pInstance)
 {
     TRACE("%p\n", _this);
     ivrsystem_get_output_device(cppIVRSystem_IVRSystem_019_GetOutputDevice, _this->linux_side, pnDevice, textureType, pInstance, 19);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_019_IsDisplayOnDesktop(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_019_SetDisplayVisibility(winIVRSystem_IVRSystem_019 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_019_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_019 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_019_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_019_ResetSeatedZeroPose(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_019_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_019 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -5468,7 +5514,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_019 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -5476,84 +5521,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_019_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_019 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_019_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_019_ApplyTransform(winIVRSystem_IVRSystem_019 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_019_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_019_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_019 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_019_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_019_GetTrackedDeviceClass(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_019_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_019_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_019_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_019_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_019_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_019 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -5561,49 +5594,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_019_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetArrayTrackedDeviceProperty, 28)
 uint32_t __thiscall winIVRSystem_IVRSystem_019_GetArrayTrackedDeviceProperty(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, PropertyTypeTag_t propType, void * pBuffer, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetArrayTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, propType, pBuffer, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_019_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_019_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_019 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_019_PollNextEvent(winIVRSystem_IVRSystem_019 *_this, winVREvent_t_1418 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_019_PollNextEventWithPose(winIVRSystem_IVRSystem_019 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_1418 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_019_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_019 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_019_GetHiddenAreaMesh(winIVRSystem_IVRSystem_019 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -5611,91 +5637,78 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_019_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_019_GetControllerState(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1418 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_019_GetControllerStateWithPose(winIVRSystem_IVRSystem_019 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1418 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_019_TriggerHapticPulse(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_019_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_019_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_019 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_019_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_019 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsInputAvailable, 4)
 bool __thiscall winIVRSystem_IVRSystem_019_IsInputAvailable(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_IsInputAvailable(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_IsSteamVRDrawingControllers, 4)
 bool __thiscall winIVRSystem_IVRSystem_019_IsSteamVRDrawingControllers(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_IsSteamVRDrawingControllers(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ShouldApplicationPause, 4)
 bool __thiscall winIVRSystem_IVRSystem_019_ShouldApplicationPause(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_ShouldApplicationPause(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_ShouldApplicationReduceRenderingWork, 4)
 bool __thiscall winIVRSystem_IVRSystem_019_ShouldApplicationReduceRenderingWork(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_ShouldApplicationReduceRenderingWork(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_DriverDebugRequest, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_019_DriverDebugRequest(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex, const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_DriverDebugRequest(_this->linux_side, unDeviceIndex, pchRequest, pchResponseBuffer, unResponseBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_019_PerformFirmwareUpdate(winIVRSystem_IVRSystem_019 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_019_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_019_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_019_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_019_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_019_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_019 *_this)
 {
     TRACE("%p\n", _this);
@@ -5854,13 +5867,60 @@ typedef struct __winIVRSystem_IVRSystem_020 {
 } winIVRSystem_IVRSystem_020;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetProjectionMatrix, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetOutputDevice, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetArrayTrackedDeviceProperty, 28)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsInputAvailable, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsSteamVRDrawingControllers, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ShouldApplicationPause, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ShouldApplicationReduceRenderingWork, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_AcknowledgeQuit_UserPrompt, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetAppContainerFilePaths, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetRuntimeVersion, 4)
+
 void __thiscall winIVRSystem_IVRSystem_020_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_020 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetProjectionMatrix, 20)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_020_GetProjectionMatrix(winIVRSystem_IVRSystem_020 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ)
 {
     TRACE("%p\n", _this);
@@ -5868,21 +5928,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_020_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_020_GetProjectionRaw(winIVRSystem_IVRSystem_020 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_020_ComputeDistortion(winIVRSystem_IVRSystem_020 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetEyeToHeadTransform(winIVRSystem_IVRSystem_020 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -5890,63 +5947,54 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_020_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_020 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_020_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_020_GetDXGIOutputInfo(winIVRSystem_IVRSystem_020 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_020_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 20);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetOutputDevice, 16)
 void __thiscall winIVRSystem_IVRSystem_020_GetOutputDevice(winIVRSystem_IVRSystem_020 *_this, uint64_t * pnDevice, ETextureType textureType, VkInstance_T * pInstance)
 {
     TRACE("%p\n", _this);
     ivrsystem_get_output_device(cppIVRSystem_IVRSystem_020_GetOutputDevice, _this->linux_side, pnDevice, textureType, pInstance, 20);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_020_IsDisplayOnDesktop(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_020_SetDisplayVisibility(winIVRSystem_IVRSystem_020 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_020_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_020 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_020_ResetSeatedZeroPose(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_020 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -5954,7 +6002,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_020 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -5962,84 +6009,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_020_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_020 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_020_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_020_ApplyTransform(winIVRSystem_IVRSystem_020 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_020_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_020 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_020_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_020_GetTrackedDeviceClass(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_020_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_020_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_020_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_020_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_020_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_020 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -6047,49 +6082,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_020_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetArrayTrackedDeviceProperty, 28)
 uint32_t __thiscall winIVRSystem_IVRSystem_020_GetArrayTrackedDeviceProperty(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, PropertyTypeTag_t propType, void * pBuffer, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetArrayTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, propType, pBuffer, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_020_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_020_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_020 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_020_PollNextEvent(winIVRSystem_IVRSystem_020 *_this, winVREvent_t_1715 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_020_PollNextEventWithPose(winIVRSystem_IVRSystem_020 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_1715 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_020_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_020 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_020_GetHiddenAreaMesh(winIVRSystem_IVRSystem_020 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -6097,98 +6125,84 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_020_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_020_GetControllerState(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1715 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_020_GetControllerStateWithPose(winIVRSystem_IVRSystem_020 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1715 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_020_TriggerHapticPulse(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_020_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_020 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_020_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_020 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsInputAvailable, 4)
 bool __thiscall winIVRSystem_IVRSystem_020_IsInputAvailable(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_IsInputAvailable(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_IsSteamVRDrawingControllers, 4)
 bool __thiscall winIVRSystem_IVRSystem_020_IsSteamVRDrawingControllers(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_IsSteamVRDrawingControllers(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ShouldApplicationPause, 4)
 bool __thiscall winIVRSystem_IVRSystem_020_ShouldApplicationPause(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_ShouldApplicationPause(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_ShouldApplicationReduceRenderingWork, 4)
 bool __thiscall winIVRSystem_IVRSystem_020_ShouldApplicationReduceRenderingWork(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_ShouldApplicationReduceRenderingWork(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_020_PerformFirmwareUpdate(winIVRSystem_IVRSystem_020 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_020_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_AcknowledgeQuit_UserPrompt, 4)
 void __thiscall winIVRSystem_IVRSystem_020_AcknowledgeQuit_UserPrompt(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_020_AcknowledgeQuit_UserPrompt(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetAppContainerFilePaths, 12)
 uint32_t __thiscall winIVRSystem_IVRSystem_020_GetAppContainerFilePaths(winIVRSystem_IVRSystem_020 *_this, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_020_GetAppContainerFilePaths(_this->linux_side, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_020_GetRuntimeVersion, 4)
 const char * __thiscall winIVRSystem_IVRSystem_020_GetRuntimeVersion(winIVRSystem_IVRSystem_020 *_this)
 {
     TRACE("%p\n", _this);
@@ -6349,13 +6363,59 @@ typedef struct __winIVRSystem_IVRSystem_021 {
 } winIVRSystem_IVRSystem_021;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetProjectionMatrix, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetOutputDevice, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ResetSeatedZeroPose, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetArrayTrackedDeviceProperty, 28)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsInputAvailable, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsSteamVRDrawingControllers, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ShouldApplicationPause, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ShouldApplicationReduceRenderingWork, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetAppContainerFilePaths, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetRuntimeVersion, 4)
+
 void __thiscall winIVRSystem_IVRSystem_021_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_021 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_021_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetProjectionMatrix, 20)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_021_GetProjectionMatrix(winIVRSystem_IVRSystem_021 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ)
 {
     TRACE("%p\n", _this);
@@ -6363,21 +6423,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_021_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_021_GetProjectionRaw(winIVRSystem_IVRSystem_021 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_021_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_021_ComputeDistortion(winIVRSystem_IVRSystem_021 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetEyeToHeadTransform(winIVRSystem_IVRSystem_021 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -6385,63 +6442,54 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_021_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_021 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_021_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_021_GetDXGIOutputInfo(winIVRSystem_IVRSystem_021 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_021_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetOutputDevice, 16)
 void __thiscall winIVRSystem_IVRSystem_021_GetOutputDevice(winIVRSystem_IVRSystem_021 *_this, uint64_t * pnDevice, ETextureType textureType, VkInstance_T * pInstance)
 {
     TRACE("%p\n", _this);
     ivrsystem_get_output_device(cppIVRSystem_IVRSystem_021_GetOutputDevice, _this->linux_side, pnDevice, textureType, pInstance, 21);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_021_IsDisplayOnDesktop(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_021_SetDisplayVisibility(winIVRSystem_IVRSystem_021 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_021_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_021 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_021_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ResetSeatedZeroPose, 4)
 void __thiscall winIVRSystem_IVRSystem_021_ResetSeatedZeroPose(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_021_ResetSeatedZeroPose(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_021 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -6449,7 +6497,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_021 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -6457,84 +6504,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_021_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_021 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_021_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_021_ApplyTransform(winIVRSystem_IVRSystem_021 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_021_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_021_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_021 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_021_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_021_GetTrackedDeviceClass(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_021_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_021_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_021_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_021_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_021_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_021 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -6542,49 +6577,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_021_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetArrayTrackedDeviceProperty, 28)
 uint32_t __thiscall winIVRSystem_IVRSystem_021_GetArrayTrackedDeviceProperty(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, PropertyTypeTag_t propType, void * pBuffer, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetArrayTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, propType, pBuffer, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_021_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_021_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_021 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_021_PollNextEvent(winIVRSystem_IVRSystem_021 *_this, winVREvent_t_1125 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_021_PollNextEventWithPose(winIVRSystem_IVRSystem_021 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_1125 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_021_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_021 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_021_GetHiddenAreaMesh(winIVRSystem_IVRSystem_021 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -6592,91 +6620,78 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_021_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_021_GetControllerState(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1125 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_021_GetControllerStateWithPose(winIVRSystem_IVRSystem_021 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1125 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_021_TriggerHapticPulse(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_021_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_021_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_021 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_021_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_021 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsInputAvailable, 4)
 bool __thiscall winIVRSystem_IVRSystem_021_IsInputAvailable(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_IsInputAvailable(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_IsSteamVRDrawingControllers, 4)
 bool __thiscall winIVRSystem_IVRSystem_021_IsSteamVRDrawingControllers(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_IsSteamVRDrawingControllers(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ShouldApplicationPause, 4)
 bool __thiscall winIVRSystem_IVRSystem_021_ShouldApplicationPause(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_ShouldApplicationPause(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_ShouldApplicationReduceRenderingWork, 4)
 bool __thiscall winIVRSystem_IVRSystem_021_ShouldApplicationReduceRenderingWork(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_ShouldApplicationReduceRenderingWork(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_021_PerformFirmwareUpdate(winIVRSystem_IVRSystem_021 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_021_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_021_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetAppContainerFilePaths, 12)
 uint32_t __thiscall winIVRSystem_IVRSystem_021_GetAppContainerFilePaths(winIVRSystem_IVRSystem_021 *_this, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_021_GetAppContainerFilePaths(_this->linux_side, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_021_GetRuntimeVersion, 4)
 const char * __thiscall winIVRSystem_IVRSystem_021_GetRuntimeVersion(winIVRSystem_IVRSystem_021 *_this)
 {
     TRACE("%p\n", _this);
@@ -6835,13 +6850,58 @@ typedef struct __winIVRSystem_IVRSystem_022 {
 } winIVRSystem_IVRSystem_022;
 
 DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetRecommendedRenderTargetSize, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetProjectionMatrix, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetProjectionRaw, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ComputeDistortion, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetEyeToHeadTransform, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTimeSinceLastVsync, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetD3D9AdapterIndex, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetDXGIOutputInfo, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetOutputDevice, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsDisplayOnDesktop, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_SetDisplayVisibility, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetDeviceToAbsoluteTrackingPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetSortedTrackedDeviceIndicesOfClass, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTrackedDeviceActivityLevel, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ApplyTransform, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTrackedDeviceIndexForControllerRole, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerRoleForTrackedDeviceIndex, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTrackedDeviceClass, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsTrackedDeviceConnected, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetBoolTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetFloatTrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetInt32TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetUint64TrackedDeviceProperty, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetMatrix34TrackedDeviceProperty, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetArrayTrackedDeviceProperty, 28)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetStringTrackedDeviceProperty, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetPropErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_PollNextEvent, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_PollNextEventWithPose, 20)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetEventTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetHiddenAreaMesh, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerState, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerStateWithPose, 24)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_TriggerHapticPulse, 16)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetButtonIdNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerAxisTypeNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsInputAvailable, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsSteamVRDrawingControllers, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ShouldApplicationPause, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ShouldApplicationReduceRenderingWork, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_PerformFirmwareUpdate, 8)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_AcknowledgeQuit_Exiting, 4)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetAppContainerFilePaths, 12)
+DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetRuntimeVersion, 4)
+
 void __thiscall winIVRSystem_IVRSystem_022_GetRecommendedRenderTargetSize(winIVRSystem_IVRSystem_022 *_this, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_022_GetRecommendedRenderTargetSize(_this->linux_side, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetProjectionMatrix, 20)
 HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_022_GetProjectionMatrix(winIVRSystem_IVRSystem_022 *_this, HmdMatrix44_t *_r, EVREye eEye, float fNearZ, float fFarZ)
 {
     TRACE("%p\n", _this);
@@ -6849,21 +6909,18 @@ HmdMatrix44_t *__thiscall winIVRSystem_IVRSystem_022_GetProjectionMatrix(winIVRS
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetProjectionRaw, 24)
 void __thiscall winIVRSystem_IVRSystem_022_GetProjectionRaw(winIVRSystem_IVRSystem_022 *_this, EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_022_GetProjectionRaw(_this->linux_side, eEye, pfLeft, pfRight, pfTop, pfBottom);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ComputeDistortion, 20)
 bool __thiscall winIVRSystem_IVRSystem_022_ComputeDistortion(winIVRSystem_IVRSystem_022 *_this, EVREye eEye, float fU, float fV, DistortionCoordinates_t * pDistortionCoordinates)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_ComputeDistortion(_this->linux_side, eEye, fU, fV, pDistortionCoordinates);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetEyeToHeadTransform, 12)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetEyeToHeadTransform(winIVRSystem_IVRSystem_022 *_this, HmdMatrix34_t *_r, EVREye eEye)
 {
     TRACE("%p\n", _this);
@@ -6871,56 +6928,48 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetEyeToHeadTransform(winIV
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTimeSinceLastVsync, 12)
 bool __thiscall winIVRSystem_IVRSystem_022_GetTimeSinceLastVsync(winIVRSystem_IVRSystem_022 *_this, float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetTimeSinceLastVsync(_this->linux_side, pfSecondsSinceLastVsync, pulFrameCounter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetD3D9AdapterIndex, 4)
 int32_t __thiscall winIVRSystem_IVRSystem_022_GetD3D9AdapterIndex(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetD3D9AdapterIndex(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetDXGIOutputInfo, 8)
 void __thiscall winIVRSystem_IVRSystem_022_GetDXGIOutputInfo(winIVRSystem_IVRSystem_022 *_this, int32_t * pnAdapterIndex)
 {
     TRACE("%p\n", _this);
     get_dxgi_output_info(cppIVRSystem_IVRSystem_022_GetDXGIOutputInfo, _this->linux_side, pnAdapterIndex, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetOutputDevice, 16)
 void __thiscall winIVRSystem_IVRSystem_022_GetOutputDevice(winIVRSystem_IVRSystem_022 *_this, uint64_t * pnDevice, ETextureType textureType, VkInstance_T * pInstance)
 {
     TRACE("%p\n", _this);
     ivrsystem_get_output_device(cppIVRSystem_IVRSystem_022_GetOutputDevice, _this->linux_side, pnDevice, textureType, pInstance, 22);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsDisplayOnDesktop, 4)
 bool __thiscall winIVRSystem_IVRSystem_022_IsDisplayOnDesktop(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_IsDisplayOnDesktop(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_SetDisplayVisibility, 5)
 bool __thiscall winIVRSystem_IVRSystem_022_SetDisplayVisibility(winIVRSystem_IVRSystem_022 *_this, bool bIsVisibleOnDesktop)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_SetDisplayVisibility(_this->linux_side, bIsVisibleOnDesktop);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetDeviceToAbsoluteTrackingPose, 20)
 void __thiscall winIVRSystem_IVRSystem_022_GetDeviceToAbsoluteTrackingPose(winIVRSystem_IVRSystem_022 *_this, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_022_GetDeviceToAbsoluteTrackingPose(_this->linux_side, eOrigin, fPredictedSecondsToPhotonsFromNow, pTrackedDevicePoseArray, unTrackedDevicePoseArrayCount);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetSeatedZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetSeatedZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_022 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -6928,7 +6977,6 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetSeatedZeroPoseToStanding
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetRawZeroPoseToStandingAbsoluteTrackingPose, 8)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetRawZeroPoseToStandingAbsoluteTrackingPose(winIVRSystem_IVRSystem_022 *_this, HmdMatrix34_t *_r)
 {
     TRACE("%p\n", _this);
@@ -6936,84 +6984,72 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetRawZeroPoseToStandingAbs
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetSortedTrackedDeviceIndicesOfClass, 20)
 uint32_t __thiscall winIVRSystem_IVRSystem_022_GetSortedTrackedDeviceIndicesOfClass(winIVRSystem_IVRSystem_022 *_this, ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetSortedTrackedDeviceIndicesOfClass(_this->linux_side, eTrackedDeviceClass, punTrackedDeviceIndexArray, unTrackedDeviceIndexArrayCount, unRelativeToTrackedDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTrackedDeviceActivityLevel, 8)
 EDeviceActivityLevel __thiscall winIVRSystem_IVRSystem_022_GetTrackedDeviceActivityLevel(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetTrackedDeviceActivityLevel(_this->linux_side, unDeviceId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ApplyTransform, 16)
 void __thiscall winIVRSystem_IVRSystem_022_ApplyTransform(winIVRSystem_IVRSystem_022 *_this, TrackedDevicePose_t * pOutputPose, TrackedDevicePose_t * pTrackedDevicePose, HmdMatrix34_t * pTransform)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_022_ApplyTransform(_this->linux_side, pOutputPose, pTrackedDevicePose, pTransform);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTrackedDeviceIndexForControllerRole, 8)
 TrackedDeviceIndex_t __thiscall winIVRSystem_IVRSystem_022_GetTrackedDeviceIndexForControllerRole(winIVRSystem_IVRSystem_022 *_this, ETrackedControllerRole unDeviceType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetTrackedDeviceIndexForControllerRole(_this->linux_side, unDeviceType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerRoleForTrackedDeviceIndex, 8)
 ETrackedControllerRole __thiscall winIVRSystem_IVRSystem_022_GetControllerRoleForTrackedDeviceIndex(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetControllerRoleForTrackedDeviceIndex(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetTrackedDeviceClass, 8)
 ETrackedDeviceClass __thiscall winIVRSystem_IVRSystem_022_GetTrackedDeviceClass(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetTrackedDeviceClass(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsTrackedDeviceConnected, 8)
 bool __thiscall winIVRSystem_IVRSystem_022_IsTrackedDeviceConnected(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_IsTrackedDeviceConnected(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetBoolTrackedDeviceProperty, 16)
 bool __thiscall winIVRSystem_IVRSystem_022_GetBoolTrackedDeviceProperty(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetBoolTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetFloatTrackedDeviceProperty, 16)
 float __thiscall winIVRSystem_IVRSystem_022_GetFloatTrackedDeviceProperty(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetFloatTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetInt32TrackedDeviceProperty, 16)
 int32_t __thiscall winIVRSystem_IVRSystem_022_GetInt32TrackedDeviceProperty(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetInt32TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetUint64TrackedDeviceProperty, 16)
 uint64_t __thiscall winIVRSystem_IVRSystem_022_GetUint64TrackedDeviceProperty(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetUint64TrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetMatrix34TrackedDeviceProperty, 20)
 HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetMatrix34TrackedDeviceProperty(winIVRSystem_IVRSystem_022 *_this, HmdMatrix34_t *_r, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
@@ -7021,49 +7057,42 @@ HmdMatrix34_t *__thiscall winIVRSystem_IVRSystem_022_GetMatrix34TrackedDevicePro
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetArrayTrackedDeviceProperty, 28)
 uint32_t __thiscall winIVRSystem_IVRSystem_022_GetArrayTrackedDeviceProperty(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, PropertyTypeTag_t propType, void * pBuffer, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetArrayTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, propType, pBuffer, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetStringTrackedDeviceProperty, 24)
 uint32_t __thiscall winIVRSystem_IVRSystem_022_GetStringTrackedDeviceProperty(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetStringTrackedDeviceProperty(_this->linux_side, unDeviceIndex, prop, pchValue, unBufferSize, pError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetPropErrorNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_022_GetPropErrorNameFromEnum(winIVRSystem_IVRSystem_022 *_this, ETrackedPropertyError error)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetPropErrorNameFromEnum(_this->linux_side, error);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_PollNextEvent, 12)
 bool __thiscall winIVRSystem_IVRSystem_022_PollNextEvent(winIVRSystem_IVRSystem_022 *_this, winVREvent_t_1267 * pEvent, uint32_t uncbVREvent)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_PollNextEvent(_this->linux_side, pEvent, uncbVREvent);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_PollNextEventWithPose, 20)
 bool __thiscall winIVRSystem_IVRSystem_022_PollNextEventWithPose(winIVRSystem_IVRSystem_022 *_this, ETrackingUniverseOrigin eOrigin, winVREvent_t_1267 * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_PollNextEventWithPose(_this->linux_side, eOrigin, pEvent, uncbVREvent, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetEventTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_022_GetEventTypeNameFromEnum(winIVRSystem_IVRSystem_022 *_this, EVREventType eType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetEventTypeNameFromEnum(_this->linux_side, eType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetHiddenAreaMesh, 16)
 HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_022_GetHiddenAreaMesh(winIVRSystem_IVRSystem_022 *_this, HiddenAreaMesh_t *_r, EVREye eEye, EHiddenAreaMeshType type)
 {
     TRACE("%p\n", _this);
@@ -7071,91 +7100,78 @@ HiddenAreaMesh_t *__thiscall winIVRSystem_IVRSystem_022_GetHiddenAreaMesh(winIVR
     return _r;
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerState, 16)
 bool __thiscall winIVRSystem_IVRSystem_022_GetControllerState(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1267 * pControllerState, uint32_t unControllerStateSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetControllerState(_this->linux_side, unControllerDeviceIndex, pControllerState, unControllerStateSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerStateWithPose, 24)
 bool __thiscall winIVRSystem_IVRSystem_022_GetControllerStateWithPose(winIVRSystem_IVRSystem_022 *_this, ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, winVRControllerState001_t_1267 * pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t * pTrackedDevicePose)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetControllerStateWithPose(_this->linux_side, eOrigin, unControllerDeviceIndex, pControllerState, unControllerStateSize, pTrackedDevicePose);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_TriggerHapticPulse, 14)
 void __thiscall winIVRSystem_IVRSystem_022_TriggerHapticPulse(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_022_TriggerHapticPulse(_this->linux_side, unControllerDeviceIndex, unAxisId, usDurationMicroSec);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetButtonIdNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_022_GetButtonIdNameFromEnum(winIVRSystem_IVRSystem_022 *_this, EVRButtonId eButtonId)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetButtonIdNameFromEnum(_this->linux_side, eButtonId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetControllerAxisTypeNameFromEnum, 8)
 const char * __thiscall winIVRSystem_IVRSystem_022_GetControllerAxisTypeNameFromEnum(winIVRSystem_IVRSystem_022 *_this, EVRControllerAxisType eAxisType)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetControllerAxisTypeNameFromEnum(_this->linux_side, eAxisType);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsInputAvailable, 4)
 bool __thiscall winIVRSystem_IVRSystem_022_IsInputAvailable(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_IsInputAvailable(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_IsSteamVRDrawingControllers, 4)
 bool __thiscall winIVRSystem_IVRSystem_022_IsSteamVRDrawingControllers(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_IsSteamVRDrawingControllers(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ShouldApplicationPause, 4)
 bool __thiscall winIVRSystem_IVRSystem_022_ShouldApplicationPause(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_ShouldApplicationPause(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_ShouldApplicationReduceRenderingWork, 4)
 bool __thiscall winIVRSystem_IVRSystem_022_ShouldApplicationReduceRenderingWork(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_ShouldApplicationReduceRenderingWork(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_PerformFirmwareUpdate, 8)
 EVRFirmwareError __thiscall winIVRSystem_IVRSystem_022_PerformFirmwareUpdate(winIVRSystem_IVRSystem_022 *_this, TrackedDeviceIndex_t unDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_PerformFirmwareUpdate(_this->linux_side, unDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_AcknowledgeQuit_Exiting, 4)
 void __thiscall winIVRSystem_IVRSystem_022_AcknowledgeQuit_Exiting(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
     cppIVRSystem_IVRSystem_022_AcknowledgeQuit_Exiting(_this->linux_side);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetAppContainerFilePaths, 12)
 uint32_t __thiscall winIVRSystem_IVRSystem_022_GetAppContainerFilePaths(winIVRSystem_IVRSystem_022 *_this, char * pchBuffer, uint32_t unBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRSystem_IVRSystem_022_GetAppContainerFilePaths(_this->linux_side, pchBuffer, unBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRSystem_IVRSystem_022_GetRuntimeVersion, 4)
 const char * __thiscall winIVRSystem_IVRSystem_022_GetRuntimeVersion(winIVRSystem_IVRSystem_022 *_this)
 {
     TRACE("%p\n", _this);
diff --git a/vrclient_x64/vrclient_x64/winIVRTrackedCamera.c b/vrclient_x64/vrclient_x64/winIVRTrackedCamera.c
index 81f99a69..6e71920a 100644
--- a/vrclient_x64/vrclient_x64/winIVRTrackedCamera.c
+++ b/vrclient_x64/vrclient_x64/winIVRTrackedCamera.c
@@ -26,125 +26,126 @@ typedef struct __winIVRTrackedCamera_IVRTrackedCamera_001 {
 } winIVRTrackedCamera_IVRTrackedCamera_001;
 
 DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_HasCamera, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFirmwareDescription, 16)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFrameDimensions, 20)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_SetCameraVideoStreamFormat, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraVideoStreamFormat, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_EnableCameraForStreaming, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_StartVideoStream, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_StopVideoStream, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamActive, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedTime, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_SetAutoExposure, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_PauseVideoStream, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_ResumeVideoStream, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamPaused, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraDistortion, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraProjection, 28)
+
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_HasCamera(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_HasCamera(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFirmwareDescription, 16)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFirmwareDescription(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, char * pBuffer, uint32_t nBufferLen)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFirmwareDescription(_this->linux_side, nDeviceIndex, pBuffer, nBufferLen);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFrameDimensions, 20)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFrameDimensions(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, ECameraVideoStreamFormat nVideoStreamFormat, uint32_t * pWidth, uint32_t * pHeight)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_GetCameraFrameDimensions(_this->linux_side, nDeviceIndex, nVideoStreamFormat, pWidth, pHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_SetCameraVideoStreamFormat, 12)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_SetCameraVideoStreamFormat(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, ECameraVideoStreamFormat nVideoStreamFormat)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_SetCameraVideoStreamFormat(_this->linux_side, nDeviceIndex, nVideoStreamFormat);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraVideoStreamFormat, 8)
 ECameraVideoStreamFormat __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraVideoStreamFormat(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_GetCameraVideoStreamFormat(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_EnableCameraForStreaming, 9)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_EnableCameraForStreaming(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, bool bEnable)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_EnableCameraForStreaming(_this->linux_side, nDeviceIndex, bEnable);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_StartVideoStream, 8)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_StartVideoStream(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_StartVideoStream(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_StopVideoStream, 8)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_StopVideoStream(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_StopVideoStream(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamActive, 8)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamActive(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamActive(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedTime, 8)
 float __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedTime(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamElapsedTime(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame, 8)
 const CameraVideoStreamFrame_t * __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_GetVideoStreamFrame(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame, 12)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, CameraVideoStreamFrame_t * pFrameImage)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_ReleaseVideoStreamFrame(_this->linux_side, nDeviceIndex, pFrameImage);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_SetAutoExposure, 9)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_SetAutoExposure(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, bool bEnable)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_SetAutoExposure(_this->linux_side, nDeviceIndex, bEnable);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_PauseVideoStream, 8)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_PauseVideoStream(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_PauseVideoStream(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_ResumeVideoStream, 8)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_ResumeVideoStream(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_ResumeVideoStream(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamPaused, 8)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamPaused(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_IsVideoStreamPaused(_this->linux_side, nDeviceIndex);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraDistortion, 24)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraDistortion(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, float flInputU, float flInputV, float * pflOutputU, float * pflOutputV)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_001_GetCameraDistortion(_this->linux_side, nDeviceIndex, flInputU, flInputV, pflOutputU, pflOutputV);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraProjection, 28)
 bool __thiscall winIVRTrackedCamera_IVRTrackedCamera_001_GetCameraProjection(winIVRTrackedCamera_IVRTrackedCamera_001 *_this, TrackedDeviceIndex_t nDeviceIndex, float flWidthPixels, float flHeightPixels, float flZNear, float flZFar, HmdMatrix44_t * pProjection)
 {
     TRACE("%p\n", _this);
@@ -245,55 +246,56 @@ typedef struct __winIVRTrackedCamera_IVRTrackedCamera_002 {
 } winIVRTrackedCamera_IVRTrackedCamera_002;
 
 DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_HasCamera, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraFrameSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraIntrinisics, 20)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraProjection, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_AcquireVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_ReleaseVideoStreamingService, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetVideoStreamFrameBuffer, 28)
+
 const char * __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraErrorNameFromEnum(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, EVRTrackedCameraError eCameraError)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_002_GetCameraErrorNameFromEnum(_this->linux_side, eCameraError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_HasCamera, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_HasCamera(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_002_HasCamera(_this->linux_side, nDeviceIndex, pHasCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraFrameSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraFrameSize(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_002_GetCameraFrameSize(_this->linux_side, nDeviceIndex, eFrameType, pnWidth, pnHeight, pnFrameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraIntrinisics, 20)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraIntrinisics(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_002_GetCameraIntrinisics(_this->linux_side, nDeviceIndex, eFrameType, pFocalLength, pCenter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraProjection, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_GetCameraProjection(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_002_GetCameraProjection(_this->linux_side, nDeviceIndex, eFrameType, flZNear, flZFar, pProjection);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_AcquireVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_AcquireVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_002_AcquireVideoStreamingService(_this->linux_side, nDeviceIndex, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_ReleaseVideoStreamingService, 8)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_ReleaseVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, TrackedCameraHandle_t hTrackedCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_002_ReleaseVideoStreamingService(_this->linux_side, hTrackedCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_002_GetVideoStreamFrameBuffer, 28)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_002_GetVideoStreamFrameBuffer(winIVRTrackedCamera_IVRTrackedCamera_002 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
@@ -374,83 +376,84 @@ typedef struct __winIVRTrackedCamera_IVRTrackedCamera_003 {
 } winIVRTrackedCamera_IVRTrackedCamera_003;
 
 DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_HasCamera, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraFrameSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraIntrinsics, 20)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraProjection, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_AcquireVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamFrameBuffer, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureD3D11, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureGL, 28)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamTextureGL, 16)
+
 const char * __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraErrorNameFromEnum(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, EVRTrackedCameraError eCameraError)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetCameraErrorNameFromEnum(_this->linux_side, eCameraError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_HasCamera, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_HasCamera(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_HasCamera(_this->linux_side, nDeviceIndex, pHasCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraFrameSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraFrameSize(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetCameraFrameSize(_this->linux_side, nDeviceIndex, eFrameType, pnWidth, pnHeight, pnFrameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraIntrinsics, 20)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraIntrinsics(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetCameraIntrinsics(_this->linux_side, nDeviceIndex, eFrameType, pFocalLength, pCenter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraProjection, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetCameraProjection(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetCameraProjection(_this->linux_side, nDeviceIndex, eFrameType, flZNear, flZFar, pProjection);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_AcquireVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_AcquireVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_AcquireVideoStreamingService(_this->linux_side, nDeviceIndex, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedCameraHandle_t hTrackedCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamingService(_this->linux_side, hTrackedCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamFrameBuffer, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamFrameBuffer(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamFrameBuffer(_this->linux_side, hTrackedCamera, eFrameType, pFrameBuffer, nFrameBufferSize, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureSize(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, VRTextureBounds_t * pTextureBounds, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureSize(_this->linux_side, nDeviceIndex, eFrameType, pTextureBounds, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureD3D11, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureD3D11(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureD3D11(_this->linux_side, hTrackedCamera, eFrameType, pD3D11DeviceOrResource, ppD3D11ShaderResourceView, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureGL, 28)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, glUInt_t * pglTextureId, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_003_GetVideoStreamTextureGL(_this->linux_side, hTrackedCamera, eFrameType, pglTextureId, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamTextureGL, 16)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_003_ReleaseVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_003 *_this, TrackedCameraHandle_t hTrackedCamera, glUInt_t glTextureId)
 {
     TRACE("%p\n", _this);
@@ -539,83 +542,84 @@ typedef struct __winIVRTrackedCamera_IVRTrackedCamera_004 {
 } winIVRTrackedCamera_IVRTrackedCamera_004;
 
 DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_HasCamera, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraFrameSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraIntrinsics, 20)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraProjection, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_AcquireVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_ReleaseVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamFrameBuffer, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureD3D11, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureGL, 28)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_ReleaseVideoStreamTextureGL, 16)
+
 const char * __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraErrorNameFromEnum(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, EVRTrackedCameraError eCameraError)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetCameraErrorNameFromEnum(_this->linux_side, eCameraError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_HasCamera, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_HasCamera(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_HasCamera(_this->linux_side, nDeviceIndex, pHasCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraFrameSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraFrameSize(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetCameraFrameSize(_this->linux_side, nDeviceIndex, eFrameType, pnWidth, pnHeight, pnFrameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraIntrinsics, 20)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraIntrinsics(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetCameraIntrinsics(_this->linux_side, nDeviceIndex, eFrameType, pFocalLength, pCenter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraProjection, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetCameraProjection(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetCameraProjection(_this->linux_side, nDeviceIndex, eFrameType, flZNear, flZFar, pProjection);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_AcquireVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_AcquireVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_AcquireVideoStreamingService(_this->linux_side, nDeviceIndex, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_ReleaseVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_ReleaseVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedCameraHandle_t hTrackedCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_ReleaseVideoStreamingService(_this->linux_side, hTrackedCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamFrameBuffer, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamFrameBuffer(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, winCameraVideoStreamFrameHeader_t_1017 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamFrameBuffer(_this->linux_side, hTrackedCamera, eFrameType, pFrameBuffer, nFrameBufferSize, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureSize(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, VRTextureBounds_t * pTextureBounds, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureSize(_this->linux_side, nDeviceIndex, eFrameType, pTextureBounds, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureD3D11, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureD3D11(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView, winCameraVideoStreamFrameHeader_t_1017 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureD3D11(_this->linux_side, hTrackedCamera, eFrameType, pD3D11DeviceOrResource, ppD3D11ShaderResourceView, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureGL, 28)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, glUInt_t * pglTextureId, winCameraVideoStreamFrameHeader_t_1017 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_004_GetVideoStreamTextureGL(_this->linux_side, hTrackedCamera, eFrameType, pglTextureId, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_004_ReleaseVideoStreamTextureGL, 16)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_004_ReleaseVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_004 *_this, TrackedCameraHandle_t hTrackedCamera, glUInt_t glTextureId)
 {
     TRACE("%p\n", _this);
@@ -704,83 +708,84 @@ typedef struct __winIVRTrackedCamera_IVRTrackedCamera_005 {
 } winIVRTrackedCamera_IVRTrackedCamera_005;
 
 DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_HasCamera, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraFrameSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraIntrinsics, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraProjection, 28)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_AcquireVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_ReleaseVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamFrameBuffer, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureD3D11, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureGL, 28)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_ReleaseVideoStreamTextureGL, 16)
+
 const char * __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraErrorNameFromEnum(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, EVRTrackedCameraError eCameraError)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetCameraErrorNameFromEnum(_this->linux_side, eCameraError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_HasCamera, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_HasCamera(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_HasCamera(_this->linux_side, nDeviceIndex, pHasCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraFrameSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraFrameSize(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetCameraFrameSize(_this->linux_side, nDeviceIndex, eFrameType, pnWidth, pnHeight, pnFrameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraIntrinsics, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraIntrinsics(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetCameraIntrinsics(_this->linux_side, nDeviceIndex, nCameraIndex, eFrameType, pFocalLength, pCenter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraProjection, 28)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetCameraProjection(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetCameraProjection(_this->linux_side, nDeviceIndex, nCameraIndex, eFrameType, flZNear, flZFar, pProjection);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_AcquireVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_AcquireVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_AcquireVideoStreamingService(_this->linux_side, nDeviceIndex, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_ReleaseVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_ReleaseVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedCameraHandle_t hTrackedCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_ReleaseVideoStreamingService(_this->linux_side, hTrackedCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamFrameBuffer, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamFrameBuffer(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, winCameraVideoStreamFrameHeader_t_1610 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamFrameBuffer(_this->linux_side, hTrackedCamera, eFrameType, pFrameBuffer, nFrameBufferSize, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureSize(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, VRTextureBounds_t * pTextureBounds, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureSize(_this->linux_side, nDeviceIndex, eFrameType, pTextureBounds, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureD3D11, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureD3D11(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView, winCameraVideoStreamFrameHeader_t_1610 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureD3D11(_this->linux_side, hTrackedCamera, eFrameType, pD3D11DeviceOrResource, ppD3D11ShaderResourceView, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureGL, 28)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, glUInt_t * pglTextureId, winCameraVideoStreamFrameHeader_t_1610 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_005_GetVideoStreamTextureGL(_this->linux_side, hTrackedCamera, eFrameType, pglTextureId, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_005_ReleaseVideoStreamTextureGL, 16)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_005_ReleaseVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_005 *_this, TrackedCameraHandle_t hTrackedCamera, glUInt_t glTextureId)
 {
     TRACE("%p\n", _this);
@@ -869,97 +874,98 @@ typedef struct __winIVRTrackedCamera_IVRTrackedCamera_006 {
 } winIVRTrackedCamera_IVRTrackedCamera_006;
 
 DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraErrorNameFromEnum, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_HasCamera, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraFrameSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraIntrinsics, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraProjection, 28)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_AcquireVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamingService, 12)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamFrameBuffer, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureSize, 24)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureD3D11, 32)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureGL, 28)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamTextureGL, 16)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_SetCameraTrackingSpace, 8)
+DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraTrackingSpace, 4)
+
 const char * __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraErrorNameFromEnum(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, EVRTrackedCameraError eCameraError)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetCameraErrorNameFromEnum(_this->linux_side, eCameraError);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_HasCamera, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_HasCamera(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_HasCamera(_this->linux_side, nDeviceIndex, pHasCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraFrameSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraFrameSize(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetCameraFrameSize(_this->linux_side, nDeviceIndex, eFrameType, pnWidth, pnHeight, pnFrameBufferSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraIntrinsics, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraIntrinsics(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetCameraIntrinsics(_this->linux_side, nDeviceIndex, nCameraIndex, eFrameType, pFocalLength, pCenter);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraProjection, 28)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraProjection(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetCameraProjection(_this->linux_side, nDeviceIndex, nCameraIndex, eFrameType, flZNear, flZFar, pProjection);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_AcquireVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_AcquireVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_AcquireVideoStreamingService(_this->linux_side, nDeviceIndex, pHandle);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamingService, 12)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamingService(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedCameraHandle_t hTrackedCamera)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamingService(_this->linux_side, hTrackedCamera);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamFrameBuffer, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamFrameBuffer(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, winCameraVideoStreamFrameHeader_t_1267 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamFrameBuffer(_this->linux_side, hTrackedCamera, eFrameType, pFrameBuffer, nFrameBufferSize, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureSize, 24)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureSize(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, VRTextureBounds_t * pTextureBounds, uint32_t * pnWidth, uint32_t * pnHeight)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureSize(_this->linux_side, nDeviceIndex, eFrameType, pTextureBounds, pnWidth, pnHeight);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureD3D11, 32)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureD3D11(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView, winCameraVideoStreamFrameHeader_t_1267 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureD3D11(_this->linux_side, hTrackedCamera, eFrameType, pD3D11DeviceOrResource, ppD3D11ShaderResourceView, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureGL, 28)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, glUInt_t * pglTextureId, winCameraVideoStreamFrameHeader_t_1267 * pFrameHeader, uint32_t nFrameHeaderSize)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_GetVideoStreamTextureGL(_this->linux_side, hTrackedCamera, eFrameType, pglTextureId, pFrameHeader, nFrameHeaderSize);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamTextureGL, 16)
 EVRTrackedCameraError __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamTextureGL(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, TrackedCameraHandle_t hTrackedCamera, glUInt_t glTextureId)
 {
     TRACE("%p\n", _this);
     return cppIVRTrackedCamera_IVRTrackedCamera_006_ReleaseVideoStreamTextureGL(_this->linux_side, hTrackedCamera, glTextureId);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_SetCameraTrackingSpace, 8)
 void __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_SetCameraTrackingSpace(winIVRTrackedCamera_IVRTrackedCamera_006 *_this, ETrackingUniverseOrigin eUniverse)
 {
     TRACE("%p\n", _this);
     cppIVRTrackedCamera_IVRTrackedCamera_006_SetCameraTrackingSpace(_this->linux_side, eUniverse);
 }
 
-DEFINE_THISCALL_WRAPPER(winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraTrackingSpace, 4)
 ETrackingUniverseOrigin __thiscall winIVRTrackedCamera_IVRTrackedCamera_006_GetCameraTrackingSpace(winIVRTrackedCamera_IVRTrackedCamera_006 *_this)
 {
     TRACE("%p\n", _this);