

Rem  ---------------------------------------------------------------------
Rem
Rem  QTW.TXT - QuickTime for Windows Visual Basic Declarations
Rem
Rem            Version 1.0
Rem
Rem            (c) 1988-1994 Apple Computer, Inc. All Rights Reserved.
Rem
Rem  ---------------------------------------------------------------------



Rem  Movie Controller MCDoAction action constants
Rem  --------------------------------------------

Global Const mcActionIdle = 1
Global Const mcActionDraw = 2
Global Const mcActionActivate = 3
Global Const mcActionDeactivate = 4
Global Const mcActionKey = 6
Global Const mcActionPlay = 8
Global Const mcActionGoToTime = 12
Global Const mcActionSetVolume = 14
Global Const mcActionGetVolume = 15
Global Const mcActionStep = 18
Global Const mcActionSetLooping = 21
Global Const mcActionGetLooping = 22
Global Const mcActionSetLoopIsPalindrome = 23
Global Const mcActionGetLoopIsPalindrome = 24
Global Const mcActionSetGrowBoxBounds = 25
Global Const mcActionControllerSizeChanged = 26
Global Const mcActionSetSelectionBegin = 29
Global Const mcActionSetSelectionDuration = 30
Global Const mcActionSetKeysEnabled = 32
Global Const mcActionGetKeysEnabled = 33
Global Const mcActionSetPlaySelection = 34
Global Const mcActionGetPlaySelection = 35
Global Const mcActionSetUseBadge = 36
Global Const mcActionGetUseBadge = 37
Global Const mcActionSetFlags = 38
Global Const mcActionGetFlags = 39
Global Const mcActionSetPlayEveryFrame = 40
Global Const mcActionGetPlayEveryFrame = 41
Global Const mcActionGetPlayRate = 42
Global Const mcActionBadgeClick = 44



Rem  Movie Controller MCDoAction, action McActionSetFlags parameter, movie
Rem  controller structure parameter, lfActionFlags
Rem  ---------------------------------------------------------------------

Global Const mcFlagSuppressStepButtons = 2
Global Const mcFlagSuppressSpeakerButton = 4
Global Const mcFlagsUseWindowPalette = 8



Rem  Toolbox function NewMovieController and Movie Controller function
Rem  MCPositionController parameter controllerCreationFlags values,
Rem  movie controller structure parameter, lfControllerStateFlags
Rem  -----------------------------------------------------------------

Global Const mcTopLeftMovie = 1
Global Const mcScaleMovieToFit = 2
Global Const mcWithBadge = 4
Global Const mcNotVisible = 8



Rem  Movie Controller function MCGetControllerInfo parameter mcInfoFlags
Rem  parameter, movie controller structure parameter, lfControllerInfoFlags
Rem  ----------------------------------------------------------------------

Global Const mcInfoHasSound = 32
Global Const mcInfoIsPlaying = 64
Global Const mcInfoIsLooping = 128
Global Const mcInfoIsInPalindrome = 256



Rem  NewMovieFromFile flags
Rem  ----------------------

Global Const newMovieActive = 1
Global Const newMovieDontResolveDataRefs = 2
Global Const newMovieDontAskUnresolvedDataRefs = 4
Global Const newMovieDontAutoAlternates = 8



Rem  Flags for SetMoviePlayHints
Rem  ---------------------------

Global Const hintsScrubMode = 2
Global Const hintsInterpolateSound = 128



Rem  Visual Basic Error Codes
Rem  ------------------------

Global Const ERR_INVALID_MOVIE = 31000



Rem  QuickTime Error codes
Rem  ---------------------

