プロトコルのアクティブ化
ゲームは、ゲームが実行されていない場合にはそれを起動するために、また、ゲームが既に実行されている場合にはそれをフォアグラウンドに表示するために使用できるカスタム URI プロトコルを登録することができます。
プロトコルの登録
カスタム プロトコルを登録するには、まずゲームの MicrosoftGame.Config を変更する必要があります。ゲームは、次の例に示すように ProtocolList> に<追加することで、複数のプロトコルを登録できます。
<Game configVersion="1">
<Identity Name="ExampleGame" Publisher="CN=NoPub" Version="1.6.0.0"/>
<ProtocolList>
<Protocol Name="awesome-custom-debug-protocol"
Executable="SubDirectory\Test\MyExecutable_profile.exe"/>
<Protocol Name="awesome-custom-protocol2"
Executable="MyExecutable.exe"/>
</ProtocolList>
<!-- Lots of stuff excluded -->
</Game>
上記の例では、2 つのカスタム プロトコルを登録します。 その後、次のような URI を使用してゲームを起動できます。
awesome-custom-debug-protocol://Parameter1=xyz&Parameter2=abc
その後、ゲームは、XGameProtocolRegisterForActivation を使用してプロトコルによってゲームがアクティブ化されたときに呼び出される XGameProtocolActivationCallback コールバックに登録できます。 その後、ゲームは URI を解析して、ゲームに渡された追加のパラメーターを読み取ることができます。
注意
ゲームで GetCommandLine を使用して同じパラメーターを取得できるのは事実ですが、これはゲームの初回起動時にのみ機能します。 ゲームが既に実行されている場合、ゲームに渡されるコマンドライン引数は更新されません。 カスタム プロトコルによるアクティブ化を利用するすべてのゲームでは、XGameProtocolRegisterForActivation を使用してコールバックを登録し、そのコールバックに依存してアクティブ化に応答する必要があります。
注意
タイトル ID を持つすべてのゲームには、ms-xbl-XXXXXXXX:// 形式の既定のプロトコルが常に登録されます。XXXXXXXX は、先頭の "0x" のないタイトル ID の 16 進形式です。 このプロトコルは、ゲームへの招待用に予約されています。 このプロトコルを使用してアクティブ化されたゲームは XGameInviteEventCallback をトリガーしますが、XGameProtocolActivationCallback はトリガーしません。
関連項目
XGameProtocolRegisterForActivationXGameProtocolUnregisterForEventXGameProtocolActivationCallback