summaryrefslogtreecommitdiff
path: root/src/inc/clrprivappxhosting.idl
blob: 2f2b5e979f632331a9577d7f09838f416031929c (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

import "unknwn.idl";

// Forward declarations
interface ICLRPrivAppXDomain;
interface ICLRPrivAppXRuntime;

/**************************************************************************************
 ** ICLRPrivAppXRuntime
 **************************************************************************************/
[
    uuid(6D2DF5A4-FA3A-4481-8BA0-0422FD21720F), 
    version(1.0),
    local
] 
interface ICLRPrivAppXRuntime : IUnknown
{
    /**********************************************************************************
     ** Use to create and initialize the AppX domain. Should only be called once; all
     ** subsequent calls will fail. Thread safe.
     **
     ** wzFriendlyName - the domain friendly name.
     **********************************************************************************/
    HRESULT InitializeAppXDomain(
        [in]  LPCWSTR  wzFriendlyName);

    /**********************************************************************************
     ** Use to retrieve the AppX domain. InitializeAppXDomain must have been
     ** successfully called previously. May be called multiple times. Thread safe.
     **
     ** riidDomain - the IID of the interface to be returned in ppvDomain.
     ** ppIAppXDomain - receives the ICLRPrivAppXDomain interface.
     **********************************************************************************/
    HRESULT GetAppXDomain(
        [in]  REFIID   riidDomain,
        [out] LPVOID * ppvDomain);
}

/**************************************************************************************
 ** ICLRPrivAppXDomain
 **************************************************************************************/
[
    uuid(6633398E-823D-4361-B30E-824043BD4686), 
    version(1.0),
    local
] 
interface ICLRPrivAppXDomain : IUnknown
{
    /**********************************************************************************
     ** Use to create a delegate to a static method.
     **
     ** wzAssemblyName - the name of the assembly that contains the target type.
     ** wzTypeName - the name of the type that contains the target method.
     ** wzMethodName - the static method for which to create a delegate.
     ** ppvDelegate - receives the native-callable function pointer corresponding to
     **     the specified static method.
     **********************************************************************************/
    HRESULT CreateDelegate(
        [in] LPCWSTR wzAssemblyName,
        [in] LPCWSTR wzTypeName,
        [in] LPCWSTR wzMethodName,
        [out] LPVOID * ppvDelegate);
};