Global Const couldNotResolveDataRef = -2000
Global Const badImageDescription = -2001
Global Const badPublicMovieAtom = -2002
Global Const cantFindHandler = -2003
Global Const cantOpenHandler = -2004
Global Const badComponentType = -2005
Global Const noMediaHandler = -2006
Global Const noDataHandler = -2007
Global Const invalidMedia = -2008
Global Const invalidTrack = -2009
Global Const invalidMovie = -2010
Global Const invalidSampleTable = -2011
Global Const invalidDataRef = -2012
Global Const invalidHandler = -2013
Global Const invalidDuration = -2014
Global Const invalidTime = -2015
Global Const cantPutPublicMovieAtom = -2016
Global Const badEditList = -2017
Global Const mediaTypesDontMatch = -2018
Global Const progressProcAborted = -2019
Global Const movieToolboxUninitialized = -2020
Global Const wffileNotFound = -2021
Global Const cantCreateSingleForkFile = -2022
Global Const invalidEditState = -2023
Global Const nonMatchingEditState = -2024
Global Const staleEditState = -2025
Global Const userDataItemNotFound = -2026
Global Const maxSizeToGrowTooSmall = -2027
Global Const badTrackIndex = -2028
Global Const trackIDNotFound = -2029
Global Const trackNotInMovie = -2030
Global Const timeNotInTrack = -2031
Global Const timeNotInMedia = -2032
Global Const badEditIndex = -2033
Global Const internalQuickTimeError = -2034
Global Const cantEnableTrack = -2035
Global Const invalidRect = -2036
Global Const invalidSampleNum = -2037
Global Const invalidChunkNum = -2038
Global Const invalidSampleDescIndex = -2039
Global Const invalidChunkCache = -2040
Global Const invalidSampleDescription = -2041
Global Const dataNotOpenForRead = -2042
Global Const dataNotOpenForWrite = -2043
Global Const dataAlreadyOpenForWrite = -2044
Global Const dataAlreadyClosed = -2045
Global Const endOfDataReached = -2046
Global Const dataNoDataRef = -2047
Global Const noMovieInDataFork = -2048
Global Const invalidDataRefContainer = -2049
Global Const badDataRefIndex = -2050
Global Const noDefaultDataRef = -2051
Global Const couldNotUseAnExistingSample = -2052
Global Const featureUnsupported = -2053
Global Const noVideoTrackInMovie = -2054
Global Const noSoundTrackInMovie = -2055
Global Const soundSupportNotAvailable = -2056
Global Const maxControllersExceeded = -2057
Global Const unableToCreateMCWindow = -2058
Global Const insufficientMemory = -2059
Global Const invalidUserDataHandle = -2060
Global Const noPictureInFile = -2061
Global Const invalidPictureFileHandle = -2062
Global Const invalidPictureHandle = -2063
Global Const badDisplayContext = -2064
Global Const noErr  = 0
Global Const mcOK  = 0
Global Const mcEventNotHandled  = 0
Global Const mcEventHandled  = 1
Global Const controllerBoundsNotExact = -9996
Global Const editingNotAllowed = -9995



Rem  QTInitialize error codes
Rem  ------------------------

Global Const QTI_OK = 0
Global Const QTI_FAIL_NOEXIST = 1
Global Const QTI_FAIL_CORRUPTDLL = 2
Global Const QTI_FAIL_286 = 3
Global Const QTI_FAIL_WIN30 = 4



Rem  OpenFile constants
Rem  ------------------

Global Const OF_READ = &H0
Global Const OF_WRITE = &H1
Global Const OF_READWRITE = &H2
Global Const OF_SHARE_COMPAT = &H0
Global Const OF_SHARE_EXCLUSIVE = &H10
Global Const OF_SHARE_DENY_WRITE = &H20
Global Const OF_SHARE_DENY_READ = &H30
Global Const OF_SHARE_DENY_NONE = &H40
Global Const OF_PARSE = &H100
Global Const OF_DELETE = &H200
Global Const OF_VERIFY = &H400
Global Const OF_SEARCH = &H400
Global Const OF_CANCEL = &H800
Global Const OF_CREATE = &H1000
Global Const OF_PROMPT = &H2000
Global Const OF_EXIST = &H4000
Global Const OF_REOPEN = &H8000



Rem  Structures
Rem  ----------

Type PointAPI
    x As Integer
    y As Integer
End Type

Type Rect
    left As Integer
    top As Integer
    right As Integer
    bottom As Integer
End Type

Type Int64
    dwLo As Long
    dwHi As Long
End Type

Type OpenCPicParams
    rcRect As Rect
    hRes As Long
    vRes As Long
    wVersion As Integer
    wReserved1 As Integer
    dwReserved2 As Long
