hspwgcapture.dll
Version 1.0
Date 2026-04-15
Author IronHSP / hspwgcapture
目次 (4 グループ / 8 ページ)
hspwgcapture ― キャプチャ
wgc_start_monitor
指定モニタ全体のキャプチャを開始
EnumDisplayMonitors で取得した idx 番目の HMONITOR に対して
GraphicsCaptureItem::CreateForMonitor でキャプチャセッション
を作成します。
idx=0 を指定すればプライマリモニタ全画面キャプチャになります。
wgc_start_window
指定ウィンドウのキャプチャを開始
GraphicsCaptureItem::CreateForWindow で指定 HWND のキャプチャ
セッションを作成し、Direct3D11CaptureFramePool を CreateFreeThreaded
wgc_stop
キャプチャ停止
指定セッションの GraphicsCaptureSession / FramePool を Close
してスロットを解放します。
hspwgcapture ― フレーム取得
wgc_grab_frame
最新フレームを BGRA バイト列で取得
FramePool::TryGetNextFrame() で最新フレームを取り出し、
IDirect3DDxgiInterfaceAccess 経由で ID3D11Texture2D を得て、
staging テクスチャにコピー → Map() → memcpy の順でピクセル
wgc_save_png
最新フレームを PNG ファイルに保存
wgc_grab_frame と同じ方法で最新フレームを取得し、その場で
WIC (Windows Imaging Component) の IWICBitmapEncoder を使って
PNG エンコードしてファイルに書き出します。
hspwgcapture ― 列挙
wgc_list_windows
キャプチャ可能なウィンドウ一覧を取得
EnumWindows でトップレベルウィンドウを列挙し、可視かつタイ
トル有りのものを "title<TAB>HWND\n" 形式で var に格納します。
HWND は 16 進数表記 (例: 0000000000123456)。
hspwgcapture ― 基本
wgc_init
キャプチャサブシステム初期化
Windows.Graphics.Capture を利用可能か確認し、キャプチャ用の
D3D11 デバイスを作成します。プラグイン使用前に 1 回呼びます。
wgc_shutdown
キャプチャサブシステム解放
作成した D3D11 デバイスとアクティブなセッションをすべて解放
します。DLL_PROCESS_DETACH 時にも自動解放されますが、明示的
に呼ぶこともできます。