window-helpers.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #pragma once
  2. #include <obs-properties.h>
  3. #include <util/c99defs.h>
  4. #include <util/dstr.h>
  5. #include <Windows.h>
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. enum window_priority {
  10. WINDOW_PRIORITY_CLASS,
  11. WINDOW_PRIORITY_TITLE,
  12. WINDOW_PRIORITY_EXE,
  13. };
  14. enum window_search_mode {
  15. INCLUDE_MINIMIZED,
  16. EXCLUDE_MINIMIZED,
  17. };
  18. EXPORT bool ms_get_window_exe(struct dstr *name, HWND window);
  19. EXPORT void ms_get_window_title(struct dstr *name, HWND hwnd);
  20. EXPORT void ms_get_window_class(struct dstr *window_class, HWND hwnd);
  21. EXPORT bool ms_is_uwp_window(HWND hwnd);
  22. EXPORT HWND ms_get_uwp_actual_window(HWND parent);
  23. typedef bool (*add_window_cb)(const char *title, const char *window_class,
  24. const char *exe);
  25. EXPORT void ms_fill_window_list(obs_property_t *p, enum window_search_mode mode,
  26. add_window_cb callback);
  27. EXPORT void ms_build_window_strings(const char *str, char **window_class,
  28. char **title, char **exe);
  29. EXPORT bool ms_check_window_property_setting(obs_properties_t *ppts,
  30. obs_property_t *p,
  31. obs_data_t *settings,
  32. const char *val, size_t idx);
  33. EXPORT void ms_build_window_strings(const char *str, char **window_class,
  34. char **title, char **exe);
  35. EXPORT HWND ms_find_window(enum window_search_mode mode,
  36. enum window_priority priority,
  37. const char *window_class, const char *title,
  38. const char *exe);
  39. EXPORT HWND ms_find_window_top_level(enum window_search_mode mode,
  40. enum window_priority priority,
  41. const char *window_class,
  42. const char *title, const char *exe);
  43. #ifdef __cplusplus
  44. }
  45. #endif