End Type

Type TimeBaseRecord
    p As Long
End Type

Global Const TIMEBASE_DEFAULT = -1&

Type TimeRecord
    trvalue As Int64
    trscale As Long
    trbase As Long
End Type

Type SoundDescription
    descSize As Long
    dataFormat As Long
    resvd1 As Long
    resvd2 As Integer
    dataRefIndex As Integer
    version As Integer
    revLevel As Integer
    vendor As Long
    numChannels As Integer
    sampleSize As Integer
    compressionID As Integer
    packetSize As Integer
    sampleRate As Long
End Type

Type ImageDescription
    idSize As Long
    CodecType As Long
    resvd1 As Long
    resvd2 As Integer
    dataRefIndex As Integer
    version As Integer
    revLevel As Integer
    vendor As Long
    temporalQuality As Long
    spatialQuality As Long
    idWidth As Integer
    idHeight As Integer
    hRes As Long
    vRes As Long
    dataSize As Long
    frameCount As Integer
    idName As String * 32
    depth As Integer
    clutID As Integer
End Type



Rem  Note: the following functions cannot be called from Visual Basic because
Rem  they operate through a callback function.  Visual Basic does not support
Rem  the concept of a callback function.  They are included only for
Rem  syntactic completeness, but should not be used.
Rem  -----------------------------------------------------------------------

Declare Sub      VBSetMovieCoverProcs Lib "QTMovie.VBX" (ByVal mMovie As Long, ByVal UncoverProc As Long, ByVal CoverProc As Long, ByVal lRefCon As Long)
Declare Function VBMCIsPlayerMessage Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal hWnd As Integer, ByVal wMessage As Integer, ByVal wParam As Integer, ByVal lParam As Long) As Long



Rem  Sub and Function Declarations
Rem  -----------------------------

Declare Sub      VBAddTime Lib "QTMovie.VBX" (lptrDst As TimeRecord, lptrSrc As TimeRecord)
Declare Sub      VBClearMoviesStickyError Lib "QTMovie.VBX" ()
Declare Function VBCloseMovieFile Lib "QTMovie.VBX" (ByVal mfMovie As Integer) As Long
Declare Function VBClosePictureFile Lib "QTMovie.VBX" (ByVal pfPicture As Integer) As Long
Declare Sub      VBConvertTimeScale Lib "QTMovie.VBX" (lptrInout As TimeRecord, ByVal tsNewScale As Long)

Declare Function VBCountUserDataType Lib "QTMovie.VBX" (ByVal udData As Integer, ByVal ostType As Long) As Long
Declare Function VBDeleteMovieFile Lib "QTMovie.VBX" (ByVal lpstrFileSpec As String) As Long
Declare Sub      VBDisposeMovie Lib "QTMovie.VBX" (ByVal mMovie As Long)
Declare Sub      VBDisposeMovieController Lib "QTMovie.VBX" (ByVal mcController As Long)
Declare Sub      VBDisposePicture Lib "QTMovie.VBX" (ByVal phPicture As Integer)

Declare Function VBDrawPicture Lib "QTMovie.VBX" (ByVal hDC As Integer, ByVal phThePict As Integer, lprcFrame As Rect, ByVal pprpProgressProc As Long) As Long
Declare Function VBDrawPictureFile Lib "QTMovie.VBX" (ByVal hDC As Integer, ByVal pfPicture As Integer, lprcFrame As Rect, ByVal pprpProgressProc As Long) As Long
Declare Function VBEnterMovies Lib "QTMovie.VBX" () As Long
Declare Sub      VBExitMovies Lib "QTMovie.VBX" ()
Declare Function VBGetMovieActive Lib "QTMovie.VBX" (ByVal mMovie As Long) As Integer

Declare Sub      VBGetMovieActiveSegment Lib "QTMovie.VBX" (ByVal mMovie As Long, tvStart As Long, tvDuration As Long)
Declare Sub      VBGetMovieBox Lib "QTMovie.VBX" (ByVal mMovie As Long, lprcMovieRect As Rect)
Declare Function VBGetMovieCreationTime Lib "QTMovie.VBX" (ByVal mMovie As Long) As Long
Declare Function VBGetMovieDataSize Lib "QTMovie.VBX" (ByVal mMovie As Long, ByVal tvStart As Long, ByVal tvDuration As Long) As Long
Declare Function VBGetMovieDuration Lib "QTMovie.VBX" (ByVal mMovie As Long) As Long

