Thanks, I used Craig's code, and was able to get the form to load, now I
just need to find a camera to test it out...

James E Harvey 
Corresponding Officer/M.I.S.
Hanover Shoe Farms, Inc.
www.hanoverpa.com
office: 717-637-8931
cell: 717-887-2565
fax: 717-637-6766


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf
Of Dave Crozier
Sent: Wednesday, May 09, 2012 8:22 AM
To: ProFox Email List
Subject: RE: video streaming in vfp application

I've used the viscomsoft activex before and it is good but you can do it for
nothing courtesy of Craig Boyd.

http://www.tek-tips.com/faqs.cfm?fid=3891

or you can use the coding below to display data from a webcam:

*******************
* START OF CODE
*******************
Local oForm

oForm = Createobject("Tform")

oForm.Show(1)

* end of main

 

Define Class Tform As Form
        #Define WM_CAP_START  0x0400
        #Define WM_CAP_DRIVER_CONNECT    (WM_CAP_START+10)
        #Define WM_CAP_DRIVER_DISCONNECT (WM_CAP_START+11)
        #Define WM_CAP_DRIVER_GET_CAPS   (WM_CAP_START+14)
        #Define WM_CAP_SET_PREVIEW       (WM_CAP_START+50)
        #Define WM_CAP_SET_OVERLAY       (WM_CAP_START+51)
        #Define WM_CAP_SET_PREVIEWRATE   (WM_CAP_START+52)
        #Define WM_CAP_GET_STATUS        (WM_CAP_START+54)
        #Define WM_CAP_GRAB_FRAME        (WM_CAP_START+60)

 

        Width=340
        Height=310

        AutoCenter=.T.

        Caption="Using Video Capture"

        MinButton=.F.
        MaxButton=.F.

        hWindow=0
        hCapture=0

        capWidth=0
        capHeight=0
        capOverlay=0

        Add Object cmdGetFrame As CommandButton With Default=.T.,;
                Left=15, Top=264, Height=27, Width=90, Caption="Get Frame",;
                Enabled=.F.
 

        Add Object cmdPreview As CommandButton With Default=.T.,;
                Left=106, Top=264, Height=27, Width=100, Caption="Preview
Video",;
                Enabled=.F.

        Add Object cmdClose As CommandButton With Cancel=.T.,;
                Left=207, Top=264, Height=27, Width=70, Caption="Close"

        Procedure Activate
                If This.hWindow = 0
                        Declare Integer GetFocus In user32

                        This.hWindow = GetFocus()
                        This.CreateCaptureWindow
                        This.DriverConnect
                        This.cmdPreview.Click
                Endif

 

        Procedure Destroy
                This.ReleaseCaptureWindow
        endproc
 
        Procedure cmdClose.Click
                Thisform.Release
        endproc
 
        Procedure cmdGetFrame.Click
                Thisform.GetFrame
        endproc
         
        Procedure cmdPreview.Click
                Thisform.StartPreview
        endproc
 
        Procedure GetFrame
                #Define WM_CAP_FILE_SAVEDIB (WM_CAP_START + 25)
                Local lcFile

                LOCAL lcFile
                lcFile = "" && File name to create
                lcFile = "c:\temp\sample.bmp"
                
                try
                        MKDIR JUSTPATH( lcFile )
                catch
                        *
                endtry
                
                This.msg(WM_CAP_GRAB_FRAME, 0,0)
                This.msg(WM_CAP_FILE_SAVEDIB, 0, lcFile,1)
                *
        endproc

        Procedure CreateCaptureWindow
                #Define WS_CHILD   0x40000000
                #Define WS_VISIBLE 0x10000000

                Declare Integer capCreateCaptureWindow In avicap32;
                        STRING lpszWindowName, Long dwStyle,;
                        INTEGER x, Integer Y,;
                        INTEGER nWidth, Integer nHeight,;
                        INTEGER hParent, Integer nID

                This.hCapture = capCreateCaptureWindow("",;
                        WS_CHILD+WS_VISIBLE,;
                        10,8,320,240, This.hWindow, 1)
                *
        endproc
         
        Procedure DriverConnect
                This.msg(WM_CAP_DRIVER_CONNECT, 0,0)

                If This.IsCaptureConnected()
                        This.GetCaptureDimensions

                        Store .T. To This.cmdGetFrame.Enabled,;
                        THIS.cmdPreview.Enabled

                        This.Caption = This.Caption + ": connected, " +;
                                LTRIM(Str(This.capWidth)) + "x" +;
                                LTRIM(Str(This.capHeight))
                Else
                        This.Caption = This.Caption + ": failed to connect"
                Endif
                *
        endproc
 
        Procedure DriverDisconnect
                This.msg(WM_CAP_DRIVER_DISCONNECT, 0,0)
        endproc
 
        Procedure ReleaseCaptureWindow
                If This.hCapture <> 0
                        This.DriverDisconnect
                        
                        Declare Integer DestroyWindow In user32 Integer HWnd
                        
                        = DestroyWindow(This.hCapture)

                        This.hCapture = 0
                        *
                Endif
                *
        endproc
 
        Procedure msg(msg, wParam, Lparam, nMode)
                If This.hCapture = 0
                        Return
                Endif


                If Vartype(nMode) <> "N" Or nMode=0

                        Declare Integer SendMessage In user32;
                                INTEGER HWnd, Integer Msg,;
                                INTEGER wParam, Integer Lparam

                        = SendMessage(This.hCapture, msg, wParam, Lparam)

                Else
                        Declare Integer SendMessage In user32;
                                INTEGER HWnd, Integer Msg,;
                                INTEGER wParam, String @Lparam

                        = SendMessage(This.hCapture, msg, wParam, @Lparam)
                        *
                Endif
                *
        endproc
 
        Function IsCaptureConnected
                * analyzing fCaptureInitialized member of the CAPDRIVERCAPS
