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;