MsiAdvertiseScriptA 関数 (msi.h)

MsiAdvertiseScript 関数は、アドバタイズされたスクリプト ファイルを指定した場所にコピーします。

構文

UINT MsiAdvertiseScriptA(
  [in] LPCSTR szScriptFile,
  [in] DWORD  dwFlags,
  [in] PHKEY  phRegData,
  [in] BOOL   fRemoveItems
);

パラメーター

[in] szScriptFile

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

[in] dwFlags

SCRIPTFLAGS コントロール アドバタイズからの次のビット フラグ。 dwFlags の値は、次の値の組み合わせにすることができます。

フラグ 説明
SCRIPTFLAGS_CACHEINFO
0x001
アイコンを作成または削除する必要がある場合は、このフラグを含めます。
SCRIPTFLAGS_SHORTCUTS
0x004
ショートカットを作成または削除する必要がある場合は、このフラグを含めます。
SCRIPTFLAGS_MACHINEASSIGN
0x008
コンピューターに割り当てる製品の場合は、このフラグを含めます。
SCRIPTFLAGS_REGDATA_CNFGINFO
0x020
レジストリ データ内の構成情報と管理情報を書き込むか削除する必要がある場合は、このフラグを含めます。
SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST
0x040
このフラグを含めて、この製品の以前に登録された変換に対してスクリプトに一覧表示されている変換の検証を強制します。 変換の競合は、大文字と小文字を区別しない文字列比較を使用して検出され、すべてのコンテキストでユーザーごとのインストールとマシンごとのインストールの間で評価されることに注意してください。 スクリプト内の変換の一覧が製品に登録されている変換と一致しない場合、関数は ERROR_INSTALL_TRANSFORM_FAILUREを返します。
SCRIPTFLAGS_REGDATA_CLASSINFO
0x080
COM クラスに関連するレジストリ内のアドバタイズ情報を書き込むか削除する必要がある場合は、このフラグを含めます。
SCRIPTFLAGS_REGDATA_EXTENSIONINFO
0x100
拡張機能に関連するレジストリ内のアドバタイズ情報を書き込むか削除する必要がある場合は、このフラグを含めます。
SCRIPTFLAGS_REGDATA_APPINFO
0x180
レジストリ内のアドバタイズ情報を書き込むか削除する必要がある場合は、このフラグを含めます。
SCRIPTFLAGS_REGDATA
0x1A0
レジストリ内のアドバタイズ情報を書き込むか削除する必要がある場合は、このフラグを含めます。

[in] phRegData

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

このレジストリ キーは、通常、レジストリ キーのプロバイダーによってキーが削除されるため、ユーザーまたはコンピューターの製品の提供情報を生成するときに使用できないことに注意してください。 レジストリ キーは、シェル、クラス、および .msi 構成情報の通常のレジストリの場所の外部にあり、 HKEY_CLASSES_ROOTの下にありません。 このレジストリ キーは、スクリプト内のレジストリ データに関する一時的な情報を取得することのみを目的としています。

[in] fRemoveItems

指定した項目を作成する代わりに削除する場合は TRUE。

戻り値

説明
ERROR_SUCCESS
関数は正常に終了しました。
ERROR_ACCESS_DENIED
呼び出し元のプロセスが LocalSystem アカウントで実行されていませんでした。
アクションに関連するエラー
「エラー コード」を参照してください。
初期化エラー
初期化に関連するエラーが発生しました。
ERROR_CALL_NOT_IMPLEMENTED
この関数は、Windows 2000 および Windows XP でのみ使用できます。
 
 

解説

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

注意

msi.h ヘッダーは、MSIAdvertiseScript をエイリアスとして定義し、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 サービス パックに関する詳細については、Windows インストーラーの実行時の要件に関する記事を参照してください。
対象プラットフォーム Windows
ヘッダー msi.h
Library Msi.lib
[DLL] Msi.dll

関連項目

インストール コンテキスト