| 
									
										
										
										
											2017-10-10 01:14:03 +08:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2017-10-13 11:42:36 +08:00
										 |  |  | #include "..\emacros.h"
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef HINST_THISCOMPONENT
 | 
					
						
							|  |  |  | EXTERN_C IMAGE_DOS_HEADER __ImageBase; | 
					
						
							|  |  |  | #define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-10 01:14:03 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 02:44:44 +08:00
										 |  |  | HWND &GetHWnd(); | 
					
						
							| 
									
										
										
										
											2017-10-10 01:14:03 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 02:44:44 +08:00
										 |  |  | ID2D1Factory * &GetFactory(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ID2D1HwndRenderTarget * &GetRenderTarget(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  | ID2D1SolidColorBrush * &GetSolidColorBrush(); | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  | IWICImagingFactory * &GetImagingFactory(); | 
					
						
							| 
									
										
										
										
											2017-10-12 02:44:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  | IDWriteFactory * &GetDirectWriteFactory(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  | LARGE_INTEGER &GetFreq(); | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  | LARGE_INTEGER &GetNow(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool IsIntervalFull(const LARGE_INTEGER& tLast, const LARGE_INTEGER& tInterval); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | LONGLONG ToMilliseconds(LONGLONG tLast); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SetInterval(LARGE_INTEGER& nInterval, LONGLONG nIntervalMS); | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 02:44:44 +08:00
										 |  |  | template<class Interface> | 
					
						
							|  |  |  | inline void SafeReleaseInterface( | 
					
						
							|  |  |  | 	Interface **ppInterfaceToRelease | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (*ppInterfaceToRelease != nullptr) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		(*ppInterfaceToRelease)->Release(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		(*ppInterfaceToRelease) = nullptr; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |