1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_UPDATER_WIN_CONSTANTS_H_
6 #define CHROME_UPDATER_WIN_CONSTANTS_H_
7 
8 #include <windows.h>
9 
10 #include "base/strings/string16.h"
11 #include "chrome/updater/updater_version.h"
12 
13 namespace updater {
14 
15 // The prefix to use for global names in WIN32 API's. The prefix is necessary
16 // to avoid collision on kernel object names.
17 extern const base::char16 kGlobalPrefix[];
18 
19 // Serializes access to prefs.
20 extern const base::char16 kPrefsAccessMutex[];
21 
22 // Registry keys and value names.
23 #define COMPANY_KEY "Software\\" COMPANY_SHORTNAME_STRING "\\"
24 // Use |Update| instead of PRODUCT_FULLNAME_STRING for the registry key name
25 // to be backward compatible with Google Update / Omaha.
26 #define UPDATER_KEY COMPANY_KEY "Update\\"
27 #define CLIENTS_KEY UPDATER_KEY "Clients\\"
28 #define CLIENT_STATE_KEY UPDATER_KEY "ClientState\\"
29 #define UPDATE_DEV_KEY COMPANY_KEY L"UpdateDev\\"
30 
31 #define COMPANY_POLICIES_KEY \
32   L"Software\\Policies\\" COMPANY_SHORTNAME_STRING L"\\"
33 #define UPDATER_POLICIES_KEY COMPANY_POLICIES_KEY UPDATER_KEY L"\\"
34 
35 extern const base::char16 kRegistryValuePV[];
36 extern const base::char16 kRegistryValueName[];
37 extern const base::char16 kRegistryValueInstallerProgress[];
38 
39 extern const base::char16 kWindowsServiceName[];
40 
41 // The 'dynamic_guid' feature of midl.gni only allows for a single 'coclass'
42 // definition in the IDL file. Any other coclasses need to be defined here.
43 extern const CLSID CLSID_UpdaterServiceClass;
44 extern const CLSID CLSID_UpdaterControlClass;
45 extern const CLSID CLSID_GoogleUpdate3WebUserClass;
46 
47 }  // namespace updater
48 
49 #endif  // CHROME_UPDATER_WIN_CONSTANTS_H_
50