1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * Defines the COM interfaces of Game Explorer
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * Copyright (C) 2008 Alistair Leslie-Hughes
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * Copyright (C) 2010 Mariusz PluciĆski
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * This library is free software; you can redistribute it and/or
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * modify it under the terms of the GNU Lesser General Public
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * License as published by the Free Software Foundation; either
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * version 2.1 of the License, or (at your option) any later version.
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * This library is distributed in the hope that it will be useful,
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * but WITHOUT ANY WARRANTY; without even the implied warranty of
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * Lesser General Public License for more details.
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * You should have received a copy of the GNU Lesser General Public
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * License along with this library; if not, write to the Free Software
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * a choice of LGPL license versions is made available with the language indicating
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * that LGPLv2 or any later version may be used, or where a choice of which version
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering * of the LGPL is applied is otherwise unspecified.
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering#ifndef __WIDL__
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen#define threading(model)
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering#define progid(str)
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering#define vi_progid(str)
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen uuid(4F48A59C-942D-4F3C-83C9-4EFFE84E4959),
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering helpstring("gameux public 1.0 Type Library")
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poetteringlibrary gameuxLib
785890acf6d629ff881a1f065f431df1b7fc8c7aLennart Poettering cpp_quote("#define ID_GDF_XML __GDF_XML")
785890acf6d629ff881a1f065f431df1b7fc8c7aLennart Poettering cpp_quote("#define ID_GDF_THUMBNAIL __GDF_THUMBNAIL")
f2cbe59e113f08549949a76ac5b9b3972df4cc30Lennart Poettering cpp_quote("#define ID_ICON_ICO __ICON_ICO")
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering cpp_quote("#if defined(__GNUC__)")
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering cpp_quote("#define ID_GDF_XML_STR (const WCHAR[]){'_','_','G','D','F','_','X','M','L',0}")
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering cpp_quote("#define ID_GDF_THUMBNAIL_STR (const WCHAR[]){'_','_','G','D','F','_','T','H','U','M','B','N','A','I','L',0}")
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering cpp_quote("#elif defined(_MSC_VER)")
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering cpp_quote("#define ID_GDF_XML_STR L\"__GDF_XML\"")
e56056e93d33619a3acf13e483900b4f8938228fThomas Hindoe Paaboel Andersen cpp_quote("#define ID_GDF_THUMBNAIL_STR L\"__GDF_THUMBNAIL\"")
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering cpp_quote("#endif")
785890acf6d629ff881a1f065f431df1b7fc8c7aLennart Poettering GIS_NOT_INSTALLED = 1,
785890acf6d629ff881a1f065f431df1b7fc8c7aLennart Poettering GIS_CURRENT_USER = 2,
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering GIS_ALL_USERS = 3
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering } GAME_INSTALL_SCOPE;
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering GAMESTATS_OPEN_OPENORCREATE = 0,
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering GAMESTATS_OPEN_OPENONLY = 1
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering } GAMESTATS_OPEN_TYPE;
56159e0d918e9a9be07988133bb2847779325de0Lennart Poettering GAMESTATS_OPEN_CREATED = 0,
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen GAMESTATS_OPEN_OPENED = 1
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen } GAMESTATS_OPEN_RESULT;
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering uuid(E7B2FB72-D728-49B3-A5F2-18EBF5F1349E)
56159e0d918e9a9be07988133bb2847779325de0Lennart Poettering interface IGameExplorer : IUnknown
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering HRESULT AddGame([in] BSTR sGDFBinaryPath,
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering [in] BSTR sInstallDirectory,
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen [in] GAME_INSTALL_SCOPE installScope,
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen [in, out] GUID* pguidInstanceID);
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen HRESULT RemoveGame([in] GUID instanceID);
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen HRESULT UpdateGame([in] GUID instanceID);
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen HRESULT VerifyAccess([in] BSTR sGDFBinaryPath,
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen [out] BOOL* pHasAccess);
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering uuid(3887C9CA-04A0-42ae-BC4C-5FA6C7721145)
e56056e93d33619a3acf13e483900b4f8938228fThomas Hindoe Paaboel Andersen interface IGameStatistics : IUnknown
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen HRESULT GetMaxCategoryLength(
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen [retval, out] UINT* cch);
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering HRESULT GetMaxNameLength(
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen [retval, out] UINT* cch);
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering HRESULT GetMaxValueLength(
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering [retval, out] UINT* cch);
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen HRESULT GetMaxCategories(
5b30bef856e89a571df57b7b953e9a1409d9acedLennart Poettering [retval, out] WORD* pMax);
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen HRESULT GetMaxStatsPerCategory(
a1da85830bfaa77b9eb9c54693e5573559c97e50Tom Gundersen [retval, out] WORD* pMax);
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering HRESULT SetCategoryTitle(
e56056e93d33619a3acf13e483900b4f8938228fThomas Hindoe Paaboel Andersen [in] WORD categoryIndex,
e56056e93d33619a3acf13e483900b4f8938228fThomas Hindoe Paaboel Andersen [string, in] LPCWSTR title);
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering HRESULT GetCategoryTitle(
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering [in] WORD categoryIndex,
1ee306e1248866617c96ed9f4263f375588ad838Lennart Poettering [retval, string, out] LPWSTR* pTitle);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT GetStatistic(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] WORD categoryIndex,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] WORD statIndex,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, unique, out, in] LPWSTR* pName,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, unique, out, in] LPWSTR* pValue);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT SetStatistic(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] WORD categoryIndex,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] WORD statIndex,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, in] LPCWSTR name,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, in] LPCWSTR value);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] BOOL trackChanges);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT SetLastPlayedCategory(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] UINT categoryIndex);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT GetLastPlayedCategory(
56159e0d918e9a9be07988133bb2847779325de0Lennart Poettering [retval, out] UINT* pCategoryIndex);
56159e0d918e9a9be07988133bb2847779325de0Lennart Poettering uuid(AFF3EA11-E70E-407d-95DD-35E612C41CE2)
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering interface IGameStatisticsMgr : IUnknown
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT GetGameStatistics(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, in] LPCWSTR GDFBinaryPath,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] GAMESTATS_OPEN_TYPE openType,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [out] GAMESTATS_OPEN_RESULT* pOpenResult,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [retval, out] IGameStatistics** ppiStats);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT RemoveGameStatistics(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, in] LPCWSTR GDFBinaryPath);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering uuid(86874AA7-A1ED-450d-A7EB-B89E20B2FFF3)
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering interface IGameExplorer2 : IUnknown
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT InstallGame(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, in] LPCWSTR binaryGDFPath,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [unique, in] LPCWSTR installDirectory,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [in] GAME_INSTALL_SCOPE installScope);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT UninstallGame(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, in] LPCWSTR binaryGDFPath);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering HRESULT CheckAccess(
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [string, in] LPCWSTR binaryGDFPath,
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [retval, out] BOOL* pHasAccess);
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering helpstring("GameExplorer Class"),
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering threading(both),
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering uuid(9A5EA990-3034-4D6F-9128-01F3C61022BC)
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering coclass GameExplorer
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [default] interface IGameExplorer;
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering helpstring("GameStatistics Class"),
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering threading(apartment),
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering uuid(DBC85A2C-C0DC-4961-B6E2-D28B62C11AD4)
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering coclass GameStatistics
cd61c3bfd718fb398cc53ced906266a9297782c9Lennart Poettering [default] interface IGameStatistics;