Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Unified Diff: base/ATLRegMapEx.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « __init__.py ('k') | base/accounts.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/ATLRegMapEx.h
diff --git a/base/ATLRegMapEx.h b/base/ATLRegMapEx.h
deleted file mode 100644
index 8e793941689fce86bae75fcd60cc2307c0c0563c..0000000000000000000000000000000000000000
--- a/base/ATLRegMapEx.h
+++ /dev/null
@@ -1,325 +0,0 @@
-// Copyright 2005-2009 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// ========================================================================
-//
-// Extension to DECLARE_REGISTRY_RESOURCEID that makes adding stuff to
-// your reg file as simple as using an atl macro map.
-//
-// Adapted from http://thecodeproject.com/atl/RegistryMap.asp
-/*
- * Defines a 'registry' map for adding variables to rgs files.
- * Original Code Copyright 2001-2003 Michael Geddes. All rights reserved.
- * Modified Code Copyright 2005 Google Inc.
- */
-
-/* use this as your RGS file -- remove or add parameters as you see fit
-//
-// The ATL registrar requires single quotes to be escaped in substitution data
-// enclosed in single quotes in the RGS file. Since the registry map is not
-// aware of which data fields are quoted, to err on the side of caution, all
-// _ATL_REGMAP_ENTRYKeeper constructors escape szData. It is also important to
-// enclose all substitutions in RGS files in single quotes, as shown in the
-// example here:
-
-HKCR
-{
- '%PROGID%.%VERSION%' = s '%DESCRIPTION%'
- {
- CLSID = s '%CLSID%'
- }
- '%PROGID%' = s '%DESCRIPTION%'
- {
- CLSID = s '%CLSID%'
- CurVer = s '%PROGID%.%VERSION%'
- }
- NoRemove CLSID
- {
- ForceRemove '%CLSID%' = s '%DESCRIPTION%'
- {
- ProgID = s '%PROGID%.%VERSION%'
- VersionIndependentProgID = s '%PROGID%'
- ForceRemove 'Programmable'
- InprocServer32 = s '%MODULE%'
- {
- val ThreadingModel = s '%THREADING%'
- }
- 'TypeLib' = s '%LIBID%'
- }
- }
-}
-
-*/
-
-#ifndef OMAHA_BASE_ATLREGMAPEX_H__
-#define OMAHA_BASE_ATLREGMAPEX_H__
-
-#include <atlbase.h>
-#include <atlconv.h>
-#include <atlstr.h>
-#include "omaha/base/app_util.h"
-#include "omaha/base/error.h"
-#include "omaha/base/path.h"
-#include "omaha/base/statregex.h"
-#include "omaha/base/utils.h"
-
-namespace omaha {
-
-struct _ATL_REGMAP_ENTRYKeeper : public _ATL_REGMAP_ENTRY {
- // Returns a new Olestr that needs to be freed by caller.
- LPCOLESTR NewKeyOlestr(LPCTSTR tstr) {
- CT2COLE olestr(tstr);
- int alloc_length = lstrlen(olestr) + 1;
- LPOLESTR new_olestr = new OLECHAR[alloc_length];
- if (new_olestr) {
- lstrcpyn(new_olestr, olestr, alloc_length);
- }
- return new_olestr;
- }
-
- // Escapes single quotes and returns a new Olestr that needs to be freed by
- // caller.
- LPCOLESTR NewDataOlestr(LPCTSTR tstr) {
- CT2COLE olestr(tstr);
-
- CStringW escaped_str;
- int alloc_length = lstrlen(olestr) * 2 + 1;
- ATL::CAtlModule::EscapeSingleQuote(CStrBufW(escaped_str, alloc_length),
- alloc_length,
- olestr);
-
- alloc_length = escaped_str.GetLength() + 1;
- LPOLESTR new_escaped_str = new OLECHAR[alloc_length];
- if (new_escaped_str) {
- lstrcpyn(new_escaped_str, escaped_str, alloc_length);
- }
- return new_escaped_str;
- }
-
- _ATL_REGMAP_ENTRYKeeper() {
- szKey = NULL;
- szData = NULL;
- }
-
- // REGMAP_ENTRY(x, y)
- _ATL_REGMAP_ENTRYKeeper(LPCTSTR key_tstr, LPCWSTR data_tstr) {
- szKey = NewKeyOlestr(key_tstr);
- szData = NewDataOlestr(CW2T(data_tstr));
- }
-
- // REGMAP_ENTRY(x, y)
- _ATL_REGMAP_ENTRYKeeper(LPCTSTR key_tstr, LPCSTR data_tstr) {
- szKey = NewKeyOlestr(key_tstr);
- szData = NewDataOlestr(CA2T(data_tstr));
- }
-
- // REGMAP_MODULE(x)
- explicit _ATL_REGMAP_ENTRYKeeper(LPCTSTR key_tstr) {
- szKey = NewKeyOlestr(key_tstr);
- szData = NewDataOlestr(EnclosePathIfExe(app_util::GetCurrentModulePath()));
- }
-
- // REGMAP_MODULE2(x, modulename)
- _ATL_REGMAP_ENTRYKeeper(LPCTSTR key_tstr,
- LPCTSTR module_name_tstr,
- bool /* is_relative_to_current_module */) {
- szKey = NewKeyOlestr(key_tstr);
- szData = NULL;
-
- CStringW full_module_name(app_util::GetCurrentModuleDirectory());
- full_module_name += _T("\\");
- full_module_name += module_name_tstr;
- szData = NewDataOlestr(EnclosePathIfExe(full_module_name));
- }
-
- // REGMAP_EXE_MODULE(x)
- _ATL_REGMAP_ENTRYKeeper(LPCTSTR key_tstr,
- bool /* is_current_exe_module */) {
- szKey = NewKeyOlestr(key_tstr);
- szData = NewDataOlestr(EnclosePathIfExe(app_util::GetModulePath(NULL)));
- }
-
- // REGMAP_RESOURCE(x, resid)
- _ATL_REGMAP_ENTRYKeeper(LPCTSTR key_tstr, UINT resid, bool /* resource */) {
- szKey = NewKeyOlestr(key_tstr);
- CStringW res_name;
- BOOL success = res_name.LoadString(resid);
- ATLASSERT(success);
- szData = NewDataOlestr(res_name);
- }
-
- // REGMAP_UUID(x, clsid)
- _ATL_REGMAP_ENTRYKeeper(LPCTSTR key_tstr, REFGUID guid) {
- szKey = NewKeyOlestr(key_tstr);
- szData = NewDataOlestr(GuidToString(guid));
- }
-
- ~_ATL_REGMAP_ENTRYKeeper() {
- delete [] szKey;
- delete [] szData;
- }
-
- // This method is mostly the same as the atlmfc_vc80 version of
- // ATL::CAtlModule::UpdateRegistryFromResourceS. The only functional change
- // is that it uses omaha::RegObject instead of ATL::CRegObject.
- static HRESULT UpdateRegistryFromResourceEx(
- UINT nResID, BOOL bRegister, struct _ATL_REGMAP_ENTRY* pMapEntries) {
- RegObject ro;
- HRESULT hr = ro.FinalConstruct();
- if (FAILED(hr)) {
- return hr;
- }
-
- if (pMapEntries != NULL) {
- while (pMapEntries->szKey != NULL) {
- ASSERT1(NULL != pMapEntries->szData);
- ro.AddReplacement(pMapEntries->szKey, pMapEntries->szData);
- pMapEntries++;
- }
- }
-
- hr = ATL::_pAtlModule->AddCommonRGSReplacements(&ro);
- if (FAILED(hr)) {
- return hr;
- }
-
- USES_CONVERSION_EX;
- TCHAR szModule[MAX_PATH];
- HINSTANCE hInst = _AtlBaseModule.GetModuleInstance();
- DWORD dwFLen = ::GetModuleFileName(hInst, szModule, MAX_PATH);
- if (dwFLen == 0) {
- return HRESULTFromLastError();
- } else if (dwFLen == MAX_PATH) {
- return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER);
- }
-
- LPOLESTR pszModule = NULL;
- pszModule = T2OLE_EX(szModule, _ATL_SAFE_ALLOCA_DEF_THRESHOLD);
- OLECHAR pszModuleUnquoted[_MAX_PATH * 2]; // NOLINT
- ATL::CAtlModule::EscapeSingleQuote(pszModuleUnquoted,
- _countof(pszModuleUnquoted),
- pszModule);
-
- HRESULT hRes;
- if ((hInst == NULL) || (hInst == GetModuleHandle(NULL))) {
- // If Registering as an EXE, then we quote the resultant path.
- // We don't do it for a DLL, because LoadLibrary fails if the path is
- // quoted
- OLECHAR pszModuleQuote[(_MAX_PATH + _ATL_QUOTES_SPACE) * 2]; // NOLINT
- pszModuleQuote[0] = OLESTR('\"');
- if (!ocscpy_s(pszModuleQuote + 1, (_MAX_PATH + _ATL_QUOTES_SPACE) * 2 - 1,
- pszModuleUnquoted)) {
- return E_FAIL;
- }
-
- size_t nLen = ocslen(pszModuleQuote);
- pszModuleQuote[nLen] = OLESTR('\"');
- pszModuleQuote[nLen + 1] = 0;
-
- hRes = ro.AddReplacement(OLESTR("Module"), pszModuleQuote);
- } else {
- hRes = ro.AddReplacement(OLESTR("Module"), pszModuleUnquoted);
- }
-
- if (FAILED(hRes)) {
- return hRes;
- }
-
- hRes = ro.AddReplacement(OLESTR("Module_Raw"), pszModuleUnquoted);
- if (FAILED(hRes)) {
- return hRes;
- }
-
- LPCOLESTR szType = OLESTR("REGISTRY");
- hr = bRegister ? ro.ResourceRegister(pszModule, nResID, szType) :
- ro.ResourceUnregister(pszModule, nResID, szType);
- return hr;
- }
-};
-
-// This now supports DECLARE_OLEMISC_STATUS()
-#define BEGIN_REGISTRY_MAP() \
- __if_exists(_GetMiscStatus) { \
- static LPCTSTR _GetMiscStatusString() { \
- static TCHAR misc_string[32] = {0} \
- if (!misc_string[0]) { \
- wsprintf(misc_string, _T("%d"), _GetMiscStatus()); \
- } \
- \
- return misc_string; \
- } \
- } \
- \
- static struct _ATL_REGMAP_ENTRY *_GetRegistryMap() { \
- static const _ATL_REGMAP_ENTRYKeeper map[] = { \
- __if_exists(_GetMiscStatusString) { \
- _ATL_REGMAP_ENTRYKeeper(_T("OLEMISC"), _GetMiscStatusString()), \
- } \
- __if_exists(GetAppIdT) { \
- _ATL_REGMAP_ENTRYKeeper(_T("APPID"), GetAppIdT()), \
- } \
-
-#define REGMAP_ENTRY(x, y) _ATL_REGMAP_ENTRYKeeper((x), (y)),
-
-#define REGMAP_RESOURCE(x, resid) _ATL_REGMAP_ENTRYKeeper((x), (resid), true),
-
-#define REGMAP_UUID(x, clsid) _ATL_REGMAP_ENTRYKeeper((x), (clsid)),
-
-// Add in an entry with key x, and value being the current module path.
-// For example, REGMAP_MODULE("foo"), with the current module being
-// "goopdate.dll" will result in the entry:
-// "foo", "{blah}\\Google\\Update\\1.2.71.7\\goopdate.dll"
-#define REGMAP_MODULE(x) _ATL_REGMAP_ENTRYKeeper((x)),
-
-// Add in an entry with key x, and value being modulename, fully qualified with
-// the current module path. For example, REGMAP_MODULE2("foo", "npClick7.dll")
-// with the current module being "goopdate.dll" will result in the entry:
-// "foo", "{blah}\\Google\\Update\\1.2.71.7\\npClick7.dll"
-#define REGMAP_MODULE2(x, modulename) \
- _ATL_REGMAP_ENTRYKeeper((x), (modulename), true),
-
-// Add in an entry with key x, and value being the currently running EXE's
-// module path. For example, REGMAP_EXE_MODULE("foo"), with the current process
-// being googleupdate.exe will result in the entry:
-// "foo", "{blah}\\Google\\Update\\googleupdate.exe"
-#define REGMAP_EXE_MODULE(x) _ATL_REGMAP_ENTRYKeeper((x), true),
-
-#define END_REGISTRY_MAP() _ATL_REGMAP_ENTRYKeeper() \
- }; \
- return (_ATL_REGMAP_ENTRY *)map; /* NOLINT */ \
- }
-
-#define DECLARE_REGISTRY_RESOURCEID_EX(x) \
- static HRESULT WINAPI UpdateRegistry(BOOL reg) { \
- return _ATL_REGMAP_ENTRYKeeper::UpdateRegistryFromResourceEx( \
- (UINT)(x), (reg), _GetRegistryMap()); \
-}
-
-#define DECLARE_REGISTRY_APPID_RESOURCEID_EX(resid, appid) \
- static LPCOLESTR GetAppId() throw() { \
- static const CStringW app_id(appid); \
- return app_id; \
- } \
- static LPCTSTR GetAppIdT() throw() { \
- return GetAppId(); \
- } \
- static HRESULT WINAPI UpdateRegistryAppId(BOOL reg) throw() { \
- return _ATL_REGMAP_ENTRYKeeper::UpdateRegistryFromResourceEx( \
- resid, (reg), _GetRegistryMap()); \
- }
-// END registry map
-
-} // namespace omaha
-
-#endif // OMAHA_BASE_ATLREGMAPEX_H__
-
« no previous file with comments | « __init__.py ('k') | base/accounts.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698