/filesystems/grabfs/windowfs_windows.h

http://macfuse.googlecode.com/ · C Header · 64 lines · 46 code · 12 blank · 6 comment · 0 complexity · 523a8052d12f37a78af50c3260000085 MD5 · raw file

  1. /*
  2. * MacFUSE-Based windowfs
  3. *
  4. * Copyright Amit Singh. All Rights Reserved.
  5. * http://osxbook.com
  6. */
  7. #ifndef _WINDOWFS_WINDOWS_H_
  8. #define _WINDOWFS_WINDOWS_H_
  9. #include <ApplicationServices/ApplicationServices.h>
  10. #include <CoreFoundation/CoreFoundation.h>
  11. extern "C" {
  12. #define MAX_WINDOWS 256
  13. typedef mach_port_t CGSConnectionID;
  14. typedef mach_port_t CGSWindowID;
  15. typedef struct {
  16. pid_t pid;
  17. int windowCount;
  18. CGSWindowID windowIDs[MAX_WINDOWS];
  19. } WindowListData;
  20. extern CGSConnectionID _CGSDefaultConnection(void);
  21. extern CGError CGSGetWindowLevel(CGSConnectionID connectionID,
  22. CGSWindowID windowID, CGWindowLevel *level);
  23. extern CGError CGSGetConnectionIDForPSN(CGSConnectionID connectionID,
  24. ProcessSerialNumber *psn,
  25. CGSConnectionID *out);
  26. extern CGError CGSGetOnScreenWindowList(CGSConnectionID connectionID,
  27. CGSConnectionID targetConnectionID,
  28. int maxCount,
  29. CGSWindowID *windowList,
  30. int *outCount);
  31. extern CGError CGSGetWindowList(CGSConnectionID connectionID,
  32. CGSConnectionID targetConnectionID,
  33. int maxCount,
  34. CGSWindowID *windowList,
  35. int *outCount);
  36. extern CGError CGSGetScreenRectForWindow(CGSConnectionID connectionID,
  37. CGSWindowID windowID, CGRect *outRect);
  38. extern CGError CGSGetParentWindowList(CGSConnectionID connectionID,
  39. CGSConnectionID targetConnectionID,
  40. int maxCount,
  41. CGSWindowID *windowList,
  42. int *outCount);
  43. int WINDOWFS_GetTIFFForWindowAtIndex(CGWindowID index, CFMutableDataRef *data);
  44. off_t WINDOWFS_GetTIFFSizeForWindowAtIndex(CGWindowID index);
  45. int WINDOWFS_GetWindowList(WindowListData *data);
  46. struct WINDOWFSWindowData {
  47. CFMutableDataRef window_tiff;
  48. size_t len;
  49. size_t max_len;
  50. };
  51. } /* extern "C" */
  52. #endif /* _WINDOWFS_WINDOWS_H_ */