2 * Gameux library private header
4 * Copyright (C) 2010 Mariusz PluciĆski
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 extern HRESULT GameExplorer_create(IUnknown* pUnkOuter, IUnknown **ppObj);
22 extern HRESULT GameStatistics_create(IUnknown* pUnkOuter, IUnknown **ppObj);
24 /*******************************************************************************
25 * Helper functions and structures
27 * These are helper function and structures, which are used widely in gameux
28 * implementation. Details about usage and place of implementation is
29 * in description of each function/strucutre.
32 /*******************************************************************************
33 * struct GAMEUX_GAME_DATA
35 * Structure which contains data about single game. It is used to transfer
36 * data inside of gameux module in various places.
38 struct GAMEUX_GAME_DATA
40 LPWSTR sGDFBinaryPath; /* path to binary containing GDF */
41 LPWSTR sGameInstallDirectory; /* directory passed to AddGame/InstallGame methods */
42 GAME_INSTALL_SCOPE installScope;/* game's installation scope */
43 GUID guidInstanceId; /* game installation instance identifier */
45 /*******************************************************************************
48 * Initializes GAME_DATA structure fields with proper values. Should be
49 * called always before first usage of this structure. Implemented in gameexplorer.c
52 * GameData [I/O] pointer to structure to initialize
54 void GAMEUX_initGameData(struct GAMEUX_GAME_DATA *GameData);
55 /*******************************************************************************
56 * GAMEUX_uninitGameData
58 * Properly frees all data stored or pointed by fields of GAME_DATA structure.
59 * Should be called before freeing this structure. Implemented in gameexplorer.c
62 * GameData [I/O] pointer to structure to uninitialize
64 void GAMEUX_uninitGameData(struct GAMEUX_GAME_DATA *GameData);
65 /*******************************************************************************
68 * Helper function. Registers game associated with given GDF binary in
69 * Game Explorer. Implemented in gameexplorer.c
72 * sGDFBinaryPath [I] path to binary containing GDF file in
74 * sGameInstallDirectory [I] path to directory, where game installed
76 * installScope [I] scope of game installation
77 * pInstanceID [I/O] pointer to game instance identifier.
78 * If pointing to GUID_NULL, then new
79 * identifier will be generated automatically
80 * and returned via this parameter
82 HRESULT WINAPI GAMEUX_RegisterGame(LPCWSTR sGDFBinaryPath,
83 LPCWSTR sGameInstallDirectory,
84 GAME_INSTALL_SCOPE installScope,