Quartz.dll

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Quartz.dll

Сообщение -=TsA=- » 18.07.2005 (Пн) 13:31

Подскажите пожалуйста как снять Screenshot с оверлея (Quartz.dll)?

Sur
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 14.07.2003 (Пн) 20:54
Откуда: C2H5OH

Сообщение Sur » 19.07.2005 (Вт) 17:31

никак. Используй DirectShow или avifil32.dll для avi.

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 20.07.2005 (Ср) 7:02

R.I.P.

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 20.07.2005 (Ср) 9:53

Народ, кто силен в сях, перевидите пожалуйста:

Код: Выделить всё
'HRESULT
'SaveSnapshotToBMP(
'    LPCWSTR pwcPath,
'    IVMRWindowlessControl* pWindowless
'    )
'{
'    HRESULT hr = S_OK;
'    LPBYTE              lpBuffer        = NULL;
'    BITMAPINFOHEADER*   pbih            = NULL;
'    LPBYTE              lpDib           = NULL;
'    BITMAPFILEHEADER    FileHeader;
'    HANDLE              hFile           = INVALID_HANDLE_VALUE;
'    const int           iSZFileHeader   = 14;
'    DWORD               iWritten        = 0L;
'    DWORD               dwSize          = 0L;
'
'    // check input params here
'
'    // _HR is defined as if( FAILED( hr )) break;
'
'    Do
'    {
'        _HR( hr = pWindowless->GetCurrentImage( &lpBuffer ));
'
'        // lpBuffer is simply { BITMAPINFOHEADER + DIB bits }
'        pbih = (BITMAPINFOHEADER*)lpBuffer;
'        lpDib = lpBuffer + pbih->biSizeImage;
'
'        // fill in the file header
'        FileHeader.bfType = static_cast<WORD>(L'B' | (L'M' << 8));
'        FileHeader.bfSize = pbih->biSize + iSZFileHeader + pbih->biSizeImage;
'        FileHeader.bfReserved1 = 0;
'        FileHeader.bfReserved2 = 0;
'        FileHeader.bfOffBits = iSZFileHeader + pbih->biSize;
'
'        // create a file
'        hFile = CreateFile( pwcPath,
'                            GENERIC_WRITE,
'                            0,
'                            NULL,
'                            CREATE_ALWAYS,
'                            FILE_ATTRIBUTE_NORMAL,
'                            NULL);
'
'        if( INVALID_HANDLE_VALUE == hFile )
'        {
'            _HR( hr = HRESULT_FROM_WIN32(GetLastError()) );
'        }
'
'        // write to a BMP file: FILE HEADER + BITMAP HEADER + DIB bits
'
'        // write file header
'        if( !WriteFile( hFile,
'                        static_cast<LPVOID>(&FileHeader),
'                        iSZFileHeader,
'                        &iWritten,
'                        NULL) )
'        {
'            _HR( hr = HRESULT_FROM_WIN32(GetLastError()));
'        }
'
'        // write bitmapinfoheader
'        if( !WriteFile( hFile,
'                        static_cast<LPVOID>(pbih),
'                        pbih->biSize,
'                        &iWritten,
'                        NULL) )
'        {
'            _HR( hr = HRESULT_FROM_WIN32(GetLastError()));
'        }
'
'        // write dib section
'        dwSize = pbih->biSizeImage;
'
'        if( !dwSize && (pbih->biCompression == BI_RGB) )
'        {
'            DWORD h = ( pbih->biHeight > 0 ) ? pbih->biHeight : -(pbih->biHeight);
'            dwSize = h * pbih->biWidth * pbih->biBitCount / 8;
'        }
'        if( !WriteFile( hFile, static_cast<LPVOID>(pDib), dwSize, &iWritten, NULL) )
'        {
'            _HR( hr = HRESULT_FROM_WIN32(GetLastError()));
'        }
'    }while( FALSE );
'
'    if( INVALID_HANDLE_VALUE != hFile )
'    {
'        CloseHandle( hFile );
'    }
'    // do not forget to release the buffer
'    if( lpBuffer )
'    {
'      ::CoTastMemFree( lpBuffer );
'    }
'    return hr;
'}


PS. Родина Вас не забудет!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 67

    TopList