IDesktopGadget::RunGadget メソッド (shobjidl.h)

インストールされているガジェットをデスクトップに追加します。

構文

HRESULT RunGadget(
  [in] LPCWSTR gadgetPath
);

パラメーター

[in] gadgetPath

種類: LPCWSTR

.gadget フォルダーの完全な (絶対) パスへのポインター。 Windows にパッケージ化されていないガジェットは、次の 2 つの場所のいずれかからしか実行できません。 他の場所にガジェットをインストールすると、アクセス拒否エラーでこの方法が失敗します。

メモ このパスには環境変数を含めてはなりません。完全に展開されたパスを指定する必要があります。 ExpandEnvironmentStrings を使用して、このパラメーターに必要なフォームへのパスを展開できます。
 

(%ProgramFiles%\Windows サイドバー\共有ガジェット)

これは、すべてのユーザーが使用できる Microsoft 以外のガジェットのインストールに推奨されるパスです。

(%LOCALAPPDATA%\Microsoft\Windows サイドバー\ガジェット)

この場所は、ガジェットのシングル ユーザー インストールに使用する必要があります。

戻り値

型: HRESULT

成功した場合はS_OKを返し、それ以外の場合は次のようなエラー値を返します。

リターン コード 説明
SCHED_E_ALREADY_RUNNING
ガジェットは既に実行されています。
E_INVALIDARG
gadgetPath が指すガジェット フォルダーのパスに関連するエラーが発生しました。

解説

ここでガジェットを「実行」することは、ガジェットがデスクトップに追加されることを意味します。

RunGadget は、システムに既にインストールされているガジェットでのみ呼び出すことができます。 既に実行されているガジェットでは呼び出すことができません。このメソッドを使用すると、ガジェットのインスタンスをいつでも 1 つだけ実行できます。

ガジェットのインストールには独自の UI がないため、この方法は、多くの場合、インストール プロセスの最後の手順として、またはガジェットが関連付けられているアプリケーションの最初の起動の一部として実行されます。 ガジェットを %ProgramFiles%\Windows サイドバー\共有ガジェットにインストールするには、管理特権が必要です。 そのため、ガジェットのインストールは、Microsoft インストーラー (MSI) のインストールの一部として実行することをお勧めします。

大事な アプリケーションは、まずユーザーにアクセス許可を要求せずに RunGadget を呼び出さないでください。 ユーザーにチェック ボックスとして選択を指定した場合、そのチェック ボックスは既定で選択されていない必要があります。
 
ガジェットは、システムによって決定された位置でデスクトップに追加されます。 呼び出し元は場所を指定できません。

ユーザーごとのアプリケーションでは、ガジェットをユーザーごとにインストールする必要があります。 マシンごとのアプリケーションでは、マシンごとにガジェットをインストールする必要があります。 これにより、ユーザーに統一されたエクスペリエンスが提供されます。

次の例は、 使用中の IDesktopGadget::RunGadget を示しています。

HRESULT RunMyGadget(PCWSTR pszGadgetPath)
{
    IDesktopGadget *pDG;

    HRESULT hr = CoCreateInstance(CLSID_DesktopGadget, 
                                  NULL, 
                                  CLSCTX_INPROC_SERVER, 
                                  IID_PPV_ARGS(&pDG));
    if (SUCCEEDED(hr))
    {
        hr = pDG->RunGadget(pszGadgetPath);
        pDG->Release();
    }

    return hr;
}

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl.h