source-engine/common/quicktime_win32/QTML.h

675 lines
15 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
/*
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__ */