2 * Defines the COM interfaces of Game Explorer
4 * Copyright (C) 2008 Alistair Leslie-Hughes
5 * Copyright (C) 2010 Mariusz PluciĆski
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 import
"shobjidl.idl";
27 uuid(1DE6CE3D
-EA69
-4671-941F
-26F789F39C5B
),
29 helpstring("gameux public 1.0 Type Library")
33 importlib
("stdole2.tlb");
35 cpp_quote
("#define ID_GDF_XML __GDF_XML")
36 cpp_quote
("#define ID_GDF_THUMBNAIL __GDF_THUMBNAIL")
37 cpp_quote
("#define ID_ICON_ICO __ICON_ICO")
39 cpp_quote
("#if defined(__GNUC__)")
40 cpp_quote
("#define ID_GDF_XML_STR (const WCHAR[]){'_','_','G','D','F','_','X','M','L',0}")
41 cpp_quote
("#define ID_GDF_THUMBNAIL_STR (const WCHAR[]){'_','_','G','D','F','_','T','H','U','M','B','N','A','I','L',0}")
42 cpp_quote
("#elif defined(_MSC_VER)")
43 cpp_quote
("#define ID_GDF_XML_STR L\"__GDF_XML\"")
44 cpp_quote
("#define ID_GDF_THUMBNAIL_STR L\"__GDF_THUMBNAIL\"")
49 GIS_NOT_INSTALLED
= 1,
56 GAMESTATS_OPEN_OPENORCREATE
= 0,
57 GAMESTATS_OPEN_OPENONLY
= 1
58 } GAMESTATS_OPEN_TYPE
;
62 GAMESTATS_OPEN_CREATED
= 0,
63 GAMESTATS_OPEN_OPENED
= 1
64 } GAMESTATS_OPEN_RESULT
;
68 uuid(E7B2FB72
-D728
-49B3
-A5F2
-18EBF5F1349E
)
70 interface IGameExplorer
: IUnknown
72 HRESULT AddGame
([in] BSTR sGDFBinaryPath
,
73 [in] BSTR sInstallDirectory
,
74 [in] GAME_INSTALL_SCOPE installScope
,
75 [in, out] GUID
* pguidInstanceID
);
77 HRESULT RemoveGame
([in] GUID instanceID
);
79 HRESULT UpdateGame
([in] GUID instanceID
);
81 HRESULT VerifyAccess
([in] BSTR sGDFBinaryPath
,
82 [out] BOOL
* pHasAccess
);
87 uuid(3887C9CA
-04A0
-42ae
-BC4C
-5FA6C7721145
)
89 interface IGameStatistics
: IUnknown
91 HRESULT GetMaxCategoryLength
(
92 [retval, out] UINT
* cch
);
94 HRESULT GetMaxNameLength
(
95 [retval, out] UINT
* cch
);
97 HRESULT GetMaxValueLength
(
98 [retval, out] UINT
* cch
);
100 HRESULT GetMaxCategories
(
101 [retval, out] WORD
* pMax
);
103 HRESULT GetMaxStatsPerCategory
(
104 [retval, out] WORD
* pMax
);
106 HRESULT SetCategoryTitle
(
107 [in] WORD categoryIndex
,
108 [string, in] LPCWSTR title
);
110 HRESULT GetCategoryTitle
(
111 [in] WORD categoryIndex
,
112 [retval, string, out] LPWSTR
* pTitle
);
114 HRESULT GetStatistic
(
115 [in] WORD categoryIndex
,
117 [string, unique, out, in] LPWSTR
* pName
,
118 [string, unique, out, in] LPWSTR
* pValue
);
120 HRESULT SetStatistic
(
121 [in] WORD categoryIndex
,
123 [string, in] LPCWSTR name
,
124 [string, in] LPCWSTR value
);
127 [in] BOOL trackChanges
);
129 HRESULT SetLastPlayedCategory
(
130 [in] UINT categoryIndex
);
132 HRESULT GetLastPlayedCategory
(
133 [retval, out] UINT
* pCategoryIndex
);
138 uuid(AFF3EA11
-E70E
-407d
-95DD
-35E612C41CE2
)
140 interface IGameStatisticsMgr
: IUnknown
142 HRESULT GetGameStatistics
(
143 [string, in] LPCWSTR GDFBinaryPath
,
144 [in] GAMESTATS_OPEN_TYPE openType
,
145 [out] GAMESTATS_OPEN_RESULT
* pOpenResult
,
146 [retval, out] IGameStatistics
** ppiStats
);
148 HRESULT RemoveGameStatistics
(
149 [string, in] LPCWSTR GDFBinaryPath
);
154 uuid(86874AA7
-A1ED
-450d
-A7EB
-B89E20B2FFF3
)
156 interface IGameExplorer2
: IUnknown
159 [string, in] LPCWSTR binaryGDFPath
,
160 [unique, in] LPCWSTR installDirectory
,
161 [in] GAME_INSTALL_SCOPE installScope
);
163 HRESULT UninstallGame
(
164 [string, in] LPCWSTR binaryGDFPath
);
167 [string, in] LPCWSTR binaryGDFPath
,
168 [retval, out] BOOL
* pHasAccess
);
173 uuid(9A5EA990
-3034-4D6F
-9128-01F3C61022BC
)
177 [default] interface IGameExplorer
;
181 uuid(DBC85A2C
-C0DC
-4961-B6E2
-D28B62C11AD4
)
183 coclass GameStatistics
185 [default] interface IGameStatistics
;