pnwintyp.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:6k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: pnwintyp.h,v 1.1 2003/05/30 02:17:36 gabest Exp $
  4.  * 
  5.  *  Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
  6.  *  
  7.  *  http://www.real.com/devzone
  8.  *
  9.  *  This program contains proprietary 
  10.  *  information of Progressive Networks, Inc, and is licensed
  11.  *  subject to restrictions on use and distribution.
  12.  *
  13.  *
  14.  *  Defines the public classes for cross platform windows used in various
  15.  *  Progressive Networks modules.
  16.  *
  17.  */
  18. #ifndef _PNWINTYP_H_
  19. #define _PNWINTYP_H_
  20. #include "pntypes.h" /* Needed at least for various defines and types. */
  21. #ifdef _WIN16
  22. #define BI_BITFIELDS 3L
  23. #endif
  24. /****************************************************************************
  25.  * 
  26.  *  Structure:
  27.  *
  28.  * PNxSize
  29.  *
  30.  *  Purpose:
  31.  *
  32.  * Cross Platform definition of a size.
  33.  *
  34.  */
  35. typedef struct PNEXPORT_CLASS _PNxSize
  36. {
  37.     INT32   cx;
  38.     INT32   cy;
  39. } PNxSize;
  40. /****************************************************************************
  41.  * 
  42.  *  Structure:
  43.  *
  44.  * PNxPoint
  45.  *
  46.  *  Purpose:
  47.  *
  48.  * Cross Platform definition of a point.
  49.  *
  50.  */
  51. typedef struct PNEXPORT_CLASS _PNxPoint
  52. {
  53.     INT32   x;
  54.     INT32   y;
  55. } PNxPoint;
  56. /****************************************************************************
  57.  * 
  58.  *  Structure:
  59.  *
  60.  * PNxRect
  61.  *
  62.  *  Purpose:
  63.  *
  64.  * Cross Platform definition of a rectangle.
  65.  *
  66.  */
  67. typedef struct PNEXPORT_CLASS _PNxRect
  68. {
  69.     INT32   left;
  70.     INT32   top;
  71.     INT32   right;
  72.     INT32   bottom;
  73. } PNxRect;
  74. #define PNxRECT_WIDTH(r) ((r).right - (r).left)
  75. #define PNxRECT_HEIGHT(r) ((r).bottom - (r).top)
  76. /****************************************************************************
  77.  * 
  78.  *  Structure:
  79.  *
  80.  * PNxWindow
  81.  *
  82.  *  Purpose:
  83.  *
  84.  * Cross Platform definition of a window. This struct is sufficiently
  85.  * wide to describe parent or child windows in Windows, MacOS, and
  86.  * various flavours of X-Windows.
  87.  *
  88.  *  Data Members:
  89.  *
  90.  * void* window
  91.  * platform specific window handle
  92.  *
  93.  * ULONG32 x, y
  94.  * position of top left corner relative to a client page
  95.  *
  96.  * ULONG32 width, height
  97.  * maximum window size
  98.  *
  99.  * PNxRect clipRect;            
  100.  * clipping rectangle in port coordinates
  101.  *
  102.  */
  103. typedef struct PNEXPORT_CLASS _PNxWindow
  104. {
  105. /* NOTE: The window parameter is NOT guaranteed to be unique for every
  106.  corresponding CPNWindow. Use PNxWindowID if this is desired. */
  107.     void* window;
  108.     ULONG32 x;
  109.     ULONG32 y;                   
  110.     ULONG32 width;
  111.     ULONG32 height;
  112.     PNxRect clipRect;
  113.     #ifdef _UNIX
  114.     void * display;
  115.     #endif
  116. } PNxWindow;
  117. typedef void* PNxWindowID;
  118. /****************************************************************************
  119.  * 
  120.  *  Structure:
  121.  *
  122.  * PNxEvent
  123.  *
  124.  *  Purpose:
  125.  *
  126.  * Cross Platform definition of a event. This struct is sufficiently
  127.  * wide to describe an event in Windows, MacOS, and various flavours of 
  128.  * X-Windows.
  129.  *
  130.  *  Data Members:
  131.  *
  132.  * void* event
  133.  * platform specific event ID, can also be one of the several PNxMSG_*
  134.  * event IDs which map onto existing platform specific event IDs
  135.  *      UNIX: X Event Type
  136.  *
  137.  * void* window
  138.  * platform specific window handle
  139.  *      UNIX: X Window ID
  140.  *
  141.  * void* param1
  142.  * message specific parameter
  143.  *      UNIX: Display*
  144.  *
  145.  * void* param2
  146.  *      Mac:  for UpdateEvt, either NULL or RgnHandle to be filled with updated area
  147.  *      UNIX: Native              XEvent*
  148.  *            RMA_SURFACE_UPDATE  PNxWindow*
  149.  *
  150.  */
  151. typedef struct PNEXPORT_CLASS _PNxEvent
  152. {
  153.     ULONG32 event;     /* IN  */
  154.     void* window;     /* IN  */
  155.     void* param1;     /* IN  */
  156.     void* param2;     /* IN  */
  157.     UINT32 result;     /* OUT */
  158.     BOOL handled;    /* OUT */
  159. } PNxEvent;
  160. /****************************************************************************
  161.  * 
  162.  *  typedef:
  163.  *
  164.  * PNxRegion
  165.  *
  166.  *  Purpose:
  167.  *
  168.  * Cross Platform definition of a region. This typedef is redefined as
  169.  * appropriate to describe a region in Windows, MacOS, and various 
  170.  * flavours of X-Windows.
  171.  *
  172.  */
  173. typedef void* PNxRegion;
  174. /****************************************************************************
  175.  * 
  176.  *  typedef:
  177.  *
  178.  * PNxDC
  179.  *
  180.  *  Purpose:
  181.  *
  182.  * Cross Platform definition of a device context. This typedef is redefined as
  183.  * appropriate to describe a device context in Windows, MacOS, and various 
  184.  * flavours of X-Windows.
  185.  *
  186.  */
  187. typedef void* PNxDC;
  188. /****************************************************************************
  189.  * 
  190.  *  typedef:
  191.  *
  192.  * PNxFont
  193.  *
  194.  *  Purpose:
  195.  *
  196.  * Cross Platform definition of a font. This typedef is redefined as
  197.  * appropriate to describe a font in Windows, MacOS, and various 
  198.  * flavours of X-Windows.
  199.  *
  200.  */
  201. typedef void* PNxFont;
  202. /****************************************************************************
  203.  * 
  204.  *  typedef:
  205.  *
  206.  * PNxColor
  207.  *
  208.  *  Purpose:
  209.  *
  210.  * Cross Platform definition of a color. This typedef is redefined as
  211.  * appropriate to describe a font in Windows, MacOS, and various 
  212.  * flavours of X-Windows.
  213.  *
  214.  */
  215. typedef ULONG32 PNxColor;
  216. /****************************************************************************
  217.  * 
  218.  *  typedef:
  219.  *
  220.  * PNxIcon
  221.  *
  222.  *  Purpose:
  223.  *
  224.  * Cross Platform definition of a icon. This typedef is redefined as
  225.  * appropriate to describe a font in Windows, MacOS, and various 
  226.  * flavours of X-Windows.
  227.  *
  228.  */
  229. typedef void* PNxIcon;
  230. /****************************************************************************
  231.  * 
  232.  *  typedef:
  233.  *
  234.  * PNxMenu
  235.  *
  236.  *  Purpose:
  237.  *
  238.  * Cross Platform definition of a menu. This typedef is redefined as
  239.  * appropriate to describe a font in Windows, MacOS, and various 
  240.  * flavours of X-Windows.
  241.  *
  242.  */
  243. typedef void* PNxMenu;
  244. /****************************************************************************
  245.  * 
  246.  *  typedef:
  247.  *
  248.  * PNxCursor
  249.  *
  250.  *  Purpose:
  251.  *
  252.  * Cross Platform definition of a cursor. This typedef is redefined as
  253.  * appropriate to describe a cursor in Windows, MacOS, and various 
  254.  * flavours of X-Windows.
  255.  *
  256.  */
  257. typedef void* PNxCursor;
  258. #endif /* _PNWINTYP_H_ */