/* File: QTML.h Contains: QuickTime Cross-platform specific interfaces Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1997-2007 by Apple Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __QTML__ #define __QTML__ #ifndef __MACTYPES__ #include #endif #ifndef __MACMEMORY__ #include #endif #ifndef __MACWINDOWS__ #include #endif #ifndef __OSUTILS__ #include #endif #ifndef __FILES__ #include #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 /* QuickTime is not available to 64-bit clients */ #if !__LP64__ /* * QTMLYieldCPU() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 3.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLYieldCPU(void); /* QTMLYieldCPUTime flags*/ enum { kQTMLHandlePortEvents = (1L << 0) /* ask for event handling during the yield*/ }; /* * QTMLYieldCPUTime() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 3.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLYieldCPUTime( long milliSeconds, unsigned long flags); typedef struct OpaqueQTMLMutex* QTMLMutex; typedef struct OpaqueQTMLSyncVar* QTMLSyncVar; typedef QTMLSyncVar * QTMLSyncVarPtr; /* InitializeQTML flags*/ enum { kInitializeQTMLNoSoundFlag = (1L << 0), /* flag for requesting no sound when calling InitializeQTML*/ kInitializeQTMLUseGDIFlag = (1L << 1), /* flag for requesting GDI when calling InitializeQTML*/ kInitializeQTMLDisableDirectSound = (1L << 2), /* disables QTML's use of DirectSound*/ kInitializeQTMLUseExclusiveFullScreenModeFlag = (1L << 3), /* later than QTML 3.0: qtml starts up in exclusive full screen mode*/ kInitializeQTMLDisableDDClippers = (1L << 4), /* flag for requesting QTML not to use DirectDraw clipper objects; QTML 5.0 and later*/ kInitializeQTMLEnableDoubleBufferedSurface = (1L << 6) /* flag for requesting QuickTime use a double-buffered destination surface; QT6.4 and later*/ }; #if CALL_NOT_IN_CARBON /* * InitializeQTML() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) InitializeQTML(long flag); /* * TerminateQTML() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) TerminateQTML(void); /* CreatePortAssociation flags*/ #endif /* CALL_NOT_IN_CARBON */ enum { kQTMLNoIdleEvents = (1L << 1), /* ask for a non-auto-idled port to be created*/ kQTMLNoDoubleBufferPort = (1L << 2) /* ask for QTML not to double-buffer this port*/ }; #define kQTMLIsDoubleBuffered "UsesDoubleBuffer" #if CALL_NOT_IN_CARBON /* * CreatePortAssociation() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( GrafPtr ) CreatePortAssociation( void * theWnd, Ptr storage, long flags); /* * DestroyPortAssociation() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) DestroyPortAssociation(CGrafPtr cgp); #endif /* CALL_NOT_IN_CARBON */ /* * QTMLGrabMutex() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 3.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLGrabMutex(QTMLMutex mu); /* * QTMLTryGrabMutex() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 4.1 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 4.1 and later */ EXTERN_API( Boolean ) QTMLTryGrabMutex(QTMLMutex mu); /* * QTMLReturnMutex() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 3.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLReturnMutex(QTMLMutex mu); /* * QTMLCreateMutex() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 3.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( QTMLMutex ) QTMLCreateMutex(void); /* * QTMLDestroyMutex() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 3.0 and later * Mac OS X: in version 10.0 and later * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLDestroyMutex(QTMLMutex mu); #if CALL_NOT_IN_CARBON /* * QTMLCreateSyncVar() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( QTMLSyncVarPtr ) QTMLCreateSyncVar(void); /* * QTMLDestroySyncVar() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLDestroySyncVar(QTMLSyncVarPtr p); /* * QTMLTestAndSetSyncVar() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) QTMLTestAndSetSyncVar(QTMLSyncVarPtr sync); /* * QTMLWaitAndSetSyncVar() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLWaitAndSetSyncVar(QTMLSyncVarPtr sync); /* * QTMLResetSyncVar() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLResetSyncVar(QTMLSyncVarPtr sync); /* * InitializeQHdr() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) InitializeQHdr(QHdr * qhdr); /* * TerminateQHdr() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) TerminateQHdr(QHdr * qhdr); /* * QTMLAcquireWindowList() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLAcquireWindowList(void); /* * QTMLReleaseWindowList() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLReleaseWindowList(void); /* These routines are here to support "interrupt level" code These are dangerous routines, only use if you know what you are doing. */ /* * QTMLRegisterInterruptSafeThread() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) QTMLRegisterInterruptSafeThread( unsigned long threadID, void * threadInfo); /* * QTMLUnregisterInterruptSafeThread() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) QTMLUnregisterInterruptSafeThread(unsigned long threadID); /* * NativeEventToMacEvent() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) NativeEventToMacEvent( void * nativeEvent, EventRecord * macEvent); #endif /* CALL_NOT_IN_CARBON */ #if TARGET_OS_WIN32 #if CALL_NOT_IN_CARBON /* * WinEventToMacEvent() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( long ) WinEventToMacEvent( void * winMsg, EventRecord * macEvent); #define WinEventToMacEvent NativeEventToMacEvent /* * IsTaskBarVisible() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( Boolean ) IsTaskBarVisible(void); /* * ShowHideTaskBar() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) ShowHideTaskBar(Boolean showIt); #endif /* CALL_NOT_IN_CARBON */ enum { kDDSurfaceLocked = (1L << 0), kDDSurfaceStatic = (1L << 1) }; #if CALL_NOT_IN_CARBON /* * QTGetDDObject() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) QTGetDDObject(void ** lpDDObject); /* * QTSetDDObject() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) QTSetDDObject(void * lpNewDDObject); /* * QTSetDDPrimarySurface() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) QTSetDDPrimarySurface( void * lpNewDDSurface, unsigned long flags); /* * QTMLGetVolumeRootPath() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) QTMLGetVolumeRootPath( char * fullPath, char * volumeRootPath, unsigned long volumeRootLen); /* * QTMLSetWindowWndProc() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void ) QTMLSetWindowWndProc( WindowRef theWindow, void * windowProc); /* * QTMLGetWindowWndProc() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( void * ) QTMLGetWindowWndProc(WindowRef theWindow); #endif /* CALL_NOT_IN_CARBON */ #endif /* TARGET_OS_WIN32 */ #if CALL_NOT_IN_CARBON /* * QTMLGetCanonicalPathName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) QTMLGetCanonicalPathName( char * inName, char * outName, unsigned long outLen); #endif /* CALL_NOT_IN_CARBON */ enum { kFullNativePath = 0, kFileNameOnly = (1 << 0), kDirectoryPathOnly = (1 << 1), kUFSFullPathName = (1 << 2), kTryVDIMask = (1 << 3), /* Used in NativePathNameToFSSpec to specify to search VDI mountpoints*/ kFullPathSpecifiedMask = (1 << 4) /* the passed in name is a fully qualified full path*/ }; #if CALL_NOT_IN_CARBON /* * FSSpecToNativePathName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) FSSpecToNativePathName( const FSSpec * inFile, char * outName, unsigned long outLen, long flags); #endif /* CALL_NOT_IN_CARBON */ enum { kErrorIfFileNotFound = 1L << 31 }; #if CALL_NOT_IN_CARBON /* * NativePathNameToFSSpec() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 3.0 and later */ EXTERN_API( OSErr ) NativePathNameToFSSpec( char * inName, FSSpec * outFile, long flags); /* * QTGetAliasInfo() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in qtmlClient.lib 5.0 and later */ EXTERN_API( OSErr ) QTGetAliasInfo( AliasHandle alias, AliasInfoType index, char * outBuf, long bufLen, long * outLen, unsigned long flags); #endif // !__LP64__ #endif /* CALL_NOT_IN_CARBON */ #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 /* __QTML__ */