Programming Field - ドキュメント無し関数 / 名前無し関数

CoreQueryApplicationService (twinapi.appcore.dll:#2)

実行中のWinRTアプリ(Modern UIアプリなど)に対して、「Windows.ApplicationModel.Core.CoreApplication」など、指定引数に対応するインスタンスを取得します。

序数 2
DLL twinapi.appcore.dll
確認済み OS Windows 10 (Build 10240, 10586)

※ Windows 8/8.1 については不明です。
※ 関数の仕様は将来変更される可能性があります。

構文

[C/C++]

STDAPI CoreQueryApplicationService(
    DWORD dwProcessId,
    REFGUID guidService,
    REFIID riid,
    void** ppv
);

[VB]

(準備中)

[VB.NET]

(準備中)

パラメーター

dwProcessId WinRTアプリのプロセスのIDを指定します。
guidService サービスGUID(SID)を指定します。「Windows.ApplicationModel.Core.CoreApplication」のIID(ABI::Windows::ApplicationModel::Core::IID_ICoreApplication, {0AACF7A4-5E1D-49DF-8034-FB6A68BC5ED1})を指定するとこのインスタンスを取得することができます。
riid 取得するインターフェイスのIIDを指定します。
ppv インターフェイスのインスタンスを受け取るポインターを指定します。

戻り値

標準の HRESULT 値が返ります。成功すると S_OK、dwProcessId で指定したプロセスがWinRTアプリではない場合などは HRESULT_FROM_WIN32(ERROR_NOT_FOUND) (0x80070490)、riid に対応するインターフェイスが見つからない場合は E_NOINTERFACE などが返ります。

解説

この関数を利用すると、実行中のWinRTアプリに対応する「Windows.ApplicationModel.Core.CoreApplication」のインスタンスを取得することができます。C/C++では「ABI::Windows::ApplicationModel::Core::ICoreApplication」インターフェイスを通して利用するため、riid にはそのインターフェイスのIID({0AACF7A4-5E1D-49DF-8034-FB6A68BC5ED1})を指定する必要があります。関数の呼び出しに成功すると、取得されるインスタンスはProxyを通したインスタンスとなり、インスタンスの各メソッドを呼び出すと対象アプリへの通信を行います。

なお、この関数を実行するにはCOMの初期化(CoInitialize 関数などの呼び出し)が必要です。

最終更新日: 2015/12/30