遗憾,我只是delphi和vc的初学者,无能为力------给你提前贴子

解决方案 »

  1.   

      TViewCtlClass = class
      private
        m_bResourceAllocated: boolean;
        m_dwSlotNumber: DWORD;
        m_hDisplayWnd: HWND;
        m_rOutputArea: TRect;
        m_iXGlobalPos: integer;
        m_iYGlobalPos: integer;    m_dwFrameCount: DWORD;
        m_hWriteRingBufferEvent: THANDLE;
        m_hDisplayStopEvent: THANDLE;
        m_hSourceFilterSetupOK: THANDLE;
        m_hThreadReadyEvent: THANDLE;    m_csTempDirectory: array[0..MAX_PATH - 1] of char;
        m_fFilename: array[0..MAX_PATH - 1] of char; ;    m_dwDataType: VIEWCTL_VIDEO_DATATYPE;    //VIEWCTL_SNAPSHOT m_SnapShot;    m_fDoSnapShot: boolean;    m_dwViewDelayCount: DWORD;
        m_dwBufferCount: DWORD;    m_fDisplayCreated: boolean;
        m_fDirectDrawInit: boolean;
        m_fUseDirectDraw: boolean;
        m_fUseDirectShow: boolean;
        m_fUseScreenAxis: boolean;
        // Thread control
        m_pRGBBuf: PByte;
        m_hViewControlThread: THANDLE;
        m_dwViewControlThreadID: DWORD;
        m_RingBuffer: array[0..RING_BUFFER_COUNT - 1] of PByte;
        m_dwWriteIndex: DWORD;
        m_dwReadIndex: DWORD;
        m_bStopDisplay: boolean;
        m_dwWriteFrameSkipedCount: DWORD;
        m_dwReadFrameSkipedCount: DWORD;    m_dwImageWidth: DWORD;
        m_dwImageHeight: DWORD;
        m_dwCount: DWORD;
        m_dwDisplayInterval: DWORD;    m_bmpHeader: BITMAPFILEHEADER;
        m_bmpInfo: BITMAPINFO;    //color key
        m_bColorKeyRed: byte;
        BYTE m_bColorKeyGreen: byte;
        BYTE m_bColorKeyBlue: byte;    m_lpDrawFrameObj: pointer;  public:
        constructor Create;
        destructor Destroy; override;
        function CreateDisplay( nDisplayInfo: VIEWCTL_DISPLAYINFO ): integer;
        function CloseDisplay( bCleanUp: boolean ): integer;
        function THANDLEVideoBuffer( nVideoBufferInfo: COMMON_BUFFER_INFO ): integer;
        function IsMediaPlaying( dwPlayTime: PDWORD ): boolean;
        function SetOutputArea( r: TRect ): DWORD;
        procedure CallbackFunction( theCBFunction: VIEWCTL_PDecoderBegin );    procedure Playback( filename: string );
        procedure SetDiscontinuous( dwPauseTicks: DWORD );    function CreateViewControlThread: boolean;
        procedure Displayer_LVPT;
        function AllocateBuffers: boolean;
        function FreeBuffers: boolean;
        function WriteRingBuffer( lpBuffer: PByte; dwNumberOfByte: DWORD ): boolean;
        function DisplayRingBuffer: boolean;    function InitialThreadProc( pv: pointer ): DWORD;    function WINAPI ViewControlThread( lpdwParam: pointer ): DWORD;
        function FreeResources: boolean;    function CreateBMPInfo: boolean;
        function DisplayFrame( lpBuffer: PByte; DC: HDC; rOutputArea: TRect; DWORD dwImageWidth, dwImageHeight: DWORD ): boolean;    procedure InitDDraw;
        procedure CloseDDraw;
      end;
      

  2.   

    zengyufeng(御风)您好!
    我还有一些问题,可否留个通讯方法?
    E_mail:[email protected]
      

  3.   

    我按zengyufeng(御风)朋友说的方法做,
    出现的问题是:
    所有的函数都是Unsatisfied forward or external declaration: 'TViewCtlClass.函数名'
    包括Create和Destroy