aboutsummaryrefslogtreecommitdiff
path: root/src/dnchost/dncutil.h
blob: 85eda3b22172c87158b4b68a7c599675c2a3cfd5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#pragma once
// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.

typedef IBootstrapperApplicationFactory* (STDMETHODCALLTYPE* PFNCREATEBAFACTORY)(
    __in LPCWSTR wzBaFactoryAssemblyName,
    __in LPCWSTR wzBaFactoryAssemblyPath
    );

struct HOSTFXR_STATE
{
    LPWSTR sczHostfxrPath;
    hostfxr_handle hostContextHandle;
    hostfxr_initialize_for_dotnet_command_line_fn pfnHostfxrInitializeForApp;
    hostfxr_get_runtime_properties_fn pfnHostfxrGetRuntimeProperties;
    hostfxr_set_error_writer_fn pfnHostfxrSetErrorWriter;
    hostfxr_close_fn pfnHostfxrClose;
    hostfxr_get_runtime_delegate_fn pfnHostfxrGetRuntimeDelegate;
    get_function_pointer_fn pfnGetFunctionPointer;
    coreclr_initialize_ptr pfnCoreclrInitialize;
    coreclr_create_delegate_ptr pfnCoreclrCreateDelegate;
    void* pClrHandle;
    UINT dwDomainId;
};

HRESULT DnchostLoadRuntime(
    __in HOSTFXR_STATE* pState,
    __in LPCWSTR wzNativeHostPath,
    __in LPCWSTR wzManagedHostPath,
    __in LPCWSTR wzDepsJsonPath,
    __in LPCWSTR wzRuntimeConfigPath
    );

HRESULT DnchostCreateFactory(
    __in HOSTFXR_STATE* pState,
    __in LPCWSTR wzBaFactoryAssemblyName,
    __in LPCWSTR wzBaFactoryAssemblyPath,
    __out IBootstrapperApplicationFactory** ppAppFactory
    );