dsc_GetImage 命令でHSPのウィンドウに画像を転送することができます。
(bufferはダメなので、非表示にしたい場合はscreen命令の第4パラを2にしてください)
また、dsc_SaveBMP 命令で BMPファイルで保存、dsc_GetImageMem 命令で直接メモリに格納できます。
dsc_GetImageMem 命令は敷居が高いというかDIBなどの理解が必要なのでお勧めしません。
(直接転送できるので高速ですけども)
中にもサンプルが入っていますけども、一部を簡略化したスクリプトを置いておきます。
#include "hspdsc.as"
title "DirectShow キャプチャデバイス表示 サンプル(1つのみ) "
cls 4
dsc_Init // 初期化を必ずする!
// バッファのサイズ取得し sdim で 確保
sdim devlist, dsc_GetDeviceListSize()
dsc_GetDeviceList devlist // 利用可能なデバイス一覧取得
if stat = 0 : dialog "デバイスが見つかりません" : end
objsize 300, 20
combox id, 100, devlist
objsize 150,20
button "デバイスを再生",*play
button "デバイスを停止",*_stop
button "キャプチャして表示",*capture
button "終了する",*exit
stop
*play
// 操作ID 0 指定(デフォルトでは0が指定されているため書かなくてもOK)
dsc_SetActiveSel 0
// デバイスのオープン
dsc_Open id, 0, 0, 0, 0
if stat < 0 : dialog "エラーが発生しました\nstat = " + stat, 1, "DEVICE-ERROR" : stop
gsel 0, 1
// デバイスの再生
dsc_Play hwnd, 160, 120, 320, 240
if stat < 0 : dialog "エラーが発生しました\nstat = " + stat,1,"CAPTURE-ERROR" : stop
stop
*_stop
// デバイスのクローズ
dsc_Close
if stat < 0 : dialog "エラーが発生しました\nstat = " + stat, 1, "CLOSE-ERROR" : stop
stop
*capture
// ウィンドウ用意
screen 1, dsc_CapX, dsc_CapY
; buffer
// ↑ これは使えません!非表示にしたい場合は screen , , , 2
// screen の 第4パラメータを 2 にしてください
// キャプチャ
dsc_GetImage hdc, 0, 0, dsc_CapX, dsc_CapY
if stat < 0 : dialog "エラーが発生しました\nstat = " + stat,1,"CAPTURE-ERROR" : stop
redraw 1 // これは必ず必要です。
gsel 0, 1
stop
*exit
// クローズ
dsc_Stop
dsc_Close
end