#include "ltwia.h"
L_LTWIA_API L_BOOL EXT_FUNCTION L_WiaIsVideoPreviewAvailable(hSession)
HWIASESSION hSession; |
handle to an existing WIA session |
Determines whether there is an available video preview.
Parameter |
Description |
hSession |
Handle to an existing WIA session. This handle is obtained by calling the L_WiaInitSession function. |
TRUE |
The video preview feature is available and the user can start it. |
FALSE |
The video preview feature is not available. |
This feature is available in version 16 or higher.
If the function L_WiaIsVideoPreviewAvailable is called and succeeded then this function will return TRUE, otherwise it will return FALSE.
Required DLLs and Libraries
LTWIA For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Platforms
Since WIA does not support video devices in Windows Server 2003, Windows Vista or later, then this function will only work with Windows XP or earlier operating systems.
Functions: |
L_WiaStartVideoPreview, L_WiaResizeVideoPreview, L_WiaEndVideoPreview, L_WiaAcquireImageFromVideo, L_WiaInitSession, L_WiaEndSession. |
Topics: |
|
|
L_INT WiaIsVideoPreviewAvailableExample(HWIASESSION hSession, HWND hWnd)
{
L_TCHAR szSavedFileName[MAX_PATH] = TEXT("");
L_TCHAR szImagesDirectory[MAX_PATH] = TEXT("");
L_TCHAR szMsg[MAX_PATH] = TEXT("");
L_BOOL bAvailable = FALSE;
L_SIZE_T uLength = MAX_PATH;
IWiaItem * pRootItem = NULL;
L_INT nRet;
/* Select video streaming device first */
nRet = L_WiaSelectDeviceDlg(hSession, hWnd, WiaDeviceTypeStreamingVideo, L_WIA_SELECT_DEVICE_NODEFAULT);
if(nRet != WIA_SUCCESS)
return nRet;
nRet = L_WiaStartVideoPreview(hSession, hWnd, FALSE);
if (nRet != WIA_SUCCESS)
return nRet;
bAvailable = L_WiaIsVideoPreviewAvailable(hSession);
if(!bAvailable)
{
MessageBox(hWnd,
TEXT("No streaming video available."),
TEXT("ERROR"),
MB_OK | MB_ICONERROR);
L_WiaEndVideoPreview(hSession);
return FALSE;
}
/* Resize the video preview area to fit the parent window */
// I am calling this resize function here only for demonstration purposes, but you
// should call it in your window resize event.
nRet = L_WiaResizeVideoPreview(hSession, TRUE);
if(nRet != WIA_SUCCESS)
return nRet;
nRet = L_WiaAcquireImageFromVideo(hSession, szSavedFileName, &uLength);
if(nRet != WIA_SUCCESS && nRet == ERROR_BUFFER_TOO_SMALL)
{
L_WiaEndVideoPreview(hSession);
nRet = L_WiaGetRootItem(hSession, NULL, (L_VOID**)&pRootItem);
if(nRet != WIA_SUCCESS)
return FALSE;
nRet = L_WiaGetPropertyString(hSession, pRootItem, NULL, WIA_DPV_IMAGES_DIRECTORY, szImagesDirectory, &uLength);
if(nRet == WIA_SUCCESS)
{
wsprintf(szMsg,
TEXT("Provided string buffer is too small to be updated.\n")
TEXT("But still an image was saved to the following directory:\n\n%s"),
szImagesDirectory);
MessageBox(hWnd, szMsg, TEXT("ERROR"), MB_OK | MB_ICONERROR);
}
return FALSE;
}
wsprintf(szMsg,
TEXT("Captured still image was saved to the following path:\n\n%s"),
szSavedFileName);
MessageBox(hWnd, szMsg, TEXT("Captured Image Path"), MB_OK | MB_ICONINFORMATION);
L_WiaEndVideoPreview(hSession);
return SUCCESS;
}