diff --git a/vrclient_x64/gen_wrapper.py b/vrclient_x64/gen_wrapper.py index 86989f8e..93605814 100755 --- a/vrclient_x64/gen_wrapper.py +++ b/vrclient_x64/gen_wrapper.py @@ -120,6 +120,17 @@ print_sizes = [] class_versions = {} +def ivrclientcore_init(cppname, method): + if "002" in cppname: + return "ivrclientcore_002_init" + return "ivrclientcore_init" + +def ivrclientcore_get_generic_interface(cppname, method): + return "ivrclientcore_get_generic_interface" + +def ivrclientcore_cleanup(cppname, method): + return "ivrclientcore_cleanup" + def ivrsystem_get_dxgi_output_info(cppname, method): param_count = len([p for p in method.get_children() if p.kind == clang.cindex.CursorKind.PARM_DECL]) return { @@ -157,6 +168,9 @@ def ivrcompositor_get_vulkan_device_extensions_required(cppname, method): return "ivrcompositor_get_vulkan_device_extensions_required" method_overrides = [ + ("IVRClientCore", "Init", ivrclientcore_init), + ("IVRClientCore", "GetGenericInterface", ivrclientcore_get_generic_interface), + ("IVRClientCore", "Cleanup", ivrclientcore_cleanup), ("IVRSystem", "GetDXGIOutputInfo", ivrsystem_get_dxgi_output_info), ("IVRSystem", "GetOutputDevice", ivrsystem_get_output_device), ("IVRCompositor", "Submit", ivrcompositor_submit), @@ -166,6 +180,7 @@ method_overrides = [ ] method_overrides_data = [ + ("IVRClientCore", "struct client_core_data"), ("IVRCompositor", "struct compositor_data"), ] @@ -283,8 +298,7 @@ def handle_method(cfile, classname, winclassname, cppname, method, cpp, cpp_h, e cfile.write(" return ") cpp.write(" return ") - should_gen_wrapper = strip_ns(method.result_type.spelling).startswith("IVR") or \ - used_name.startswith("GetGenericInterface") + should_gen_wrapper = strip_ns(method.result_type.spelling).startswith("IVR") if should_gen_wrapper: cfile.write("create_win_interface(pchNameAndVersion,\n ") @@ -461,6 +475,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(vrclient); cfile.write(" r->vtable = &%s_vtable;\n" % winclassname) cfile.write(" r->linux_side = linux_side;\n") cfile.write(" return r;\n}\n\n") + cfile.write("void destroy_%s(void *object)\n{\n" % winclassname) + cfile.write(" TRACE(\"%p\\n\", object);\n") + cfile.write(" HeapFree(GetProcessHeap(), 0, object);\n}\n\n") cpp.write("#ifdef __cplusplus\n}\n#endif\n") cpp_h.write("#ifdef __cplusplus\n}\n#endif\n") @@ -468,8 +485,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(vrclient); constructors = open("win_constructors.h", "a") constructors.write("extern void *create_%s(void *);\n" % winclassname) + destructors = open("win_destructors.h", "a") + destructors.write("extern void destroy_%s(void *);\n" % winclassname) + constructors = open("win_constructors_table.dat", "a") - constructors.write(" {\"%s\", &create_%s},\n" % (iface_version, winclassname)) + constructors.write(" {\"%s\", &create_%s, &destroy_%s},\n" % (iface_version, winclassname, winclassname)) if iface_version in aliases.keys(): for alias in aliases[iface_version]: constructors.write(" {\"%s\", &create_%s}, /* alias */\n" % (alias, winclassname)) diff --git a/vrclient_x64/vrclient_main.c b/vrclient_x64/vrclient_main.c index 1058d1c7..87e49250 100644 --- a/vrclient_x64/vrclient_main.c +++ b/vrclient_x64/vrclient_main.c @@ -65,18 +65,52 @@ uint32 vrclient_unix_path_to_dos_path(uint32 api_result, char *inout, uint32 ino } #endif +static BOOL array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, SIZE_T size) +{ + SIZE_T max_capacity, new_capacity; + void *new_elements; + + if (count <= *capacity) + return TRUE; + + max_capacity = ~(SIZE_T)0 / size; + if (count > max_capacity) + return FALSE; + + new_capacity = max(1, *capacity); + while (new_capacity < count && new_capacity <= max_capacity / 2) + new_capacity *= 2; + if (new_capacity < count) + new_capacity = count; + + if (!*elements) + new_elements = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, new_capacity * size); + else + new_elements = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, *elements, new_capacity * size); + if (!new_elements) + return FALSE; + + *elements = new_elements; + *capacity = new_capacity; + return TRUE; +} + #include "win_constructors.h" +#include "win_destructors.h" + +typedef void (*pfn_dtor)(void *); static const struct { const char *iface_version; void *(*ctor)(void *); + void (*dtor)(void *); } constructors[] = { #include "win_constructors_table.dat" }; void *create_win_interface(const char *name, void *linux_side) { - int i; + unsigned int i; TRACE("trying to create %s\n", name); @@ -93,6 +127,18 @@ void *create_win_interface(const char *name, void *linux_side) return NULL; } +static pfn_dtor get_win_destructor(const char *name) +{ + unsigned int i; + + for(i = 0; i < sizeof(constructors) / sizeof(*constructors); ++i){ + if(!strcmp(name, constructors[i].iface_version)) + return constructors[i].dtor; + } + + return NULL; +} + static void *vrclient_lib; static void *(*vrclient_VRClientCoreFactory)(const char *name, int *return_code); @@ -168,6 +214,93 @@ static void load_vk_unwrappers(void) get_native_VkQueue = (void*)GetProcAddress(h, "__wine_get_native_VkQueue"); } +EVRInitError ivrclientcore_002_init(EVRInitError (*cpp_func)(void *, EVRApplicationType), + void *linux_side, EVRApplicationType application_type, + unsigned int version, struct client_core_data *user_data) +{ + TRACE("%p, %#x\n", linux_side, application_type); + InitializeCriticalSection(&user_data->critical_section); + return cpp_func(linux_side, application_type); +} + +EVRInitError ivrclientcore_init(EVRInitError (*cpp_func)(void *, EVRApplicationType, const char *), + void *linux_side, EVRApplicationType application_type, const char *startup_info, + unsigned int version, struct client_core_data *user_data) +{ + TRACE("%p, %#x, %p\n", linux_side, application_type, startup_info); + InitializeCriticalSection(&user_data->critical_section); + return cpp_func(linux_side, application_type, startup_info); +} + +void *ivrclientcore_get_generic_interface(void *(*cpp_func)(void *, const char *, EVRInitError *), + void *linux_side, const char *name_and_version, EVRInitError *error, + unsigned int version, struct client_core_data *user_data) +{ + struct generic_interface *iface; + pfn_dtor destructor; + void *win_object; + void *object; + + TRACE("%p, %p, %p\n", linux_side, name_and_version, error); + + if (!(object = cpp_func(linux_side, name_and_version, error))) + { + WARN("Failed to create %s.\n", name_and_version); + return NULL; + } + + if (!(win_object = create_win_interface(name_and_version, object))) + { + ERR("Failed to create win object %s.\n", name_and_version); + return NULL; + } + + if ((destructor = get_win_destructor(name_and_version))) + { + EnterCriticalSection(&user_data->critical_section); + if (array_reserve((void **)&user_data->created_interfaces, + &user_data->created_interfaces_size, user_data->created_interface_count + 1, + sizeof(*user_data->created_interfaces))) + { + iface = &user_data->created_interfaces[user_data->created_interface_count++]; + iface->object = win_object; + iface->dtor = destructor; + } + else + { + ERR("Failed to add interface to array.\n"); + } + LeaveCriticalSection(&user_data->critical_section); + } + + return win_object; +} + +void ivrclientcore_cleanup(void (*cpp_func)(void *), void *linux_side, + unsigned int version, struct client_core_data *user_data) +{ + struct generic_interface *iface; + SIZE_T i; + + TRACE("%p\n", linux_side); + + EnterCriticalSection(&user_data->critical_section); + for (i = 0; i < user_data->created_interface_count; ++i) + { + iface = &user_data->created_interfaces[i]; + + iface->dtor(iface->object); + } + HeapFree(GetProcessHeap(), 0, user_data->created_interfaces); + user_data->created_interfaces = NULL; + user_data->created_interfaces_size = 0; + user_data->created_interface_count = 0; + LeaveCriticalSection(&user_data->critical_section); + + DeleteCriticalSection(&user_data->critical_section); + cpp_func(linux_side); +} + void get_dxgi_output_info(void *cpp_func, void *linux_side, int32_t *adapter_idx, unsigned int version) { diff --git a/vrclient_x64/vrclient_private.h b/vrclient_x64/vrclient_private.h index 9650e564..6d68f3ce 100644 --- a/vrclient_x64/vrclient_private.h +++ b/vrclient_x64/vrclient_private.h @@ -38,12 +38,40 @@ void *create_LinuxMatchmakingServerListResponse(void *win); typedef struct ID3D11Device ID3D11Device; typedef struct IWineD3D11Device IWineD3D11Device; +struct generic_interface +{ + void *object; + void (*dtor)(void *); +}; + +struct client_core_data +{ + CRITICAL_SECTION critical_section; + struct generic_interface *created_interfaces; + SIZE_T created_interface_count; + SIZE_T created_interfaces_size; +}; + struct compositor_data { ID3D11Device *d3d11_device; IWineD3D11Device *wined3d_device; }; +EVRInitError ivrclientcore_002_init(EVRInitError (*cpp_func)(void *, EVRApplicationType), + void *linux_side, EVRApplicationType application_type, + unsigned int version, struct client_core_data *user_data); +EVRInitError ivrclientcore_init(EVRInitError (*cpp_func)(void *, EVRApplicationType, const char *), + void *linux_side, EVRApplicationType application_type, const char *startup_info, + unsigned int version, struct client_core_data *user_data); + +void *ivrclientcore_get_generic_interface(void *(*cpp_func)(void *, const char *, EVRInitError *), + void *linux_side, const char *name_and_version, EVRInitError *error, + unsigned int version, struct client_core_data *user_data); + +void ivrclientcore_cleanup(void (*cpp_func)(void *), void *linux_side, + unsigned int version, struct client_core_data *user_data); + void get_dxgi_output_info(void *cpp_func, void *linux_side, int32_t *adapter_idx, unsigned int version); void get_dxgi_output_info2(void *cpp_func, void *linux_side, diff --git a/vrclient_x64/winIVRApplications.c b/vrclient_x64/winIVRApplications.c index 671c0196..02127bfc 100644 --- a/vrclient_x64/winIVRApplications.c +++ b/vrclient_x64/winIVRApplications.c @@ -291,6 +291,12 @@ winIVRApplications_IVRApplications_006 *create_winIVRApplications_IVRApplication return r; } +void destroy_winIVRApplications_IVRApplications_006(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRApplications_IVRApplications_005.h" typedef struct __winIVRApplications_IVRApplications_005 { @@ -510,6 +516,12 @@ winIVRApplications_IVRApplications_005 *create_winIVRApplications_IVRApplication return r; } +void destroy_winIVRApplications_IVRApplications_005(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRApplications_IVRApplications_004.h" typedef struct __winIVRApplications_IVRApplications_004 { @@ -721,6 +733,12 @@ winIVRApplications_IVRApplications_004 *create_winIVRApplications_IVRApplication return r; } +void destroy_winIVRApplications_IVRApplications_004(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRApplications_IVRApplications_003.h" typedef struct __winIVRApplications_IVRApplications_003 { @@ -916,6 +934,12 @@ winIVRApplications_IVRApplications_003 *create_winIVRApplications_IVRApplication return r; } +void destroy_winIVRApplications_IVRApplications_003(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRApplications_IVRApplications_002.h" typedef struct __winIVRApplications_IVRApplications_002 { @@ -1103,6 +1127,12 @@ winIVRApplications_IVRApplications_002 *create_winIVRApplications_IVRApplication return r; } +void destroy_winIVRApplications_IVRApplications_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRApplications_IVRApplications_001.h" typedef struct __winIVRApplications_IVRApplications_001 { @@ -1298,3 +1328,9 @@ winIVRApplications_IVRApplications_001 *create_winIVRApplications_IVRApplication return r; } +void destroy_winIVRApplications_IVRApplications_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRChaperone.c b/vrclient_x64/winIVRChaperone.c index 7b756988..8af58273 100644 --- a/vrclient_x64/winIVRChaperone.c +++ b/vrclient_x64/winIVRChaperone.c @@ -107,6 +107,12 @@ winIVRChaperone_IVRChaperone_003 *create_winIVRChaperone_IVRChaperone_003(void * return r; } +void destroy_winIVRChaperone_IVRChaperone_003(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRChaperone_IVRChaperone_002.h" typedef struct __winIVRChaperone_IVRChaperone_002 { @@ -206,3 +212,9 @@ winIVRChaperone_IVRChaperone_002 *create_winIVRChaperone_IVRChaperone_002(void * return r; } +void destroy_winIVRChaperone_IVRChaperone_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRChaperoneSetup.c b/vrclient_x64/winIVRChaperoneSetup.c index d9efc18a..e62aa2e4 100644 --- a/vrclient_x64/winIVRChaperoneSetup.c +++ b/vrclient_x64/winIVRChaperoneSetup.c @@ -203,6 +203,12 @@ winIVRChaperoneSetup_IVRChaperoneSetup_005 *create_winIVRChaperoneSetup_IVRChape return r; } +void destroy_winIVRChaperoneSetup_IVRChaperoneSetup_005(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRChaperoneSetup_IVRChaperoneSetup_004.h" typedef struct __winIVRChaperoneSetup_IVRChaperoneSetup_004 { @@ -358,3 +364,9 @@ winIVRChaperoneSetup_IVRChaperoneSetup_004 *create_winIVRChaperoneSetup_IVRChape return r; } +void destroy_winIVRChaperoneSetup_IVRChaperoneSetup_004(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRClientCore.c b/vrclient_x64/winIVRClientCore.c index 748ddecc..465bb099 100644 --- a/vrclient_x64/winIVRClientCore.c +++ b/vrclient_x64/winIVRClientCore.c @@ -21,20 +21,21 @@ WINE_DEFAULT_DEBUG_CHANNEL(vrclient); typedef struct __winIVRClientCore_IVRClientCore_003 { vtable_ptr *vtable; void *linux_side; + struct client_core_data user_data; } winIVRClientCore_IVRClientCore_003; DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_Init, 16) EVRInitError __thiscall winIVRClientCore_IVRClientCore_003_Init(winIVRClientCore_IVRClientCore_003 *_this, EVRApplicationType eApplicationType, const char * pStartupInfo) { TRACE("%p\n", _this); - return cppIVRClientCore_IVRClientCore_003_Init(_this->linux_side, eApplicationType, pStartupInfo); + 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); - cppIVRClientCore_IVRClientCore_003_Cleanup(_this->linux_side); + ivrclientcore_cleanup(cppIVRClientCore_IVRClientCore_003_Cleanup, _this->linux_side, 3, &_this->user_data); } DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_IsInterfaceVersionValid, 12) @@ -48,8 +49,7 @@ DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_003_GetGenericInterface, void * __thiscall winIVRClientCore_IVRClientCore_003_GetGenericInterface(winIVRClientCore_IVRClientCore_003 *_this, const char * pchNameAndVersion, EVRInitError * peError) { TRACE("%p\n", _this); - return create_win_interface(pchNameAndVersion, - cppIVRClientCore_IVRClientCore_003_GetGenericInterface(_this->linux_side, pchNameAndVersion, peError)); + 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) @@ -100,25 +100,32 @@ winIVRClientCore_IVRClientCore_003 *create_winIVRClientCore_IVRClientCore_003(vo return r; } +void destroy_winIVRClientCore_IVRClientCore_003(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRClientCore_IVRClientCore_002.h" typedef struct __winIVRClientCore_IVRClientCore_002 { vtable_ptr *vtable; void *linux_side; + struct client_core_data user_data; } winIVRClientCore_IVRClientCore_002; DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_Init, 8) EVRInitError __thiscall winIVRClientCore_IVRClientCore_002_Init(winIVRClientCore_IVRClientCore_002 *_this, EVRApplicationType eApplicationType) { TRACE("%p\n", _this); - return cppIVRClientCore_IVRClientCore_002_Init(_this->linux_side, eApplicationType); + 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); - cppIVRClientCore_IVRClientCore_002_Cleanup(_this->linux_side); + ivrclientcore_cleanup(cppIVRClientCore_IVRClientCore_002_Cleanup, _this->linux_side, 2, &_this->user_data); } DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_IsInterfaceVersionValid, 12) @@ -132,8 +139,7 @@ DEFINE_THISCALL_WRAPPER(winIVRClientCore_IVRClientCore_002_GetGenericInterface, void * __thiscall winIVRClientCore_IVRClientCore_002_GetGenericInterface(winIVRClientCore_IVRClientCore_002 *_this, const char * pchNameAndVersion, EVRInitError * peError) { TRACE("%p\n", _this); - return create_win_interface(pchNameAndVersion, - cppIVRClientCore_IVRClientCore_002_GetGenericInterface(_this->linux_side, pchNameAndVersion, peError)); + 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) @@ -184,3 +190,9 @@ winIVRClientCore_IVRClientCore_002 *create_winIVRClientCore_IVRClientCore_002(vo return r; } +void destroy_winIVRClientCore_IVRClientCore_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRCompositor.c b/vrclient_x64/winIVRCompositor.c index 750f9a9b..3cb1b454 100644 --- a/vrclient_x64/winIVRCompositor.c +++ b/vrclient_x64/winIVRCompositor.c @@ -389,6 +389,12 @@ winIVRCompositor_IVRCompositor_022 *create_winIVRCompositor_IVRCompositor_022(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_022(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_021.h" typedef struct __winIVRCompositor_IVRCompositor_021 { @@ -762,6 +768,12 @@ winIVRCompositor_IVRCompositor_021 *create_winIVRCompositor_IVRCompositor_021(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_021(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_020.h" typedef struct __winIVRCompositor_IVRCompositor_020 { @@ -1119,6 +1131,12 @@ winIVRCompositor_IVRCompositor_020 *create_winIVRCompositor_IVRCompositor_020(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_020(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_019.h" typedef struct __winIVRCompositor_IVRCompositor_019 { @@ -1468,6 +1486,12 @@ winIVRCompositor_IVRCompositor_019 *create_winIVRCompositor_IVRCompositor_019(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_019(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_018.h" typedef struct __winIVRCompositor_IVRCompositor_018 { @@ -1801,6 +1825,12 @@ winIVRCompositor_IVRCompositor_018 *create_winIVRCompositor_IVRCompositor_018(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_018(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_016.h" typedef struct __winIVRCompositor_IVRCompositor_016 { @@ -2109,6 +2139,12 @@ winIVRCompositor_IVRCompositor_016 *create_winIVRCompositor_IVRCompositor_016(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_016(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_015.h" typedef struct __winIVRCompositor_IVRCompositor_015 { @@ -2433,6 +2469,12 @@ winIVRCompositor_IVRCompositor_015 *create_winIVRCompositor_IVRCompositor_015(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_015(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_014.h" typedef struct __winIVRCompositor_IVRCompositor_014 { @@ -2693,6 +2735,12 @@ winIVRCompositor_IVRCompositor_014 *create_winIVRCompositor_IVRCompositor_014(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_014(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_013.h" typedef struct __winIVRCompositor_IVRCompositor_013 { @@ -2937,6 +2985,12 @@ winIVRCompositor_IVRCompositor_013 *create_winIVRCompositor_IVRCompositor_013(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_013(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_012.h" typedef struct __winIVRCompositor_IVRCompositor_012 { @@ -3173,6 +3227,12 @@ winIVRCompositor_IVRCompositor_012 *create_winIVRCompositor_IVRCompositor_012(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_012(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_011.h" typedef struct __winIVRCompositor_IVRCompositor_011 { @@ -3393,6 +3453,12 @@ winIVRCompositor_IVRCompositor_011 *create_winIVRCompositor_IVRCompositor_011(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_011(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_010.h" typedef struct __winIVRCompositor_IVRCompositor_010 { @@ -3613,6 +3679,12 @@ winIVRCompositor_IVRCompositor_010 *create_winIVRCompositor_IVRCompositor_010(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_010(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_009.h" typedef struct __winIVRCompositor_IVRCompositor_009 { @@ -3833,6 +3905,12 @@ winIVRCompositor_IVRCompositor_009 *create_winIVRCompositor_IVRCompositor_009(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_009(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_008.h" typedef struct __winIVRCompositor_IVRCompositor_008 { @@ -4069,6 +4147,12 @@ winIVRCompositor_IVRCompositor_008 *create_winIVRCompositor_IVRCompositor_008(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_008(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_007.h" typedef struct __winIVRCompositor_IVRCompositor_007 { @@ -4249,6 +4333,12 @@ winIVRCompositor_IVRCompositor_007 *create_winIVRCompositor_IVRCompositor_007(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_007(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_006.h" typedef struct __winIVRCompositor_IVRCompositor_006 { @@ -4437,6 +4527,12 @@ winIVRCompositor_IVRCompositor_006 *create_winIVRCompositor_IVRCompositor_006(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_006(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRCompositor_IVRCompositor_005.h" typedef struct __winIVRCompositor_IVRCompositor_005 { @@ -4657,3 +4753,9 @@ winIVRCompositor_IVRCompositor_005 *create_winIVRCompositor_IVRCompositor_005(vo return r; } +void destroy_winIVRCompositor_IVRCompositor_005(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRDriverManager.c b/vrclient_x64/winIVRDriverManager.c index 5712f428..2542e09d 100644 --- a/vrclient_x64/winIVRDriverManager.c +++ b/vrclient_x64/winIVRDriverManager.c @@ -59,3 +59,9 @@ winIVRDriverManager_IVRDriverManager_001 *create_winIVRDriverManager_IVRDriverMa return r; } +void destroy_winIVRDriverManager_IVRDriverManager_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRExtendedDisplay.c b/vrclient_x64/winIVRExtendedDisplay.c index 6f31141a..e6c048c0 100644 --- a/vrclient_x64/winIVRExtendedDisplay.c +++ b/vrclient_x64/winIVRExtendedDisplay.c @@ -67,3 +67,9 @@ winIVRExtendedDisplay_IVRExtendedDisplay_001 *create_winIVRExtendedDisplay_IVREx return r; } +void destroy_winIVRExtendedDisplay_IVRExtendedDisplay_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRNotifications.c b/vrclient_x64/winIVRNotifications.c index 5c92435b..95631024 100644 --- a/vrclient_x64/winIVRNotifications.c +++ b/vrclient_x64/winIVRNotifications.c @@ -59,6 +59,12 @@ winIVRNotifications_IVRNotifications_002 *create_winIVRNotifications_IVRNotifica return r; } +void destroy_winIVRNotifications_IVRNotifications_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRNotifications_IVRNotifications_001.h" typedef struct __winIVRNotifications_IVRNotifications_001 { @@ -110,3 +116,9 @@ winIVRNotifications_IVRNotifications_001 *create_winIVRNotifications_IVRNotifica return r; } +void destroy_winIVRNotifications_IVRNotifications_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVROverlay.c b/vrclient_x64/winIVROverlay.c index 7958a226..a4df787a 100644 --- a/vrclient_x64/winIVROverlay.c +++ b/vrclient_x64/winIVROverlay.c @@ -699,6 +699,12 @@ winIVROverlay_IVROverlay_018 *create_winIVROverlay_IVROverlay_018(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_018(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_017.h" typedef struct __winIVROverlay_IVROverlay_017 { @@ -1390,6 +1396,12 @@ winIVROverlay_IVROverlay_017 *create_winIVROverlay_IVROverlay_017(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_017(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_016.h" typedef struct __winIVROverlay_IVROverlay_016 { @@ -2065,6 +2077,12 @@ winIVROverlay_IVROverlay_016 *create_winIVROverlay_IVROverlay_016(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_016(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_014.h" typedef struct __winIVROverlay_IVROverlay_014 { @@ -2692,6 +2710,12 @@ winIVROverlay_IVROverlay_014 *create_winIVROverlay_IVROverlay_014(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_014(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_013.h" typedef struct __winIVROverlay_IVROverlay_013 { @@ -3303,6 +3327,12 @@ winIVROverlay_IVROverlay_013 *create_winIVROverlay_IVROverlay_013(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_013(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_012.h" typedef struct __winIVROverlay_IVROverlay_012 { @@ -3874,6 +3904,12 @@ winIVROverlay_IVROverlay_012 *create_winIVROverlay_IVROverlay_012(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_012(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_011.h" typedef struct __winIVROverlay_IVROverlay_011 { @@ -4437,6 +4473,12 @@ winIVROverlay_IVROverlay_011 *create_winIVROverlay_IVROverlay_011(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_011(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_010.h" typedef struct __winIVROverlay_IVROverlay_010 { @@ -4968,6 +5010,12 @@ winIVROverlay_IVROverlay_010 *create_winIVROverlay_IVROverlay_010(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_010(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_008.h" typedef struct __winIVROverlay_IVROverlay_008 { @@ -5475,6 +5523,12 @@ winIVROverlay_IVROverlay_008 *create_winIVROverlay_IVROverlay_008(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_008(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_007.h" typedef struct __winIVROverlay_IVROverlay_007 { @@ -5958,6 +6012,12 @@ winIVROverlay_IVROverlay_007 *create_winIVROverlay_IVROverlay_007(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_007(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_005.h" typedef struct __winIVROverlay_IVROverlay_005 { @@ -6401,6 +6461,12 @@ winIVROverlay_IVROverlay_005 *create_winIVROverlay_IVROverlay_005(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_005(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_004.h" typedef struct __winIVROverlay_IVROverlay_004 { @@ -6812,6 +6878,12 @@ winIVROverlay_IVROverlay_004 *create_winIVROverlay_IVROverlay_004(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_004(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_003.h" typedef struct __winIVROverlay_IVROverlay_003 { @@ -7207,6 +7279,12 @@ winIVROverlay_IVROverlay_003 *create_winIVROverlay_IVROverlay_003(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_003(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_002.h" typedef struct __winIVROverlay_IVROverlay_002 { @@ -7570,6 +7648,12 @@ winIVROverlay_IVROverlay_002 *create_winIVROverlay_IVROverlay_002(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVROverlay_IVROverlay_001.h" typedef struct __winIVROverlay_IVROverlay_001 { @@ -7917,3 +8001,9 @@ winIVROverlay_IVROverlay_001 *create_winIVROverlay_IVROverlay_001(void *linux_si return r; } +void destroy_winIVROverlay_IVROverlay_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRRenderModels.c b/vrclient_x64/winIVRRenderModels.c index d2398aa5..26f9297f 100644 --- a/vrclient_x64/winIVRRenderModels.c +++ b/vrclient_x64/winIVRRenderModels.c @@ -187,6 +187,12 @@ winIVRRenderModels_IVRRenderModels_005 *create_winIVRRenderModels_IVRRenderModel return r; } +void destroy_winIVRRenderModels_IVRRenderModels_005(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRRenderModels_IVRRenderModels_004.h" typedef struct __winIVRRenderModels_IVRRenderModels_004 { @@ -326,6 +332,12 @@ winIVRRenderModels_IVRRenderModels_004 *create_winIVRRenderModels_IVRRenderModel return r; } +void destroy_winIVRRenderModels_IVRRenderModels_004(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRRenderModels_IVRRenderModels_002.h" typedef struct __winIVRRenderModels_IVRRenderModels_002 { @@ -449,6 +461,12 @@ winIVRRenderModels_IVRRenderModels_002 *create_winIVRRenderModels_IVRRenderModel return r; } +void destroy_winIVRRenderModels_IVRRenderModels_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRRenderModels_IVRRenderModels_001.h" typedef struct __winIVRRenderModels_IVRRenderModels_001 { @@ -508,3 +526,9 @@ winIVRRenderModels_IVRRenderModels_001 *create_winIVRRenderModels_IVRRenderModel return r; } +void destroy_winIVRRenderModels_IVRRenderModels_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRResources.c b/vrclient_x64/winIVRResources.c index dd3a3ebf..99f53a94 100644 --- a/vrclient_x64/winIVRResources.c +++ b/vrclient_x64/winIVRResources.c @@ -59,3 +59,9 @@ winIVRResources_IVRResources_001 *create_winIVRResources_IVRResources_001(void * return r; } +void destroy_winIVRResources_IVRResources_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRScreenshots.c b/vrclient_x64/winIVRScreenshots.c index 55ba7a2e..33330b39 100644 --- a/vrclient_x64/winIVRScreenshots.c +++ b/vrclient_x64/winIVRScreenshots.c @@ -99,3 +99,9 @@ winIVRScreenshots_IVRScreenshots_001 *create_winIVRScreenshots_IVRScreenshots_00 return r; } +void destroy_winIVRScreenshots_IVRScreenshots_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRSettings.c b/vrclient_x64/winIVRSettings.c index 2aae9587..bfb22c13 100644 --- a/vrclient_x64/winIVRSettings.c +++ b/vrclient_x64/winIVRSettings.c @@ -139,6 +139,12 @@ winIVRSettings_IVRSettings_002 *create_winIVRSettings_IVRSettings_002(void *linu return r; } +void destroy_winIVRSettings_IVRSettings_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSettings_IVRSettings_001.h" typedef struct __winIVRSettings_IVRSettings_001 { @@ -262,3 +268,9 @@ winIVRSettings_IVRSettings_001 *create_winIVRSettings_IVRSettings_001(void *linu return r; } +void destroy_winIVRSettings_IVRSettings_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRSystem.c b/vrclient_x64/winIVRSystem.c index 959b062a..05b66b2b 100644 --- a/vrclient_x64/winIVRSystem.c +++ b/vrclient_x64/winIVRSystem.c @@ -425,6 +425,12 @@ winIVRSystem_IVRSystem_019 *create_winIVRSystem_IVRSystem_019(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_019(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_017.h" typedef struct __winIVRSystem_IVRSystem_017 { @@ -818,6 +824,12 @@ winIVRSystem_IVRSystem_017 *create_winIVRSystem_IVRSystem_017(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_017(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_016.h" typedef struct __winIVRSystem_IVRSystem_016 { @@ -1211,6 +1223,12 @@ winIVRSystem_IVRSystem_016 *create_winIVRSystem_IVRSystem_016(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_016(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_015.h" typedef struct __winIVRSystem_IVRSystem_015 { @@ -1596,6 +1614,12 @@ winIVRSystem_IVRSystem_015 *create_winIVRSystem_IVRSystem_015(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_015(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_014.h" typedef struct __winIVRSystem_IVRSystem_014 { @@ -1981,6 +2005,12 @@ winIVRSystem_IVRSystem_014 *create_winIVRSystem_IVRSystem_014(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_014(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_012.h" typedef struct __winIVRSystem_IVRSystem_012 { @@ -2367,6 +2397,12 @@ winIVRSystem_IVRSystem_012 *create_winIVRSystem_IVRSystem_012(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_012(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_011.h" typedef struct __winIVRSystem_IVRSystem_011 { @@ -2769,6 +2805,12 @@ winIVRSystem_IVRSystem_011 *create_winIVRSystem_IVRSystem_011(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_011(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_010.h" typedef struct __winIVRSystem_IVRSystem_010 { @@ -3171,6 +3213,12 @@ winIVRSystem_IVRSystem_010 *create_winIVRSystem_IVRSystem_010(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_010(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_009.h" typedef struct __winIVRSystem_IVRSystem_009 { @@ -3541,6 +3589,12 @@ winIVRSystem_IVRSystem_009 *create_winIVRSystem_IVRSystem_009(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_009(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_006.h" typedef struct __winIVRSystem_IVRSystem_006 { @@ -3911,6 +3965,12 @@ winIVRSystem_IVRSystem_006 *create_winIVRSystem_IVRSystem_006(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_006(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_005.h" typedef struct __winIVRSystem_IVRSystem_005 { @@ -4240,6 +4300,12 @@ winIVRSystem_IVRSystem_005 *create_winIVRSystem_IVRSystem_005(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_005(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_004.h" typedef struct __winIVRSystem_IVRSystem_004 { @@ -4561,6 +4627,12 @@ winIVRSystem_IVRSystem_004 *create_winIVRSystem_IVRSystem_004(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_004(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRSystem_IVRSystem_003.h" typedef struct __winIVRSystem_IVRSystem_003 { @@ -4898,3 +4970,9 @@ winIVRSystem_IVRSystem_003 *create_winIVRSystem_IVRSystem_003(void *linux_side) return r; } +void destroy_winIVRSystem_IVRSystem_003(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/winIVRTrackedCamera.c b/vrclient_x64/winIVRTrackedCamera.c index d2a6f429..0bbbb99f 100644 --- a/vrclient_x64/winIVRTrackedCamera.c +++ b/vrclient_x64/winIVRTrackedCamera.c @@ -139,6 +139,12 @@ winIVRTrackedCamera_IVRTrackedCamera_003 *create_winIVRTrackedCamera_IVRTrackedC return r; } +void destroy_winIVRTrackedCamera_IVRTrackedCamera_003(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRTrackedCamera_IVRTrackedCamera_002.h" typedef struct __winIVRTrackedCamera_IVRTrackedCamera_002 { @@ -230,6 +236,12 @@ winIVRTrackedCamera_IVRTrackedCamera_002 *create_winIVRTrackedCamera_IVRTrackedC return r; } +void destroy_winIVRTrackedCamera_IVRTrackedCamera_002(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + #include "cppIVRTrackedCamera_IVRTrackedCamera_001.h" typedef struct __winIVRTrackedCamera_IVRTrackedCamera_001 { @@ -401,3 +413,9 @@ winIVRTrackedCamera_IVRTrackedCamera_001 *create_winIVRTrackedCamera_IVRTrackedC return r; } +void destroy_winIVRTrackedCamera_IVRTrackedCamera_001(void *object) +{ + TRACE("%p\n", object); + HeapFree(GetProcessHeap(), 0, object); +} + diff --git a/vrclient_x64/win_constructors_table.dat b/vrclient_x64/win_constructors_table.dat index 7e7487d4..4e69e1ef 100644 --- a/vrclient_x64/win_constructors_table.dat +++ b/vrclient_x64/win_constructors_table.dat @@ -1,72 +1,72 @@ - {"IVRSystem_019", &create_winIVRSystem_IVRSystem_019}, - {"IVRApplications_006", &create_winIVRApplications_IVRApplications_006}, - {"IVRSettings_002", &create_winIVRSettings_IVRSettings_002}, - {"IVRChaperone_003", &create_winIVRChaperone_IVRChaperone_003}, - {"IVRChaperoneSetup_005", &create_winIVRChaperoneSetup_IVRChaperoneSetup_005}, - {"IVRCompositor_022", &create_winIVRCompositor_IVRCompositor_022}, - {"IVRNotifications_002", &create_winIVRNotifications_IVRNotifications_002}, - {"IVROverlay_018", &create_winIVROverlay_IVROverlay_018}, - {"IVRRenderModels_005", &create_winIVRRenderModels_IVRRenderModels_005}, - {"IVRExtendedDisplay_001", &create_winIVRExtendedDisplay_IVRExtendedDisplay_001}, - {"IVRTrackedCamera_003", &create_winIVRTrackedCamera_IVRTrackedCamera_003}, - {"IVRScreenshots_001", &create_winIVRScreenshots_IVRScreenshots_001}, - {"IVRResources_001", &create_winIVRResources_IVRResources_001}, - {"IVRDriverManager_001", &create_winIVRDriverManager_IVRDriverManager_001}, - {"IVRClientCore_003", &create_winIVRClientCore_IVRClientCore_003}, - {"IVRSystem_017", &create_winIVRSystem_IVRSystem_017}, - {"IVROverlay_017", &create_winIVROverlay_IVROverlay_017}, - {"IVRCompositor_021", &create_winIVRCompositor_IVRCompositor_021}, - {"IVROverlay_016", &create_winIVROverlay_IVROverlay_016}, - {"IVRSystem_016", &create_winIVRSystem_IVRSystem_016}, - {"IVRCompositor_020", &create_winIVRCompositor_IVRCompositor_020}, - {"IVRClientCore_002", &create_winIVRClientCore_IVRClientCore_002}, - {"IVRSystem_015", &create_winIVRSystem_IVRSystem_015}, - {"IVROverlay_014", &create_winIVROverlay_IVROverlay_014}, - {"IVRCompositor_019", &create_winIVRCompositor_IVRCompositor_019}, - {"IVRSystem_014", &create_winIVRSystem_IVRSystem_014}, - {"IVRCompositor_018", &create_winIVRCompositor_IVRCompositor_018}, - {"IVROverlay_013", &create_winIVROverlay_IVROverlay_013}, - {"IVRSystem_012", &create_winIVRSystem_IVRSystem_012}, - {"IVRCompositor_016", &create_winIVRCompositor_IVRCompositor_016}, - {"IVRSettings_001", &create_winIVRSettings_IVRSettings_001}, - {"IVRApplications_005", &create_winIVRApplications_IVRApplications_005}, - {"IVRCompositor_015", &create_winIVRCompositor_IVRCompositor_015}, - {"IVROverlay_012", &create_winIVROverlay_IVROverlay_012}, - {"IVRTrackedCamera_002", &create_winIVRTrackedCamera_IVRTrackedCamera_002}, - {"IVRCompositor_014", &create_winIVRCompositor_IVRCompositor_014}, - {"IVROverlay_011", &create_winIVROverlay_IVROverlay_011}, - {"IVRCompositor_013", &create_winIVRCompositor_IVRCompositor_013}, - {"IVRSystem_011", &create_winIVRSystem_IVRSystem_011}, - {"IVRApplications_004", &create_winIVRApplications_IVRApplications_004}, - {"IVROverlay_010", &create_winIVROverlay_IVROverlay_010}, - {"IVRRenderModels_004", &create_winIVRRenderModels_IVRRenderModels_004}, - {"IVRCompositor_012", &create_winIVRCompositor_IVRCompositor_012}, - {"IVRApplications_003", &create_winIVRApplications_IVRApplications_003}, - {"IVRCompositor_011", &create_winIVRCompositor_IVRCompositor_011}, - {"IVRRenderModels_002", &create_winIVRRenderModels_IVRRenderModels_002}, - {"IVRSystem_010", &create_winIVRSystem_IVRSystem_010}, - {"IVRApplications_002", &create_winIVRApplications_IVRApplications_002}, - {"IVRChaperoneSetup_004", &create_winIVRChaperoneSetup_IVRChaperoneSetup_004}, - {"IVRCompositor_010", &create_winIVRCompositor_IVRCompositor_010}, - {"IVROverlay_008", &create_winIVROverlay_IVROverlay_008}, - {"IVRTrackedCamera_001", &create_winIVRTrackedCamera_IVRTrackedCamera_001}, - {"IVRCompositor_009", &create_winIVRCompositor_IVRCompositor_009}, - {"IVRSystem_009", &create_winIVRSystem_IVRSystem_009}, - {"IVROverlay_007", &create_winIVROverlay_IVROverlay_007}, - {"IVRSystem_006", &create_winIVRSystem_IVRSystem_006}, - {"IVRApplications_001", &create_winIVRApplications_IVRApplications_001}, - {"IVRChaperone_002", &create_winIVRChaperone_IVRChaperone_002}, - {"IVRCompositor_008", &create_winIVRCompositor_IVRCompositor_008}, - {"IVRNotifications_001", &create_winIVRNotifications_IVRNotifications_001}, - {"IVROverlay_005", &create_winIVROverlay_IVROverlay_005}, - {"IVRRenderModels_001", &create_winIVRRenderModels_IVRRenderModels_001}, - {"IVRSystem_005", &create_winIVRSystem_IVRSystem_005}, - {"IVRCompositor_007", &create_winIVRCompositor_IVRCompositor_007}, - {"IVROverlay_004", &create_winIVROverlay_IVROverlay_004}, - {"IVROverlay_003", &create_winIVROverlay_IVROverlay_003}, - {"IVROverlay_002", &create_winIVROverlay_IVROverlay_002}, - {"IVRSystem_004", &create_winIVRSystem_IVRSystem_004}, - {"IVRCompositor_006", &create_winIVRCompositor_IVRCompositor_006}, - {"IVROverlay_001", &create_winIVROverlay_IVROverlay_001}, - {"IVRSystem_003", &create_winIVRSystem_IVRSystem_003}, - {"IVRCompositor_005", &create_winIVRCompositor_IVRCompositor_005}, + {"IVRSystem_019", &create_winIVRSystem_IVRSystem_019, &destroy_winIVRSystem_IVRSystem_019}, + {"IVRApplications_006", &create_winIVRApplications_IVRApplications_006, &destroy_winIVRApplications_IVRApplications_006}, + {"IVRSettings_002", &create_winIVRSettings_IVRSettings_002, &destroy_winIVRSettings_IVRSettings_002}, + {"IVRChaperone_003", &create_winIVRChaperone_IVRChaperone_003, &destroy_winIVRChaperone_IVRChaperone_003}, + {"IVRChaperoneSetup_005", &create_winIVRChaperoneSetup_IVRChaperoneSetup_005, &destroy_winIVRChaperoneSetup_IVRChaperoneSetup_005}, + {"IVRCompositor_022", &create_winIVRCompositor_IVRCompositor_022, &destroy_winIVRCompositor_IVRCompositor_022}, + {"IVRNotifications_002", &create_winIVRNotifications_IVRNotifications_002, &destroy_winIVRNotifications_IVRNotifications_002}, + {"IVROverlay_018", &create_winIVROverlay_IVROverlay_018, &destroy_winIVROverlay_IVROverlay_018}, + {"IVRRenderModels_005", &create_winIVRRenderModels_IVRRenderModels_005, &destroy_winIVRRenderModels_IVRRenderModels_005}, + {"IVRExtendedDisplay_001", &create_winIVRExtendedDisplay_IVRExtendedDisplay_001, &destroy_winIVRExtendedDisplay_IVRExtendedDisplay_001}, + {"IVRTrackedCamera_003", &create_winIVRTrackedCamera_IVRTrackedCamera_003, &destroy_winIVRTrackedCamera_IVRTrackedCamera_003}, + {"IVRScreenshots_001", &create_winIVRScreenshots_IVRScreenshots_001, &destroy_winIVRScreenshots_IVRScreenshots_001}, + {"IVRResources_001", &create_winIVRResources_IVRResources_001, &destroy_winIVRResources_IVRResources_001}, + {"IVRDriverManager_001", &create_winIVRDriverManager_IVRDriverManager_001, &destroy_winIVRDriverManager_IVRDriverManager_001}, + {"IVRClientCore_003", &create_winIVRClientCore_IVRClientCore_003, &destroy_winIVRClientCore_IVRClientCore_003}, + {"IVRSystem_017", &create_winIVRSystem_IVRSystem_017, &destroy_winIVRSystem_IVRSystem_017}, + {"IVROverlay_017", &create_winIVROverlay_IVROverlay_017, &destroy_winIVROverlay_IVROverlay_017}, + {"IVRCompositor_021", &create_winIVRCompositor_IVRCompositor_021, &destroy_winIVRCompositor_IVRCompositor_021}, + {"IVROverlay_016", &create_winIVROverlay_IVROverlay_016, &destroy_winIVROverlay_IVROverlay_016}, + {"IVRSystem_016", &create_winIVRSystem_IVRSystem_016, &destroy_winIVRSystem_IVRSystem_016}, + {"IVRCompositor_020", &create_winIVRCompositor_IVRCompositor_020, &destroy_winIVRCompositor_IVRCompositor_020}, + {"IVRClientCore_002", &create_winIVRClientCore_IVRClientCore_002, &destroy_winIVRClientCore_IVRClientCore_002}, + {"IVRSystem_015", &create_winIVRSystem_IVRSystem_015, &destroy_winIVRSystem_IVRSystem_015}, + {"IVROverlay_014", &create_winIVROverlay_IVROverlay_014, &destroy_winIVROverlay_IVROverlay_014}, + {"IVRCompositor_019", &create_winIVRCompositor_IVRCompositor_019, &destroy_winIVRCompositor_IVRCompositor_019}, + {"IVRSystem_014", &create_winIVRSystem_IVRSystem_014, &destroy_winIVRSystem_IVRSystem_014}, + {"IVRCompositor_018", &create_winIVRCompositor_IVRCompositor_018, &destroy_winIVRCompositor_IVRCompositor_018}, + {"IVROverlay_013", &create_winIVROverlay_IVROverlay_013, &destroy_winIVROverlay_IVROverlay_013}, + {"IVRSystem_012", &create_winIVRSystem_IVRSystem_012, &destroy_winIVRSystem_IVRSystem_012}, + {"IVRCompositor_016", &create_winIVRCompositor_IVRCompositor_016, &destroy_winIVRCompositor_IVRCompositor_016}, + {"IVRSettings_001", &create_winIVRSettings_IVRSettings_001, &destroy_winIVRSettings_IVRSettings_001}, + {"IVRApplications_005", &create_winIVRApplications_IVRApplications_005, &destroy_winIVRApplications_IVRApplications_005}, + {"IVRCompositor_015", &create_winIVRCompositor_IVRCompositor_015, &destroy_winIVRCompositor_IVRCompositor_015}, + {"IVROverlay_012", &create_winIVROverlay_IVROverlay_012, &destroy_winIVROverlay_IVROverlay_012}, + {"IVRTrackedCamera_002", &create_winIVRTrackedCamera_IVRTrackedCamera_002, &destroy_winIVRTrackedCamera_IVRTrackedCamera_002}, + {"IVRCompositor_014", &create_winIVRCompositor_IVRCompositor_014, &destroy_winIVRCompositor_IVRCompositor_014}, + {"IVROverlay_011", &create_winIVROverlay_IVROverlay_011, &destroy_winIVROverlay_IVROverlay_011}, + {"IVRCompositor_013", &create_winIVRCompositor_IVRCompositor_013, &destroy_winIVRCompositor_IVRCompositor_013}, + {"IVRSystem_011", &create_winIVRSystem_IVRSystem_011, &destroy_winIVRSystem_IVRSystem_011}, + {"IVRApplications_004", &create_winIVRApplications_IVRApplications_004, &destroy_winIVRApplications_IVRApplications_004}, + {"IVROverlay_010", &create_winIVROverlay_IVROverlay_010, &destroy_winIVROverlay_IVROverlay_010}, + {"IVRRenderModels_004", &create_winIVRRenderModels_IVRRenderModels_004, &destroy_winIVRRenderModels_IVRRenderModels_004}, + {"IVRCompositor_012", &create_winIVRCompositor_IVRCompositor_012, &destroy_winIVRCompositor_IVRCompositor_012}, + {"IVRApplications_003", &create_winIVRApplications_IVRApplications_003, &destroy_winIVRApplications_IVRApplications_003}, + {"IVRCompositor_011", &create_winIVRCompositor_IVRCompositor_011, &destroy_winIVRCompositor_IVRCompositor_011}, + {"IVRRenderModels_002", &create_winIVRRenderModels_IVRRenderModels_002, &destroy_winIVRRenderModels_IVRRenderModels_002}, + {"IVRSystem_010", &create_winIVRSystem_IVRSystem_010, &destroy_winIVRSystem_IVRSystem_010}, + {"IVRApplications_002", &create_winIVRApplications_IVRApplications_002, &destroy_winIVRApplications_IVRApplications_002}, + {"IVRChaperoneSetup_004", &create_winIVRChaperoneSetup_IVRChaperoneSetup_004, &destroy_winIVRChaperoneSetup_IVRChaperoneSetup_004}, + {"IVRCompositor_010", &create_winIVRCompositor_IVRCompositor_010, &destroy_winIVRCompositor_IVRCompositor_010}, + {"IVROverlay_008", &create_winIVROverlay_IVROverlay_008, &destroy_winIVROverlay_IVROverlay_008}, + {"IVRTrackedCamera_001", &create_winIVRTrackedCamera_IVRTrackedCamera_001, &destroy_winIVRTrackedCamera_IVRTrackedCamera_001}, + {"IVRCompositor_009", &create_winIVRCompositor_IVRCompositor_009, &destroy_winIVRCompositor_IVRCompositor_009}, + {"IVRSystem_009", &create_winIVRSystem_IVRSystem_009, &destroy_winIVRSystem_IVRSystem_009}, + {"IVROverlay_007", &create_winIVROverlay_IVROverlay_007, &destroy_winIVROverlay_IVROverlay_007}, + {"IVRSystem_006", &create_winIVRSystem_IVRSystem_006, &destroy_winIVRSystem_IVRSystem_006}, + {"IVRApplications_001", &create_winIVRApplications_IVRApplications_001, &destroy_winIVRApplications_IVRApplications_001}, + {"IVRChaperone_002", &create_winIVRChaperone_IVRChaperone_002, &destroy_winIVRChaperone_IVRChaperone_002}, + {"IVRCompositor_008", &create_winIVRCompositor_IVRCompositor_008, &destroy_winIVRCompositor_IVRCompositor_008}, + {"IVRNotifications_001", &create_winIVRNotifications_IVRNotifications_001, &destroy_winIVRNotifications_IVRNotifications_001}, + {"IVROverlay_005", &create_winIVROverlay_IVROverlay_005, &destroy_winIVROverlay_IVROverlay_005}, + {"IVRRenderModels_001", &create_winIVRRenderModels_IVRRenderModels_001, &destroy_winIVRRenderModels_IVRRenderModels_001}, + {"IVRSystem_005", &create_winIVRSystem_IVRSystem_005, &destroy_winIVRSystem_IVRSystem_005}, + {"IVRCompositor_007", &create_winIVRCompositor_IVRCompositor_007, &destroy_winIVRCompositor_IVRCompositor_007}, + {"IVROverlay_004", &create_winIVROverlay_IVROverlay_004, &destroy_winIVROverlay_IVROverlay_004}, + {"IVROverlay_003", &create_winIVROverlay_IVROverlay_003, &destroy_winIVROverlay_IVROverlay_003}, + {"IVROverlay_002", &create_winIVROverlay_IVROverlay_002, &destroy_winIVROverlay_IVROverlay_002}, + {"IVRSystem_004", &create_winIVRSystem_IVRSystem_004, &destroy_winIVRSystem_IVRSystem_004}, + {"IVRCompositor_006", &create_winIVRCompositor_IVRCompositor_006, &destroy_winIVRCompositor_IVRCompositor_006}, + {"IVROverlay_001", &create_winIVROverlay_IVROverlay_001, &destroy_winIVROverlay_IVROverlay_001}, + {"IVRSystem_003", &create_winIVRSystem_IVRSystem_003, &destroy_winIVRSystem_IVRSystem_003}, + {"IVRCompositor_005", &create_winIVRCompositor_IVRCompositor_005, &destroy_winIVRCompositor_IVRCompositor_005}, diff --git a/vrclient_x64/win_destructors.h b/vrclient_x64/win_destructors.h new file mode 100644 index 00000000..248ee497 --- /dev/null +++ b/vrclient_x64/win_destructors.h @@ -0,0 +1,72 @@ +extern void destroy_winIVRSystem_IVRSystem_019(void *); +extern void destroy_winIVRApplications_IVRApplications_006(void *); +extern void destroy_winIVRSettings_IVRSettings_002(void *); +extern void destroy_winIVRChaperone_IVRChaperone_003(void *); +extern void destroy_winIVRChaperoneSetup_IVRChaperoneSetup_005(void *); +extern void destroy_winIVRCompositor_IVRCompositor_022(void *); +extern void destroy_winIVRNotifications_IVRNotifications_002(void *); +extern void destroy_winIVROverlay_IVROverlay_018(void *); +extern void destroy_winIVRRenderModels_IVRRenderModels_005(void *); +extern void destroy_winIVRExtendedDisplay_IVRExtendedDisplay_001(void *); +extern void destroy_winIVRTrackedCamera_IVRTrackedCamera_003(void *); +extern void destroy_winIVRScreenshots_IVRScreenshots_001(void *); +extern void destroy_winIVRResources_IVRResources_001(void *); +extern void destroy_winIVRDriverManager_IVRDriverManager_001(void *); +extern void destroy_winIVRClientCore_IVRClientCore_003(void *); +extern void destroy_winIVRSystem_IVRSystem_017(void *); +extern void destroy_winIVROverlay_IVROverlay_017(void *); +extern void destroy_winIVRCompositor_IVRCompositor_021(void *); +extern void destroy_winIVROverlay_IVROverlay_016(void *); +extern void destroy_winIVRSystem_IVRSystem_016(void *); +extern void destroy_winIVRCompositor_IVRCompositor_020(void *); +extern void destroy_winIVRClientCore_IVRClientCore_002(void *); +extern void destroy_winIVRSystem_IVRSystem_015(void *); +extern void destroy_winIVROverlay_IVROverlay_014(void *); +extern void destroy_winIVRCompositor_IVRCompositor_019(void *); +extern void destroy_winIVRSystem_IVRSystem_014(void *); +extern void destroy_winIVRCompositor_IVRCompositor_018(void *); +extern void destroy_winIVROverlay_IVROverlay_013(void *); +extern void destroy_winIVRSystem_IVRSystem_012(void *); +extern void destroy_winIVRCompositor_IVRCompositor_016(void *); +extern void destroy_winIVRSettings_IVRSettings_001(void *); +extern void destroy_winIVRApplications_IVRApplications_005(void *); +extern void destroy_winIVRCompositor_IVRCompositor_015(void *); +extern void destroy_winIVROverlay_IVROverlay_012(void *); +extern void destroy_winIVRTrackedCamera_IVRTrackedCamera_002(void *); +extern void destroy_winIVRCompositor_IVRCompositor_014(void *); +extern void destroy_winIVROverlay_IVROverlay_011(void *); +extern void destroy_winIVRCompositor_IVRCompositor_013(void *); +extern void destroy_winIVRSystem_IVRSystem_011(void *); +extern void destroy_winIVRApplications_IVRApplications_004(void *); +extern void destroy_winIVROverlay_IVROverlay_010(void *); +extern void destroy_winIVRRenderModels_IVRRenderModels_004(void *); +extern void destroy_winIVRCompositor_IVRCompositor_012(void *); +extern void destroy_winIVRApplications_IVRApplications_003(void *); +extern void destroy_winIVRCompositor_IVRCompositor_011(void *); +extern void destroy_winIVRRenderModels_IVRRenderModels_002(void *); +extern void destroy_winIVRSystem_IVRSystem_010(void *); +extern void destroy_winIVRApplications_IVRApplications_002(void *); +extern void destroy_winIVRChaperoneSetup_IVRChaperoneSetup_004(void *); +extern void destroy_winIVRCompositor_IVRCompositor_010(void *); +extern void destroy_winIVROverlay_IVROverlay_008(void *); +extern void destroy_winIVRTrackedCamera_IVRTrackedCamera_001(void *); +extern void destroy_winIVRCompositor_IVRCompositor_009(void *); +extern void destroy_winIVRSystem_IVRSystem_009(void *); +extern void destroy_winIVROverlay_IVROverlay_007(void *); +extern void destroy_winIVRSystem_IVRSystem_006(void *); +extern void destroy_winIVRApplications_IVRApplications_001(void *); +extern void destroy_winIVRChaperone_IVRChaperone_002(void *); +extern void destroy_winIVRCompositor_IVRCompositor_008(void *); +extern void destroy_winIVRNotifications_IVRNotifications_001(void *); +extern void destroy_winIVROverlay_IVROverlay_005(void *); +extern void destroy_winIVRRenderModels_IVRRenderModels_001(void *); +extern void destroy_winIVRSystem_IVRSystem_005(void *); +extern void destroy_winIVRCompositor_IVRCompositor_007(void *); +extern void destroy_winIVROverlay_IVROverlay_004(void *); +extern void destroy_winIVROverlay_IVROverlay_003(void *); +extern void destroy_winIVROverlay_IVROverlay_002(void *); +extern void destroy_winIVRSystem_IVRSystem_004(void *); +extern void destroy_winIVRCompositor_IVRCompositor_006(void *); +extern void destroy_winIVROverlay_IVROverlay_001(void *); +extern void destroy_winIVRSystem_IVRSystem_003(void *); +extern void destroy_winIVRCompositor_IVRCompositor_005(void *);