void getyx(WINDOW *win, int y, int x);
void getparyx(WINDOW *win, int y, int x);
void getbegyx(WINDOW *win, int y, int x);
void getmaxyx(WINDOW *win, int y, int x);
If win is a subwindow, the getparyx macro places the beginning coordinates of the subwindow relative to the parent window into two integer variables y and x. Otherwise, -1 is placed into y and x.
Like getyx, the getbegyx and getmaxyx macros store the current beginning coordinates and size of the specified window.
This implementation also provides functions getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx and getpary for compatibility with older versions of curses.
Although X/Open Curses does not address this, many implementations provide members of the WINDOW structure containing values corresponding to these macros. For best portability, do not rely on using the data in WINDOW, since some implementations make WINDOW opaque (do not allow direct use of its members).
Besides the problem of opaque structures, the data stored in like-named members may not have like-values in different implementations. For example, the WINDOW._maxx and WINDOW._maxy values in ncurses have (at least since release 1.8.1) differed by one from some other implementations. The difference is hidden by means of the macro getmaxyx.