node-gpuinfo 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +336 -0
- package/binding.gyp +69 -0
- package/build/Release/gpu.exp +0 -0
- package/build/Release/gpu.lib +0 -0
- package/build/Release/gpu.node +0 -0
- package/build/Release/gpu.pdb +0 -0
- package/build/binding.sln +19 -0
- package/build/gpu.vcxproj +175 -0
- package/build/gpu.vcxproj.filters +169 -0
- package/example.js +69 -0
- package/index.js +33 -0
- package/package.json +68 -0
- package/src/binding.cpp +201 -0
- package/src/gpu_info.c +130 -0
- package/src/gpu_info.h +86 -0
- package/src/includes/adlx/ADLX.h +367 -0
- package/src/includes/adlx/ADLXDefines.h +1345 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
- package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
- package/src/includes/adlx/ADLXStructures.h +206 -0
- package/src/includes/adlx/ADLXVersion.h +18 -0
- package/src/includes/adlx/I3DSettings.h +3476 -0
- package/src/includes/adlx/I3DSettings1.h +292 -0
- package/src/includes/adlx/I3DSettings2.h +317 -0
- package/src/includes/adlx/IApplications.h +397 -0
- package/src/includes/adlx/IChangedEvent.h +71 -0
- package/src/includes/adlx/ICollections.h +325 -0
- package/src/includes/adlx/IDesktops.h +918 -0
- package/src/includes/adlx/IDisplay3DLUT.h +663 -0
- package/src/includes/adlx/IDisplayGamma.h +683 -0
- package/src/includes/adlx/IDisplayGamut.h +760 -0
- package/src/includes/adlx/IDisplaySettings.h +3476 -0
- package/src/includes/adlx/IDisplays.h +2676 -0
- package/src/includes/adlx/IDisplays1.h +191 -0
- package/src/includes/adlx/IDisplays2.h +188 -0
- package/src/includes/adlx/IDisplays3.h +256 -0
- package/src/includes/adlx/IGPUAutoTuning.h +460 -0
- package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
- package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
- package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
- package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
- package/src/includes/adlx/IGPUPresetTuning.h +469 -0
- package/src/includes/adlx/IGPUTuning.h +1239 -0
- package/src/includes/adlx/IGPUTuning1.h +197 -0
- package/src/includes/adlx/II2C.h +198 -0
- package/src/includes/adlx/ILog.h +72 -0
- package/src/includes/adlx/IMultiMedia.h +578 -0
- package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
- package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
- package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
- package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
- package/src/includes/adlx/IPowerTuning.h +473 -0
- package/src/includes/adlx/IPowerTuning1.h +515 -0
- package/src/includes/adlx/ISmartAccessMemory.h +114 -0
- package/src/includes/adlx/ISystem.h +1557 -0
- package/src/includes/adlx/ISystem1.h +237 -0
- package/src/includes/adlx/ISystem2.h +643 -0
- package/src/linux/amd_linux.c +269 -0
- package/src/linux/intel_linux.c +20 -0
- package/src/linux/nvidia_linux.c +257 -0
- package/src/macos/amd_mac.c +131 -0
- package/src/macos/intel_mac.c +131 -0
- package/src/macos/nvidia_mac.c +21 -0
- package/src/vendor/amd.c +37 -0
- package/src/vendor/intel.c +37 -0
- package/src/vendor/nvidia.c +37 -0
- package/src/windows/amd_windows.c +468 -0
- package/src/windows/intel_windows.c +157 -0
- package/src/windows/nvidia_windows.c +252 -0
|
@@ -0,0 +1,918 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
#ifndef ADLX_IDESKTOPS_H
|
|
7
|
+
#define ADLX_IDESKTOPS_H
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "ADLXStructures.h"
|
|
11
|
+
#include "ICollections.h"
|
|
12
|
+
|
|
13
|
+
//-------------------------------------------------------------------------------------------------
|
|
14
|
+
//IDesktops.h - Interfaces for ADLX Desktops functionality, including AMD Eyefinity
|
|
15
|
+
|
|
16
|
+
//Desktop interface: Describe a generic desktop
|
|
17
|
+
#pragma region IADLXDesktop
|
|
18
|
+
#if defined (__cplusplus)
|
|
19
|
+
namespace adlx
|
|
20
|
+
{
|
|
21
|
+
class ADLX_NO_VTABLE IADLXDisplayList;
|
|
22
|
+
class ADLX_NO_VTABLE IADLXDesktop : public IADLXInterface
|
|
23
|
+
{
|
|
24
|
+
public:
|
|
25
|
+
ADLX_DECLARE_IID (L"IADLXDesktop")
|
|
26
|
+
/**
|
|
27
|
+
*@page DOX_IADLXDesktop_Orientation Orientation
|
|
28
|
+
*@ENG_START_DOX @brief Gets the orientation of a desktop. @ENG_END_DOX
|
|
29
|
+
*
|
|
30
|
+
*@syntax
|
|
31
|
+
*@codeStart
|
|
32
|
+
* @ref ADLX_RESULT Orientation (@ref ADLX_ORIENTATION* orientation)
|
|
33
|
+
*@codeEnd
|
|
34
|
+
*
|
|
35
|
+
*@params
|
|
36
|
+
*@paramrow{1.,[out] ,orientation,@ref ADLX_ORIENTATION* ,@ENG_START_DOX The pointer to a variable where the orientation is returned. @ENG_END_DOX}
|
|
37
|
+
*
|
|
38
|
+
*@retvalues
|
|
39
|
+
*@ENG_START_DOX If the orientation is successfully returned, __ADLX_OK__ is returned.<br>
|
|
40
|
+
* If the orientation is not successfully returned, an error code is returned.<br>
|
|
41
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
42
|
+
*
|
|
43
|
+
*@detaileddesc
|
|
44
|
+
*@ENG_START_DOX @details The desktop orientation indicates the rotation angle of the desktop.<br> @ENG_END_DOX
|
|
45
|
+
*
|
|
46
|
+
*@copydoc IADLXDesktop_REQ_TABLE
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
49
|
+
virtual ADLX_RESULT ADLX_STD_CALL Orientation (ADLX_ORIENTATION* orientation) = 0;
|
|
50
|
+
/**
|
|
51
|
+
*@page DOX_IADLXDesktop_Size Size
|
|
52
|
+
*@ENG_START_DOX @brief Gets the size of a desktop. @ENG_END_DOX
|
|
53
|
+
*
|
|
54
|
+
*@syntax
|
|
55
|
+
*@codeStart
|
|
56
|
+
* @ref ADLX_RESULT Size (adlx_int* width, adlx_int* height)
|
|
57
|
+
*@codeEnd
|
|
58
|
+
*
|
|
59
|
+
*@params
|
|
60
|
+
*@paramrow{1.,[out] ,width,adlx_int* ,@ENG_START_DOX The pointer to a variable where the width is returned. @ENG_END_DOX}
|
|
61
|
+
*@paramrow{2.,[out] ,height,adlx_int* ,@ENG_START_DOX The pointer to a variable where the height is returned. @ENG_END_DOX}
|
|
62
|
+
*
|
|
63
|
+
*@retvalues
|
|
64
|
+
*@ENG_START_DOX If the width and height are successfully returned, __ADLX_OK__ is returned.<br>
|
|
65
|
+
* If the width and height are not successfully returned, an error code is returned.<br>
|
|
66
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
67
|
+
*
|
|
68
|
+
*@detaileddesc
|
|
69
|
+
*@ENG_START_DOX @details The desktop size represents the pixel resolution of the desktop.
|
|
70
|
+
* @ENG_END_DOX
|
|
71
|
+
*
|
|
72
|
+
*@copydoc IADLXDesktop_REQ_TABLE
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
75
|
+
virtual ADLX_RESULT ADLX_STD_CALL Size (adlx_int* width, adlx_int* height) = 0;
|
|
76
|
+
/**
|
|
77
|
+
*@page DOX_IADLXDesktop_TopLeft TopLeft
|
|
78
|
+
*@ENG_START_DOX @brief Get the top left position of a desktop in Windows screen coordinates. @ENG_END_DOX
|
|
79
|
+
*
|
|
80
|
+
*@syntax
|
|
81
|
+
*@codeStart
|
|
82
|
+
* @ref ADLX_RESULT TopLeft (@ref ADLX_Point* locationTopLeft)
|
|
83
|
+
*@codeEnd
|
|
84
|
+
*
|
|
85
|
+
*@params
|
|
86
|
+
*@paramrow{1.,[out] ,locationTopLeft,@ref ADLX_Point* ,@ENG_START_DOX The pointer to a variable where the top left position is returned. @ENG_END_DOX}
|
|
87
|
+
*
|
|
88
|
+
*@retvalues
|
|
89
|
+
*@ENG_START_DOX If the top left position is successfully returned, __ADLX_OK__ is returned.<br>
|
|
90
|
+
* If the top left position is not successfully returned, an error code is returned.<br>
|
|
91
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
92
|
+
*
|
|
93
|
+
*@detaileddesc
|
|
94
|
+
*@ENG_START_DOX @details The desktop top left position is measured in screen coordinates.<br> @ENG_END_DOX
|
|
95
|
+
*
|
|
96
|
+
*@copydoc IADLXDesktop_REQ_TABLE
|
|
97
|
+
*
|
|
98
|
+
*/
|
|
99
|
+
virtual ADLX_RESULT ADLX_STD_CALL TopLeft (ADLX_Point* locationTopLeft) = 0;
|
|
100
|
+
/**
|
|
101
|
+
*@page DOX_IADLXDesktop_Type Type
|
|
102
|
+
*@ENG_START_DOX @brief Get the type of a desktop. @ENG_END_DOX
|
|
103
|
+
*
|
|
104
|
+
*@syntax
|
|
105
|
+
*@codeStart
|
|
106
|
+
* @ref ADLX_RESULT Type (@ref ADLX_DESKTOP_TYPE* desktopType)
|
|
107
|
+
*@codeEnd
|
|
108
|
+
*
|
|
109
|
+
*@params
|
|
110
|
+
*@paramrow{1.,[out] ,desktopType,@ref ADLX_DESKTOP_TYPE* ,@ENG_START_DOX The pointer to a variable where the desktop type is returned. @ENG_END_DOX}
|
|
111
|
+
*
|
|
112
|
+
*@retvalues
|
|
113
|
+
*@ENG_START_DOX If the desktop type is successfully returned, __ADLX_OK__ is returned.<br>
|
|
114
|
+
* If the desktop type is not successfully returned, an error code is returned.<br>
|
|
115
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
116
|
+
*
|
|
117
|
+
*@detaileddesc
|
|
118
|
+
*@ENG_START_DOX @details The desktop type indicates if the desktop is single, duplicate or AMD Eyefinity.<br> @ENG_END_DOX
|
|
119
|
+
*
|
|
120
|
+
*@copydoc IADLXDesktop_REQ_TABLE
|
|
121
|
+
*
|
|
122
|
+
*/
|
|
123
|
+
virtual ADLX_RESULT ADLX_STD_CALL Type (ADLX_DESKTOP_TYPE* desktopType) = 0;
|
|
124
|
+
/**
|
|
125
|
+
*@page DOX_IADLXDesktop_GetNumberOfDisplays GetNumberOfDisplays
|
|
126
|
+
*@ENG_START_DOX @brief Gets the number of displays that show pixels from a desktop. @ENG_END_DOX
|
|
127
|
+
*
|
|
128
|
+
*@syntax
|
|
129
|
+
*@codeStart
|
|
130
|
+
* @ref ADLX_RESULT GetNumberOfDisplays (adlx_uint* numDisplays)
|
|
131
|
+
*@codeEnd
|
|
132
|
+
*
|
|
133
|
+
*@params
|
|
134
|
+
*@paramrow{1.,[out] ,numDisplays,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of displays is returned. @ENG_END_DOX}
|
|
135
|
+
*
|
|
136
|
+
*@retvalues
|
|
137
|
+
*@ENG_START_DOX If the number of displays is successfully returned, __ADLX_OK__ is returned.<br>
|
|
138
|
+
* If the number of displays is not successfully returned, an error code is returned.<br>
|
|
139
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
140
|
+
*
|
|
141
|
+
*@detaileddesc
|
|
142
|
+
*@ENG_START_DOX @details
|
|
143
|
+
* The number of displays that show pixels from a desktop depends on the desktop @ref ADLX_DESKTOP_TYPE "Type".<br>
|
|
144
|
+
* A single desktop is associated with one display.<br>
|
|
145
|
+
* A duplicate desktop is associated with two or more displays.<br>
|
|
146
|
+
* An AMD Eyefinity desktop is associated with two or more displays.<br> @ENG_END_DOX
|
|
147
|
+
*
|
|
148
|
+
*@copydoc IADLXDesktop_REQ_TABLE
|
|
149
|
+
*
|
|
150
|
+
*/
|
|
151
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfDisplays (adlx_uint* numDisplays) = 0;
|
|
152
|
+
/**
|
|
153
|
+
*@page DOX_IADLXDesktop_GetDisplays GetDisplays
|
|
154
|
+
*@ENG_START_DOX @brief Gets the reference counted list of displays that show pixels from a desktop. @ENG_END_DOX
|
|
155
|
+
*
|
|
156
|
+
*@syntax
|
|
157
|
+
*@codeStart
|
|
158
|
+
* @ref ADLX_RESULT GetDisplays (@ref DOX_IADLXDisplayList** ppDisplays)
|
|
159
|
+
*@codeEnd
|
|
160
|
+
*
|
|
161
|
+
*@params
|
|
162
|
+
*@paramrow{1.,[out] ,ppDisplays,@ref DOX_IADLXDisplayList** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDisplays__ to __nullptr__. @ENG_END_DOX}
|
|
163
|
+
*
|
|
164
|
+
*@retvalues
|
|
165
|
+
*@ENG_START_DOX If the list of displays is successfully returned, __ADLX_OK__ is returned.<br>
|
|
166
|
+
* If the list of displays is not successfully returned, an error code is returned.<br>
|
|
167
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
168
|
+
*
|
|
169
|
+
*@detaileddesc
|
|
170
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
171
|
+
*
|
|
172
|
+
*@addinfo
|
|
173
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
174
|
+
*
|
|
175
|
+
*@copydoc IADLXDesktop_REQ_TABLE
|
|
176
|
+
*
|
|
177
|
+
*/
|
|
178
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetDisplays (IADLXDisplayList** ppDisplays) = 0;
|
|
179
|
+
}; //IADLXDesktop
|
|
180
|
+
//----------------------------------------------------------------------------------------------
|
|
181
|
+
typedef IADLXInterfacePtr_T<IADLXDesktop> IADLXDesktopPtr;
|
|
182
|
+
} //namespace adlx
|
|
183
|
+
#else //__cplusplus
|
|
184
|
+
ADLX_DECLARE_IID (IADLXDesktop, L"IADLXDesktop")
|
|
185
|
+
typedef struct IADLXDesktop IADLXDesktop;
|
|
186
|
+
typedef struct IADLXDisplayList IADLXDisplayList;
|
|
187
|
+
typedef struct IADLXDesktopVtbl
|
|
188
|
+
{
|
|
189
|
+
//IADLXInterface
|
|
190
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktop* pThis);
|
|
191
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXDesktop* pThis);
|
|
192
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktop* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
193
|
+
|
|
194
|
+
//IADLXDesktop
|
|
195
|
+
ADLX_RESULT (ADLX_STD_CALL *Orientation) (IADLXDesktop* pThis, ADLX_ORIENTATION* orientation);
|
|
196
|
+
ADLX_RESULT (ADLX_STD_CALL *Size) (IADLXDesktop* pThis, adlx_int* width, adlx_int* height);
|
|
197
|
+
ADLX_RESULT (ADLX_STD_CALL *TopLeft) (IADLXDesktop* pThis, ADLX_Point* locationTopLeft);
|
|
198
|
+
ADLX_RESULT (ADLX_STD_CALL *Type) (IADLXDesktop* pThis, ADLX_DESKTOP_TYPE* desktopType);
|
|
199
|
+
ADLX_RESULT (ADLX_STD_CALL *GetNumberOfDisplays) (IADLXDesktop* pThis, adlx_uint* numDisplays);
|
|
200
|
+
ADLX_RESULT (ADLX_STD_CALL *GetDisplays) (IADLXDesktop* pThis, IADLXDisplayList** ppDisplays);
|
|
201
|
+
}IADLXDesktopVtbl;
|
|
202
|
+
struct IADLXDesktop { const IADLXDesktopVtbl *pVtbl; };
|
|
203
|
+
#endif //__cplusplus
|
|
204
|
+
#pragma endregion IADLXDesktop
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
//AMD Eyefinity Desktop interface: describe and AMD Eyefinity desktop
|
|
208
|
+
#pragma region IADLXEyefinityDesktop
|
|
209
|
+
#if defined (__cplusplus)
|
|
210
|
+
namespace adlx
|
|
211
|
+
{
|
|
212
|
+
class ADLX_NO_VTABLE IADLXDisplay;
|
|
213
|
+
class ADLX_NO_VTABLE IADLXEyefinityDesktop : public IADLXInterface
|
|
214
|
+
{
|
|
215
|
+
public:
|
|
216
|
+
ADLX_DECLARE_IID (L"IADLXEyefinityDesktop")
|
|
217
|
+
/**
|
|
218
|
+
*@page DOX_IADLXEyefinityDesktop_GridSize GridSize
|
|
219
|
+
*@ENG_START_DOX @brief Gets the number of rows and columns that describes the display composition of an AMD Eyefinity desktop. @ENG_END_DOX
|
|
220
|
+
*
|
|
221
|
+
*@syntax
|
|
222
|
+
*@codeStart
|
|
223
|
+
* @ref ADLX_RESULT GridSize (adlx_uint* rows, adlx_uint* cols)
|
|
224
|
+
*@codeEnd
|
|
225
|
+
*
|
|
226
|
+
*@params
|
|
227
|
+
*@paramrow{1.,[out] ,rows,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of rows is returned. @ENG_END_DOX}
|
|
228
|
+
*@paramrow{2.,[out] ,cols,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of cols is returned. @ENG_END_DOX}
|
|
229
|
+
*
|
|
230
|
+
*@retvalues
|
|
231
|
+
*@ENG_START_DOX If the number of rows and cols are successfully returned, __ADLX_OK__ is returned.<br>
|
|
232
|
+
* If the number of rows and cols are not successfully returned, an error code is returned.<br>
|
|
233
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
234
|
+
*
|
|
235
|
+
*@detaileddesc
|
|
236
|
+
*@ENG_START_DOX @details The grid location of an AMD Eyefinity desktop is identified by a row and a column from zero to the respective value returned from this method minus one. @ENG_END_DOX
|
|
237
|
+
*
|
|
238
|
+
*@copydoc IADLXEyefinityDesktop_REQ_TABLE
|
|
239
|
+
*
|
|
240
|
+
*/
|
|
241
|
+
virtual ADLX_RESULT ADLX_STD_CALL GridSize (adlx_uint* rows, adlx_uint* cols) = 0;
|
|
242
|
+
/**
|
|
243
|
+
*@page DOX_IADLXEyefinityDesktop_GetDisplay GetDisplay
|
|
244
|
+
*@ENG_START_DOX @brief Gets the reference counted display interface for the display that shows the portion of an AMD Eyefinity desktop at the requested grid location. @ENG_END_DOX
|
|
245
|
+
*
|
|
246
|
+
*@syntax
|
|
247
|
+
*@codeStart
|
|
248
|
+
* @ref ADLX_RESULT GetDisplay (adlx_uint row, adlx_uint col, @ref DOX_IADLXDisplay** ppDisplay)
|
|
249
|
+
*@codeEnd
|
|
250
|
+
*
|
|
251
|
+
*@params
|
|
252
|
+
*@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
253
|
+
*@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
254
|
+
*@paramrow{3.,[out] ,ppDisplay,@ref DOX_IADLXDisplay** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDisplay__ to __nullptr__. @ENG_END_DOX}
|
|
255
|
+
*
|
|
256
|
+
*@retvalues
|
|
257
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
258
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
259
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
260
|
+
*
|
|
261
|
+
*@detaileddesc
|
|
262
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
263
|
+
*
|
|
264
|
+
*@addinfo
|
|
265
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
266
|
+
*
|
|
267
|
+
*@copydoc IADLXEyefinityDesktop_REQ_TABLE
|
|
268
|
+
*
|
|
269
|
+
*/
|
|
270
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (adlx_uint row, adlx_uint col, IADLXDisplay** ppDisplay) = 0;
|
|
271
|
+
/**
|
|
272
|
+
*@page DOX_IADLXEyefinityDesktop_DisplayOrientation DisplayOrientation
|
|
273
|
+
*@ENG_START_DOX @brief Gets the orientation of the display area on an AMD Eyefinity desktop at a given grid location. @ENG_END_DOX
|
|
274
|
+
*
|
|
275
|
+
*@syntax
|
|
276
|
+
*@codeStart
|
|
277
|
+
* @ref ADLX_RESULT DisplayOrientation (adlx_uint row, adlx_uint col, @ref ADLX_ORIENTATION* displayOrientation)
|
|
278
|
+
*@codeEnd
|
|
279
|
+
*
|
|
280
|
+
*@params
|
|
281
|
+
*@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
282
|
+
*@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
283
|
+
*@paramrow{3.,[out] ,displayOrientation,@ref ADLX_ORIENTATION* ,@ENG_START_DOX The pointer to a variable where the display orientation is returned. @ENG_END_DOX}
|
|
284
|
+
*
|
|
285
|
+
*@retvalues
|
|
286
|
+
*@ENG_START_DOX If the display orientation is successfully returned, __ADLX_OK__ is returned.<br>
|
|
287
|
+
* If the display orientation is not successfully returned, an error code is returned.<br>
|
|
288
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
289
|
+
*
|
|
290
|
+
*@detaileddesc
|
|
291
|
+
*@ENG_START_DOX @details The display orientation indicates the rotation angle of the display area on an AMD Eyefinity desktop. @ENG_END_DOX
|
|
292
|
+
*
|
|
293
|
+
*@copydoc IADLXEyefinityDesktop_REQ_TABLE
|
|
294
|
+
*
|
|
295
|
+
*/
|
|
296
|
+
virtual ADLX_RESULT ADLX_STD_CALL DisplayOrientation (adlx_uint row, adlx_uint col, ADLX_ORIENTATION* displayOrientation) = 0;
|
|
297
|
+
/**
|
|
298
|
+
*@page DOX_IADLXEyefinityDesktop_DisplaySize DisplaySize
|
|
299
|
+
*@ENG_START_DOX @brief Gets the size of the display area on an AMD Eyefinity desktop at a given grid location. @ENG_END_DOX
|
|
300
|
+
*
|
|
301
|
+
*@syntax
|
|
302
|
+
*@codeStart
|
|
303
|
+
* @ref ADLX_RESULT DisplaySize (adlx_uint row, adlx_uint col, adlx_int* displayWidth, adlx_int* displayHeight)
|
|
304
|
+
*@codeEnd
|
|
305
|
+
*
|
|
306
|
+
*@params
|
|
307
|
+
*@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
308
|
+
*@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
309
|
+
*@paramrow{3.,[out] ,displayWidth,adlx_int* ,@ENG_START_DOX The pointer to a variable where the display width is returned. @ENG_END_DOX}
|
|
310
|
+
*@paramrow{4.,[out] ,displayHeight,adlx_int* ,@ENG_START_DOX The pointer to a variable where the display height is returned. @ENG_END_DOX}
|
|
311
|
+
*
|
|
312
|
+
*@retvalues
|
|
313
|
+
*@ENG_START_DOX If the display size is successfully returned, __ADLX_OK__ is returned.<br>
|
|
314
|
+
* If the display size is not successfully returned, an error code is returned.<br>
|
|
315
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
316
|
+
*
|
|
317
|
+
*@detaileddesc
|
|
318
|
+
*@ENG_START_DOX @details The display size represents the pixel resolution of the dispay area in an AMD Eyefinity desktop.
|
|
319
|
+
* @ENG_END_DOX
|
|
320
|
+
*
|
|
321
|
+
*@copydoc IADLXEyefinityDesktop_REQ_TABLE
|
|
322
|
+
*
|
|
323
|
+
*/
|
|
324
|
+
virtual ADLX_RESULT ADLX_STD_CALL DisplaySize (adlx_uint row, adlx_uint col, adlx_int* displayWidth, adlx_int* displayHeight) = 0;
|
|
325
|
+
/**
|
|
326
|
+
*@page DOX_IADLXEyefinityDesktop_DisplayTopLeft DisplayTopLeft
|
|
327
|
+
*@ENG_START_DOX @brief Gets the top left position of the display area on an AMD Eyefinity desktop at a given grid location. @ENG_END_DOX
|
|
328
|
+
*
|
|
329
|
+
*@syntax
|
|
330
|
+
*@codeStart
|
|
331
|
+
* @ref ADLX_RESULT DisplayTopLeft (adlx_uint row, adlx_uint col, @ref ADLX_Point* displayLocationTopLeft)
|
|
332
|
+
*@codeEnd
|
|
333
|
+
*
|
|
334
|
+
*@params
|
|
335
|
+
*@paramrow{1.,[in] ,row,adlx_uint ,@ENG_START_DOX The row of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
336
|
+
*@paramrow{2.,[in] ,col,adlx_uint ,@ENG_START_DOX The column of the AMD Eyefinity grid location for the requested display. @ENG_END_DOX}
|
|
337
|
+
*@paramrow{3.,[out] ,displayLocationTopLeft,@ref ADLX_Point* ,@ENG_START_DOX The pointer to a variable where the top left position is returned. @ENG_END_DOX}
|
|
338
|
+
*
|
|
339
|
+
*@retvalues
|
|
340
|
+
*@ENG_START_DOX If the top left position is successfully returned, __ADLX_OK__ is returned.<br>
|
|
341
|
+
* If the top left position is not successfully returned, an error code is returned.<br>
|
|
342
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
343
|
+
*
|
|
344
|
+
*@detaileddesc
|
|
345
|
+
*@ENG_START_DOX @details The top left position is relative to the desktop's top left position.
|
|
346
|
+
* @ENG_END_DOX
|
|
347
|
+
*
|
|
348
|
+
*@copydoc IADLXEyefinityDesktop_REQ_TABLE
|
|
349
|
+
*
|
|
350
|
+
*/
|
|
351
|
+
virtual ADLX_RESULT ADLX_STD_CALL DisplayTopLeft (adlx_uint row, adlx_uint col, ADLX_Point* displayLocationTopLeft) = 0;
|
|
352
|
+
}; //IADLXEyefinityDesktop
|
|
353
|
+
//----------------------------------------------------------------------------------------------
|
|
354
|
+
typedef IADLXInterfacePtr_T<IADLXEyefinityDesktop> IADLXEyefinityDesktopPtr;
|
|
355
|
+
} //namespace adlx
|
|
356
|
+
#else //__cplusplus
|
|
357
|
+
ADLX_DECLARE_IID (IADLXEyefinityDesktop, L"IADLXEyefinityDesktop")
|
|
358
|
+
typedef struct IADLXEyefinityDesktop IADLXEyefinityDesktop;
|
|
359
|
+
typedef struct IADLXDisplay IADLXDisplay;
|
|
360
|
+
typedef struct IADLXDisplayList IADLXDisplayList;
|
|
361
|
+
typedef struct IADLXEyefinityDesktopVtbl
|
|
362
|
+
{
|
|
363
|
+
//IADLXInterface
|
|
364
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXEyefinityDesktop* pThis);
|
|
365
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXEyefinityDesktop* pThis);
|
|
366
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXEyefinityDesktop* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
367
|
+
|
|
368
|
+
//IADLXEyefinityDesktop
|
|
369
|
+
ADLX_RESULT (ADLX_STD_CALL *GridSize) (IADLXEyefinityDesktop* pThis, adlx_uint* rows, adlx_uint* cols);
|
|
370
|
+
ADLX_RESULT (ADLX_STD_CALL *GetDisplay) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, IADLXDisplay** ppDisplay);
|
|
371
|
+
ADLX_RESULT (ADLX_STD_CALL *DisplayOrientation) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, ADLX_ORIENTATION* displayOrientation);
|
|
372
|
+
ADLX_RESULT (ADLX_STD_CALL *DisplaySize) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, adlx_int* displayWidth, adlx_int* displayHeight);
|
|
373
|
+
ADLX_RESULT (ADLX_STD_CALL *DisplayTopLeft) (IADLXEyefinityDesktop* pThis, adlx_uint row, adlx_uint col, ADLX_Point* displayLocationTopLeft);
|
|
374
|
+
}IADLXEyefinityDesktopVtbl;
|
|
375
|
+
struct IADLXEyefinityDesktop { const IADLXEyefinityDesktopVtbl *pVtbl; };
|
|
376
|
+
#endif //__cplusplus
|
|
377
|
+
#pragma endregion IADLXEyefinityDesktop
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
//Desktops list interface: List for IADLXDesktop items
|
|
381
|
+
#pragma region IADLXDesktopList
|
|
382
|
+
#if defined (__cplusplus)
|
|
383
|
+
namespace adlx
|
|
384
|
+
{
|
|
385
|
+
class ADLX_NO_VTABLE IADLXDesktopList : public IADLXList
|
|
386
|
+
{
|
|
387
|
+
public:
|
|
388
|
+
ADLX_DECLARE_IID (L"IADLXDesktopList")
|
|
389
|
+
//Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
|
|
390
|
+
ADLX_DECLARE_ITEM_IID (IADLXDesktop::IID ())
|
|
391
|
+
/**
|
|
392
|
+
* @page DOX_IADLXDesktopList_At At
|
|
393
|
+
* @ENG_START_DOX
|
|
394
|
+
* @brief Returns the reference counted interface at the requested location.
|
|
395
|
+
* @ENG_END_DOX
|
|
396
|
+
*
|
|
397
|
+
* @syntax
|
|
398
|
+
* @codeStart
|
|
399
|
+
* @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXDesktop** ppItem)
|
|
400
|
+
* @codeEnd
|
|
401
|
+
*
|
|
402
|
+
* @params
|
|
403
|
+
* @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
|
|
404
|
+
* @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXDesktop** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
|
|
405
|
+
*
|
|
406
|
+
* @retvalues
|
|
407
|
+
* @ENG_START_DOX
|
|
408
|
+
* If the location is within the list bounds, __ADLX_OK__ is returned.<br>
|
|
409
|
+
* If the location is not within the list bounds, an error code is returned.<br>
|
|
410
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
411
|
+
* @ENG_END_DOX
|
|
412
|
+
*
|
|
413
|
+
* @detaileddesc
|
|
414
|
+
* @ENG_START_DOX
|
|
415
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
416
|
+
* @ENG_END_DOX
|
|
417
|
+
*
|
|
418
|
+
* @addinfo
|
|
419
|
+
* @ENG_START_DOX
|
|
420
|
+
* In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
|
|
421
|
+
* @ENG_END_DOX
|
|
422
|
+
*
|
|
423
|
+
* @copydoc IADLXDesktopList_REQ_TABLE
|
|
424
|
+
*
|
|
425
|
+
*/
|
|
426
|
+
virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXDesktop** ppItem) = 0;
|
|
427
|
+
/**
|
|
428
|
+
*@page DOX_IADLXDesktopList_Add_Back Add_Back
|
|
429
|
+
*@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX
|
|
430
|
+
*
|
|
431
|
+
*@syntax
|
|
432
|
+
*@codeStart
|
|
433
|
+
* @ref ADLX_RESULT Add_Back (@ref DOX_IADLXDesktop* pItem)
|
|
434
|
+
*@codeEnd
|
|
435
|
+
*
|
|
436
|
+
*@params
|
|
437
|
+
*@paramrow{1.,[in] ,pItem,@ref DOX_IADLXDesktop* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
|
|
438
|
+
*
|
|
439
|
+
*@retvalues
|
|
440
|
+
*@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.<br>
|
|
441
|
+
* If the interface is not added to the end of the list, an error code is returned.<br>
|
|
442
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
443
|
+
*
|
|
444
|
+
*@detaileddesc
|
|
445
|
+
*@ENG_START_DOX @details @ENG_END_DOX
|
|
446
|
+
*
|
|
447
|
+
*@copydoc IADLXDesktopList_REQ_TABLE
|
|
448
|
+
*
|
|
449
|
+
*/
|
|
450
|
+
virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXDesktop* pItem) = 0;
|
|
451
|
+
}; //IADLXDisplayList
|
|
452
|
+
//----------------------------------------------------------------------------------------------
|
|
453
|
+
typedef IADLXInterfacePtr_T<IADLXDesktopList> IADLXDesktopListPtr;
|
|
454
|
+
} //namespace adlx
|
|
455
|
+
#else //__cplusplus
|
|
456
|
+
ADLX_DECLARE_IID (IADLXDesktopList, L"IADLXDesktopList")
|
|
457
|
+
ADLX_DECLARE_ITEM_IID (IADLXDesktop, IID_IADLXDesktop ())
|
|
458
|
+
|
|
459
|
+
typedef struct IADLXDesktopList IADLXDesktopList;
|
|
460
|
+
typedef struct IADLXDesktopListVtbl
|
|
461
|
+
{
|
|
462
|
+
//IADLXInterface
|
|
463
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktopList* pThis);
|
|
464
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXDesktopList* pThis);
|
|
465
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktopList* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
466
|
+
|
|
467
|
+
//IADLXList
|
|
468
|
+
adlx_uint (ADLX_STD_CALL *Size)(IADLXDesktopList* pThis);
|
|
469
|
+
adlx_bool (ADLX_STD_CALL *Empty)(IADLXDesktopList* pThis);
|
|
470
|
+
adlx_uint (ADLX_STD_CALL *Begin)(IADLXDesktopList* pThis);
|
|
471
|
+
adlx_uint (ADLX_STD_CALL *End)(IADLXDesktopList* pThis);
|
|
472
|
+
ADLX_RESULT (ADLX_STD_CALL *At)(IADLXDesktopList* pThis, const adlx_uint location, IADLXInterface** ppItem);
|
|
473
|
+
ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXDesktopList* pThis);
|
|
474
|
+
ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXDesktopList* pThis);
|
|
475
|
+
ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXDesktopList* pThis, IADLXInterface* pItem);
|
|
476
|
+
|
|
477
|
+
//IADLXDesktopList
|
|
478
|
+
ADLX_RESULT (ADLX_STD_CALL *At_DesktopList)(IADLXDesktopList* pThis, const adlx_uint location, IADLXDesktop** ppItem);
|
|
479
|
+
ADLX_RESULT (ADLX_STD_CALL *Add_Back_DesktopList)(IADLXDesktopList* pThis, IADLXDesktop* pItem);
|
|
480
|
+
|
|
481
|
+
}IADLXDesktopListVtbl;
|
|
482
|
+
|
|
483
|
+
struct IADLXDesktopList { const IADLXDesktopListVtbl *pVtbl; };
|
|
484
|
+
#endif //__cplusplus
|
|
485
|
+
#pragma endregion IADLXDesktopList
|
|
486
|
+
|
|
487
|
+
//Desktop List changed listener interface. To be implemented in application and passed in IADLXDesktopChangedHandling::AddDesktopListEventListener()
|
|
488
|
+
#pragma region IADLXDesktopListChangedListener
|
|
489
|
+
#if defined (__cplusplus)
|
|
490
|
+
namespace adlx
|
|
491
|
+
{
|
|
492
|
+
class ADLX_NO_VTABLE IADLXDesktopListChangedListener
|
|
493
|
+
{
|
|
494
|
+
public:
|
|
495
|
+
/**
|
|
496
|
+
*@page DOX_IADLXDesktopListChangedListener_OnDesktopListChanged OnDesktopListChanged
|
|
497
|
+
*@ENG_START_DOX @brief The __OnDesktopsListChanged__ is called by ADLX when the desktop list changes. @ENG_END_DOX
|
|
498
|
+
*
|
|
499
|
+
*@syntax
|
|
500
|
+
*@codeStart
|
|
501
|
+
* adlx_bool OnDesktopListChanged (@ref DOX_IADLXDesktopList* pNewDesktop)
|
|
502
|
+
*@codeEnd
|
|
503
|
+
*
|
|
504
|
+
*@params
|
|
505
|
+
*@paramrow{1.,[out] ,pNewDesktop,@ref DOX_IADLXDesktopList* ,@ENG_START_DOX The pointer to the new desktop list. @ENG_END_DOX}
|
|
506
|
+
*
|
|
507
|
+
*
|
|
508
|
+
*@retvalues
|
|
509
|
+
*@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
|
|
510
|
+
* If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
|
|
511
|
+
*
|
|
512
|
+
*@detaileddesc
|
|
513
|
+
*@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXDesktopChangedHandling_AddDesktopListEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDesktopChangedHandling_RemoveDesktopListEventListener.<br>
|
|
514
|
+
* The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the new desktop list with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the new desktop list with @ref DOX_IADLXInterface_Release.<br> @ENG_END_DOX
|
|
515
|
+
*
|
|
516
|
+
*
|
|
517
|
+
*@copydoc IADLXDesktopListChangedListener_REQ_TABLE
|
|
518
|
+
*
|
|
519
|
+
*/
|
|
520
|
+
virtual adlx_bool ADLX_STD_CALL OnDesktopListChanged (IADLXDesktopList* pNewDesktop) = 0;
|
|
521
|
+
}; //IADLXDesktopListChangedListener
|
|
522
|
+
} //namespace adlx
|
|
523
|
+
#else //__cplusplus
|
|
524
|
+
typedef struct IADLXDesktopListChangedListener IADLXDesktopListChangedListener;
|
|
525
|
+
|
|
526
|
+
typedef struct IADLXDesktopListChangedListenerVtbl
|
|
527
|
+
{
|
|
528
|
+
// IADLXDesktopListChangedListener interface
|
|
529
|
+
adlx_bool (ADLX_STD_CALL *OnDesktopListChanged)(IADLXDesktopListChangedListener* pThis, IADLXDesktopList* pNewDesktop);
|
|
530
|
+
|
|
531
|
+
} IADLXDesktopListChangedListenerVtbl;
|
|
532
|
+
|
|
533
|
+
struct IADLXDesktopListChangedListener { const IADLXDesktopListChangedListenerVtbl *pVtbl; };
|
|
534
|
+
#endif //__cplusplus
|
|
535
|
+
#pragma endregion IADLXDesktopListChangedListener
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
#pragma region IADLXDesktopChangedHandling
|
|
539
|
+
#if defined (__cplusplus)
|
|
540
|
+
namespace adlx
|
|
541
|
+
{
|
|
542
|
+
class ADLX_NO_VTABLE IADLXDesktopChangedHandling : public IADLXInterface
|
|
543
|
+
{
|
|
544
|
+
public:
|
|
545
|
+
ADLX_DECLARE_IID (L"IADLXDesktopChangedHandling")
|
|
546
|
+
/**
|
|
547
|
+
*@page DOX_IADLXDesktopChangedHandling_AddDesktopListEventListener AddDesktopListEventListener
|
|
548
|
+
*@ENG_START_DOX @brief Registers an event listener for notifications when the desktop list changes. @ENG_END_DOX
|
|
549
|
+
*
|
|
550
|
+
*@syntax
|
|
551
|
+
*@codeStart
|
|
552
|
+
* @ref ADLX_RESULT AddDesktopListEventListener (@ref DOX_IADLXDesktopListChangedListener* pDesktopListChangedListener)
|
|
553
|
+
*@codeEnd
|
|
554
|
+
*
|
|
555
|
+
*@params
|
|
556
|
+
*@paramrow{1.,[in] ,pDesktopListChangedListener,@ref DOX_IADLXDesktopListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the desktop list change notifications. @ENG_END_DOX}
|
|
557
|
+
*
|
|
558
|
+
*
|
|
559
|
+
*@retvalues
|
|
560
|
+
*@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
|
|
561
|
+
* If the event listener is not successfully registered, an error code is returned.<br>
|
|
562
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
563
|
+
*
|
|
564
|
+
*@detaileddesc
|
|
565
|
+
*@ENG_START_DOX After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDesktopListChangedListener_OnDesktopListChanged of the listener when the desktop list changes.<br>
|
|
566
|
+
* The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDesktopChangedHandling_RemoveDesktopListEventListener.<br> @ENG_END_DOX
|
|
567
|
+
*
|
|
568
|
+
*
|
|
569
|
+
*@copydoc IADLXDesktopChangedHandling_REQ_TABLE
|
|
570
|
+
*
|
|
571
|
+
*/
|
|
572
|
+
virtual ADLX_RESULT ADLX_STD_CALL AddDesktopListEventListener (IADLXDesktopListChangedListener* pDesktopListChangedListener) = 0;
|
|
573
|
+
/**
|
|
574
|
+
*@page DOX_IADLXDesktopChangedHandling_RemoveDesktopListEventListener RemoveDesktopListEventListener
|
|
575
|
+
*@ENG_START_DOX @brief Unregisters an event listener from notifications when the desktop list changes. @ENG_END_DOX
|
|
576
|
+
*
|
|
577
|
+
*@syntax
|
|
578
|
+
*@codeStart
|
|
579
|
+
* @ref ADLX_RESULT RemoveDesktopListEventListener (@ref DOX_IADLXDesktopListChangedListener* pDesktopListChangedListener)
|
|
580
|
+
*@codeEnd
|
|
581
|
+
*
|
|
582
|
+
*@params
|
|
583
|
+
*@paramrow{1.,[in] ,pDesktopListChangedListener,@ref DOX_IADLXDesktopListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the desktop list change notifications. @ENG_END_DOX}
|
|
584
|
+
*
|
|
585
|
+
*
|
|
586
|
+
*@retvalues
|
|
587
|
+
*@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
|
|
588
|
+
* If the event listener is not successfully unregistered, an error code is returned.<br>
|
|
589
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
590
|
+
*
|
|
591
|
+
*@detaileddesc
|
|
592
|
+
*@ENG_START_DOX After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDesktopListChangedListener_OnDesktopListChanged method of the listener when the desktop list changes. The application can discard the event listener instance. @ENG_END_DOX
|
|
593
|
+
*
|
|
594
|
+
*
|
|
595
|
+
*@copydoc IADLXDesktopChangedHandling_REQ_TABLE
|
|
596
|
+
*
|
|
597
|
+
*/
|
|
598
|
+
virtual ADLX_RESULT ADLX_STD_CALL RemoveDesktopListEventListener (IADLXDesktopListChangedListener* pDesktopListChangedListener) = 0;
|
|
599
|
+
|
|
600
|
+
}; //IADLXDesktopChangedHandling
|
|
601
|
+
//----------------------------------------------------------------------------------------------
|
|
602
|
+
typedef IADLXInterfacePtr_T<IADLXDesktopChangedHandling> IADLXDesktopChangedHandlingPtr;
|
|
603
|
+
} //namespace adlx
|
|
604
|
+
#else //__cplusplus
|
|
605
|
+
ADLX_DECLARE_IID (IADLXDesktopChangedHandling, L"IADLXDesktopChangedHandling")
|
|
606
|
+
typedef struct IADLXDesktopChangedHandling IADLXDesktopChangedHandling;
|
|
607
|
+
|
|
608
|
+
typedef struct IADLXDesktopChangedHandlingVtbl
|
|
609
|
+
{
|
|
610
|
+
//IADLXInterface
|
|
611
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktopChangedHandling* pThis);
|
|
612
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXDesktopChangedHandling* pThis);
|
|
613
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktopChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
614
|
+
|
|
615
|
+
// IADLXDesktopChangedHandling interface
|
|
616
|
+
ADLX_RESULT (ADLX_STD_CALL *AddDesktopListEventListener)(IADLXDesktopChangedHandling* pThis, IADLXDesktopListChangedListener* pDesktopListChangedListener);
|
|
617
|
+
ADLX_RESULT (ADLX_STD_CALL *RemoveDesktopListEventListener)(IADLXDesktopChangedHandling* pThis, IADLXDesktopListChangedListener* pDesktopListChangedListener);
|
|
618
|
+
|
|
619
|
+
} IADLXDesktopChangedHandlingVtbl;
|
|
620
|
+
|
|
621
|
+
struct IADLXDesktopChangedHandling { const IADLXDesktopChangedHandlingVtbl *pVtbl; };
|
|
622
|
+
#endif //__cplusplus
|
|
623
|
+
#pragma endregion IADLXDesktopChangedHandling
|
|
624
|
+
|
|
625
|
+
//Simple AMD Eyefinity interface: allows creation and destruction of AMD Eyefinity desktops
|
|
626
|
+
#pragma region IADLXSimpleEyefinity
|
|
627
|
+
#if defined (__cplusplus)
|
|
628
|
+
namespace adlx
|
|
629
|
+
{
|
|
630
|
+
class ADLX_NO_VTABLE IADLXSimpleEyefinity : public IADLXInterface
|
|
631
|
+
{
|
|
632
|
+
public:
|
|
633
|
+
ADLX_DECLARE_IID (L"IADLXSimpleEyefinity")
|
|
634
|
+
/**
|
|
635
|
+
*@page DOX_IADLXSimpleEyefinity_IsSupported IsSupported
|
|
636
|
+
*@ENG_START_DOX @brief Checks if an AMD Eyefinity desktop can be created with all the enabled displays. @ENG_END_DOX
|
|
637
|
+
*
|
|
638
|
+
*@syntax
|
|
639
|
+
*@codeStart
|
|
640
|
+
* @ref ADLX_RESULT IsSupported (adlx_bool* supported)
|
|
641
|
+
*@codeEnd
|
|
642
|
+
*
|
|
643
|
+
*@params
|
|
644
|
+
*@paramrow{1.,[out] ,supported,adlx_bool* ,@ENG_START_DOX The pointer to a variable where the state of AMD Eyefinity desktop creation is returned. The variable is __true__ if AMD Eyefinity desktop creation is supported. The variable is __false__ if AMD Eyefinity desktop creation is not supported. @ENG_END_DOX}
|
|
645
|
+
*
|
|
646
|
+
*@retvalues
|
|
647
|
+
*@ENG_START_DOX If the state is successfully returned, __ADLX_OK__ is returned.<br>
|
|
648
|
+
* If the state is not successfully returned, an error code is returned.<br>
|
|
649
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
|
|
650
|
+
*
|
|
651
|
+
*@detaileddesc
|
|
652
|
+
*@ENG_START_DOX @details
|
|
653
|
+
* AMD Eyefinity desktops can be created with ADLX using all the enabled displays connected to the AMD GPUs, except LCD panel displays. For more information about AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support". Use @ref DOX_IADLXDisplay_DisplayType to check if a display is an LCD panel.<br>
|
|
654
|
+
* All the desktops must be single desktops. Use @ref DOX_IADLXDesktop_Type to check if a desktop is a single desktop.<br>
|
|
655
|
+
* All the enabled displays must be connected to the same GPU.<br>
|
|
656
|
+
* The AMD Eyefinity desktop configuration must be supported by the AMD driver. Driver support varies depending on the GPU.<br>
|
|
657
|
+
* @ENG_END_DOX
|
|
658
|
+
*
|
|
659
|
+
*@copydoc IADLXSimpleEyefinity_REQ_TABLE
|
|
660
|
+
*
|
|
661
|
+
*/
|
|
662
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsSupported (adlx_bool* supported) = 0;
|
|
663
|
+
/**
|
|
664
|
+
*@page DOX_IADLXSimpleEyefinity_Create Create
|
|
665
|
+
*@ENG_START_DOX @brief Creates an AMD Eyefinity desktop with all the enabled displays. @ENG_END_DOX
|
|
666
|
+
*
|
|
667
|
+
*@syntax
|
|
668
|
+
*@codeStart
|
|
669
|
+
* @ref ADLX_RESULT Create (@ref DOX_IADLXEyefinityDesktop** ppEyefinityDesktop)
|
|
670
|
+
*@codeEnd
|
|
671
|
+
*
|
|
672
|
+
*@params
|
|
673
|
+
*@paramrow{1.,[out] ,ppEyefinityDesktop,@ref DOX_IADLXEyefinityDesktop** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppEyefinityDesktop__ to __nullptr__. @ENG_END_DOX}
|
|
674
|
+
*
|
|
675
|
+
*@retvalues
|
|
676
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
677
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
678
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
679
|
+
*
|
|
680
|
+
*@detaileddesc
|
|
681
|
+
*@ENG_START_DOX @details
|
|
682
|
+
* Use @ref DOX_IADLXSimpleEyefinity_IsSupported to check if an AMD Eyefinity desktop can be created.<br>
|
|
683
|
+
* Creating an AMD Eyefinity desktop can take a couple of seconds to complete. The method will block the execution thread until the operation is finished.<br>
|
|
684
|
+
* The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. Discarding the interface does not destroy the AMD Eyefinity desktop.<br> @ENG_END_DOX
|
|
685
|
+
*
|
|
686
|
+
*@addinfo
|
|
687
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
688
|
+
*
|
|
689
|
+
*@copydoc IADLXSimpleEyefinity_REQ_TABLE
|
|
690
|
+
*
|
|
691
|
+
*/
|
|
692
|
+
virtual ADLX_RESULT ADLX_STD_CALL Create (IADLXEyefinityDesktop** ppEyefinityDesktop) = 0;
|
|
693
|
+
/**
|
|
694
|
+
*@page DOX_IADLXSimpleEyefinity_DestroyAll DestroyAll
|
|
695
|
+
*@ENG_START_DOX @brief Destroys all the AMD Eyefinity desktops. @ENG_END_DOX
|
|
696
|
+
*
|
|
697
|
+
*@syntax
|
|
698
|
+
*@codeStart
|
|
699
|
+
* @ref ADLX_RESULT DestroyAll ()
|
|
700
|
+
*@codeEnd
|
|
701
|
+
*
|
|
702
|
+
*@retvalues
|
|
703
|
+
*@ENG_START_DOX If all AMD Eyefinity desktops are successfully destroyed, __ADLX_OK__ is returned.<br>
|
|
704
|
+
* If all AMD Eyefinity desktops are not successfully destroyed, an error code is returned.<br>
|
|
705
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
706
|
+
*
|
|
707
|
+
*@detaileddesc
|
|
708
|
+
*@ENG_START_DOX @details Destroying all AMD Eyefinity desktops can take a couple of seconds to complete. The method will block the execution thread until the operation is finished. @ENG_END_DOX
|
|
709
|
+
*
|
|
710
|
+
*@copydoc IADLXSimpleEyefinity_REQ_TABLE
|
|
711
|
+
*
|
|
712
|
+
*/
|
|
713
|
+
virtual ADLX_RESULT ADLX_STD_CALL DestroyAll () = 0;
|
|
714
|
+
/**
|
|
715
|
+
*@page DOX_IADLXSimpleEyefinity_Destroy Destroy
|
|
716
|
+
*@ENG_START_DOX @brief Destroys a specified AMD Eyefinity desktop. @ENG_END_DOX
|
|
717
|
+
*
|
|
718
|
+
*@syntax
|
|
719
|
+
*@codeStart
|
|
720
|
+
* @ref ADLX_RESULT Destroy (@ref DOX_IADLXEyefinityDesktop* pDesktop)
|
|
721
|
+
*@codeEnd
|
|
722
|
+
*
|
|
723
|
+
*@params
|
|
724
|
+
*@paramrow{1.,[in] ,pDesktop,@ref DOX_IADLXEyefinityDesktop* ,@ENG_START_DOX The pointer to the eyefinity desktop to be destroyed. @ENG_END_DOX}
|
|
725
|
+
*
|
|
726
|
+
*@retvalues
|
|
727
|
+
*@ENG_START_DOX If the AMD Eyefinity desktop is successfully destroyed, __ADLX_OK__ is returned.<br>
|
|
728
|
+
* If the AMD Eyefinity desktop is not successfully destroyed, an error code is returned.<br>
|
|
729
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
730
|
+
*
|
|
731
|
+
*@detaileddesc
|
|
732
|
+
*@ENG_START_DOX @details Destroying an AMD Eyefinity desktop can take a couple of seconds to complete. The method will block the execution thread until the operation is finished. @ENG_END_DOX
|
|
733
|
+
*
|
|
734
|
+
*@copydoc IADLXSimpleEyefinity_REQ_TABLE
|
|
735
|
+
*
|
|
736
|
+
*/
|
|
737
|
+
virtual ADLX_RESULT ADLX_STD_CALL Destroy (IADLXEyefinityDesktop* pDesktop) = 0;
|
|
738
|
+
}; //IADLXSimpleEyefinity
|
|
739
|
+
//----------------------------------------------------------------------------------------------
|
|
740
|
+
typedef IADLXInterfacePtr_T<IADLXSimpleEyefinity> IADLXSimpleEyefinityPtr;
|
|
741
|
+
} //namespace adlx
|
|
742
|
+
#else //__cplusplus
|
|
743
|
+
ADLX_DECLARE_IID (IADLXSimpleEyefinity, L"IADLXSimpleEyefinity")
|
|
744
|
+
typedef struct IADLXSimpleEyefinity IADLXSimpleEyefinity;
|
|
745
|
+
typedef struct IADLXSimpleEyefinityVtbl
|
|
746
|
+
{
|
|
747
|
+
//IADLXInterface
|
|
748
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXSimpleEyefinity* pThis);
|
|
749
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXSimpleEyefinity* pThis);
|
|
750
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSimpleEyefinity* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
751
|
+
|
|
752
|
+
//IADLXSimpleEyefinity
|
|
753
|
+
ADLX_RESULT (ADLX_STD_CALL *IsSupported) (IADLXSimpleEyefinity* pThis, adlx_bool* supported);
|
|
754
|
+
ADLX_RESULT (ADLX_STD_CALL *Create) (IADLXSimpleEyefinity* pThis, IADLXEyefinityDesktop** ppEyefinityDesktop);
|
|
755
|
+
ADLX_RESULT (ADLX_STD_CALL *DestroyAll) (IADLXSimpleEyefinity* pThis);
|
|
756
|
+
ADLX_RESULT (ADLX_STD_CALL *Destroy) (IADLXSimpleEyefinity* pThis, IADLXEyefinityDesktop* pDesktop);
|
|
757
|
+
}IADLXSimpleEyefinityVtbl;
|
|
758
|
+
struct IADLXSimpleEyefinity { const IADLXSimpleEyefinityVtbl *pVtbl; };
|
|
759
|
+
#endif //__cplusplus
|
|
760
|
+
#pragma endregion IADLXSimpleEyefinity
|
|
761
|
+
|
|
762
|
+
//Desktops services interface: top level interface for accessing desktop functionality:
|
|
763
|
+
//describe desktops (including AMD Eyefinity), register for desktop changed events and access AMD Eyefinity functionality
|
|
764
|
+
#pragma region IADLXDesktopServices
|
|
765
|
+
#if defined (__cplusplus)
|
|
766
|
+
namespace adlx
|
|
767
|
+
{
|
|
768
|
+
class ADLX_NO_VTABLE IADLXDesktopServices : public IADLXInterface
|
|
769
|
+
{
|
|
770
|
+
public:
|
|
771
|
+
ADLX_DECLARE_IID (L"IADLXDesktopServices")
|
|
772
|
+
/**
|
|
773
|
+
* @page DOX_IADLXDesktopServices_GetNumberOfDesktops GetNumberOfDesktops
|
|
774
|
+
* @ENG_START_DOX
|
|
775
|
+
* @brief Gets the number of desktops instantiated on the AMD GPUs.
|
|
776
|
+
* @ENG_END_DOX
|
|
777
|
+
*
|
|
778
|
+
* @syntax
|
|
779
|
+
* @codeStart
|
|
780
|
+
* @ref ADLX_RESULT GetNumberOfDesktops (adlx_uint* numDesktops)
|
|
781
|
+
* @codeEnd
|
|
782
|
+
*
|
|
783
|
+
* @params
|
|
784
|
+
* @paramrow{1.,[out] ,numDesktops,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of desktops is returned. @ENG_END_DOX}
|
|
785
|
+
*
|
|
786
|
+
* @retvalues
|
|
787
|
+
* @ENG_START_DOX
|
|
788
|
+
* If the number of desktops is successfully returned, __ADLX_OK__ is returned.<br>
|
|
789
|
+
* If the number of desktops is not successfully returned, an error code is returned.<br>
|
|
790
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
791
|
+
* @ENG_END_DOX
|
|
792
|
+
*
|
|
793
|
+
* @detaileddesc
|
|
794
|
+
* @ENG_START_DOX
|
|
795
|
+
* @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support".
|
|
796
|
+
* @ENG_END_DOX
|
|
797
|
+
*
|
|
798
|
+
* @copydoc IADLXDesktopServices_REQ_TABLE
|
|
799
|
+
*
|
|
800
|
+
*/
|
|
801
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfDesktops (adlx_uint* numDesktops) = 0;
|
|
802
|
+
/**
|
|
803
|
+
* @page DOX_IADLXDesktopServices_GetDesktops GetDesktops
|
|
804
|
+
* @ENG_START_DOX
|
|
805
|
+
* @brief Gets the reference counted list of desktops instantiated on the AMD GPUs.
|
|
806
|
+
* @ENG_END_DOX
|
|
807
|
+
*
|
|
808
|
+
* @syntax
|
|
809
|
+
* @codeStart
|
|
810
|
+
* @ref ADLX_RESULT GetDesktops (@ref DOX_IADLXDesktopList** ppDesktops)
|
|
811
|
+
* @codeEnd
|
|
812
|
+
*
|
|
813
|
+
* @params
|
|
814
|
+
* @paramrow{1.,[out] ,ppDesktops,@ref DOX_IADLXDesktopList** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDesktops__ to __nullptr__. @ENG_END_DOX}
|
|
815
|
+
*
|
|
816
|
+
* @retvalues
|
|
817
|
+
* @ENG_START_DOX
|
|
818
|
+
* If the list of desktops is successfully returned, __ADLX_OK__ is returned.<br>
|
|
819
|
+
* If the list of desktops is not successfully returned, an error code is returned.<br>
|
|
820
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
821
|
+
* @ENG_END_DOX
|
|
822
|
+
*
|
|
823
|
+
* @detaileddesc
|
|
824
|
+
* @ENG_START_DOX
|
|
825
|
+
* @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support".<br>
|
|
826
|
+
* The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.<br>
|
|
827
|
+
* @ENG_END_DOX
|
|
828
|
+
*
|
|
829
|
+
* @addinfo
|
|
830
|
+
* @ENG_START_DOX
|
|
831
|
+
* In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
|
|
832
|
+
* @ENG_END_DOX
|
|
833
|
+
*
|
|
834
|
+
* @copydoc IADLXDesktopServices_REQ_TABLE
|
|
835
|
+
*
|
|
836
|
+
*/
|
|
837
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetDesktops (IADLXDesktopList** ppDesktops) = 0;
|
|
838
|
+
/**
|
|
839
|
+
* @page DOX_IADLXDesktopServices_GetDesktopChangedHandling GetDesktopChangedHandling
|
|
840
|
+
* @ENG_START_DOX
|
|
841
|
+
* @brief Gets the reference counted interface that allows registering and unregistering for notifications when desktop settings change.
|
|
842
|
+
* @ENG_END_DOX
|
|
843
|
+
*
|
|
844
|
+
* @syntax
|
|
845
|
+
* @codeStart
|
|
846
|
+
* @ref ADLX_RESULT GetDesktopChangedHandling (@ref DOX_IADLXDesktopChangedHandling** ppDesktopChangedHandling)
|
|
847
|
+
* @codeEnd
|
|
848
|
+
*
|
|
849
|
+
* @params
|
|
850
|
+
* @paramrow{1.,[out] ,ppDesktopChangedHandling,@ref DOX_IADLXDesktopChangedHandling** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDeskChangedHandling__ to __nullptr__. @ENG_END_DOX}
|
|
851
|
+
*
|
|
852
|
+
*@retvalues
|
|
853
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
854
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
855
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
856
|
+
*
|
|
857
|
+
*@detaileddesc
|
|
858
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
859
|
+
*
|
|
860
|
+
*@addinfo
|
|
861
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
862
|
+
*
|
|
863
|
+
* @copydoc IADLXDesktopServices_REQ_TABLE
|
|
864
|
+
*
|
|
865
|
+
*/
|
|
866
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetDesktopChangedHandling (IADLXDesktopChangedHandling** ppDesktopChangedHandling) = 0;
|
|
867
|
+
/**
|
|
868
|
+
*@page DOX_IADLXDesktopServices_GetSimpleEyefinity GetSimpleEyefinity
|
|
869
|
+
*@ENG_START_DOX @brief Gets the reference counted interface to create and destroy AMD Eyefinity desktops. @ENG_END_DOX
|
|
870
|
+
*
|
|
871
|
+
*@syntax
|
|
872
|
+
*@codeStart
|
|
873
|
+
* @ref ADLX_RESULT GetSimpleEyefinity (@ref DOX_IADLXSimpleEyefinity** ppSimpleEyefinity)
|
|
874
|
+
*@codeEnd
|
|
875
|
+
*
|
|
876
|
+
*@params
|
|
877
|
+
*@paramrow{1.,[out] ,ppSimpleEyefinity,@ref DOX_IADLXSimpleEyefinity** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppSimpleEyefinity__ to __nullptr__. @ENG_END_DOX}
|
|
878
|
+
*
|
|
879
|
+
*@retvalues
|
|
880
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
881
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
882
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
883
|
+
*
|
|
884
|
+
*@detaileddesc
|
|
885
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
886
|
+
*
|
|
887
|
+
*@addinfo
|
|
888
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
889
|
+
*
|
|
890
|
+
*@copydoc IADLXDesktopServices_REQ_TABLE
|
|
891
|
+
*
|
|
892
|
+
*/
|
|
893
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetSimpleEyefinity (IADLXSimpleEyefinity** ppSimpleEyefinity) = 0;
|
|
894
|
+
}; //IADLXDesktopServices
|
|
895
|
+
//----------------------------------------------------------------------------------------------
|
|
896
|
+
typedef IADLXInterfacePtr_T<IADLXDesktopServices> IADLXDesktopServicesPtr;
|
|
897
|
+
} //namespace adlx
|
|
898
|
+
#else //__cplusplus
|
|
899
|
+
ADLX_DECLARE_IID (IADLXDesktopServices, L"IADLXDesktopServices")
|
|
900
|
+
typedef struct IADLXDesktopServices IADLXDesktopServices;
|
|
901
|
+
typedef struct IADLXDesktopServicesVtbl
|
|
902
|
+
{
|
|
903
|
+
//IADLXInterface
|
|
904
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXDesktopServices* pThis);
|
|
905
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXDesktopServices* pThis);
|
|
906
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXDesktopServices* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
907
|
+
|
|
908
|
+
//IADLXDesktopServices
|
|
909
|
+
ADLX_RESULT (ADLX_STD_CALL *GetNumberOfDesktops) (IADLXDesktopServices* pThis, adlx_uint* pNumDesktops);
|
|
910
|
+
ADLX_RESULT (ADLX_STD_CALL *GetDesktops) (IADLXDesktopServices* pThis, IADLXDesktopList** ppDesktops);
|
|
911
|
+
ADLX_RESULT (ADLX_STD_CALL *GetDesktopChangedHandling) (IADLXDesktopServices* pThis, IADLXDesktopChangedHandling** ppDesktopChangedHandling);
|
|
912
|
+
ADLX_RESULT (ADLX_STD_CALL *GetSimpleEyefinity) (IADLXDesktopServices* pThis, IADLXSimpleEyefinity** ppSimpleEyefinity);
|
|
913
|
+
}IADLXDesktopServicesVtbl;
|
|
914
|
+
struct IADLXDesktopServices { const IADLXDesktopServicesVtbl *pVtbl; };
|
|
915
|
+
#endif //__cplusplus
|
|
916
|
+
#pragma endregion IADLXDesktopServices
|
|
917
|
+
|
|
918
|
+
#endif //ADLX_IDESKTOPS_H
|