次の方法で共有


IGameExplorer::AddGame メソッド

ゲーム エクスプローラーにゲームのインスタンスを登録し、カスタム InstanceID を使用するか、生成された InstanceID を返します。

構文

HRESULT AddGame(         const BSTR bstrGDFBinaryPath,         const BSTR bstrGameInstallDirectory,         GAME_INSTALL_SCOPE installScope,         GUID* pguidInstanceID)

パラメーター

  • bstrGDFBinaryPath
    [in] ゲーム定義ファイル (GDF) が格納されたバイナリ ファイルの完全修飾パスを含む BSTR です。
  • bstrGameInstallDirectory
    [in] ゲームのインストール フォルダーのパスを含む BSTR です。レガシー ゲームの場合、このフォルダーは Microsoft レガシー データベースのフォルダーと一致していなければなりません。詳細については、Microsoft Windows Gaming and Graphics Developer Relations Group にお問い合わせください。
  • installScope
    [in] ゲームがすべてのユーザーに対してインストールされるか、現在のユーザーのみに対してインストールされるかを定義する GAME_INSTALL_SCOPE です。GIS_ALL_USERS に設定した場合は、管理者アクセス権が必要です。GIS_CURRENT_USER に設定した場合は、管理者アクセス権は不要です。
  • pguidInstanceID
    [in, out] ゲームに関連付けられた InstanceID を生成する、または受け取る GUID へのポインターです。

戻り値

この関数は HRESULT を返します。この関数の戻り値をテストするには、SUCCEEDED および FAILED マクロを使用します。

ゲームが既にシステムにインストールされている場合、AddGame は S_FALSE を返します。この状況が発生するのは、ゲームが同じ ApplicationID および GameInstallDirectory で複数回追加された場合です。つまり、同じフォルダーにインストールされている同じゲームについて、AddGame が 2 回呼び出された場合です。

解説 

注意

この関数では、保護者による制限によってロックダウンが発生し、ゲームのディレクトリを使用できなくなることがあるので、これはインストール段階の最後のステップの 1 つでなければなりません。

IGameExplorer::RemoveGameIGameExplorer::UpdateGame を呼び出したり、ゲーム エクスプローラーでゲームのタスクを作成したりする必要があるため、呼び出し元は、この呼び出しによって返された InstanceID を保存する必要があります。

GUID_NULL へのポインターが渡された場合、このメソッドは呼び出し元の InstanceID を作成して返します。

実際の GUID 値へのポインターが渡された場合、このメソッドはその GUID を InstanceID として使用します。その InstanceID が既にシステムに存在する場合、この呼び出しは失敗し、E_INVALIDARG を返します。

既にシステムにインストールされているタイトルでこの関数を呼び出しても、必ずしもエラーになるとは限りません。タイトルは同じシステムに複数のインスタンスを所有することがあるためです。

このメソッドでは、サポートされなくなった古いゲームをサポートされる新しいバージョンにアップグレードすることもできます。そのためには、ゲーム エクスプローラーのレガシー ゲーム サービスに使用されていたものと同じ gameID 属性が GDF にあることを確認してください。

要件

ヘッダー: GameUX.h で宣言されています。