他のリソースとデータを共有する ID2D1Bitmap を作成する。
ID2D1RenderTarget_CreateSharedBitmap this, riid, data, bitmapProperties, bitmap
this : [comobj] ID2D1RenderTarget インターフェースの COM オブジェクト変数 riid : [var] 型: REFIID ソースデータを提供するオブジェクトのインターフェース ID。 data : [intptr] 型: void* 新しい ID2D1Bitmap と共有するデータを含む ID2D1Bitmap、IDXGISurface、または IWICBitmapLock。詳細は Remarks を参照。 bitmapProperties : [var] 型: D2D1_BITMAP_PROPERTIES* 作成するビットマップのピクセル形式と DPI。ピクセル形式の DXGI_FORMAT 部分は data の DXGI_FORMAT と一致している必要がある(アルファモードは一致していなくてもよい)。不一致を避けるには NULL または D2D1::PixelFormat ヘルパー関数から得た値を渡せる。DPI 設定は data と一致している必要はない。dpiX と dpiY がいずれも 0.0f の場合はレンダーターゲットの DPI が使用される。 bitmap : [comobj] 型: ID2D1Bitmap** このメソッドが戻ると、新しいビットマップへのポインターのアドレスが格納される。このパラメーターは未初期化で渡される。
(プラグイン / モジュール : com_misc.dll)
他のリソースとデータを共有する ID2D1Bitmap を作成する。 [戻り値] 型: HRESULT このメソッドが成功した場合 S_OK を返す。そうでなければ [**HRESULT**](/windows/desktop/com/structure-of-com-error-codes) エラーコードを返す。 [備考] CreateSharedBitmap メソッドはビットマップデータを効率よく再利用するのに便利で、Direct3D との相互運用にも使える。ID2D1Bitmap の共有 リソース互換性のあるレンダーターゲットで作成された ID2D1Bitmap を渡すことで、そのレンダーターゲットとビットマップを共有できる。元の ID2D1Bitmap とこのメソッドで作成される新しい ID2D1Bitmap はともに同じビットマップデータを指す。レンダーターゲットリソースをいつ共有できるかについては Resources Overview の Sharing Render Target Resources セクションを参照。既存のビットマップのデータを新しい DPI またはアルファモードで再解釈するためにこのメソッドを使うこともできる。例えばビットマップアトラスの場合、ID2D1Bitmap に複数のサブ画像が含まれ、それぞれ異なる D2D1_ALPHA_MODE (D2D1_ALPHA_MODE_PREMULTIPLIED または D2D1_ALPHA_MODE_IGNORE) でレンダリングされるべきであることがある。CreateSharedBitmap を使えばビットマップを別のコピーとしてメモリに読み込み直すことなく、望むアルファモードで再解釈できる。IDXGISurface の共有 DXGI サーフェイスレンダーターゲット(CreateDxgiSurfaceRenderTarget メソッドで作成された ID2D1RenderTarget オブジェクト)を使用している場合、IDXGISurface サーフェイスを CreateSharedBitmap に渡すことでビデオメモリを Direct3D と共有し、Direct3D コンテンツを ID2D1Bitmap として操作できる。Resources Overview で説明されているとおり、レンダーターゲットと IDXGISurface は同じ Direct3D デバイスを使用していなければならない。 同様に IDXGISurface は Supported Pixel Formats and Alpha Modes に記載されているサポート対象のピクセル形式とアルファモードのいずれかを使用していなければならない。Direct3D との相互運用の詳細については Direct2D and Direct3D Interoperability Overview を参照。IWICBitmapLock の共有 IWICBitmapLock は WIC ビットマップの内容を格納し、同時アクセスから保護する。IWICBitmapLock を CreateSharedBitmap に渡すことで、IWICBitmapLock に既に格納されているビットマップデータを指す ID2D1Bitmap を作成できる。CreateSharedBitmap で IWICBitmapLock を使用するには、レンダーターゲットはソフトウェアレンダリングを使用していなければならない。レンダーターゲットにソフトウェアレンダリングを強制するには、レンダーターゲット作成時に使う D2D1_RENDER_TARGET_PROPERTIES 構造体の type フィールドを D2D1_RENDER_TARGET_TYPE_SOFTWARE に設定する。既存のレンダーターゲットがソフトウェアレンダリングを使用しているかどうかを確認するには IsSupported メソッドを使用する。
| プラグイン / モジュール | com_misc.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の com_misc.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_com_misc_gen2.hs |