191 lines
3.8 KiB
C++
191 lines
3.8 KiB
C++
|
|
|
|
/*++
|
|
|
|
Copyright (c) 1989-1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
camevent.cpp
|
|
|
|
Abstract:
|
|
|
|
Enumerate disk images to emulate camera
|
|
|
|
Author:
|
|
|
|
Mark Enstrom (marke) 1/13/1999
|
|
|
|
|
|
Environment:
|
|
|
|
user mode
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include <stdio.h>
|
|
#include <objbase.h>
|
|
#include <sti.h>
|
|
|
|
#include "ircamera.h"
|
|
#include "tcamprop.h"
|
|
#include "resource.h"
|
|
|
|
extern HINSTANCE g_hInst; // Global hInstance
|
|
|
|
CAM_EVENT gCamEvent[] = {
|
|
|
|
{
|
|
TEXT("Pathname Change"),
|
|
&WIA_EVENT_NAME_CHANGE
|
|
},
|
|
{
|
|
TEXT("Disconnect"),
|
|
&WIA_EVENT_DEVICE_DISCONNECTED
|
|
},
|
|
{
|
|
TEXT("Connect"),
|
|
&WIA_EVENT_DEVICE_CONNECTED
|
|
}
|
|
};
|
|
|
|
TCHAR gpszPath[MAX_PATH];
|
|
|
|
|
|
/**************************************************************************\
|
|
* CameraEventDlgProp
|
|
*
|
|
*
|
|
* Arguments:
|
|
*
|
|
* hDlg
|
|
* message
|
|
* wParam
|
|
* lParam
|
|
*
|
|
* Return Value:
|
|
*
|
|
* Status
|
|
*
|
|
* History:
|
|
*
|
|
* 1/11/1999 Original Version
|
|
*
|
|
\**************************************************************************/
|
|
BOOL _stdcall
|
|
CameraEventDlgProc(
|
|
HWND hDlg,
|
|
unsigned message,
|
|
DWORD wParam,
|
|
LONG lParam )
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Process message for about box, show a dialog box that says what the
|
|
name of the program is.
|
|
|
|
Arguments:
|
|
|
|
hDlg - window handle of the dialog box
|
|
message - type of message
|
|
wParam - message-specific information
|
|
lParam - message-specific information
|
|
|
|
Return Value:
|
|
|
|
status of operation
|
|
|
|
|
|
Revision History:
|
|
|
|
03-21-91 Initial code
|
|
|
|
--*/
|
|
|
|
{
|
|
static IrUsdDevice *pDevice;
|
|
|
|
switch (message)
|
|
{
|
|
case WM_INITDIALOG:
|
|
{
|
|
//
|
|
// get event list from device
|
|
//
|
|
SendDlgItemMessage(
|
|
hDlg,
|
|
IDC_COMBO1,
|
|
CB_INSERTSTRING, 0, (long)gCamEvent[0].pszEvent);
|
|
SendDlgItemMessage(
|
|
hDlg,
|
|
IDC_COMBO1,
|
|
CB_INSERTSTRING, 1, (long)gCamEvent[1].pszEvent);
|
|
SendDlgItemMessage(
|
|
hDlg,
|
|
IDC_COMBO1,
|
|
CB_INSERTSTRING, 2, (long)gCamEvent[2].pszEvent);
|
|
|
|
SendDlgItemMessage(hDlg, IDC_COMBO1, CB_SETCURSEL, 0, 0);
|
|
|
|
pDevice = (IrUsdDevice*)lParam;
|
|
pDevice->m_hDlg = hDlg;
|
|
|
|
SetDlgItemText(hDlg, IDC_EDIT1, gpszPath);
|
|
|
|
}
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
switch(wParam)
|
|
{
|
|
|
|
case IDCANCEL:
|
|
case IDOK:
|
|
{
|
|
//if (IDYES == MessageBox( hDlg, TEXT("Are you sure you want to close the event dialog?"), TEXT("IR Camera"), MB_ICONQUESTION|MB_YESNOCANCEL ))
|
|
EndDialog( hDlg, wParam );
|
|
}
|
|
break;
|
|
|
|
case IDD_GEN_EVENT:
|
|
{
|
|
//
|
|
// if event is not already set
|
|
//
|
|
|
|
//
|
|
// get selected
|
|
//
|
|
|
|
int i = SendDlgItemMessage(
|
|
hDlg,
|
|
IDC_COMBO1,
|
|
CB_GETCURSEL, 0, 0);
|
|
|
|
pDevice->m_guidLastEvent = *gCamEvent[i].pguid;
|
|
|
|
//
|
|
// private event
|
|
//
|
|
|
|
if (IsEqualIID(pDevice->m_guidLastEvent,WIA_EVENT_NAME_CHANGE))
|
|
{
|
|
UINT ui = GetDlgItemText( hDlg, IDC_EDIT1, gpszPath, MAX_PATH );
|
|
}
|
|
|
|
SetEvent(pDevice->m_hSignalEvent);
|
|
WIAS_TRACE((g_hInst,"CameraEventDlgProc(): SetEvent()"));
|
|
return TRUE;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|