Re: msvcrt: Partially implement type_info::name_internal_method()
Nikolay Sivov <nsivov(a)codeweavers.com> writes:
@@ -260,3 +307,24 @@ int CDECL _atoflt( _CRT_FLOAT *value, char *str ) { return _atoflt_l( value, str, NULL ); } + +/********************************************************************* + * ?_name_internal_method(a)type_info@@QBEPBDPAU__type_info_node@@@Z (MSVCR90.@) + */ +DEFINE_THISCALL_WRAPPER(MSVCRT_type_info_name_internal_method,8) +const char * __thiscall MSVCRT_type_info_name_internal_method(type_info * _this, struct __type_info_node *node) +{ + /* this is a forward to type_info::name() */ +#ifdef __i386__ + static const char *typeinfo_name = "?name(a)type_info@@QBEPBDXZ"; + void* (WINAPI *p)(void*); +#else + static const char typeinfo_name[] = "?name(a)type_info@@QEBAPEBDXZ"; + void* (__cdecl *p)(void*); +#endif + static int once; + + if (node && !once++) FIXME("type_info_node parameter ignored\n"); + p = (void*)GetProcAddress(GetModuleHandleA("msvcrt.dll"), typeinfo_name); + return call_func1(p, _this); +}
I think it would be better to duplicate the implementation after all. Sorry for misleading you with the GetProcAddress suggestion, I hadn't realized that it would require the thiscall mess. -- Alexandre Julliard julliard(a)winehq.org
participants (1)
-
Alexandre Julliard