topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-Displays.h / h



  /*
       File:       Displays.h
   
       Contains:   Display Manager Interfaces.
   
       Version:    Technology: Mac OS 8
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1993-2001 by Apple Computer, Inc., all rights reserved.
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  ifndef __DISPLAYS__
  define __DISPLAYS__
  
  ifndef __CONDITIONALMACROS__
  include <ConditionalMacros.h>
  endif
  
  ifndef __COMPONENTS__
  include <Components.h>
  endif
  
  ifndef __VIDEO__
  include <Video.h>
  endif
  
  ifndef __APPLEEVENTS__
  include <AppleEvents.h>
  endif
  
  ifndef __EVENTS__
  include <Events.h>
  endif
  
  ifndef __PROCESSES__
  include <Processes.h>
  endif
  
  ifndef __DIALOGS__
  include <Dialogs.h>
  endif
  
  if PRAGMA_ONCE
  #pragma once
  endif
  
  ifdef __cplusplus
  extern "C" {
  endif
  
  if PRAGMA_IMPORT
  #pragma import on
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=mac68k
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  enum {
                                                                  /* AppleEvents Core Suite */
      kAESystemConfigNotice       = FOUR_CHAR_CODE('cnfg'),       /* Core Suite types */
      kAEDisplayNotice            = FOUR_CHAR_CODE('dspl'),
      kAEDisplaySummary           = FOUR_CHAR_CODE('dsum'),
      keyDMConfigVersion          = FOUR_CHAR_CODE('dmcv'),
      keyDMConfigFlags            = FOUR_CHAR_CODE('dmcf'),
      keyDMConfigReserved         = FOUR_CHAR_CODE('dmcr'),
      keyDisplayID                = FOUR_CHAR_CODE('dmid'),
      keyDisplayComponent         = FOUR_CHAR_CODE('dmdc'),
      keyDisplayDevice            = FOUR_CHAR_CODE('dmdd'),
      keyDisplayFlags             = FOUR_CHAR_CODE('dmdf'),
      keyDisplayMode              = FOUR_CHAR_CODE('dmdm'),
      keyDisplayModeReserved      = FOUR_CHAR_CODE('dmmr'),
      keyDisplayReserved          = FOUR_CHAR_CODE('dmdr'),
      keyDisplayMirroredId        = FOUR_CHAR_CODE('dmmi'),
      keyDeviceFlags              = FOUR_CHAR_CODE('dddf'),
      keyDeviceDepthMode          = FOUR_CHAR_CODE('dddm'),
      keyDeviceRect               = FOUR_CHAR_CODE('dddr'),
      keyPixMapRect               = FOUR_CHAR_CODE('dpdr'),
      keyPixMapHResolution        = FOUR_CHAR_CODE('dphr'),
      keyPixMapVResolution        = FOUR_CHAR_CODE('dpvr'),
      keyPixMapPixelType          = FOUR_CHAR_CODE('dppt'),
      keyPixMapPixelSize          = FOUR_CHAR_CODE('dpps'),
      keyPixMapCmpCount           = FOUR_CHAR_CODE('dpcc'),
      keyPixMapCmpSize            = FOUR_CHAR_CODE('dpcs'),
      keyPixMapAlignment          = FOUR_CHAR_CODE('dppa'),
      keyPixMapResReserved        = FOUR_CHAR_CODE('dprr'),
      keyPixMapReserved           = FOUR_CHAR_CODE('dppr'),
      keyPixMapColorTableSeed     = FOUR_CHAR_CODE('dpct'),
      keySummaryMenubar           = FOUR_CHAR_CODE('dsmb'),
      keySummaryChanges           = FOUR_CHAR_CODE('dsch'),
      keyDisplayOldConfig         = FOUR_CHAR_CODE('dold'),
      keyDisplayNewConfig         = FOUR_CHAR_CODE('dnew')
  };
  
  enum {
      dmOnlyActiveDisplays        = true,
      dmAllDisplays               = false
  };
  
  enum {
                                                                  /* DMSendDependentNotification notifyClass */
      kDependentNotifyClassShowCursor = FOUR_CHAR_CODE('shcr'),   /* When display mgr shows a hidden cursor during an unmirror */
      kDependentNotifyClassDriverOverride = FOUR_CHAR_CODE('ndrv'), /* When a driver is overridden */
      kDependentNotifyClassDisplayMgrOverride = FOUR_CHAR_CODE('dmgr'), /* When display manager is upgraded */
      kDependentNotifyClassProfileChanged = FOUR_CHAR_CODE('prof') /* When DMSetProfileByAVID is called */
  };
  
  enum {
                                                                  /* Switch Flags */
      kNoSwitchConfirmBit         = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
      kDepthNotAvailableBit       = 1,                            /* Current depth not available in new mode */
      kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
      kModeNotResizeBit           = 4,                            /* Do not use this mode to resize display (for cards that mode drives a different connector). */
      kNeverShowModeBit           = 5                             /* This mode should not be shown in the user interface. */
  };
  
  /*    Summary Change Flags (sticky bits indicating an operation was performed)
      For example, moving a display then moving it back will still set the kMovedDisplayBit.
  */
  enum {
      kBeginEndConfigureBit       = 0,
      kMovedDisplayBit            = 1,
      kSetMainDisplayBit          = 2,
      kSetDisplayModeBit          = 3,
      kAddDisplayBit              = 4,
      kRemoveDisplayBit           = 5,
      kNewDisplayBit              = 6,
      kDisposeDisplayBit          = 7,
      kEnabledDisplayBit          = 8,
      kDisabledDisplayBit         = 9,
      kMirrorDisplayBit           = 10,
      kUnMirrorDisplayBit         = 11
  };
  
  enum {
                                                                  /* Notification Messages for extended call back routines */
      kDMNotifyRequestConnectionProbe = 0,                        /* Like kDMNotifyRequestDisplayProbe only not for smart displays (used in wake before all busses are awake) */
      kDMNotifyInstalled          = 1,                            /* At install time */
      kDMNotifyEvent              = 2,                            /* Post change time */
      kDMNotifyRemoved            = 3,                            /* At remove time */
      kDMNotifyPrep               = 4,                            /* Pre change time */
      kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
      kDMNotifyDependents         = 6,                            /* Minor notification check without full update */
      kDMNotifySuspendConfigure   = 7,                            /* Temporary end of configuration */
      kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
      kDMNotifyRequestDisplayProbe = 9,                           /* Request smart displays re-probe (used in sleep and hot plugging) */
                                                                  /* Notification Flags */
      kExtendedNotificationProc   = (1L << 16)
  };
  
  /* types for notifyType */
  enum {
      kFullNotify                 = 0,                            /* This is the appleevent whole nine yards notify */
      kFullDependencyNotify       = 1                             /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  };
  
  /* DisplayID/DeviceID constants */
  enum {
      kDummyDeviceID              = 0x00FF,                       /* This is the ID of the dummy display, used when the last "real" display is disabled.*/
      kInvalidDisplayID           = 0x0000,                       /* This is the invalid ID*/
      kFirstDisplayID             = 0x0100
  };
  
  enum {
                                                                  /* bits for panelListFlags */
      kAllowDuplicatesBit         = 0
  };
  
  enum {
                                                                  /* bits for nameFlags */
      kSuppressNumberBit          = 0,
      kSuppressNumberMask         = 1,
      kForceNumberBit             = 1,
      kForceNumberMask            = 2,
      kSuppressNameBit            = 2,
      kSuppressNameMask           = 4
  };
  
  /* Constants for fidelity checks */
  enum {
      kNoFidelity                 = 0,
      kMinimumFidelity            = 1,
      kDefaultFidelity            = 500,                          /* I'm just picking a number for Apple default panels and engines*/
      kDefaultManufacturerFidelity = 1000                         /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  };
  
  enum {
      kAnyPanelType               = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
      kAnyEngineType              = 0,                            /* Pass to DMNewEngineList for list of all engines*/
      kAnyDeviceType              = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
      kAnyPortType                = 0                             /* Pass to DMNewDevicePortList for list of all devices*/
  };
  
  /* portListFlags for DM_NewDevicePortList */
  enum {
                                                                  /* Should offline devices be put into the port list (such as dummy display) */
      kPLIncludeOfflineDevicesBit = 0
  };
  
  /* confirmFlags for DMConfirmConfiguration */
  enum {
      kForceConfirmBit            = 0,                            /* Force a confirm dialog */
      kForceConfirmMask           = (1 << kForceConfirmBit)
  };
  
  /* Flags for displayModeFlags */
  enum {
      kDisplayModeListNotPreferredBit = 0,
      kDisplayModeListNotPreferredMask = (1 << kDisplayModeListNotPreferredBit)
  };
  
  /* Flags for itemFlags */
  enum {
      kComponentListNotPreferredBit = 0,
      kComponentListNotPreferredMask = (1 << kComponentListNotPreferredBit)
  };
  
  enum {
      kDisplayTimingInfoVersionZero = 1,
      kDisplayTimingInfoReservedCountVersionZero = 16,
      kDisplayModeEntryVersionZero = 0,                           /* displayModeVersion - original version*/
      kDisplayModeEntryVersionOne = 1                             /* displayModeVersion - added displayModeOverrideInfo*/
  };
  
  enum {
      kMakeAndModelReservedCount  = 4                             /* Number of reserved fields*/
  };
  
  typedef unsigned long                   DMFidelityType;
  /*
     AVID is an ID for ports and devices the old DisplayID type
      is carried on for compatibility
  */
  
  typedef unsigned long                   AVIDType;
  typedef AVIDType                        DisplayIDType;
  typedef void *                          DMListType;
  typedef unsigned long                   DMListIndexType;
  typedef VDPowerStateRec                 AVPowerStateRec;
  typedef VDPowerStateRec *               AVPowerStatePtr;
  
  struct DMDisplayTimingInfoRec {
      UInt32                          timingInfoVersion;
      UInt32                          timingInfoAttributes;       /* Flags */
      SInt32                          timingInfoRelativeQuality;  /* quality of the timing */
      SInt32                          timingInfoRelativeDefault;  /* relative default of the timing */
  
      UInt32                          timingInfoReserved[16];     /* Reserved */
  };
  typedef struct DMDisplayTimingInfoRec   DMDisplayTimingInfoRec;
  
  typedef DMDisplayTimingInfoRec *        DMDisplayTimingInfoPtr;
  
  struct DMComponentListEntryRec {
      DisplayIDType                   itemID;                     /* DisplayID Manager*/
      Component                       itemComponent;              /* Component Manager*/
      ComponentDescription            itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  
      ResType                         itemClass;                  /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
      DMFidelityType                  itemFidelity;               /* How good is this item for the specified search?*/
      ResType                         itemSubClass;               /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
      Point                           itemSort;                   /* Set to 0 - future to sort the items in a sub group.*/
  
      unsigned long                   itemFlags;                  /* Set to 0 (future expansion)*/
      ResType                         itemReserved;               /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
      unsigned long                   itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
      unsigned long                   itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
      unsigned long                   itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
      unsigned long                   itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  };
  typedef struct DMComponentListEntryRec  DMComponentListEntryRec;
  
  typedef DMComponentListEntryRec *       DMComponentListEntryPtr;
  /* ooo Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  
  struct AVLocationRec {
      unsigned long                   locationConstant;           /* Set to 0 (future expansion - probably an alternate code style)*/
  };
  typedef struct AVLocationRec            AVLocationRec;
  
  typedef AVLocationRec *                 AVLocationPtr;
  
  struct DMDepthInfoRec {
      VDSwitchInfoPtr                 depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
      VPBlockPtr                      depthVPBlock;               /* VPBlock (including size, depth and format) */
      UInt32                          depthFlags;                 /* VDVideoParametersInfoRec.csDepthFlags  */
      UInt32                          depthReserved1;             /* Reserved */
      UInt32                          depthReserved2;             /* Reserved */
  };
  typedef struct DMDepthInfoRec           DMDepthInfoRec;
  
  typedef DMDepthInfoRec *                DMDepthInfoPtr;
  
  struct DMDepthInfoBlockRec {
      unsigned long                   depthBlockCount;            /* How many depths are there? */
      DMDepthInfoPtr                  depthVPBlock;               /* Array of DMDepthInfoRec */
      unsigned long                   depthBlockFlags;            /* Reserved */
      unsigned long                   depthBlockReserved1;        /* Reserved */
      unsigned long                   depthBlockReserved2;        /* Reserved */
  };
  typedef struct DMDepthInfoBlockRec      DMDepthInfoBlockRec;
  
  typedef DMDepthInfoBlockRec *           DMDepthInfoBlockPtr;
  
  struct DMDisplayModeListEntryRec {
      UInt32                          displayModeFlags;
      VDSwitchInfoPtr                 displayModeSwitchInfo;
      VDResolutionInfoPtr             displayModeResolutionInfo;
      VDTimingInfoPtr                 displayModeTimingInfo;
      DMDepthInfoBlockPtr             displayModeDepthBlockInfo;  /* Information about all the depths*/
      UInt32                          displayModeVersion;         /* What version is this record (now kDisplayModeEntryVersionOne)*/
      StringPtr                       displayModeName;            /* Name of the timing mode*/
      DMDisplayTimingInfoPtr          displayModeDisplayInfo;     /* Information from the display.*/
  };
  typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  
  typedef DMDisplayModeListEntryRec *     DMDisplayModeListEntryPtr;
  
  struct DependentNotifyRec {
      ResType                         notifyType;                 /* What type was the engine that made the change (may be zero)*/
      ResType                         notifyClass;                /* What class was the change (eg geometry, color etc)*/
      DisplayIDType                   notifyPortID;               /* Which device was touched (kInvalidDisplayID -> all or none)*/
      ComponentInstance               notifyComponent;            /* What engine did it (may be 0)?*/
  
      unsigned long                   notifyVersion;              /* Set to 0 (future expansion)*/
      unsigned long                   notifyFlags;                /* Set to 0 (future expansion)*/
      unsigned long                   notifyReserved;             /* Set to 0 (future expansion)*/
      unsigned long                   notifyFuture;               /* Set to 0 (future expansion)*/
  };
  typedef struct DependentNotifyRec       DependentNotifyRec;
  
  typedef DependentNotifyRec *            DependentNotifyPtr;
  
  struct DMMakeAndModelRec {
      ResType                         manufacturer;
      UInt32                          model;
      UInt32                          serialNumber;
      UInt32                          manufactureDate;
  
      UInt32                          makeReserved[4];
  };
  typedef struct DMMakeAndModelRec        DMMakeAndModelRec;
  
  typedef DMMakeAndModelRec *             DMMakeAndModelPtr;
  typedef CALLBACK_API( void , DMNotificationProcPtr )(AppleEvent *theEvent);
  typedef CALLBACK_API( void , DMExtendedNotificationProcPtr )(void *userData, short theMessage, void *notifyData);
  typedef CALLBACK_API( void , DMComponentListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  typedef CALLBACK_API( void , DMDisplayModeListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  typedef STACK_UPP_TYPE(DMNotificationProcPtr)                   DMNotificationUPP;
  typedef STACK_UPP_TYPE(DMExtendedNotificationProcPtr)           DMExtendedNotificationUPP;
  typedef STACK_UPP_TYPE(DMComponentListIteratorProcPtr)          DMComponentListIteratorUPP;
  typedef STACK_UPP_TYPE(DMDisplayModeListIteratorProcPtr)        DMDisplayModeListIteratorUPP;
  if OPAQUE_UPP_TYPES
      EXTERN_API(DMNotificationUPP)
      NewDMNotificationUPP           (DMNotificationProcPtr   userRoutine);
  
      EXTERN_API(DMExtendedNotificationUPP)
      NewDMExtendedNotificationUPP    (DMExtendedNotificationProcPtr userRoutine);
  
      EXTERN_API(DMComponentListIteratorUPP)
      NewDMComponentListIteratorUPP    (DMComponentListIteratorProcPtr userRoutine);
  
      EXTERN_API(DMDisplayModeListIteratorUPP)
      NewDMDisplayModeListIteratorUPP    (DMDisplayModeListIteratorProcPtr userRoutine);
  
      EXTERN_API(void)
      DisposeDMNotificationUPP       (DMNotificationUPP       userUPP);
  
      EXTERN_API(void)
      DisposeDMExtendedNotificationUPP    (DMExtendedNotificationUPP userUPP);
  
      EXTERN_API(void)
      DisposeDMComponentListIteratorUPP    (DMComponentListIteratorUPP userUPP);
  
      EXTERN_API(void)
      DisposeDMDisplayModeListIteratorUPP    (DMDisplayModeListIteratorUPP userUPP);
  
      EXTERN_API(void)
      InvokeDMNotificationUPP        (AppleEvent *            theEvent,
                                      DMNotificationUPP       userUPP);
  
      EXTERN_API(void)
      InvokeDMExtendedNotificationUPP    (void *              userData,
                                      short                   theMessage,
                                      void *                  notifyData,
                                      DMExtendedNotificationUPP userUPP);
  
      EXTERN_API(void)
      InvokeDMComponentListIteratorUPP    (void *             userData,
                                      DMListIndexType         itemIndex,
                                      DMComponentListEntryPtr componentInfo,
                                      DMComponentListIteratorUPP userUPP);
  
      EXTERN_API(void)
      InvokeDMDisplayModeListIteratorUPP    (void *           userData,
                                      DMListIndexType         itemIndex,
                                      DMDisplayModeListEntryPtr displaymodeInfo,
                                      DMDisplayModeListIteratorUPP userUPP);
  
  else
      enum { uppDMNotificationProcInfo = 0x000000C0 };                /* pascal no_return_value Func(4_bytes) */
      enum { uppDMExtendedNotificationProcInfo = 0x00000EC0 };        /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
      enum { uppDMComponentListIteratorProcInfo = 0x00000FC0 };       /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
      enum { uppDMDisplayModeListIteratorProcInfo = 0x00000FC0 };     /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
      #define NewDMNotificationUPP(userRoutine)                       (DMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
      #define NewDMExtendedNotificationUPP(userRoutine)               (DMExtendedNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
      #define NewDMComponentListIteratorUPP(userRoutine)              (DMComponentListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
      #define NewDMDisplayModeListIteratorUPP(userRoutine)            (DMDisplayModeListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
      #define DisposeDMNotificationUPP(userUPP)                       DisposeRoutineDescriptor(userUPP)
      #define DisposeDMExtendedNotificationUPP(userUPP)               DisposeRoutineDescriptor(userUPP)
      #define DisposeDMComponentListIteratorUPP(userUPP)              DisposeRoutineDescriptor(userUPP)
      #define DisposeDMDisplayModeListIteratorUPP(userUPP)            DisposeRoutineDescriptor(userUPP)
      #define InvokeDMNotificationUPP(theEvent, userUPP)              CALL_ONE_PARAMETER_UPP((userUPP), uppDMNotificationProcInfo, (theEvent))
      #define InvokeDMExtendedNotificationUPP(userData, theMessage, notifyData, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
      #define InvokeDMComponentListIteratorUPP(userData, itemIndex, componentInfo, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
      #define InvokeDMDisplayModeListIteratorUPP(userData, itemIndex, displaymodeInfo, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  endif
  /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  define NewDMNotificationProc(userRoutine)                      NewDMNotificationUPP(userRoutine)
  define NewDMExtendedNotificationProc(userRoutine)              NewDMExtendedNotificationUPP(userRoutine)
  define NewDMComponentListIteratorProc(userRoutine)             NewDMComponentListIteratorUPP(userRoutine)
  define NewDMDisplayModeListIteratorProc(userRoutine)           NewDMDisplayModeListIteratorUPP(userRoutine)
  define CallDMNotificationProc(userRoutine, theEvent)           InvokeDMNotificationUPP(theEvent, userRoutine)
  define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData) InvokeDMExtendedNotificationUPP(userData, theMessage, notifyData, userRoutine)
  define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo) InvokeDMComponentListIteratorUPP(userData, itemIndex, componentInfo, userRoutine)
  define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo) InvokeDMDisplayModeListIteratorUPP(userData, itemIndex, displaymodeInfo, userRoutine)
  
  EXTERN_API( GDHandle )
  DMGetFirstScreenDevice          (Boolean                activeOnly)                         TWOWORDINLINE(0x7000, 0xABEB);
  
  EXTERN_API( GDHandle )
  DMGetNextScreenDevice           (GDHandle               theDevice,
                                   Boolean                activeOnly)                         TWOWORDINLINE(0x7001, 0xABEB);
  
  EXTERN_API( void )
  DMDrawDesktopRect               (Rect *                 globalRect)                         TWOWORDINLINE(0x7002, 0xABEB);
  
  EXTERN_API( void )
  DMDrawDesktopRegion             (RgnHandle              globalRgn)                          TWOWORDINLINE(0x7003, 0xABEB);
  
  EXTERN_API( OSErr )
  DMBeginConfigureDisplays        (Handle *               displayState)                       THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  
  EXTERN_API( OSErr )
  DMEndConfigureDisplays          (Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  
  EXTERN_API( OSErr )
  DMAddDisplay                    (GDHandle               newDevice,
                                   short                  driver,
                                   unsigned long          mode,
                                   unsigned long          reserved,
                                   unsigned long          displayID,
                                   Component              displayComponent,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  
  EXTERN_API( OSErr )
  DMMoveDisplay                   (GDHandle               moveDevice,
                                   short                  x,
                                   short                  y,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  
  EXTERN_API( OSErr )
  DMDisableDisplay                (GDHandle               disableDevice,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  
  EXTERN_API( OSErr )
  DMEnableDisplay                 (GDHandle               enableDevice,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  
  EXTERN_API( OSErr )
  DMRemoveDisplay                 (GDHandle               removeDevice,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  
  EXTERN_API( OSErr )
  DMSetMainDisplay                (GDHandle               newMainDevice,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  
  EXTERN_API( OSErr )
  DMSetDisplayMode                (GDHandle               theDevice,
                                   unsigned long          mode,
                                   unsigned long *        depthMode,
                                   unsigned long          reserved,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  
  EXTERN_API( OSErr )
  DMCheckDisplayMode              (GDHandle               theDevice,
                                   unsigned long          mode,
                                   unsigned long          depthMode,
                                   unsigned long *        switchFlags,
                                   unsigned long          reserved,
                                   Boolean *              modeOk)                             THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetDeskRegion                 (RgnHandle *            desktopRegion)                      THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  
  EXTERN_API( OSErr )
  DMRegisterNotifyProc            (DMNotificationUPP      notificationProc,
                                   ProcessSerialNumberPtr  whichPSN)                          THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  
  EXTERN_API( OSErr )
  DMRemoveNotifyProc              (DMNotificationUPP      notificationProc,
                                   ProcessSerialNumberPtr  whichPSN)                          THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  
  EXTERN_API( OSErr )
  DMQDIsMirroringCapable          (Boolean *              qdIsMirroringCapable)               THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  
  EXTERN_API( OSErr )
  DMCanMirrorNow                  (Boolean *              canMirrorNow)                       THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  
  EXTERN_API( OSErr )
  DMIsMirroringOn                 (Boolean *              isMirroringOn)                      THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  
  EXTERN_API( OSErr )
  DMMirrorDevices                 (GDHandle               gD1,
                                   GDHandle               gD2,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  
  EXTERN_API( OSErr )
  DMUnmirrorDevice                (GDHandle               gDevice,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetNextMirroredDevice         (GDHandle               gDevice,
                                   GDHandle *             mirroredDevice)                     THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  
  EXTERN_API( OSErr )
  DMBlockMirroring                (void)                                                      TWOWORDINLINE(0x701C, 0xABEB);
  
  EXTERN_API( OSErr )
  DMUnblockMirroring              (void)                                                      TWOWORDINLINE(0x701D, 0xABEB);
  
  if CALL_NOT_IN_CARBON
  EXTERN_API( OSErr )
  DMGetDisplayMgrA5World          (Ptr *                  dmA5)                               THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  EXTERN_API( OSErr )
  DMGetDisplayIDByGDevice         (GDHandle               displayDevice,
                                   DisplayIDType *        displayID,
                                   Boolean                failToMain)                         THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetGDeviceByDisplayID         (DisplayIDType          displayID,
                                   GDHandle *             displayDevice,
                                   Boolean                failToMain)                         THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  
  EXTERN_API( OSErr )
  DMSetDisplayComponent           (GDHandle               theDevice,
                                   Component              displayComponent)                   THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetDisplayComponent           (GDHandle               theDevice,
                                   Component *            displayComponent)                   THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewDisplay                    (GDHandle *             newDevice,
                                   short                  driverRefNum,
                                   unsigned long          mode,
                                   unsigned long          reserved,
                                   DisplayIDType          displayID,
                                   Component              displayComponent,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  
  EXTERN_API( OSErr )
  DMDisposeDisplay                (GDHandle               disposeDevice,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  
  EXTERN_API( OSErr )
  DMResolveDisplayComponents      (void)                                                      TWOWORDINLINE(0x7025, 0xABEB);
  
  EXTERN_API( OSErr )
  DMRegisterExtendedNotifyProc    (DMExtendedNotificationUPP  notifyProc,
                                   void *                 notifyUserData,
                                   unsigned short         nofifyOnFlags,
                                   ProcessSerialNumberPtr  whichPSN)                          THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  
  EXTERN_API( OSErr )
  DMRemoveExtendedNotifyProc      (DMExtendedNotificationUPP  notifyProc,
                                   void *                 notifyUserData,
                                   ProcessSerialNumberPtr  whichPSN,
                                   unsigned short         removeFlags)                        THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewAVPanelList                (DisplayIDType          displayID,
                                   ResType                panelType,
                                   DMFidelityType         minimumFidelity,
                                   unsigned long          panelListFlags,
                                   unsigned long          reserved,
                                   DMListIndexType *      thePanelCount,
                                   DMListType *           thePanelList)                       THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewAVEngineList               (DisplayIDType          displayID,
                                   ResType                engineType,
                                   DMFidelityType         minimumFidelity,
                                   unsigned long          engineListFlags,
                                   unsigned long          reserved,
                                   DMListIndexType *      engineCount,
                                   DMListType *           engineList)                         THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewAVDeviceList               (ResType                deviceType,
                                   unsigned long          deviceListFlags,
                                   unsigned long          reserved,
                                   DMListIndexType *      deviceCount,
                                   DMListType *           deviceList)                         THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewAVPortListByPortType       (ResType                subType,
                                   unsigned long          portListFlags,
                                   unsigned long          reserved,
                                   DMListIndexType *      devicePortCount,
                                   DMListType *           theDevicePortList)                  THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetIndexedComponentFromList   (DMListType             panelList,
                                   DMListIndexType        itemIndex,
                                   unsigned long          reserved,
                                   DMComponentListIteratorUPP  listIterator,
                                   void *                 userData)                           THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  
  EXTERN_API( OSErr )
  DMDisposeList                   (DMListType             panelList)                          THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetNameByAVID                 (AVIDType               theID,
                                   unsigned long          nameFlags,
                                   Str255                 name)                               THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewAVIDByPortComponent        (Component              thePortComponent,
                                   ResType                portKind,
                                   unsigned long          reserved,
                                   AVIDType *             newID)                              THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetPortComponentByAVID        (DisplayIDType          thePortID,
                                   Component *            thePortComponent,
                                   ComponentDescription * theDesciption,
                                   ResType *              thePortKind)                        THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  
  EXTERN_API( OSErr )
  DMSendDependentNotification     (ResType                notifyType,
                                   ResType                notifyClass,
                                   AVIDType               displayID,
                                   ComponentInstance      notifyComponent)                    THREEWORDINLINE(0x303C, 0x0830, 0xABEB);
  
  EXTERN_API( OSErr )
  DMDisposeAVComponent            (Component              theAVComponent)                     THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  
  EXTERN_API( OSErr )
  DMSaveScreenPrefs               (unsigned long          reserved1,
                                   unsigned long          saveFlags,
                                   unsigned long          reserved2)                          THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewAVIDByDeviceComponent      (Component              theDeviceComponent,
                                   ResType                portKind,
                                   unsigned long          reserved,
                                   DisplayIDType *        newID)                              THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewAVPortListByDeviceAVID     (AVIDType               theID,
                                   DMFidelityType         minimumFidelity,
                                   unsigned long          portListFlags,
                                   unsigned long          reserved,
                                   DMListIndexType *      devicePortCount,
                                   DMListType *           theDevicePortList)                  THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetDeviceComponentByAVID      (AVIDType               theDeviceID,
                                   Component *            theDeviceComponent,
                                   ComponentDescription * theDesciption,
                                   ResType *              theDeviceKind)                      THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  
  EXTERN_API( OSErr )
  DMNewDisplayModeList            (DisplayIDType          displayID,
                                   unsigned long          modeListFlags,
                                   unsigned long          reserved,
                                   DMListIndexType *      thePanelCount,
                                   DMListType *           thePanelList)                       THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetIndexedDisplayModeFromList (DMListType             panelList,
                                   DMListIndexType        itemIndex,
                                   unsigned long          reserved,
                                   DMDisplayModeListIteratorUPP  listIterator,
                                   void *                 userData)                           THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetGraphicInfoByAVID          (AVIDType               theID,
                                   PicHandle *            theAVPcit,
                                   Handle *               theAVIconSuite,
                                   AVLocationRec *        theAVLocation)                      THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetAVPowerState               (AVIDType               theID,
                                   AVPowerStatePtr        getPowerState,
                                   unsigned long          reserved1)                          THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  
  EXTERN_API( OSErr )
  DMSetAVPowerState               (AVIDType               theID,
                                   AVPowerStatePtr        setPowerState,
                                   unsigned long          powerFlags,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetDeviceAVIDByPortAVID       (AVIDType               portAVID,
                                   AVIDType *             deviceAVID)                         THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetEnableByAVID               (AVIDType               theAVID,
                                   Boolean *              isAVIDEnabledNow,
                                   Boolean *              canChangeEnableNow)                 THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  
  EXTERN_API( OSErr )
  DMSetEnableByAVID               (AVIDType               theAVID,
                                   Boolean                doEnable,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  
  EXTERN_API( OSErr )
  DMGetDisplayMode                (GDHandle               theDevice,
                                   VDSwitchInfoPtr        switchInfo)                         THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  
  EXTERN_API( OSErr )
  DMConfirmConfiguration          (ModalFilterUPP         filterProc,
                                   UInt32                 confirmFlags,
                                   UInt32                 reserved,
                                   Handle                 displayState)                       THREEWORDINLINE(0x303C, 0x083F, 0xABEB);
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  endif
  
  ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  endif
  
  ifdef __cplusplus
  }
  endif
  
  endif /* __DISPLAYS__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.