Declare Function VBGetMovieModificationTime Lib "QTMovie.VBX" (ByVal mMovie As Long) As Long
Declare Function VBGetMoviePict Lib "QTMovie.VBX" (ByVal mMovie As Long, ByVal tvTime As Long) As Integer
Declare Function VBGetMoviePosterPict Lib "QTMovie.VBX" (ByVal mMovie As Long) As Integer
Declare Function VBGetMoviePosterTime Lib "QTMovie.VBX" (ByVal mMovie As Long) As Long
Declare Function VBGetMoviePreferredRate Lib "QTMovie.VBX" (ByVal mMovie As Long) As Long

Declare Function VBGetMoviePreferredVolume Lib "QTMovie.VBX" (ByVal mMovie As Long) As Integer
Declare Function VBGetMoviesError Lib "QTMovie.VBX" () As Long
Declare Function VBGetMoviesStickyError Lib "QTMovie.VBX" () As Long
Declare Function VBGetMovieStatus Lib "QTMovie.VBX" (ByVal mMovie As Long, ByVal lpvReserved As Long) As Long
Declare Function VBGetMovieTime Lib "QTMovie.VBX" (ByVal mMovie As Long, trRecord As TimeRecord) As Long

Declare Function VBGetMovieTimeScale Lib "QTMovie.VBX" (ByVal mMovie As Long) As Long
Declare Function VBGetMovieUserData Lib "QTMovie.VBX" (ByVal mMovie As Long) As Integer
Declare Function VBGetNextUserDataType Lib "QTMovie.VBX" (ByVal udData As Integer, ByVal ostType As Long) As Long
Declare Function VBGetPictureFileHeader Lib "QTMovie.VBX" (ByVal pfPicture As Integer, lprcFrame As Rect, lpocppHeader As OpenCPicParams) As Long
Declare Function VBGetPictureFileInfo Lib "QTMovie.VBX" (ByVal pfPicture As Integer, idImageInfo As ImageDescription) As Long

Declare Function VBGetPictureFromFile Lib "QTMovie.VBX" (ByVal pfPicture As Integer) As Integer
Declare Function VBGetPictureInfo Lib "QTMovie.VBX" (ByVal phThePict As Integer, idImageInfo As ImageDescription) As Long
Declare Function VBGetPicturePalette Lib "QTMovie.VBX" (ByVal phThePict As Integer) As Integer
Declare Function VBGetSoundInfo Lib "QTMovie.VBX" (ByVal mMovie As Long, sdSoundInfo As SoundDescription) As Long
Declare Function VBGetUserData Lib "QTMovie.VBX" (ByVal udData As Integer, lphData As Integer, ByVal ostType As Long, ByVal lIndex As Long, lplSize As Long) As Long

Declare Function VBGetUserDataText Lib "QTMovie.VBX" (ByVal udData As Integer, lphData as Integer, ByVal ostType As Long, ByVal lIndex As Long, ByVal uRegionTag as Integer, lplSize As Long) As Long
Declare Function VBGetVideoInfo Lib "QTMovie.VBX" (ByVal mMovie As Long, idVideoInfo As ImageDescription) As Long
Declare Sub      VBKillPicture Lib "QTMovie.VBX" (ByVal phPicture As Integer)
Declare Function VBMCActivate Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal hWnd As Integer, ByVal bActivate As Integer) As Long
Declare Function VBMCDoAction Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal uAction As Integer, lpvParams As Long) As Long

Declare Function VBMCDraw Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal hWnd As Integer) As Long
Declare Function VBMCDrawBadge Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal hrgnMovieRgn As Integer, lphrgnBadgeRgn As Integer) As Long
Declare Function VBMCGetControllerBoundsRect Lib "QTMovie.VBX" (ByVal mcController As Long, lprcBounds As Rect) As Long
Declare Function VBMCGetControllerInfo Lib "QTMovie.VBX" (ByVal mcController As Long, lplMcInfoFlags As Long) As Long
Declare Function VBMCGetCurrentTime Lib "QTMovie.VBX" (ByVal mcController As Long, tsScale As Long) As Long

Declare Function VBMCGetMovie Lib "QTMovie.VBX" (ByVal mcController As Long) As Long
Declare Function VBMCGetVisible Lib "QTMovie.VBX" (ByVal mcController As Long) As Long
Declare Function VBMCIdle Lib "QTMovie.VBX" (ByVal mcController As Long) As Long
Declare Function VBMCIsControllerAttached Lib "QTMovie.VBX" (ByVal mcController As Long) As Long
Declare Function VBMCKey Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Declare Function VBMCNewAttachedController Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal mMovie As Long, ByVal hWnd As Integer, ptUpperLeft As PointAPI) As Long
Declare Function VBMCPositionController Lib "QTMovie.VBX" (ByVal mcController As Long, lprcMovieRect As Rect, lprcControllerRect As Rect, ByVal lControllerCreationFlags As Long) As Long
Declare Function VBMCRemoveMovie Lib "QTMovie.VBX" (ByVal mcController As Long) As Long
Declare Function VBMCSetActionFilter Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal lpfnFilter As Long, ByVal lRefCon As Long) As Long
Declare Function VBMCSetControllerAttached Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal bAttach As Integer) As Long

Declare Function VBMCSetControllerBoundsRect Lib "QTMovie.VBX" (ByVal mcController As Long, lprcBounds As Rect) As Long
Declare Function VBMCSetMovie Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal mMovie As Long, ByVal hWndMovieWindow As Integer, ptUpperLeft As PointAPI) As Long
Declare Function VBMCSetVisible Lib "QTMovie.VBX" (ByVal mcController As Long, ByVal bShow As Integer) As Long
Declare Function VBNewMovieController Lib "QTMovie.VBX" (ByVal mMovie As Long, lprcMovieRect As Rect, ByVal lControllerCreationFlags As Long, ByVal hWndParent As Integer) As Long
Declare Function VBNewMovieFromDataFork Lib "QTMovie.VBX" (fpmMovie As Long, ByVal hFile As Integer, ByVal lOffset As Long, ByVal uiNewMovieFlags As Integer) As Long

Declare Function VBNewMovieFromFile Lib "QTMovie.VBX" (fpmMovie As Long, ByVal mfMovie As Integer, lpsResID As Integer, lpstrResName As Any, ByVal uiNewMovieFlags As Integer, lpbDataRefWasChanged As Integer) As Long
Declare Sub      VBNormalizeRect Lib "QTMovie.VBX" (lprcRect As Rect)
Declare Function VBOpenMovieFile Lib "QTMovie.VBX" (ByVal lpstrFileSpec As String, MovieFile As Integer, ByVal sOFlag As Integer) As Long
Declare Function VBOpenPictureFile Lib "QTMovie.VBX" (ByVal lpstrFileSpec As String, pfPicture As Integer, ByVal sOFlag As Integer) As Long
Declare Function VBPictureToDIB Lib "QTMovie.VBX" (ByVal pcThePict As Integer) As Integer

Declare Function VBPrerollMovie Lib "QTMovie.VBX" (ByVal mMovie As Long, ByVal tvTime As Long, ByVal lfxRate As Long) As Long
Declare Function VBPtInMovie Lib "QTMovie.VBX" (ByVal mMovie As Long, ptPoint As PointAPI) As Integer
Declare Function VBQTInitialize Lib "QTMovie.VBX" (lplVersion As Long) As Long
Declare Sub      VBQTTerminate Lib "QTMovie.VBX" ()
Declare Sub      VBSetMovieActive Lib "QTMovie.VBX" (ByVal mMovie As Long, ByVal bActive As Integer)

Declare Sub      VBSubtractTime Lib "QTMovie.VBX" (lptrDst As TimeRecord, lptrSrc As TimeRecord)
Declare Function VBUpdateMovie Lib "QTMovie.VBX" (ByVal mMovie As Long) As Long
