Send Feedback

The CAMERACAPTURE_VIDEOTYPES enumeration is a SHCAMERACAPTURE structure member that defines the purpose of the video.


enum {


    Produces video clips that match video profiles, using just the video resolution for the match criteria.

    Note   If **SHCAMERACAPTURE::**nResolutionWidth and **SHCAMERACAPTURE::**nResolutionHeight both equal 0, and a CAMERACAPTURE_VIDEOTYPES value of CAMERACAPTURE_VIDEOTYPE_ALL is used, then the user's last selected video resolution is used. For CAMERACAPTURE_VIDEOTYPES values of CAMERACAPTURE_VIDEOTYPE_STANDARD and CAMERACAPTURE_VIDEOTYPE_MESSAGING, either **SHCAMERACAPTURE::**nResolutionWidth or **SHCAMERACAPTURE::**nResolutionHeight must not equal 0.

    Produces high-quality video clips used for home movies and e-mail video messaging, using a video encoder such as the Windows Media encoder.

    Produces video clips used for Multimedia Messaging Service (MMS) video messaging, which require a video encoder that conforms to the 3rd Generation Partnership Project (3GPP) specification.


Multimedia Messaging Service (MMS) applications must be able to capture video that meets criteria specific to multimedia messaging. This includes video format and file size. To accommodate this, it is up to the mobile device Original Equipment Manufacturer (OEM) to register Video Profiles for each of the Video Types (All, Standard, and Messaging). To be compliant, you just need to call SHCameraCapture with a Video Type and video resolution that matches one of the Video Profiles.

  • Video Type specifies whether the video should be recorded in a format that is compatible with video messaging (usually encoded in either MPEG4 format or H.263 format), or for use in home videos and e-mail messaging (usually encoded in Windows Media Video (WMV) format).
  • Video Profiles are registry settings that contain a combination of Video Type, video encoder, video resolution, and a profile name.

When you call the SHCameraCapture function, the Video Type and video resolution that you specify are matched to a corresponding Video Profile to determine which Video Profile is used to initialize video capture mode. Your CAMERACAPTURE_VIDEOTYPES value is logically ANDed (&) with the VideoType value in each registered profile (e.g., "VideoType:DWORD = 0x0002" for messaging). Of those that produce a 1, the video resolutions are then compared. If a matching Video Profile is found, then it is used to initialize video capture mode. If one cannot be found, then E_INVALIDARG is returned. In this case, you should just call SHCameraCapture again, this time with a CAMERACAPTURE_VIDEOTYPES value of CAMERACAPTURE_VIDEOTYPE_ALL (0xFFFF), and no specified video resolution; the first supported video resolution will then be used.

The following example demonstrates a typical video profile registration.

ItemString:String = "MMS (174x144)"
VideoType:DWORD = 0x0002 ; For messaging
Width:DWORD = 176
Height:DWORD = 144
...; Setting for the encoder

You can estimate the video file size that meets the time-limit restriction by specifying a particular video resolution.

Each Video Profile is listed as an option for the user in Pictures & Video > Menu > Quality.


Pocket PC: Windows Mobile Version 5.0 and later
Smartphone: Windows Mobile Version 5.0 and later
OS Versions: Windows CE 5.01 and later
Header: Aygshell.h
Library: Aygshell.dll

See Also

SHCameraCapture Function | SHCAMERACAPTURE Structure | CAMERACAPTURE_MODE Enumeration | CAMERACAPTURE_STILLQUALITY Enumeration | Camera | Camera Capture Graph

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.