CoAllowSetForegroundWindow

フォアグラウンド権限(フォアグラウンドウィンドウを設定する権限)を、あるプロセスから別のプロセスへ引き渡す。フォアグラウンド権限を持つプロセスがこの関数を呼び出すことで、ローカル COM サーバープロセスにその権限を引き渡すことができる。

CoAllowSetForegroundWindow pUnk, lpvReserved

pUnk : [var] 対象 COM サーバーのプロキシ上の IUnknown インターフェイスへのポインタ。
lpvReserved : [intptr] このパラメータは予約済みであり、NULL を指定しなければならない。

(プラグイン / モジュール : ole32.dll)

解説

フォアグラウンド権限(フォアグラウンドウィンドウを設定する権限)を、あるプロセスから別のプロセスへ引き渡す。フォアグラウンド権限を持つプロセスがこの関数を呼び出すことで、ローカル
COM サーバープロセスにその権限を引き渡すことができる。

[戻り値]
この関数は以下の値を返すことがある。
(以下省略)

[備考]
システムは、フォアグラウンドウィンドウを設定するために SetForegroundWindow および
AllowSetForegroundWindow
関数を呼び出せるプロセスを制限している。その結果、ユーザーが操作中であっても、アプリケーションが他のアプリケーションからフォーカスを奪うことはブロックされる。CoAllowSetForegroundWindow
を使用すると、フォアグラウンド権限を持っているプロセスから、まだ権限を持っていないプロセスへ権限を引き渡すことができる。これは推移的に行うことができ、あるプロセスから別のプロセスへ、さらに別のプロセスへと権限を渡していくことができる。CoAllowSetForegroundWindow
により、独自インターフェイスを持つユーザーでも、ウィンドウの切り替えが想定される OLE
インターフェイス(主にリンクや埋め込みに関連するもの)と同じ挙動を得ることができる。内部的には、プロセス間でフォアグラウンドウィンドウを譲り渡すために
IForegroundTransfer インターフェイスが使用されている。標準の COM 提供プロキシは既に
IForegroundTransfer
を実装しているため、標準プロキシを使用している限り追加の作業は不要である。CoAllowSetForegroundWindow
を呼び出すだけで、任意のアウトオブプロセス COM オブジェクトにフォアグラウンド権限を引き渡すことができる。

情報

プラグイン / モジュールole32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ole32_gen2.hs