47 const WCHAR dotnet_key[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'.',
'N',
'E',
'T',
'F',
'r',
'a',
'm',
'e',
'w',
'o',
'r',
'k',
'\\',0};
48 const WCHAR install_root[] = {
'I',
'n',
's',
't',
'a',
'l',
'l',
'R',
'o',
'o',
't',0};
89 IClassFactory_AddRef( iface );
140 hr = IUnknown_QueryInterface( punk,
riid, ppobj );
142 IUnknown_Release( punk );
146 WARN(
"Cannot create an instance object. 0x%08x\n",
hr);
153 FIXME(
"(%p)->(%d),stub!\n",iface,dolock);
186 ICLRRuntimeInfo_Release(
info);
200 case DLL_WINE_PREATTACH:
218 FIXME(
"Directly running .NET applications not supported.\n");
224 TRACE(
"(%x)\n", exitCode);
231 TRACE(
"(%p): stub\n", imageBase);
257 ICLRRuntimeInfo_Release(
info);
280 ICLRRuntimeInfo_Release(
info);
294 TRACE(
"(%s, %s, %s, 0x%08x, 0x%08x, %p, 0x%08x, %p, %p, 0x%08x, %p)\n",
debugstr_w(pExe),
295 debugstr_w(pwszVersion),
debugstr_w(pConfigurationFile), startupFlags, runtimeInfoFlags, pDirectory,
296 dwDirectory, dwDirectoryLength, pVersion,
cchBuffer, dwlength);
298 if (!dwDirectoryLength) dwDirectoryLength = &length_dummy;
300 if (!dwlength) dwlength = &length_dummy;
307 ret = ICLRRuntimeInfo_GetVersionString(
info, pVersion, dwlength);
312 pVersion[0] = pwszVersion[0];
314 *dwDirectoryLength = dwDirectory;
315 ret = ICLRRuntimeInfo_GetRuntimeDirectory(
info, pDirectory, dwDirectoryLength);
318 ICLRRuntimeInfo_Release(
info);
331 return GetRequestedRuntimeInfo(pExe,
NULL,
NULL, 0, 0,
NULL, 0,
NULL, pVersion,
cchBuffer, dwlength);
356 static const WCHAR default_version[] = {
'v',
'1',
'.',
'1',
'.',
'4',
'3',
'2',
'2',0};
357 static const WCHAR slash[] = {
'\\',0};
367 ERR(
"error reading registry key for installroot\n");
393 FIXME(
"(%p %p %p): stub\n", hostCallback, pBeginHostSetup, pEndHostSetup);
399 FIXME(
"(0x%08x): stub\n", fFlags);
418 if ((iBufLen <= 0) || !
pBuffer)
422 FIXME(
"(%d, %x, %p, %d, %d, %p): semi-stub\n",
culture, resId,
pBuffer, iBufLen, bQuiet, pBufLen);
454 ICLRRuntimeInfo_Release(
info);
483 ICLRRuntimeInfo_Release(
info);
494 ret = IUnknown_QueryInterface(unk,
riid, ppObject);
495 IUnknown_Release(unk);
521 const WCHAR v2_0[] = {
'v',
'2',
'.',
'0',
'.',
'5',
'0',
'7',
'2',
'7',0};
525 if(nDebugVersion < 1 || nDebugVersion > 4)
541 if(nDebugVersion != 3)
547 hr = ICLRRuntimeInfo_GetInterface(runtimeinfo, &CLSID_CLRDebuggingLegacy, &IID_ICorDebug, (
void**)
ppv);
549 ICLRRuntimeInfo_Release(runtimeinfo);
585 This->clsid = *rclsid;
587 hr = IClassFactory_QueryInterface( &
This->IClassFactory_iface,
riid,
ppv );
588 IClassFactory_Release(&
This->IClassFactory_iface);
#define InterlockedIncrement
#define InterlockedDecrement
HRESULT WINAPI DllCanUnloadNow(void)
const GUID IID_IClassFactory
#define RegCloseKey(hKey)
#define CLR_E_SHIM_RUNTIMEEXPORT
void runtimehost_uninit(void)
void runtimehost_init(void)
HRESULT RuntimeHost_CreateManagedInstance(RuntimeHost *This, LPCWSTR name, MonoDomain *domain, MonoObject **result)
HRESULT RuntimeHost_GetIUnknownForObject(RuntimeHost *This, MonoObject *obj, IUnknown **ppUnk)
HRESULT create_monodata(REFIID riid, LPVOID *ppObj)
static IUnknown **const WCHAR v2_0[]
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
static const WCHAR szDllName[]
#define ERROR_CALL_NOT_IMPLEMENTED
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define HeapFree(x, y, z)
#define WideCharToMultiByte
static const WCHAR version[]
static const WCHAR culture[]
static DWORD DWORD * dwLength
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
VOID WINAPI ExitProcess(IN UINT uExitCode)
GLuint GLsizei GLsizei * length
static IN DWORD IN LPVOID lpvReserved
_In_ BOOL _In_ HANDLE hProcess
#define memcpy(s1, s2, n)
static LPCSTR DWORD void * pvReserved
static LPCWSTR LPVOID HMODULE * phModDll
@ RUNTIME_INFO_UPGRADE_VERSION
HRESULT(__stdcall * FLockClrVersionCallback)(void)
INT64 WINAPI ND_RI8(const void *ptr, INT offset)
BOOL WINAPI StrongNameSignatureVerificationEx(LPCWSTR filename, BOOL forceVerification, BOOL *pVerified)
HRESULT WINAPI _CorValidateImage(PVOID *imageBase, LPCWSTR imageName)
static ULONG WINAPI mscorecf_AddRef(IClassFactory *iface)
void WINAPI CoEEShutDownCOM(void)
HRESULT WINAPI LoadStringRC(UINT resId, LPWSTR pBuffer, int iBufLen, int bQuiet)
HRESULT WINAPI CorBindToCurrentRuntime(LPCWSTR filename, REFCLSID rclsid, REFIID riid, LPVOID *ppv)
static mscorecf * impl_from_IClassFactory(IClassFactory *iface)
HRESULT WINAPI DllRegisterServer(void)
HRESULT WINAPI GetAssemblyMDImport(LPCWSTR szFileName, REFIID riid, IUnknown **ppIUnk)
VOID WINAPI _CorImageUnloading(PVOID imageBase)
HRESULT WINAPI GetRequestedRuntimeVersion(LPWSTR pExe, LPWSTR pVersion, DWORD cchBuffer, DWORD *dwlength)
void WINAPI ND_WI8(void *ptr, INT offset, INT64 val)
HRESULT WINAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, LPVOID *ppInterface)
void WINAPI CorExitProcess(int exitCode)
char * WtoA(LPCWSTR wstr)
INT WINAPI ND_RI4(const void *ptr, INT offset)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
HRESULT WINAPI CreateConfigStream(LPCWSTR filename, IStream **stream)
static HRESULT WINAPI mscorecf_QueryInterface(IClassFactory *iface, REFIID riid, LPVOID *ppobj)
BOOL WINAPI StrongNameSignatureVerification(LPCWSTR filename, DWORD inFlags, DWORD *pOutFlags)
HRESULT WINAPI CreateDebuggingInterfaceFromVersion(int nDebugVersion, LPCWSTR version, IUnknown **ppv)
HRESULT WINAPI GetRequestedRuntimeInfo(LPCWSTR pExe, LPCWSTR pwszVersion, LPCWSTR pConfigurationFile, DWORD startupFlags, DWORD runtimeInfoFlags, LPWSTR pDirectory, DWORD dwDirectory, DWORD *dwDirectoryLength, LPWSTR pVersion, DWORD cchBuffer, DWORD *dwlength)
void WINAPI ND_WU1(void *ptr, INT offset, BYTE val)
static ULONG WINAPI mscorecf_Release(IClassFactory *iface)
HRESULT WINAPI CorBindToRuntimeHost(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, LPCWSTR pwszHostConfigFile, VOID *pReserved, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT WINAPI GetCORVersion(LPWSTR pbuffer, DWORD cchBuffer, DWORD *dwLength)
HRESULT WINAPI DllUnregisterServer(void)
HRESULT WINAPI LoadStringRCEx(LCID culture, UINT resId, LPWSTR pBuffer, int iBufLen, int bQuiet, int *pBufLen)
HRESULT WINAPI GetCORSystemDirectory(LPWSTR pbuffer, DWORD cchBuffer, DWORD *dwLength)
HRESULT WINAPI GetVersionFromProcess(HANDLE hProcess, LPWSTR pVersion, DWORD cchBuffer, DWORD *dwLength)
__int32 WINAPI _CorExeMain2(PBYTE ptrMemory, DWORD cntMemory, LPWSTR imageName, LPWSTR loaderName, LPWSTR cmdLine)
INT WINAPI ND_RU1(const void *ptr, INT offset)
void WINAPI ND_CopyObjSrc(const void *src, INT offset, void *dst, INT size)
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT WINAPI CoInitializeCor(DWORD fFlags)
static HINSTANCE MSCOREE_hInstance
static HRESULT WINAPI mscorecf_LockServer(IClassFactory *iface, BOOL dolock)
HRESULT WINAPI GetRealProcAddress(LPCSTR procname, void **ppv)
static BOOL get_install_root(LPWSTR install_dir)
HRESULT WINAPI GetFileVersion(LPCWSTR szFilename, LPWSTR szBuffer, DWORD cchBuffer, DWORD *dwLength)
static HRESULT WINAPI mscorecf_CreateInstance(IClassFactory *iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
void WINAPI ND_WI4(void *ptr, INT offset, INT val)
HRESULT WINAPI LockClrVersion(FLockClrVersionCallback hostCallback, FLockClrVersionCallback *pBeginHostSetup, FLockClrVersionCallback *pEndHostSetup)
void WINAPI ND_CopyObjDst(const void *src, void *dst, INT offset, INT size)
HRESULT(* fnCreateInstance)(REFIID riid, LPVOID *ppObj)
HRESULT WINAPI CorBindToRuntimeEx(LPWSTR szVersion, LPWSTR szBuildFlavor, DWORD nflags, REFCLSID rslsid, REFIID riid, LPVOID *ppv)
HRESULT WINAPI LoadLibraryShim(LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE *phModDll)
INT WINAPI ND_RI2(const void *ptr, INT offset)
void WINAPI ND_WI2(void *ptr, INT offset, SHORT val)
static const struct IClassFactoryVtbl mscorecf_vtbl
STDAPI ClrCreateManagedInstance(LPCWSTR pTypeName, REFIID riid, void **ppObject)
struct _MonoObject MonoObject
#define IsEqualGUID(rguid1, rguid2)
HRESULT __wine_unregister_resources(HMODULE module) DECLSPEC_HIDDEN
HRESULT __wine_register_resources(HMODULE module) DECLSPEC_HIDDEN
IClassFactory IClassFactory_iface
fnCreateInstance pfnCreateInstance
#define CONTAINING_RECORD(address, type, field)
#define CLASS_E_NOAGGREGATION
#define CLASS_E_CLASSNOTAVAILABLE
#define HKEY_LOCAL_MACHINE