次の方法で共有


MsiProcessAdvertiseScriptA 関数 (msi.h)

MsiProcessAdvertiseScript 関数は、指定した場所にアドバタイズ スクリプト ファイルを処理します。

構文

UINT MsiProcessAdvertiseScriptA(
  [in] LPCSTR szScriptFile,
  [in] LPCSTR szIconFolder,
  [in] HKEY   hRegData,
  [in] BOOL   fShortcuts,
  [in] BOOL   fRemoveItems
);

パラメーター

[in] szScriptFile

MsiAdvertiseProduct または MsiAdvertiseProductExによって生成されたスクリプト ファイルへの完全なパス。

[in] szIconFolder

アドバタイズされたアイコン ファイルと変換ファイルが配置されているフォルダーへの省略可能なパス。 このパラメーターが NULL場合、アイコンまたは変換ファイルは書き込まれなくなります。

[in] hRegData

レジストリ データを書き込むレジストリ キー。 このパラメーターが NULL場合、インストーラーは、提供情報がユーザーごとかマシンごとかに基づいて、適切なキーの下にレジストリ データを書き込みます。 このパラメーターが null以外の場合、スクリプトは、通常の場所ではなく、指定されたレジストリ キーの下にレジストリ データを書き込みます。 この場合、アプリケーションはユーザーにアドバタイズされません。

[in] fShortcuts

ショートカットを作成する必要がある場合は、TRUE を します。 SHGetSpecialFolderLocation によって特別なフォルダーが返された場合は、ショートカットが保持されます。

[in] fRemoveItems

TRUE 指定した項目が作成される代わりに削除される場合です。

戻り値

価値 意味
ERROR_SUCCESS
関数は正常に完了しました。
ERROR_ACCESS_DENIED
呼び出し元のプロセスが LocalSystem アカウントで実行されていませんでした。
アクション に関連するエラー
エラー コードを参照してください。
初期化エラーの
初期化に関連するエラーが発生しました。
ERROR_CALL_NOT_IMPLEMENTED
この関数は、このプラットフォームでは使用できません。
 
 

備考

この関数を呼び出すプロセスは、LocalSystem アカウントで実行されている必要があります。 ユーザーごとのインストール用にアプリケーションをターゲット ユーザーにアドバタイズするには、この関数を呼び出すスレッドが対象ユーザーを偽装する必要があります。 この関数を呼び出すスレッドが対象ユーザーの権限を借用していない場合、アプリケーションはすべてのユーザーに昇格された特権を持つインストール用にアドバタイズされます。

手記

msi.h ヘッダーは、MSIProcessAdvertiseScript をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP 上の Windows インストーラー。 Windows インストーラーのバージョンで必要な最小 Windows Service Pack の詳細については、Windows インストーラーの Run-Time 要件を参照してください。
ターゲット プラットフォーム の ウィンドウズ
ヘッダー msi.h
ライブラリ Msi.lib
DLL Msi.dll