windows_dlls.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #pragma once
  8. #include "base/platform/win/base_windows_shlobj_h.h"
  9. #include <windows.h>
  10. #include <shellapi.h>
  11. #include <ShellScalingApi.h>
  12. #include <dwmapi.h>
  13. #include <RestartManager.h>
  14. #include <psapi.h>
  15. namespace Platform {
  16. namespace Dlls {
  17. void CheckLoadedModules();
  18. //inline void(__stdcall *RefreshImmersiveColorPolicyState)();
  19. //
  20. //inline BOOL(__stdcall *AllowDarkModeForApp)(BOOL allow);
  21. //
  22. //enum class PreferredAppMode {
  23. // Default,
  24. // AllowDark,
  25. // ForceDark,
  26. // ForceLight,
  27. // Max
  28. //};
  29. //
  30. //inline PreferredAppMode(__stdcall *SetPreferredAppMode)(
  31. // PreferredAppMode appMode);
  32. //inline BOOL(__stdcall *AllowDarkModeForWindow)(HWND hwnd, BOOL allow);
  33. //inline void(__stdcall *FlushMenuThemes)();
  34. // SHELL32.DLL
  35. inline HRESULT(__stdcall *SHAssocEnumHandlers)(
  36. PCWSTR pszExtra,
  37. ASSOC_FILTER afFilter,
  38. IEnumAssocHandlers **ppEnumHandler);
  39. inline HRESULT(__stdcall *SHCreateItemFromParsingName)(
  40. PCWSTR pszPath,
  41. IBindCtx *pbc,
  42. REFIID riid,
  43. void **ppv);
  44. inline HRESULT(__stdcall *SHOpenWithDialog)(
  45. HWND hwndParent,
  46. const OPENASINFO *poainfo);
  47. inline HRESULT(__stdcall *OpenAs_RunDLL)(
  48. HWND hWnd,
  49. HINSTANCE hInstance,
  50. LPCWSTR lpszCmdLine,
  51. int nCmdShow);
  52. inline HRESULT(__stdcall *SHQueryUserNotificationState)(
  53. QUERY_USER_NOTIFICATION_STATE *pquns);
  54. inline void(__stdcall *SHChangeNotify)(
  55. LONG wEventId,
  56. UINT uFlags,
  57. __in_opt LPCVOID dwItem1,
  58. __in_opt LPCVOID dwItem2);
  59. // PROPSYS.DLL
  60. inline HRESULT(__stdcall *PSStringFromPropertyKey)(
  61. _In_ REFPROPERTYKEY pkey,
  62. _Out_writes_(cch) LPWSTR psz,
  63. _In_ UINT cch);
  64. // PSAPI.DLL
  65. inline BOOL(__stdcall *GetProcessMemoryInfo)(
  66. HANDLE Process,
  67. PPROCESS_MEMORY_COUNTERS ppsmemCounters,
  68. DWORD cb);
  69. // USER32.DLL
  70. enum class WINDOWCOMPOSITIONATTRIB {
  71. WCA_UNDEFINED = 0,
  72. WCA_NCRENDERING_ENABLED = 1,
  73. WCA_NCRENDERING_POLICY = 2,
  74. WCA_TRANSITIONS_FORCEDISABLED = 3,
  75. WCA_ALLOW_NCPAINT = 4,
  76. WCA_CAPTION_BUTTON_BOUNDS = 5,
  77. WCA_NONCLIENT_RTL_LAYOUT = 6,
  78. WCA_FORCE_ICONIC_REPRESENTATION = 7,
  79. WCA_EXTENDED_FRAME_BOUNDS = 8,
  80. WCA_HAS_ICONIC_BITMAP = 9,
  81. WCA_THEME_ATTRIBUTES = 10,
  82. WCA_NCRENDERING_EXILED = 11,
  83. WCA_NCADORNMENTINFO = 12,
  84. WCA_EXCLUDED_FROM_LIVEPREVIEW = 13,
  85. WCA_VIDEO_OVERLAY_ACTIVE = 14,
  86. WCA_FORCE_ACTIVEWINDOW_APPEARANCE = 15,
  87. WCA_DISALLOW_PEEK = 16,
  88. WCA_CLOAK = 17,
  89. WCA_CLOAKED = 18,
  90. WCA_ACCENT_POLICY = 19,
  91. WCA_FREEZE_REPRESENTATION = 20,
  92. WCA_EVER_UNCLOAKED = 21,
  93. WCA_VISUAL_OWNER = 22,
  94. WCA_HOLOGRAPHIC = 23,
  95. WCA_EXCLUDED_FROM_DDA = 24,
  96. WCA_PASSIVEUPDATEMODE = 25,
  97. WCA_USEDARKMODECOLORS = 26,
  98. WCA_LAST = 27
  99. };
  100. struct WINDOWCOMPOSITIONATTRIBDATA {
  101. WINDOWCOMPOSITIONATTRIB Attrib;
  102. PVOID pvData;
  103. SIZE_T cbData;
  104. };
  105. inline BOOL(__stdcall *SetWindowCompositionAttribute)(
  106. HWND hWnd,
  107. WINDOWCOMPOSITIONATTRIBDATA*);
  108. // SHCORE.DLL
  109. inline HRESULT(__stdcall *GetDpiForMonitor)(
  110. _In_ HMONITOR hmonitor,
  111. _In_ MONITOR_DPI_TYPE dpiType,
  112. _Out_ UINT *dpiX,
  113. _Out_ UINT *dpiY);
  114. } // namespace Dlls
  115. } // namespace Platform