gameux: Add storing Title registry value.
[wine] / dlls / gameux / gameux_private.h
1 /*
2  *    Gameux library private header
3  *
4  * Copyright (C) 2010 Mariusz PluciƄski
5  *
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.
10  *
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.
15  *
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
19  */
20
21 extern HRESULT GameExplorer_create(IUnknown* pUnkOuter, IUnknown **ppObj);
22 extern HRESULT GameStatistics_create(IUnknown* pUnkOuter, IUnknown **ppObj);
23
24 /*******************************************************************************
25  * Helper functions and structures
26  *
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.
30  */
31
32 /*******************************************************************************
33  * struct GAMEUX_GAME_DATA
34  *
35  * Structure which contains data about single game. It is used to transfer
36  * data inside of gameux module in various places.
37  */
38 struct GAMEUX_GAME_DATA
39 {
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 */
44     GUID guidApplicationId;         /* game's application identifier */
45     BSTR bstrName;                  /* game's title */
46 };
47 /*******************************************************************************
48  * GAMEUX_initGameData
49  *
50  * Initializes GAME_DATA structure fields with proper values. Should be
51  * called always before first usage of this structure. Implemented in gameexplorer.c
52  *
53  * Parameters:
54  *  GameData                        [I/O]   pointer to structure to initialize
55  */
56 void GAMEUX_initGameData(struct GAMEUX_GAME_DATA *GameData);
57 /*******************************************************************************
58  * GAMEUX_uninitGameData
59  *
60  * Properly frees all data stored or pointed by fields of GAME_DATA structure.
61  * Should be called before freeing this structure. Implemented in gameexplorer.c
62  *
63  * Parameters:
64  *  GameData                        [I/O]   pointer to structure to uninitialize
65  */
66 void GAMEUX_uninitGameData(struct GAMEUX_GAME_DATA *GameData);
67 /*******************************************************************************
68  *  GAMEUX_RegisterGame
69  *
70  * Helper function. Registers game associated with given GDF binary in
71  * Game Explorer. Implemented in gameexplorer.c
72  *
73  * Parameters:
74  *  sGDFBinaryPath                  [I]     path to binary containing GDF file in
75  *                                          resources
76  *  sGameInstallDirectory           [I]     path to directory, where game installed
77  *                                          it's files.
78  *  installScope                    [I]     scope of game installation
79  *  pInstanceID                     [I/O]   pointer to game instance identifier.
80  *                                          If pointing to GUID_NULL, then new
81  *                                          identifier will be generated automatically
82  *                                          and returned via this parameter
83  */
84 HRESULT WINAPI GAMEUX_RegisterGame(LPCWSTR sGDFBinaryPath,
85         LPCWSTR sGameInstallDirectory,
86         GAME_INSTALL_SCOPE installScope,
87         GUID *pInstanceID);