2 * Copyright (C) 2023 Mohamad Al-Jaf
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma winrt ns_prefix
23 import
"inspectable.idl";
24 import
"asyncinfo.idl";
25 import
"eventtoken.idl";
26 import
"windowscontracts.idl";
27 import
"windows.foundation.idl";
28 import
"windows.foundation.numerics.idl";
29 import
"windows.graphics.directx.idl";
30 import
"windows.graphics.directx.direct3d11.idl";
31 /* import "windows.perception.idl"; */
32 import
"windows.perception.spatial.idl";
33 import
"windows.ui.core.idl";
35 namespace Windows.Graphics.Holographic
{
36 typedef struct HolographicAdapterId HolographicAdapterId
;
38 interface IHolographicCamera
;
39 interface IHolographicFrame
;
40 interface IHolographicSpaceStatics
;
41 interface IHolographicSpaceStatics2
;
42 interface IHolographicSpaceStatics3
;
43 interface IHolographicSpaceCameraAddedEventArgs
;
44 interface IHolographicSpaceCameraRemovedEventArgs
;
46 runtimeclass HolographicCamera
;
47 runtimeclass HolographicFrame
;
48 runtimeclass HolographicSpace
;
49 runtimeclass HolographicSpaceCameraAddedEventArgs
;
50 runtimeclass HolographicSpaceCameraRemovedEventArgs
;
53 interface Windows.Foundation.TypedEventHandler
<Windows.Graphics.Holographic.HolographicSpace
*, IInspectable
*>;
54 interface Windows.Foundation.TypedEventHandler
<Windows.Graphics.Holographic.HolographicSpace
*, Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs
*>;
55 interface Windows.Foundation.TypedEventHandler
<Windows.Graphics.Holographic.HolographicSpace
*, Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs
*>;
59 contract
(Windows.Foundation.UniversalApiContract
, 2.0)
61 struct HolographicAdapterId
68 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
69 exclusiveto
(Windows.Graphics.Holographic.HolographicSpace
),
70 uuid(4380dba6
-5e78
-434f
-807c
-3433d1efe8b7
)
72 interface IHolographicSpace
: IInspectable
74 [propget] HRESULT PrimaryAdapterId
([out, retval] Windows.Graphics.Holographic.HolographicAdapterId
*value
);
75 HRESULT SetDirect3D11Device
([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DDevice
*value
);
76 [eventadd
] HRESULT CameraAdded
(
77 [in] Windows.Foundation.TypedEventHandler
<Windows.Graphics.Holographic.HolographicSpace
*, Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs
*> *handler
,
78 [out, retval] EventRegistrationToken
*cookie
80 [eventremove
] HRESULT CameraAdded
([in] EventRegistrationToken cookie
);
81 [eventadd
] HRESULT CameraRemoved
(
82 [in] Windows.Foundation.TypedEventHandler
<Windows.Graphics.Holographic.HolographicSpace
*, Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs
*> *handler
,
83 [out, retval] EventRegistrationToken
*cookie
85 [eventremove
] HRESULT CameraRemoved
([in] EventRegistrationToken cookie
);
86 HRESULT CreateNextFrame
([out, retval] Windows.Graphics.Holographic.HolographicFrame
**value
);
90 contract
(Windows.Foundation.UniversalApiContract
, 4.0),
91 exclusiveto
(Windows.Graphics.Holographic.HolographicSpace
),
92 uuid(0e777088
-75fc
-48af
-8758-0652f6f07c59
)
94 interface IHolographicSpaceStatics2
: IInspectable
96 [propget] HRESULT IsSupported
([out, retval] boolean *value
);
97 [propget] HRESULT IsAvailable
([out, retval] boolean *value
);
98 [eventadd
] HRESULT IsAvailableChanged
([in] Windows.Foundation.EventHandler
<IInspectable
*> *handler
, [out, retval] EventRegistrationToken
*token
);
99 [eventremove
] HRESULT IsAvailableChanged
([in] EventRegistrationToken token
);
103 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
104 exclusiveto
(Windows.Graphics.Holographic.HolographicSpace
),
105 uuid(3b00de3d
-b1a3
-4dfe
-8e79
-fec5909e6df8
)
107 interface IHolographicSpaceStatics3
: IInspectable
109 [propget] HRESULT IsConfigured
([out, retval] boolean *value
);
113 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
114 exclusiveto
(Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs
),
115 uuid(58f1da35
-bbb3
-3c8f
-993d
-6c80e7feb99f
)
117 interface IHolographicSpaceCameraAddedEventArgs
: IInspectable
119 [propget] HRESULT Camera
([out, retval] Windows.Graphics.Holographic.HolographicCamera
**value
);
120 HRESULT GetDeferral
([out, retval] Windows.Foundation.Deferral
**value
);
124 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
125 exclusiveto
(Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs
),
126 uuid(805444a8
-f2ae
-322e-8da9
-836a0a95a4c1
)
128 interface IHolographicSpaceCameraRemovedEventArgs
: IInspectable
130 [propget] HRESULT Camera
([out, retval] Windows.Graphics.Holographic.HolographicCamera
**value
);
134 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
135 marshaling_behavior
(agile
),
138 runtimeclass HolographicCamera
140 [default] interface Windows.Graphics.Holographic.IHolographicCamera
;
144 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
145 marshaling_behavior
(agile
),
148 runtimeclass HolographicFrame
150 [default] interface Windows.Graphics.Holographic.IHolographicFrame
;
154 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
155 marshaling_behavior
(agile
),
156 static
(Windows.Graphics.Holographic.IHolographicSpaceStatics
, Windows.Foundation.UniversalApiContract
, 2.0),
157 static
(Windows.Graphics.Holographic.IHolographicSpaceStatics2
, Windows.Foundation.UniversalApiContract
, 4.0),
158 static
(Windows.Graphics.Holographic.IHolographicSpaceStatics3
, Windows.Foundation.UniversalApiContract
, 5.0),
161 runtimeclass HolographicSpace
163 [default] interface Windows.Graphics.Holographic.IHolographicSpace
;
167 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
168 marshaling_behavior
(agile
),
171 runtimeclass HolographicSpaceCameraAddedEventArgs
173 [default] interface Windows.Graphics.Holographic.IHolographicSpaceCameraAddedEventArgs
;
177 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
178 marshaling_behavior
(agile
),
181 runtimeclass HolographicSpaceCameraRemovedEventArgs
183 [default] interface Windows.Graphics.Holographic.IHolographicSpaceCameraRemovedEventArgs
;