structure
                #Define CAPDRIVERCAPS_SIZE 44

                Local cBuffer, nResult

                cBuffer = Repli(Chr(0),CAPDRIVERCAPS_SIZE)

                This.msg(WM_CAP_DRIVER_GET_CAPS, Len(cBuffer), @cBuffer, 1)
                This.capOverlay = buf2dword(Substr(cBuffer,5,4))

                nResult = Asc(Substr(cBuffer, 21,1))

                Return (nResult<>0)
                *
        endfunc

        Procedure GetCaptureDimensions
                * reading uiImageWidth and uiImageHeight members
                * of the CAPSTATUS structure

                #Define CAPSTATUS_SIZE 76

                Local cBuffer

                cBuffer = Repli(Chr(0), CAPSTATUS_SIZE)

                This.msg(WM_CAP_GET_STATUS, Len(cBuffer), @cBuffer, 1)
                This.capWidth = buf2dword(Substr(cBuffer,1,4))
                This.capHeight = buf2dword(Substr(cBuffer,5,4))
                *
        endproc
 
        Procedure StartPreview
                This.msg(WM_CAP_SET_PREVIEWRATE, 30,0)
                This.msg(WM_CAP_SET_PREVIEW, 1,0)

                If This.capOverlay <> 0
                        This.msg(WM_CAP_SET_OVERLAY, 1,0)
                Endif
                *
        endproc
 

        Procedure StopPreview
                This.msg(WM_CAP_SET_PREVIEW, 0,0)
        Enddefine


        Function buf2dword(lcBuffer)

                Return Asc(Substr(lcBuffer, 1,1)) + ;
                        BitLShift(Asc(Substr(lcBuffer, 2,1)),  8) +;
                        BitLShift(Asc(Substr(lcBuffer, 3,1)), 16) +;
                        BitLShift(Asc(Substr(lcBuffer, 4,1)), 24)
        endfunc
        *
enddefine
*
******************
* END OF CODE
*****************

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf
Of James Harvey
Sent: 09 May 2012 13:06
To: 'ProFox Email List'
Subject: video streaming in vfp application

Has anyone tried to provide a live video stream inside a visual foxpro
application?

We'd like to provide a live video stream of each horse as it is being
auctioned, and wanted to have the stream appear inside a "container" on a
vfp form which would include additional textboxes on the form containing
pertinent data for the horse being auctioned.

Research indicates there might be an active x control to put on the form to
handle the video.  I found a couple references to ActiveX controls, but was
hoping someone has already had some experience with this subject.



James E Harvey
Corresponding Officer/M.I.S.
Hanover Shoe Farms, Inc.
www.hanoverpa.com
office: 717-637-8931
cell: 717-887-2565
fax: 717-637-6766



[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to