// Copyright 2016 The go-vgo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // https://github.com/go-vgo/robotgo/blob/master/LICENSE // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. // #include #include #if defined(IS_MACOSX) #if defined (__x86_64__) #define RobotGo_64 #else #define RobotGo_32 #endif // #include // #include // #include // Apple process API #include #include #include #ifdef MAC_OS_X_VERSION_10_11 #define kAXValueCGPointType kAXValueTypeCGPoint #define kAXValueCGSizeType kAXValueTypeCGSize #endif #ifndef EXC_MASK_GUARD #define EXC_MASK_GUARD 0 #endif #elif defined(USE_X11) #if defined (__x86_64__) #define RobotGo_64 #else #define RobotGo_32 #endif #include #include #ifndef X_HAVE_UTF8_STRING #error It appears that X_HAVE_UTF8_STRING is not defined - \ please verify that your version of XLib is supported #endif #elif defined(IS_WINDOWS) #if defined (_WIN64) #define RobotGo_64 #else #define RobotGo_32 #endif #include #include #endif typedef signed char int8; // Signed 8-Bit integer typedef signed short int16; // Signed 16-Bit integer typedef signed int int32; // Signed 32-Bit integer typedef signed long long int64; // Signed 64-Bit integer typedef unsigned char uint8; // Unsigned 8-Bit integer typedef unsigned short uint16; // Unsigned 16-Bit integer typedef unsigned int uint32; // Unsigned 32-Bit integer typedef unsigned long long uint64; // Unsigned 64-Bit integer typedef float real32; // 32-Bit float value typedef double real64; // 64-Bit float value #ifdef RobotGo_64 typedef int64 intptr; // Signed pointer integer typedef uint64 uintptr; // Unsigned pointer integer #else typedef int32 intptr; // Signed pointer integer typedef uint32 uintptr; // Unsigned pointer integer #endif // struct _PData{ int32 ProcID; // The process ID char* Name; // Name of process char* Path; // Path of process bool Is64Bit; // Process is 64-Bit #if defined(IS_MACOSX) task_t Handle; // The mach task #elif defined(USE_X11) uint32 Handle; // Unused handle #elif defined(IS_WINDOWS) HANDLE Handle; // Process handle #endif }; struct _PPData{ int32 ProcID; // The process ID char** Name; // Name of process char** Path; // Path of process bool Is64Bit; // Process is 64-Bit #if defined(IS_MACOSX) task_t Handle; // The mach task #elif defined(USE_X11) uint32 Handle; // Unused handle #elif defined(IS_WINDOWS) HANDLE Handle; // Process handle #endif }; typedef struct _PData PData;