You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
674 lines
15 KiB
674 lines
15 KiB
/* |
|
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 <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __MACMEMORY__ |
|
#include <MacMemory.h> |
|
#endif |
|
|
|
#ifndef __MACWINDOWS__ |
|
#include <MacWindows.h> |
|
#endif |
|
|
|
#ifndef __OSUTILS__ |
|
#include <OSUtils.h> |
|
#endif |
|
|
|
#ifndef __FILES__ |
|
#include <Files.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 |
|
|
|
/* 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__ */ |
|
|
|
|