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

Side by Side Diff: webrtc/base/win32regkey.cc

Issue 1362503003: Use suffixed {uint,int}{8,16,32,64}_t types. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase + revert basictypes.h (to be landed separately just in case of a revert due to unexpected us… Created 5 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 unified diff | Download patch
« no previous file with comments | « webrtc/base/win32regkey.h ('k') | webrtc/base/win32regkey_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2003 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2003 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 const TCHAR* value) { 93 const TCHAR* value) {
94 ASSERT(full_key_name != NULL); 94 ASSERT(full_key_name != NULL);
95 ASSERT(value != NULL); 95 ASSERT(value != NULL);
96 96
97 return SetValueStaticHelper(full_key_name, value_name, 97 return SetValueStaticHelper(full_key_name, value_name,
98 REG_SZ, const_cast<wchar_t*>(value)); 98 REG_SZ, const_cast<wchar_t*>(value));
99 } 99 }
100 100
101 HRESULT RegKey::SetValue(const wchar_t* full_key_name, 101 HRESULT RegKey::SetValue(const wchar_t* full_key_name,
102 const wchar_t* value_name, 102 const wchar_t* value_name,
103 const uint8* value, 103 const uint8_t* value,
104 DWORD byte_count) { 104 DWORD byte_count) {
105 ASSERT(full_key_name != NULL); 105 ASSERT(full_key_name != NULL);
106 106
107 return SetValueStaticHelper(full_key_name, value_name, REG_BINARY, 107 return SetValueStaticHelper(full_key_name, value_name, REG_BINARY,
108 const_cast<uint8*>(value), byte_count); 108 const_cast<uint8_t*>(value), byte_count);
109 } 109 }
110 110
111 HRESULT RegKey::SetValueMultiSZ(const wchar_t* full_key_name, 111 HRESULT RegKey::SetValueMultiSZ(const wchar_t* full_key_name,
112 const wchar_t* value_name, 112 const wchar_t* value_name,
113 const uint8* value, 113 const uint8_t* value,
114 DWORD byte_count) { 114 DWORD byte_count) {
115 ASSERT(full_key_name != NULL); 115 ASSERT(full_key_name != NULL);
116 116
117 return SetValueStaticHelper(full_key_name, value_name, REG_MULTI_SZ, 117 return SetValueStaticHelper(full_key_name, value_name, REG_MULTI_SZ,
118 const_cast<uint8*>(value), byte_count); 118 const_cast<uint8_t*>(value), byte_count);
119 } 119 }
120 120
121 HRESULT RegKey::GetValue(const wchar_t* full_key_name, 121 HRESULT RegKey::GetValue(const wchar_t* full_key_name,
122 const wchar_t* value_name, 122 const wchar_t* value_name,
123 DWORD* value) { 123 DWORD* value) {
124 ASSERT(full_key_name != NULL); 124 ASSERT(full_key_name != NULL);
125 ASSERT(value != NULL); 125 ASSERT(value != NULL);
126 126
127 return GetValueStaticHelper(full_key_name, value_name, REG_DWORD, value); 127 return GetValueStaticHelper(full_key_name, value_name, REG_DWORD, value);
128 } 128 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 const wchar_t* value_name, 201 const wchar_t* value_name,
202 std::vector<std::wstring>* value) { 202 std::vector<std::wstring>* value) {
203 ASSERT(full_key_name != NULL); 203 ASSERT(full_key_name != NULL);
204 ASSERT(value != NULL); 204 ASSERT(value != NULL);
205 205
206 return GetValueStaticHelper(full_key_name, value_name, REG_MULTI_SZ, value); 206 return GetValueStaticHelper(full_key_name, value_name, REG_MULTI_SZ, value);
207 } 207 }
208 208
209 HRESULT RegKey::GetValue(const wchar_t* full_key_name, 209 HRESULT RegKey::GetValue(const wchar_t* full_key_name,
210 const wchar_t* value_name, 210 const wchar_t* value_name,
211 uint8** value, 211 uint8_t** value,
212 DWORD* byte_count) { 212 DWORD* byte_count) {
213 ASSERT(full_key_name != NULL); 213 ASSERT(full_key_name != NULL);
214 ASSERT(value != NULL); 214 ASSERT(value != NULL);
215 ASSERT(byte_count != NULL); 215 ASSERT(byte_count != NULL);
216 216
217 return GetValueStaticHelper(full_key_name, value_name, 217 return GetValueStaticHelper(full_key_name, value_name,
218 REG_BINARY, value, byte_count); 218 REG_BINARY, value, byte_count);
219 } 219 }
220 220
221 HRESULT RegKey::DeleteSubKey(const wchar_t* key_name) { 221 HRESULT RegKey::DeleteSubKey(const wchar_t* key_name) {
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 case REG_DWORD: 400 case REG_DWORD:
401 hr = key.SetValue(value_name, *(static_cast<DWORD*>(value))); 401 hr = key.SetValue(value_name, *(static_cast<DWORD*>(value)));
402 break; 402 break;
403 case REG_QWORD: 403 case REG_QWORD:
404 hr = key.SetValue(value_name, *(static_cast<DWORD64*>(value))); 404 hr = key.SetValue(value_name, *(static_cast<DWORD64*>(value)));
405 break; 405 break;
406 case REG_SZ: 406 case REG_SZ:
407 hr = key.SetValue(value_name, static_cast<const wchar_t*>(value)); 407 hr = key.SetValue(value_name, static_cast<const wchar_t*>(value));
408 break; 408 break;
409 case REG_BINARY: 409 case REG_BINARY:
410 hr = key.SetValue(value_name, static_cast<const uint8*>(value), 410 hr = key.SetValue(value_name, static_cast<const uint8_t*>(value),
411 byte_count); 411 byte_count);
412 break; 412 break;
413 case REG_MULTI_SZ: 413 case REG_MULTI_SZ:
414 hr = key.SetValue(value_name, static_cast<const uint8*>(value), 414 hr = key.SetValue(value_name, static_cast<const uint8_t*>(value),
415 byte_count, type); 415 byte_count, type);
416 break; 416 break;
417 default: 417 default:
418 ASSERT(false); 418 ASSERT(false);
419 hr = HRESULT_FROM_WIN32(ERROR_DATATYPE_MISMATCH); 419 hr = HRESULT_FROM_WIN32(ERROR_DATATYPE_MISMATCH);
420 break; 420 break;
421 } 421 }
422 // close the key after writing 422 // close the key after writing
423 HRESULT temp_hr = key.Close(); 423 HRESULT temp_hr = key.Close();
424 if (hr == S_OK) { 424 if (hr == S_OK) {
(...skipping 29 matching lines...) Expand all
454 hr = key.GetValue(value_name, reinterpret_cast<DWORD64*>(value)); 454 hr = key.GetValue(value_name, reinterpret_cast<DWORD64*>(value));
455 break; 455 break;
456 case REG_SZ: 456 case REG_SZ:
457 hr = key.GetValue(value_name, reinterpret_cast<wchar_t**>(value)); 457 hr = key.GetValue(value_name, reinterpret_cast<wchar_t**>(value));
458 break; 458 break;
459 case REG_MULTI_SZ: 459 case REG_MULTI_SZ:
460 hr = key.GetValue(value_name, reinterpret_cast< 460 hr = key.GetValue(value_name, reinterpret_cast<
461 std::vector<std::wstring>*>(value)); 461 std::vector<std::wstring>*>(value));
462 break; 462 break;
463 case REG_BINARY: 463 case REG_BINARY:
464 hr = key.GetValue(value_name, reinterpret_cast<uint8**>(value), 464 hr = key.GetValue(value_name, reinterpret_cast<uint8_t**>(value),
465 byte_count); 465 byte_count);
466 break; 466 break;
467 default: 467 default:
468 ASSERT(false); 468 ASSERT(false);
469 hr = HRESULT_FROM_WIN32(ERROR_DATATYPE_MISMATCH); 469 hr = HRESULT_FROM_WIN32(ERROR_DATATYPE_MISMATCH);
470 break; 470 break;
471 } 471 }
472 // close the key after writing 472 // close the key after writing
473 HRESULT temp_hr = key.Close(); 473 HRESULT temp_hr = key.Close();
474 if (hr == S_OK) { 474 if (hr == S_OK) {
475 hr = temp_hr; 475 hr = temp_hr;
476 } 476 }
477 } 477 }
478 } 478 }
479 return hr; 479 return hr;
480 } 480 }
481 481
482 // GET helper 482 // GET helper
483 HRESULT RegKey::GetValueHelper(const wchar_t* value_name, 483 HRESULT RegKey::GetValueHelper(const wchar_t* value_name,
484 DWORD* type, 484 DWORD* type,
485 uint8** value, 485 uint8_t** value,
486 DWORD* byte_count) const { 486 DWORD* byte_count) const {
487 ASSERT(byte_count != NULL); 487 ASSERT(byte_count != NULL);
488 ASSERT(value != NULL); 488 ASSERT(value != NULL);
489 ASSERT(type != NULL); 489 ASSERT(type != NULL);
490 490
491 // init return buffer 491 // init return buffer
492 *value = NULL; 492 *value = NULL;
493 493
494 // get the size of the return data buffer 494 // get the size of the return data buffer
495 LONG res = ::SHQueryValueEx(h_key_, value_name, NULL, type, NULL, byte_count); 495 LONG res = ::SHQueryValueEx(h_key_, value_name, NULL, type, NULL, byte_count);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 } 601 }
602 602
603 ASSERT((hr != S_OK) || (type == REG_SZ) || 603 ASSERT((hr != S_OK) || (type == REG_SZ) ||
604 (type == REG_MULTI_SZ) || (type == REG_EXPAND_SZ)); 604 (type == REG_MULTI_SZ) || (type == REG_EXPAND_SZ));
605 } 605 }
606 606
607 return hr; 607 return hr;
608 } 608 }
609 609
610 // convert REG_MULTI_SZ bytes to string array 610 // convert REG_MULTI_SZ bytes to string array
611 HRESULT RegKey::MultiSZBytesToStringArray(const uint8* buffer, 611 HRESULT RegKey::MultiSZBytesToStringArray(const uint8_t* buffer,
612 DWORD byte_count, 612 DWORD byte_count,
613 std::vector<std::wstring>* value) { 613 std::vector<std::wstring>* value) {
614 ASSERT(buffer != NULL); 614 ASSERT(buffer != NULL);
615 ASSERT(value != NULL); 615 ASSERT(value != NULL);
616 616
617 const wchar_t* data = reinterpret_cast<const wchar_t*>(buffer); 617 const wchar_t* data = reinterpret_cast<const wchar_t*>(buffer);
618 DWORD data_len = byte_count / sizeof(wchar_t); 618 DWORD data_len = byte_count / sizeof(wchar_t);
619 value->clear(); 619 value->clear();
620 if (data_len > 1) { 620 if (data_len > 1) {
621 // must be terminated by two null characters 621 // must be terminated by two null characters
(...skipping 11 matching lines...) Expand all
633 return S_OK; 633 return S_OK;
634 } 634 }
635 635
636 // get a std::vector<std::wstring> value from REG_MULTI_SZ type 636 // get a std::vector<std::wstring> value from REG_MULTI_SZ type
637 HRESULT RegKey::GetValue(const wchar_t* value_name, 637 HRESULT RegKey::GetValue(const wchar_t* value_name,
638 std::vector<std::wstring>* value) const { 638 std::vector<std::wstring>* value) const {
639 ASSERT(value != NULL); 639 ASSERT(value != NULL);
640 640
641 DWORD byte_count = 0; 641 DWORD byte_count = 0;
642 DWORD type = 0; 642 DWORD type = 0;
643 uint8* buffer = 0; 643 uint8_t* buffer = 0;
644 644
645 // first get the size of the buffer 645 // first get the size of the buffer
646 HRESULT hr = GetValueHelper(value_name, &type, &buffer, &byte_count); 646 HRESULT hr = GetValueHelper(value_name, &type, &buffer, &byte_count);
647 ASSERT((hr != S_OK) || (type == REG_MULTI_SZ)); 647 ASSERT((hr != S_OK) || (type == REG_MULTI_SZ));
648 648
649 if (SUCCEEDED(hr)) { 649 if (SUCCEEDED(hr)) {
650 hr = MultiSZBytesToStringArray(buffer, byte_count, value); 650 hr = MultiSZBytesToStringArray(buffer, byte_count, value);
651 } 651 }
652 652
653 return hr; 653 return hr;
654 } 654 }
655 655
656 // Binary data Get 656 // Binary data Get
657 HRESULT RegKey::GetValue(const wchar_t* value_name, 657 HRESULT RegKey::GetValue(const wchar_t* value_name,
658 uint8** value, 658 uint8_t** value,
659 DWORD* byte_count) const { 659 DWORD* byte_count) const {
660 ASSERT(byte_count != NULL); 660 ASSERT(byte_count != NULL);
661 ASSERT(value != NULL); 661 ASSERT(value != NULL);
662 662
663 DWORD type = 0; 663 DWORD type = 0;
664 HRESULT hr = GetValueHelper(value_name, &type, value, byte_count); 664 HRESULT hr = GetValueHelper(value_name, &type, value, byte_count);
665 ASSERT((hr != S_OK) || (type == REG_MULTI_SZ) || (type == REG_BINARY)); 665 ASSERT((hr != S_OK) || (type == REG_MULTI_SZ) || (type == REG_BINARY));
666 return hr; 666 return hr;
667 } 667 }
668 668
669 // Raw data get 669 // Raw data get
670 HRESULT RegKey::GetValue(const wchar_t* value_name, 670 HRESULT RegKey::GetValue(const wchar_t* value_name,
671 uint8** value, 671 uint8_t** value,
672 DWORD* byte_count, 672 DWORD* byte_count,
673 DWORD*type) const { 673 DWORD* type) const {
674 ASSERT(type != NULL); 674 ASSERT(type != NULL);
675 ASSERT(byte_count != NULL); 675 ASSERT(byte_count != NULL);
676 ASSERT(value != NULL); 676 ASSERT(value != NULL);
677 677
678 return GetValueHelper(value_name, type, value, byte_count); 678 return GetValueHelper(value_name, type, value, byte_count);
679 } 679 }
680 680
681 // Int32 set 681 // Int32 set
682 HRESULT RegKey::SetValue(const wchar_t* value_name, DWORD value) const { 682 HRESULT RegKey::SetValue(const wchar_t* value_name, DWORD value) const {
683 ASSERT(h_key_ != NULL); 683 ASSERT(h_key_ != NULL);
684 684
685 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, REG_DWORD, 685 LONG res =
686 reinterpret_cast<const uint8*>(&value), 686 ::RegSetValueEx(h_key_, value_name, NULL, REG_DWORD,
687 sizeof(DWORD)); 687 reinterpret_cast<const uint8_t*>(&value), sizeof(DWORD));
688 return HRESULT_FROM_WIN32(res); 688 return HRESULT_FROM_WIN32(res);
689 } 689 }
690 690
691 // Int64 set 691 // Int64 set
692 HRESULT RegKey::SetValue(const wchar_t* value_name, DWORD64 value) const { 692 HRESULT RegKey::SetValue(const wchar_t* value_name, DWORD64 value) const {
693 ASSERT(h_key_ != NULL); 693 ASSERT(h_key_ != NULL);
694 694
695 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, REG_QWORD, 695 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, REG_QWORD,
696 reinterpret_cast<const uint8*>(&value), 696 reinterpret_cast<const uint8_t*>(&value),
697 sizeof(DWORD64)); 697 sizeof(DWORD64));
698 return HRESULT_FROM_WIN32(res); 698 return HRESULT_FROM_WIN32(res);
699 } 699 }
700 700
701 // String set 701 // String set
702 HRESULT RegKey::SetValue(const wchar_t* value_name, 702 HRESULT RegKey::SetValue(const wchar_t* value_name,
703 const wchar_t* value) const { 703 const wchar_t* value) const {
704 ASSERT(value != NULL); 704 ASSERT(value != NULL);
705 ASSERT(h_key_ != NULL); 705 ASSERT(h_key_ != NULL);
706 706
707 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, REG_SZ, 707 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, REG_SZ,
708 reinterpret_cast<const uint8*>(value), 708 reinterpret_cast<const uint8_t*>(value),
709 (lstrlen(value) + 1) * sizeof(wchar_t)); 709 (lstrlen(value) + 1) * sizeof(wchar_t));
710 return HRESULT_FROM_WIN32(res); 710 return HRESULT_FROM_WIN32(res);
711 } 711 }
712 712
713 // Binary data set 713 // Binary data set
714 HRESULT RegKey::SetValue(const wchar_t* value_name, 714 HRESULT RegKey::SetValue(const wchar_t* value_name,
715 const uint8* value, 715 const uint8_t* value,
716 DWORD byte_count) const { 716 DWORD byte_count) const {
717 ASSERT(h_key_ != NULL); 717 ASSERT(h_key_ != NULL);
718 718
719 // special case - if 'value' is NULL make sure byte_count is zero 719 // special case - if 'value' is NULL make sure byte_count is zero
720 if (value == NULL) { 720 if (value == NULL) {
721 byte_count = 0; 721 byte_count = 0;
722 } 722 }
723 723
724 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, 724 LONG res = ::RegSetValueEx(h_key_, value_name, NULL,
725 REG_BINARY, value, byte_count); 725 REG_BINARY, value, byte_count);
726 return HRESULT_FROM_WIN32(res); 726 return HRESULT_FROM_WIN32(res);
727 } 727 }
728 728
729 // Raw data set 729 // Raw data set
730 HRESULT RegKey::SetValue(const wchar_t* value_name, 730 HRESULT RegKey::SetValue(const wchar_t* value_name,
731 const uint8* value, 731 const uint8_t* value,
732 DWORD byte_count, 732 DWORD byte_count,
733 DWORD type) const { 733 DWORD type) const {
734 ASSERT(value != NULL); 734 ASSERT(value != NULL);
735 ASSERT(h_key_ != NULL); 735 ASSERT(h_key_ != NULL);
736 736
737 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, type, value, byte_count); 737 LONG res = ::RegSetValueEx(h_key_, value_name, NULL, type, value, byte_count);
738 return HRESULT_FROM_WIN32(res); 738 return HRESULT_FROM_WIN32(res);
739 } 739 }
740 740
741 bool RegKey::HasKey(const wchar_t* full_key_name) { 741 bool RegKey::HasKey(const wchar_t* full_key_name) {
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 parent_key = L""; 957 parent_key = L"";
958 } else { 958 } else {
959 parent_key = key_name->substr(0, index); 959 parent_key = key_name->substr(0, index);
960 *key_name = key_name->substr(index + 1, key_name->length() - index - 1); 960 *key_name = key_name->substr(index + 1, key_name->length() - index - 1);
961 } 961 }
962 962
963 return parent_key; 963 return parent_key;
964 } 964 }
965 965
966 // get the number of values for this key 966 // get the number of values for this key
967 uint32 RegKey::GetValueCount() { 967 uint32_t RegKey::GetValueCount() {
968 DWORD num_values = 0; 968 DWORD num_values = 0;
969 969
970 if (ERROR_SUCCESS != ::RegQueryInfoKey( 970 if (ERROR_SUCCESS != ::RegQueryInfoKey(
971 h_key_, // key handle 971 h_key_, // key handle
972 NULL, // buffer for class name 972 NULL, // buffer for class name
973 NULL, // size of class string 973 NULL, // size of class string
974 NULL, // reserved 974 NULL, // reserved
975 NULL, // number of subkeys 975 NULL, // number of subkeys
976 NULL, // longest subkey size 976 NULL, // longest subkey size
977 NULL, // longest class string 977 NULL, // longest class string
(...skipping 22 matching lines...) Expand all
1000 res = ::RegEnumValue(h_key_, index, value_name_buf, &value_name_buf_size, 1000 res = ::RegEnumValue(h_key_, index, value_name_buf, &value_name_buf_size,
1001 NULL, type, NULL, NULL); 1001 NULL, type, NULL, NULL);
1002 1002
1003 if (res == ERROR_SUCCESS) { 1003 if (res == ERROR_SUCCESS) {
1004 value_name->assign(value_name_buf); 1004 value_name->assign(value_name_buf);
1005 } 1005 }
1006 1006
1007 return HRESULT_FROM_WIN32(res); 1007 return HRESULT_FROM_WIN32(res);
1008 } 1008 }
1009 1009
1010 uint32 RegKey::GetSubkeyCount() { 1010 uint32_t RegKey::GetSubkeyCount() {
1011 // number of values for key 1011 // number of values for key
1012 DWORD num_subkeys = 0; 1012 DWORD num_subkeys = 0;
1013 1013
1014 if (ERROR_SUCCESS != ::RegQueryInfoKey( 1014 if (ERROR_SUCCESS != ::RegQueryInfoKey(
1015 h_key_, // key handle 1015 h_key_, // key handle
1016 NULL, // buffer for class name 1016 NULL, // buffer for class name
1017 NULL, // size of class string 1017 NULL, // size of class string
1018 NULL, // reserved 1018 NULL, // reserved
1019 &num_subkeys, // number of subkeys 1019 &num_subkeys, // number of subkeys
1020 NULL, // longest subkey size 1020 NULL, // longest subkey size
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 } 1093 }
1094 CloseHandle(token); 1094 CloseHandle(token);
1095 } else { 1095 } else {
1096 LOG_GLE(LS_ERROR) << "OpenProcessToken(GetCurrentProcess) failed"; 1096 LOG_GLE(LS_ERROR) << "OpenProcessToken(GetCurrentProcess) failed";
1097 } 1097 }
1098 1098
1099 return ret; 1099 return ret;
1100 } 1100 }
1101 1101
1102 } // namespace rtc 1102 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/win32regkey.h ('k') | webrtc/base/win32regkey_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698