The following should do -
CGRect rect; uint32_t windowid[1] = {windowID}; CFArrayRef windowArray = CFArrayCreate ( NULL, (const void **)windowid, 1 ,NULL); CFArrayRef windowsdescription = CGWindowListCreateDescriptionFromArray(windowArray); CFDictionaryRef windowdescription = (CFDictionaryRef)CFArrayGetValueAtIndex ((CFArrayRef)windowsdescription, 0); if(CFDictionaryContainsKey(windowdescription, kCGWindowBounds)) { CFDictionaryRef bounds = (CFDictionaryRef)CFDictionaryGetValue (windowdescription, kCGWindowBounds); if(bounds) { CGRectMakeWithDictionaryRepresentation(bounds, &rect); } } CFRelease(windowArray);
source share