Code:
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HINSTANCE hInstance = GetModuleHandle(NULL);
HWND hButtStartCam;
HWND hButtStopCam;
HWND hButtGetFrame;
switch (message) /* handle the messages */
{
case WM_CREATE:
{
hButtStartCam = CreateWindowEx(0,"BUTTON","Start Camera",WS_CHILD | WS_VISIBLE,
0,0,100,20,hwnd,(HMENU)HBUTTSTART,hInstance, 0);
hButtStopCam = CreateWindowEx(0,"BUTTON","Stop Camera",WS_CHILD | WS_VISIBLE,
0,50,100,20,hwnd,(HMENU)HBUTTSTOP,hInstance, 0);
hButtGetFrame = CreateWindowEx(0,"BUTTON","Get Frame",WS_CHILD | WS_VISIBLE,
0,25,100,20,hwnd,(HMENU)HBUTTFRAME,hInstance, 0);
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case HBUTTSTART:
{ camhwnd = capCreateCaptureWindow ("camera window", WS_CHILD | WS_VISIBLE, 110, 0, 640, 480, hwnd, 0);
capDriverConnect(camhwnd,0);
capPreviewRate(camhwnd,300);
capPreview(camhwnd,TRUE);
break;
}
case HBUTTSTOP:
{
capDriverDisconnect(camhwnd);
DestroyWindow (camhwnd);
break;
}
case HBUTTFRAME:
{
//capGrabFrame(camhwnd);//this pauses the video feed in teh current camera hwnd
//capEditCopy(camhwnd);///this copies one frame to the clipboard where you can paste it in a image editor
//ddcamsaveimage("rawdata.bmp");
break;
}
}
break;
}
case WM_DESTROY:
{
PostQuitMessage(0); /* send a WM_QUIT to the message queue */
break;
}
default: /* for messages that we don't deal with */
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}