UWP doesn't allow reading regkeys (#594)
* UWP doesn't allow reading regkeys. Unfortunately, UWP also doesn't offer an API for returning nominal processor frequency at this moment. Other options would require apps depending on abseil-cpp to be packaged with extra manifest data or libraries for bridging platforms. This change pushes the unsupported APIs accessing the registry behind a define guard. This define guard makes GetNominalCPUFrequency to compile and run as usual on desktop, but it will return the value 1.0 on UWP Apps (Store). * Using WINAPI_FAMILY_PARTITION family of macros for detecting when building for UWP or Desktop. * Simplifying comment to please the lint tool.
This commit is contained in:
		
							parent
							
								
									40a0e58eb3
								
							
						
					
					
						commit
						417ea99cba
					
				
					 1 changed files with 7 additions and 0 deletions
				
			
		|  | @ -72,6 +72,12 @@ static int GetNumCPUs() { | ||||||
| #if defined(_WIN32) | #if defined(_WIN32) | ||||||
| 
 | 
 | ||||||
| static double GetNominalCPUFrequency() { | static double GetNominalCPUFrequency() { | ||||||
|  | // UWP apps don't have access to the registry and currently don't provide an
 | ||||||
|  | // API informing about CPU nominal frequency.
 | ||||||
|  | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && \ | ||||||
|  |     !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) | ||||||
|  |   return 1.0; | ||||||
|  | #else | ||||||
| #pragma comment(lib, "advapi32.lib")  // For Reg* functions.
 | #pragma comment(lib, "advapi32.lib")  // For Reg* functions.
 | ||||||
|   HKEY key; |   HKEY key; | ||||||
|   // Use the Reg* functions rather than the SH functions because shlwapi.dll
 |   // Use the Reg* functions rather than the SH functions because shlwapi.dll
 | ||||||
|  | @ -91,6 +97,7 @@ static double GetNominalCPUFrequency() { | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   return 1.0; |   return 1.0; | ||||||
|  | #endif // WINAPI_PARTITION_APP && !WINAPI_PARTITION_DESKTOP
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #elif defined(CTL_HW) && defined(HW_CPU_FREQ) | #elif defined(CTL_HW) && defined(HW_CPU_FREQ) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue