KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q94012: Visual Basic MCI Control TimeFormat Property Information

Article: Q94012
Product(s): Microsoft Visual Basic for Windows
Version(s): 1.0,2.0
Operating System(s): 
Keyword(s): 
Last Modified: 08-NOV-2001

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Professional Toolkit for Microsoft Visual Basic programming system for Windows, version 1.0 
- Microsoft Visual Basic Professional Edition for Windows, version 2.0 
-------------------------------------------------------------------------------

SUMMARY
=======

The Multimedia Device Control (MCI.VBX) TimeFormat property does not support all
format settings with all device types. When you assign a value to TimeFormat
that is not supported by the device, the TimeFormat retains its previous
setting.

This article also describes MCI_FORMAT_MSF (2) and shows how to separate the four
bytes of a time value.

MORE INFORMATION
================

To determine if the current device supports a particular TimeFormat setting,
assign the value to TimeFormat. Then check TimeFormat to see if it returns the
value assigned. For example:

     For i = 0 To 10
        MMControl1.TimeFormat = i
        If MMControl1.TimeFormat = i Then
           MsgBox Format$(i) + " supported"
        Else
           MsgBox Format$(i) + " not supported"
        End If
     Next

Some of the time formats, such as MCI_FORMAT_TMSF, provide four separate byte
size numbers packed into one four byte long integer. The following sample
statements show how you can extract the four bytes into separate variables:

     byte1 =  MMControl1.Position And       &HFF&
     byte2 = (MMControl1.Position And     &HFF00&) \     &H100
     byte3 = (MMControl1.Position And   &HFF0000)  \   &H10000
     byte4 = (MMControl1.Position And &H7F000000)  \ &H1000000
     If (MMControl1.Position And &H80000000) <> 0 Then
        ' put sign bit back into byte4
        byte4 = byte4 + &H80
     End If

The least significant byte is stored in byte1 and the most significant byte is
stored in byte4.

The following list shows all possible settings for TimeFormat:

  0 MCI_FORMAT_MILLISECONDS
  1 MCI_FORMAT_HMS
  2 MCI_FORMAT_MSF
  3 MCI_FORMAT_FRAMES
  4 MCI_FORMAT_SMPTE_24
  5 MCI_FORMAT_SMPTE_25
  6 MCI_FORMAT_SMPTE_30
  7 MCI_FORMAT_SMPTE_30DROP
  8 MCI_FORMAT_BYTES
  9 MCI_FORMAT_SAMPLES
  10 MCI_FORMAT_TMSF

The TimeFormat setting MCI_FORMAT_MSF is described in the README.TXT file but is
missing from the "Microsoft Visual Basic Professional Features Custom Control
Reference" for version 2.0. The following description of MCI_FORMAT_MSF appears
in the README.TXT file:

  2 MCI_FORMAT_MSF Minutes, seconds, and frames are packed into a
  four-byte integer. From least significant byte to
  most significant byte, the individual data values
  follow:

  Minutes (least significant byte)
  Seconds
  Frames
  Unused (most significant byte)

The TimeFormat property affects the following properties.

  Position
  From
  To
  Start
  Length
  TrackLength
  TrackPosition

Microsoft has confirmed that this information should be included in the
"Microsoft Visual Basic Professional Features Custom Control Reference" for
version 2.0. We will post new information here when the documentation has been
updated with this additional information.

Additional query words: 1.00 2.00 kbdocerr

======================================================================
Keywords          :  
Technology        : kbVBSearch kbAudDeveloper _IKkbbogus kbZNotKeyword6 kbZNotKeyword2 kbVBPTK kbVB200
Version           : :1.0,2.0

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.