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 #define threading
(model
)
29 #define vi_progid
(str
)
33 uuid(4F48A59C
-942D
-4F3C
-83C9
-4EFFE84E4959
),
35 helpstring("gameux public 1.0 Type Library")
39 importlib
("stdole2.tlb");
41 cpp_quote
("#define ID_GDF_XML __GDF_XML")
42 cpp_quote
("#define ID_GDF_THUMBNAIL __GDF_THUMBNAIL")
43 cpp_quote
("#define ID_ICON_ICO __ICON_ICO")
45 cpp_quote
("#if defined(__GNUC__)")
46 cpp_quote
("#define ID_GDF_XML_STR (const WCHAR[]){'_','_','G','D','F','_','X','M','L',0}")
47 cpp_quote
("#define ID_GDF_THUMBNAIL_STR (const WCHAR[]){'_','_','G','D','F','_','T','H','U','M','B','N','A','I','L',0}")
48 cpp_quote
("#elif defined(_MSC_VER)")
49 cpp_quote
("#define ID_GDF_XML_STR L\"__GDF_XML\"")
50 cpp_quote
("#define ID_GDF_THUMBNAIL_STR L\"__GDF_THUMBNAIL\"")
55 GIS_NOT_INSTALLED
= 1,
62 GAMESTATS_OPEN_OPENORCREATE
= 0,
63 GAMESTATS_OPEN_OPENONLY
= 1
64 } GAMESTATS_OPEN_TYPE
;
68 GAMESTATS_OPEN_CREATED
= 0,
69 GAMESTATS_OPEN_OPENED
= 1
70 } GAMESTATS_OPEN_RESULT
;
74 uuid(E7B2FB72
-D728
-49B3
-A5F2
-18EBF5F1349E
)
76 interface IGameExplorer
: IUnknown
78 HRESULT AddGame
([in] BSTR sGDFBinaryPath
,
79 [in] BSTR sInstallDirectory
,
80 [in] GAME_INSTALL_SCOPE installScope
,
81 [in, out] GUID
* pguidInstanceID
);
83 HRESULT RemoveGame
([in] GUID instanceID
);
85 HRESULT UpdateGame
([in] GUID instanceID
);
87 HRESULT VerifyAccess
([in] BSTR sGDFBinaryPath
,
88 [out] BOOL
* pHasAccess
);
93 uuid(3887C9CA
-04A0
-42ae
-BC4C
-5FA6C7721145
)
95 interface IGameStatistics
: IUnknown
97 HRESULT GetMaxCategoryLength
(
98 [retval, out] UINT
* cch
);
100 HRESULT GetMaxNameLength
(
101 [retval, out] UINT
* cch
);
103 HRESULT GetMaxValueLength
(
104 [retval, out] UINT
* cch
);
106 HRESULT GetMaxCategories
(
107 [retval, out] WORD
* pMax
);
109 HRESULT GetMaxStatsPerCategory
(
110 [retval, out] WORD
* pMax
);
112 HRESULT SetCategoryTitle
(
113 [in] WORD categoryIndex
,
114 [string, in] LPCWSTR title
);
116 HRESULT GetCategoryTitle
(
117 [in] WORD categoryIndex
,
118 [retval, string, out] LPWSTR
* pTitle
);
120 HRESULT GetStatistic
(
121 [in] WORD categoryIndex
,
123 [string, unique, out, in] LPWSTR
* pName
,
124 [string, unique, out, in] LPWSTR
* pValue
);
126 HRESULT SetStatistic
(
127 [in] WORD categoryIndex
,
129 [string, in] LPCWSTR name
,
130 [string, in] LPCWSTR value
);
133 [in] BOOL trackChanges
);
135 HRESULT SetLastPlayedCategory
(
136 [in] UINT categoryIndex
);
138 HRESULT GetLastPlayedCategory
(
139 [retval, out] UINT
* pCategoryIndex
);
144 uuid(AFF3EA11
-E70E
-407d
-95DD
-35E612C41CE2
)
146 interface IGameStatisticsMgr
: IUnknown
148 HRESULT GetGameStatistics
(
149 [string, in] LPCWSTR GDFBinaryPath
,
150 [in] GAMESTATS_OPEN_TYPE openType
,
151 [out] GAMESTATS_OPEN_RESULT
* pOpenResult
,
152 [retval, out] IGameStatistics
** ppiStats
);
154 HRESULT RemoveGameStatistics
(
155 [string, in] LPCWSTR GDFBinaryPath
);
160 uuid(86874AA7
-A1ED
-450d
-A7EB
-B89E20B2FFF3
)
162 interface IGameExplorer2
: IUnknown
165 [string, in] LPCWSTR binaryGDFPath
,
166 [unique, in] LPCWSTR installDirectory
,
167 [in] GAME_INSTALL_SCOPE installScope
);
169 HRESULT UninstallGame
(
170 [string, in] LPCWSTR binaryGDFPath
);
173 [string, in] LPCWSTR binaryGDFPath
,
174 [retval, out] BOOL
* pHasAccess
);
179 helpstring("GameExplorer Class"),
181 progid
("gameux.GameExplorer.1"),
182 vi_progid
("gameux.GameExplorer"),
183 uuid(9A5EA990
-3034-4D6F
-9128-01F3C61022BC
)
187 [default] interface IGameExplorer
;
191 helpstring("GameStatistics Class"),
192 threading
(apartment
),
193 progid
("gameux.GameStatistics.1"),
194 vi_progid
("gameux.GameStatistics"),
195 uuid(DBC85A2C
-C0DC
-4961-B6E2
-D28B62C11AD4
)
197 coclass GameStatistics
199 [default] interface IGameStatistics
;