IDesktopGadget::RunGadget メソッド (shobjidl.h)
インストールされているガジェットをデスクトップに追加します。
構文
HRESULT RunGadget(
[in] LPCWSTR gadgetPath
);
パラメーター
[in] gadgetPath
種類: LPCWSTR
.gadget フォルダーの完全な (絶対) パスへのポインター。 Windows にパッケージ化されていないガジェットは、次の 2 つの場所のいずれかからしか実行できません。 他の場所にガジェットをインストールすると、アクセス拒否エラーでこの方法が失敗します。
(%ProgramFiles%\Windows サイドバー\共有ガジェット)
これは、すべてのユーザーが使用できる Microsoft 以外のガジェットのインストールに推奨されるパスです。
(%LOCALAPPDATA%\Microsoft\Windows サイドバー\ガジェット)
この場所は、ガジェットのシングル ユーザー インストールに使用する必要があります。
戻り値
型: HRESULT
成功した場合はS_OKを返し、それ以外の場合は次のようなエラー値を返します。
リターン コード | 説明 |
---|---|
|
ガジェットは既に実行されています。 |
|
gadgetPath が指すガジェット フォルダーのパスに関連するエラーが発生しました。 |
解説
ここでガジェットを「実行」することは、ガジェットがデスクトップに追加されることを意味します。
RunGadget は、システムに既にインストールされているガジェットでのみ呼び出すことができます。 既に実行されているガジェットでは呼び出すことができません。このメソッドを使用すると、ガジェットのインスタンスをいつでも 1 つだけ実行できます。
ガジェットのインストールには独自の UI がないため、この方法は、多くの場合、インストール プロセスの最後の手順として、またはガジェットが関連付けられているアプリケーションの最初の起動の一部として実行されます。 ガジェットを %ProgramFiles%\Windows サイドバー\共有ガジェットにインストールするには、管理特権が必要です。 そのため、ガジェットのインストールは、Microsoft インストーラー (MSI) のインストールの一部として実行することをお勧めします。
ユーザーごとのアプリケーションでは、ガジェットをユーザーごとにインストールする必要があります。 マシンごとのアプリケーションでは、マシンごとにガジェットをインストールする必要があります。 これにより、ユーザーに統一されたエクスペリエンスが提供されます。
例
次の例は、 使用中の 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 |