48DEFINE_GUID(IID__AppDomain, 0x05f696dc,0x2b29,0x3663,0xad,0x8b,0xc4,0x38,0x9c,0xf2,0xa7,0x13);
64 0, 0, { (
DWORD_PTR)(__FILE__
": fixup_list_cs") }
122 if (prev_domain ==
domain)
133 if (prev_domain !=
NULL)
134 mono_domain_set(prev_domain,
FALSE);
141 char *base_dirA, *config_pathA, *slash;
143 static BOOL configured_domain;
149 if (configured_domain)
goto end;
156 config_path = exe_config;
159 config_pathA =
WtoA(config_path);
175 slash =
strrchr(base_dirA,
'\\');
179 TRACE(
"setting base_dir: %s, config_path: %s\n", base_dirA, config_pathA);
180 mono_domain_set_config(*
result, base_dirA, config_pathA);
187 configured_domain =
TRUE;
195 const char *
namespace,
const char *
typename,
const char *methodname,
int arg_count,
212 ERR(
"Cannot load assembly %s, status=%i\n", assemblyname,
status);
219 ERR(
"Couldn't get assembly image for %s\n", assemblyname);
227 ERR(
"Couldn't get class %s.%s from image\n",
namespace,
typename);
234 ERR(
"Couldn't get method %s from class %s.%s\n", methodname,
namespace,
typename);
242 const char *assemblyname,
const char *
namespace,
const char *
typename,
const char *methodname,
249 static const char *get_hresult =
"get_HResult";
257 if (methodname != get_hresult)
261 exc,
NULL, 0, &hr_object);
277 const char *assemblyname,
const char *
namespace,
const char *
typename,
const char *methodname,
298 ERR(
"Method %s.%s:%s raised an exception, hr=%lx\n",
namespace,
typename, methodname,
hr);
307 const char *assemblyname,
const char *
namespace,
const char *
typename,
const char *methodname,
318 ERR(
"\"this\" object cannot be null\n");
334 ERR(
"Object %p does not support method %s.%s:%s\n",
obj,
namespace,
typename, methodname);
342 ERR(
"Method %s.%s:%s raised an exception, hr=%lx\n",
namespace,
typename, methodname,
hr);
438 new_domain,
NULL, 0, &
id);
466 hr = IUnknown_QueryInterface(unk, &IID__AppDomain, (
void**)
punk);
468 IUnknown_Release(unk);
484 ERR(
"Cannot get domain, hr=%lx\n",
hr);
493 ERR(
"Process should have exited\n");
525 ICorRuntimeHost_AddRef( iface );
551 FIXME(
"stub %p\n", iface);
558 FIXME(
"stub %p\n", iface);
566 FIXME(
"stub %p\n", iface);
574 FIXME(
"stub %p\n", iface);
582 FIXME(
"stub %p\n", iface);
591 FIXME(
"stub %p\n", iface);
599 FIXME(
"stub %p\n", iface);
617 FIXME(
"stub %p\n", iface);
627 return ICorRuntimeHost_CreateDomainEx(iface, friendlyName,
NULL,
NULL, appDomain);
638 TRACE(
"(%p)\n", iface);
654 FIXME(
"stub %p\n", iface);
663 FIXME(
"stub %p\n", iface);
671 FIXME(
"stub %p\n", iface);
686 if (!friendlyName || !appDomain)
695 TRACE(
"(%p)\n", iface);
715 static const WCHAR classnameW[] = {
'S',
'y',
's',
't',
'e',
'm',
'.',
'A',
'p',
'p',
'D',
'o',
'm',
'a',
'i',
'n',
'S',
'e',
't',
'u',
'p',
',',
'm',
's',
'c',
'o',
'r',
'l',
'i',
'b',0};
717 TRACE(
"(%p)\n", iface);
734 FIXME(
"stub %p\n", iface);
742 FIXME(
"stub %p\n", iface);
750 FIXME(
"stub %p\n", iface);
798 ICLRRuntimeHost_AddRef( iface );
806 return ICorRuntimeHost_AddRef(&
This->ICorRuntimeHost_iface);
812 return ICorRuntimeHost_Release(&
This->ICorRuntimeHost_iface);
827 FIXME(
"(%p)\n", iface);
834 FIXME(
"(%p,%p)\n", iface, pHostControl);
841 FIXME(
"(%p,%p)\n", iface, pCLRControl);
846 DWORD dwAppDomainId,
BOOL fWaitUntilDone)
848 FIXME(
"(%p,%lu,%i)\n", iface, dwAppDomainId, fWaitUntilDone);
860 DWORD *pdwAppDomainId)
862 FIXME(
"(%p,%p)\n", iface, pdwAppDomainId);
868 DWORD dwActivationData,
LPCWSTR *ppwzActivationData,
int *pReturnValue)
870 FIXME(
"(%p,%s,%lu,%lu)\n", iface,
debugstr_w(pwzAppFullName), dwManifestPaths, dwActivationData);
904 classA =
WtoA(pwzTypeName);
919 methodA =
WtoA(pwzMethodName);
928 argsA =
WtoA(pwzArgument);
1034 mono_runtime_object_init(
obj);
1083 size +=
sizeof(
char*);
1086 size +=
sizeof(
char*);
1104# define CAN_FIXUP_VTABLE 1
1106#include "pshpack1.h"
1149# define CAN_FIXUP_VTABLE 1
1151#include "pshpack1.h"
1191 {0x55,0x48,0x89,0xE5, 0x48,0x81,0xEC,0x80,0x00,0x00,0x00},
1192 {0x48,0x89,0x4C,0x24,0x60, 0x48,0x89,0x54,0x24,0x68,
1193 0x4C,0x89,0x44,0x24,0x70, 0x4C,0x89,0x4C,0x24,0x78,
1194 0x0F,0x29,0x44,0x24,0x20, 0x0F,0x29,0x4C,0x24,0x30,
1195 0x0F,0x29,0x54,0x24,0x40, 0x0F,0x29,0x5C,0x24,0x50,
1202 {0x48,0x8B,0x4C,0x24,0x60, 0x48,0x8B,0x54,0x24,0x68,
1203 0x4C,0x8B,0x44,0x24,0x70, 0x4C,0x8B,0x4C,0x24,0x78,
1204 0x0F,0x28,0x44,0x24,0x20, 0x0F,0x28,0x4C,0x24,0x30,
1205 0x0F,0x28,0x54,0x24,0x40, 0x0F,0x28,0x5C,0x24,0x50,
1207 {0x48,0x89,0xEC, 0x5D},
1210 {0x48,0x8B,0x00,0xFF,0xE0}
1217# define CAN_FIXUP_VTABLE 0
1270 if (
fixup->done)
return;
1329 ICLRRuntimeInfo_Release(
info);
1335 ERR(
"unable to fixup vtable, hr=%lx, status=%d\n",
hr,
status);
1356 fixup->fixup = vtable_fixup;
1373 for (
i=0;
i<vtable_fixup->
count;
i++)
1384 ERR(
"unsupported vtable fixup flags %x\n", vtable_fixup->
type);
1398 ULONG vtable_fixup_count,
i;
1402 for (
i=0;
i<vtable_fixup_count;
i++)
1404 else if (vtable_fixup_count)
1405 FIXME(
"cannot fixup vtable; expect a crash\n");
1420 ERR(
"failed to read CLR headers, hr=%lx\n",
hr);
1425 static const WCHAR dotconfig[] = {
'.',
'c',
'o',
'n',
'f',
'i',
'g',0};
1426 static const WCHAR scW[] = {
';',0};
1435 SIZE_T config_file_dir_size;
1437 ICLRRuntimeInfo *
info;
1441 int i, number_of_private_paths = 0;
1459 wcscat(config_file, dotconfig);
1468 if (parsed_config.
private_path[
i] ==
';') number_of_private_paths++;
1470 config_file_dir_size = (
wcsrchr(config_file,
'\\') - config_file) + 1;
1471 priv_path =
malloc((number_of_private_paths + 1) *
sizeof(
WCHAR *));
1478 for (
i = 0;
i < number_of_private_paths;
i++)
1481 memcpy(priv_path[
i], config_file, config_file_dir_size *
sizeof(
WCHAR));
1482 wcscpy(priv_path[
i] + config_file_dir_size,
temp);
1489 priv_path[number_of_private_paths] =
NULL;
1491 ERR(
"private_path was already set\n");
1515 mono_callspec_set_assembly(
assembly);
1528 ICLRRuntimeInfo_Release(
info);
1537 mono_thread_manage();
1538 mono_runtime_quit();
1561 if (!NativeEntryPoint)
1567 if (NativeEntryPoint)
1571 ERR(
"failed to read CLR headers, hr=%lx\n",
hr);
1608 This->version = runtime_version;
1610 This->lock.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": RuntimeHost.lock");
1625 IUnknown_AddRef(unk);
1630 IUnknown_AddRef(unk);
1650 hr = IUnknown_QueryInterface(unk,
riid,
ppv);
1652 IUnknown_Release(unk);
1664 ACTCTX_SECTION_KEYED_DATA
guid_info = {
sizeof(ACTCTX_SECTION_KEYED_DATA) };
1665 ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION *assembly_info =
NULL;
1666 SIZE_T bytes_assembly_info;
1670 const WCHAR *ptr_path_start, *ptr_path_end;
1672 WCHAR str_dll[] = {
'.',
'd',
'l',
'l',0};
1679 ERR(
"Failed to find guid: %ld\n",
error);
1684 assembly_info =
malloc(bytes_assembly_info);
1686 AssemblyDetailedInformationInActivationContext, assembly_info, bytes_assembly_info, &bytes_assembly_info))
1693 class_data = (
void *)((
char *)redirect_data + redirect_data->
clrdata_offset);
1695 ptr_name = (
char *)class_data + class_data->
name_offset;
1698 ERR(
"Buffer is too small\n");
1703 ptr_path_start = assembly_info->lpAssemblyEncodedAssemblyIdentity;
1704 ptr_path_end =
wcschr(ptr_path_start,
',');
1705 memcpy(
path, ptr_path_start, (
char*)ptr_path_end - (
char*)ptr_path_start);
1712 ERR(
"Buffer is too small\n");
1722 free(assembly_info);
1730#define CHARS_IN_GUID 39
1734 static const WCHAR wszFileSlash[] =
L"file:///";
1735 static const WCHAR wszCLSIDSlash[] =
L"CLSID\\";
1736 static const WCHAR wszInprocServer32[] =
L"\\InprocServer32";
1747 DWORD numKeys, keyLength;
1777 WARN(
"Can't read default value from Server subkey.\n");
1790 if (!pDllGetClassObject)
1802 IClassFactory_Release( classfactory );
1812 WARN(
"Class value cannot be found.\n");
1819 dwBufLen =
sizeof( codebase );
1839 WARN(
"CodeBase value cannot be found, trying Assembly.\n");
1841 res =
RegQueryInfoKeyW(
key, 0, 0, 0, &numKeys, 0, 0, 0, 0, 0, 0, 0);
1854 dwBufLen =
sizeof( assemblyname );
1862 dwBufLen =
sizeof( assemblyname );
1879 WARN(
"Attempt to load from the application directory.\n");
1941 ERR(
"Couldn't get assembly image\n");
1954 ERR(
"Couldn't get class from image\n");
1963 mono_runtime_object_init(
result);
1970 IUnknown_Release(unk);
1985 ICLRRuntimeInfo_Release(
info);
static DWORD const fdwReason
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
const GUID IID_IClassFactory
#define RegCloseKey(hKey)
HRESULT CorDebug_Create(ICLRRuntimeHost *runtimehost, IUnknown **ppUnk)
static RuntimeHost * impl_from_ICorRuntimeHost(ICorRuntimeHost *iface)
static ULONG WINAPI corruntimehost_AddRef(ICorRuntimeHost *iface)
static HRESULT WINAPI CLRRuntimeHost_ExecuteInAppDomain(ICLRRuntimeHost *iface, DWORD dwAppDomainId, FExecuteInAppDomainCallback pCallback, void *cookie)
static HRESULT RuntimeHost_GetObjectForIUnknown(RuntimeHost *This, MonoDomain *domain, IUnknown *unk, MonoObject **obj)
static MonoDomain * domain_attach(MonoDomain *domain)
static CRITICAL_SECTION fixup_list_cs
static HRESULT WINAPI corruntimehost_Start(ICorRuntimeHost *iface)
void RuntimeHost_ExitProcess(RuntimeHost *This, INT exitcode)
static BOOL try_create_registration_free_com(REFIID clsid, WCHAR *classname, UINT classname_size, WCHAR *filename, UINT filename_size)
static HRESULT WINAPI CLRRuntimeHost_UnloadAppDomain(ICLRRuntimeHost *iface, DWORD dwAppDomainId, BOOL fWaitUntilDone)
static HRESULT WINAPI corruntimehost_SwitchOutLogicalThreadState(ICorRuntimeHost *iface, DWORD **fiberCookie)
static HRESULT WINAPI corruntimehost_QueryInterface(ICorRuntimeHost *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI corruntimehost_CurrentDomain(ICorRuntimeHost *iface, IUnknown **appDomain)
HRESULT RuntimeHost_GetInterface(RuntimeHost *This, REFCLSID clsid, REFIID riid, void **ppv)
void runtimehost_uninit(void)
HRESULT create_monodata(REFCLSID clsid, LPVOID *ppObj)
static HRESULT WINAPI CLRRuntimeHost_SetHostControl(ICLRRuntimeHost *iface, IHostControl *pHostControl)
static void FixupVTable(HMODULE hmodule)
static CRITICAL_SECTION_DEBUG fixup_list_cs_debug
static BOOL RuntimeHost_GetMethod(MonoDomain *domain, const char *assemblyname, const char *namespace, const char *typename, const char *methodname, int arg_count, MonoMethod **method)
static HANDLE dll_fixup_heap
static HRESULT RuntimeHost_GetIUnknownForDomain(RuntimeHost *This, MonoDomain *domain, IUnknown **punk)
static HRESULT WINAPI CLRRuntimeHost_Start(ICLRRuntimeHost *iface)
static HRESULT WINAPI corruntimehost_GetConfiguration(ICorRuntimeHost *iface, ICorConfiguration **pConfiguration)
static ULONG WINAPI CLRRuntimeHost_Release(ICLRRuntimeHost *iface)
static ULONG WINAPI CLRRuntimeHost_AddRef(ICLRRuntimeHost *iface)
DWORD WINAPI GetTokenForVTableEntry(HINSTANCE hinst, BYTE **ppVTEntry)
static HRESULT WINAPI corruntimehost_UnloadDomain(ICorRuntimeHost *iface, IUnknown *appDomain)
static HRESULT WINAPI CLRRuntimeHost_ExecuteInDefaultAppDomain(ICLRRuntimeHost *iface, LPCWSTR pwzAssemblyPath, LPCWSTR pwzTypeName, LPCWSTR pwzMethodName, LPCWSTR pwzArgument, DWORD *pReturnValue)
static HRESULT WINAPI corruntimehost_CreateLogicalThreadState(ICorRuntimeHost *iface)
static HRESULT WINAPI CLRRuntimeHost_GetCLRControl(ICLRRuntimeHost *iface, ICLRControl **pCLRControl)
static HRESULT WINAPI corruntimehost_GetDefaultDomain(ICorRuntimeHost *iface, IUnknown **pAppDomain)
static HRESULT RuntimeHost_DoInvoke(RuntimeHost *This, MonoDomain *domain, const char *methodname, MonoMethod *method, MonoObject *obj, void **args, MonoObject **result)
void runtimehost_init(void)
static HRESULT WINAPI corruntimehost_Stop(ICorRuntimeHost *iface)
static HRESULT WINAPI corruntimehost_CreateDomainEx(ICorRuntimeHost *iface, LPCWSTR friendlyName, IUnknown *setup, IUnknown *evidence, IUnknown **appDomain)
static HRESULT WINAPI CLRRuntimeHost_GetCurrentAppDomainId(ICLRRuntimeHost *iface, DWORD *pdwAppDomainId)
static HRESULT WINAPI CLRRuntimeHost_QueryInterface(ICLRRuntimeHost *iface, REFIID riid, void **ppvObject)
static const struct ICorRuntimeHostVtbl corruntimehost_vtbl
static HRESULT WINAPI corruntimehost_SwitchInLogicalThreadState(ICorRuntimeHost *iface, DWORD *fiberCookie)
static struct list dll_fixups
static HRESULT WINAPI corruntimehost_EnumDomains(ICorRuntimeHost *iface, HDOMAINENUM *hEnum)
static HRESULT WINAPI corruntimehost_CreateDomain(ICorRuntimeHost *iface, LPCWSTR friendlyName, IUnknown *identityArray, IUnknown **appDomain)
static const struct ICLRRuntimeHostVtbl CLRHostVtbl
static HRESULT WINAPI corruntimehost_MapFile(ICorRuntimeHost *iface, HANDLE hFile, HMODULE *mapAddress)
static HRESULT RuntimeHost_AddDomain(RuntimeHost *This, const WCHAR *name, IUnknown *setup, IUnknown *evidence, MonoDomain **result)
HRESULT RuntimeHost_CreateManagedInstance(RuntimeHost *This, LPCWSTR name, MonoDomain *domain, MonoObject **result)
BOOL WINAPI _CorDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
static HRESULT WINAPI corruntimehost_DeleteLogicalThreadState(ICorRuntimeHost *iface)
static HRESULT WINAPI CLRRuntimeHost_Stop(ICLRRuntimeHost *iface)
static HRESULT WINAPI corruntimehost_CloseEnum(ICorRuntimeHost *iface, HDOMAINENUM hEnum)
static ULONG WINAPI corruntimehost_Release(ICorRuntimeHost *iface)
static HRESULT RuntimeHost_VirtualInvoke(RuntimeHost *This, MonoDomain *domain, const char *assemblyname, const char *namespace, const char *typename, const char *methodname, MonoObject *obj, void **args, int arg_count, MonoObject **result)
static HRESULT WINAPI corruntimehost_CreateDomainSetup(ICorRuntimeHost *iface, IUnknown **appDomainSetup)
static HRESULT WINAPI CLRRuntimeHost_ExecuteApplication(ICLRRuntimeHost *iface, LPCWSTR pwzAppFullName, DWORD dwManifestPaths, LPCWSTR *ppwzManifestPaths, DWORD dwActivationData, LPCWSTR *ppwzActivationData, int *pReturnValue)
static HRESULT RuntimeHost_GetDefaultDomain(RuntimeHost *This, const WCHAR *config_path, MonoDomain **result)
static void get_utf8_args(int *argc, char ***argv)
HRESULT RuntimeHost_Construct(CLRRuntimeInfo *runtime_version, RuntimeHost **result)
HRESULT RuntimeHost_GetIUnknownForObject(RuntimeHost *This, MonoObject *obj, IUnknown **ppUnk)
static void domain_restore(MonoDomain *prev_domain)
static HRESULT WINAPI corruntimehost_NextDomain(ICorRuntimeHost *iface, HDOMAINENUM hEnum, IUnknown **appDomain)
static RuntimeHost * impl_from_ICLRRuntimeHost(ICLRRuntimeHost *iface)
static void CDECL ReallyFixupVTable(struct dll_fixup *fixup)
static HRESULT RuntimeHost_Invoke(RuntimeHost *This, MonoDomain *domain, const char *assemblyname, const char *namespace, const char *typename, const char *methodname, MonoObject *obj, void **args, int arg_count, MonoObject **result)
static const struct vtable_fixup_thunk thunk_template
static HRESULT WINAPI corruntimehost_CreateEvidence(ICorRuntimeHost *iface, IUnknown **evidence)
static void FixupVTable_Assembly(HMODULE hmodule, ASSEMBLY *assembly)
__int32 WINAPI _CorExeMain(void)
static HRESULT WINAPI corruntimehost_LocksHeldByLogicalThread(ICorRuntimeHost *iface, DWORD *pCount)
static void FixupVTableEntry(HMODULE hmodule, VTableFixup *vtable_fixup)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
INT WINAPI StringFromGUID2(REFGUID guid, LPOLESTR str, INT cmax)
#define DLL_PROCESS_ATTACH
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define WideCharToMultiByte
static void cleanup(void)
VOID WINAPI ReleaseActCtx(IN HANDLE hActCtx)
BOOL WINAPI QueryActCtxW(IN DWORD dwFlags, IN HANDLE hActCtx, IN PVOID pvSubInstance, IN ULONG ulInfoClass, IN PVOID pvBuffer, IN SIZE_T cbBuffer, IN OUT SIZE_T *pcbWrittenOrRequired OPTIONAL)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
VOID WINAPI ExitProcess(IN UINT uExitCode)
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
BOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags, const GUID *lpExtGuid, ULONG ulId, const GUID *lpSearchGuid, PACTCTX_SECTION_KEYED_DATA pInfo)
BOOL WINAPI PathRemoveFileSpecW(WCHAR *path)
LPWSTR WINAPI GetCommandLineW(void)
HRESULT parse_config_file(LPCWSTR filename, parsed_config_file *result)
void free_parsed_config_file(parsed_config_file *file)
_ACRTIMP wchar_t *__cdecl wcstok_s(wchar_t *, const wchar_t *, wchar_t **)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP wchar_t *__cdecl wcstok(wchar_t *, const wchar_t *)
_ACRTIMP int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t)
_ACRTIMP char *__cdecl strrchr(const char *, int)
HRESULT assembly_release(ASSEMBLY *assembly)
FxPnpStateCallbackInfo * pCallback
GLuint GLuint GLsizei GLenum type
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HANDLE WINAPI HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
BOOL WINAPI HeapDestroy(HANDLE hHeap)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
#define InterlockedCompareExchangePointer
static IN DWORD IN LPVOID lpvReserved
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static CHAR filenameA[MAX_PATH]
HRESULT assembly_get_native_entrypoint(ASSEMBLY *assembly, NativeEntryPointFunc *func)
HRESULT assembly_from_hmodule(ASSEMBLY **out, HMODULE hmodule)
HRESULT assembly_get_vtable_fixups(ASSEMBLY *assembly, VTableFixup **fixups, DWORD *count)
HRESULT(__stdcall * FExecuteInAppDomainCallback)([in] void *cookie)
char * WtoA(LPCWSTR wstr)
HRESULT WINAPI LoadLibraryShim(LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE *phModDll)
struct _MonoObject MonoObject
BOOL(WINAPI * NativeEntryPointFunc)(HINSTANCE, DWORD, LPVOID)
struct _MonoString MonoString
struct _MonoMethod MonoMethod
struct _MonoAssembly MonoAssembly
struct _MonoImage MonoImage
struct _MonoType MonoType
struct _MonoDomain MonoDomain
struct _MonoClass MonoClass
#define HEAP_CREATE_ENABLE_EXECUTE
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
LPWSTR *WINAPI CommandLineToArgvW(LPCWSTR lpCmdline, int *numargs)
LIST_ENTRY ProcessLocksList
DWORD miscstatusthumbnail
void(CDECL *function)(struct dll_fixup *fixup)
#define CONTAINING_RECORD(address, type, field)
static const var_t * current_arg
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define ERROR_SXS_KEY_NOT_FOUND
#define CLASS_E_CLASSNOTAVAILABLE
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
#define HKEY_CLASSES_ROOT