WINDOSW MOBILE CODE 之CECamera

来源:互联网 发布:如何解决cf网络异常 编辑:程序博客网 时间:2024/05/16 12:05

windows mobile 5.0 sdk 的code,牵涉到版权问题,故打上翻译的标签,我怕MS告我。 ^_^

-----------------------------------------------------------------------------------------------------------

VOID StartCamera(HWND hwndDlg)
{
    HRESULT         hr;
    HRESULT         hReturn;
    SHCAMERACAPTURE shcc;

    LONG            lCheckStateInitialDir;
    LONG            lCheckStateDefaultFileName;
    LONG            lCheckStateTitle;
    LONG            lCheckStateResolution;
    LONG            lCheckStateVideoTimeLimit;

    TCHAR           szInitialDir[MAX_INITIAL_DIR] = { 0 };
    TCHAR           szDefaultFileName[MAX_FILE_NAME] = { 0 };
    TCHAR           szTitle[MAX_TITLE] = { 0 };
    DWORD           dwResolutionWidth;
    DWORD           dwResolutionHeight;
    DWORD           dwVideoTimeLimit;

    LPCTSTR         szFormat;
    TCHAR           szMessage[MAX_MESSAGE] = { 0 };
 int    nReturnData;
    // Get the state of the checkboxs
    lCheckStateInitialDir = SendDlgItemMessage(hwndDlg, IDC_CHECK_INITIAL_DIR, BM_GETCHECK, 0, 0);
    lCheckStateDefaultFileName = SendDlgItemMessage(hwndDlg, IDC_CHECK_DEFAULT_FILE_NAME, BM_GETCHECK, 0, 0);
    lCheckStateTitle = SendDlgItemMessage(hwndDlg, IDC_CHECK_TITLE, BM_GETCHECK, 0, 0);
    lCheckStateResolution = SendDlgItemMessage(hwndDlg, IDC_CHECK_RESOLUTION, BM_GETCHECK, 0, 0);
    lCheckStateVideoTimeLimit = SendDlgItemMessage(hwndDlg, IDC_CHECK_VIDEO_TIME_LIMIT, BM_GETCHECK, 0, 0);

    // Get the user inputs of the edit controls
    GetDlgItemText(hwndDlg, IDC_INITIAL_DIR, szInitialDir, ARRAYSIZE(szInitialDir));
    GetDlgItemText(hwndDlg, IDC_DEFAULT_FILE_NAME, szDefaultFileName, ARRAYSIZE(szDefaultFileName));
    GetDlgItemText(hwndDlg, IDC_TITLE, szTitle, ARRAYSIZE(szTitle));

    dwResolutionWidth = GetDlgItemInt(hwndDlg, IDC_RESOLUTION_WIDTH, NULL, FALSE);
    dwResolutionHeight = GetDlgItemInt(hwndDlg, IDC_RESOLUTION_HEIGHT, NULL, FALSE);
    dwVideoTimeLimit = GetDlgItemInt(hwndDlg, IDC_VIDEO_TIME_LIMIT, NULL, FALSE);

    // Specify the arguments of SHCAMERACAPTURE
    ZeroMemory(&shcc, sizeof(shcc));
    shcc.cbSize             = sizeof(shcc);
    shcc.hwndOwner          = hwndDlg;
    shcc.pszInitialDir      = (BST_UNCHECKED == lCheckStateInitialDir) ? CECAMERA_DEFAULT_INITIAL_DIR : szInitialDir;
    shcc.pszDefaultFileName = (BST_UNCHECKED == lCheckStateDefaultFileName) ? CECAMERA_DEFAULT_FILE_NAME : szDefaultFileName;
    shcc.pszTitle           = (BST_UNCHECKED == lCheckStateTitle) ? CECAMERA_DEFAULT_TITLE : szTitle;
    shcc.StillQuality       = CAMERACAPTURE_STILLQUALITY_LOW;
    shcc.VideoTypes         = CAMERACAPTURE_VIDEOTYPE_STANDARD;
    shcc.nResolutionWidth   = (BST_UNCHECKED == lCheckStateResolution) ? CECAMERA_DEFAULT_RESOLUTION_WIDTH : dwResolutionWidth;
    shcc.nResolutionHeight  = (BST_UNCHECKED == lCheckStateResolution) ? CECAMERA_DEFAULT_RESOLUTION_HEIGHT : dwResolutionHeight;
    shcc.nVideoTimeLimit    = (BST_UNCHECKED == lCheckStateVideoTimeLimit) ? CECAMERA_DEFAULT_VIDEO_TIME_LIMIT : dwVideoTimeLimit;
    shcc.Mode               = CAMERACAPTURE_MODE_VIDEOONLY;
    // Call SHCameraCapture() function
    hReturn = SHCameraCapture(&shcc);//调用手机后置摄像头

     。。。。。

 

在这个程序里面调用了SHCameraCapture函数

这个函数是执行调用摄像头程序的。

在调用这个函数之前,需要对SHCAMERACAPTURE 对象shcc进行初始化,之后才好调用。

这个函数的使用环境是:

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

原创粉丝点击