blob: a5887df802dc2602b64b3341277387daeda9e2d1 (
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
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#ifndef _INTEROP_REFERENCETRACKERTYPES_H_
#define _INTEROP_REFERENCETRACKERTYPES_H_
#include <unknwn.h>
// Documentation found at https://docs.microsoft.com/windows/win32/api/windows.ui.xaml.hosting.referencetracker/
class DECLSPEC_UUID("64bd43f8-bfee-4ec4-b7eb-2935158dae21") IReferenceTrackerTarget : public IUnknown
{
public:
STDMETHOD_(ULONG, AddRefFromReferenceTracker)() = 0;
STDMETHOD_(ULONG, ReleaseFromReferenceTracker)() = 0;
STDMETHOD(Peg)() = 0;
STDMETHOD(Unpeg)() = 0;
};
class DECLSPEC_UUID("29a71c6a-3c42-4416-a39d-e2825a07a773") IReferenceTrackerHost : public IUnknown
{
public:
STDMETHOD(DisconnectUnusedReferenceSources)(_In_ DWORD dwFlags) = 0;
STDMETHOD(ReleaseDisconnectedReferenceSources)() = 0;
STDMETHOD(NotifyEndOfReferenceTrackingOnThread)() = 0;
STDMETHOD(GetTrackerTarget)(_In_ IUnknown* obj, _Outptr_ IReferenceTrackerTarget** ppNewReference) = 0;
STDMETHOD(AddMemoryPressure)(_In_ UINT64 bytesAllocated) = 0;
STDMETHOD(RemoveMemoryPressure)(_In_ UINT64 bytesAllocated) = 0;
};
class DECLSPEC_UUID("3cf184b4-7ccb-4dda-8455-7e6ce99a3298") IReferenceTrackerManager : public IUnknown
{
public:
STDMETHOD(ReferenceTrackingStarted)() = 0;
STDMETHOD(FindTrackerTargetsCompleted)(_In_ BOOL bWalkFailed) = 0;
STDMETHOD(ReferenceTrackingCompleted)() = 0;
STDMETHOD(SetReferenceTrackerHost)(_In_ IReferenceTrackerHost *pCLRServices) = 0;
};
class DECLSPEC_UUID("04b3486c-4687-4229-8d14-505ab584dd88") IFindReferenceTargetsCallback : public IUnknown
{
public:
STDMETHOD(FoundTrackerTarget)(_In_ IReferenceTrackerTarget* target) = 0;
};
class DECLSPEC_UUID("11d3b13a-180e-4789-a8be-7712882893e6") IReferenceTracker : public IUnknown
{
public:
STDMETHOD(ConnectFromTrackerSource)() = 0;
STDMETHOD(DisconnectFromTrackerSource)() = 0;
STDMETHOD(FindTrackerTargets)(_In_ IFindReferenceTargetsCallback *pCallback) = 0;
STDMETHOD(GetReferenceTrackerManager)(_Outptr_ IReferenceTrackerManager **ppTrackerManager) = 0;
STDMETHOD(AddRefFromTrackerSource)() = 0;
STDMETHOD(ReleaseFromTrackerSource)() = 0;
STDMETHOD(PegFromTrackerSource)() = 0;
};
#endif // _INTEROP_REFERENCETRACKERTYPES_H_
|