MsiAdvertiseProductExA 関数 (msi.h)

MsiAdvertiseProductEx 関数は、アドバタイズ スクリプトを生成するか、製品をコンピューターにアドバタイズします。 この関数を使用すると、Windows インストーラーは、製品の割り当てまたは発行に使用されるレジストリとショートカット情報をスクリプトに書き込みます。 スクリプトは、 MsiAdvertiseProductEx を使用して、指定したプラットフォームと一致するように記述できます。 MsiAdvertiseProductEx 関数は、MsiAdvertiseProduct と同じ機能を提供します。

構文

UINT MsiAdvertiseProductExA(
  [in] LPCSTR szPackagePath,
  [in] LPCSTR szScriptfilePath,
  [in] LPCSTR szTransforms,
  [in] LANGID lgidLanguage,
  [in] DWORD  dwPlatform,
  [in] DWORD  dwOptions
);

パラメーター

[in] szPackagePath

アドバタイズされる製品のパッケージへの完全なパス。

[in] szScriptfilePath

アドバタイズされた情報を使用して作成されるスクリプト ファイルへの完全なパス。 製品をコンピューターにローカルにアドバタイズするには、ADVERTISEFLAGS_MACHINEASSIGNまたはADVERTISEFLAGS_USERASSIGNを設定します。

フラグ 説明
ADVERTISEFLAGS_MACHINEASSIGN
0
すべてのユーザーが使用できる製品のコンピューターごとのインストールをアドバタイズするように設定します。
ADVERTISEFLAGS_USERASSIGN
1
特定のユーザーが使用できる製品のユーザーごとのインストールをアドバタイズするように設定します。

[in] szTransforms

適用する変換のセミコロン区切りのリスト。 変換の一覧の先頭に @ または | を付けることができます。変換のセキュリティで保護されたキャッシュを指定する文字。 @ プレフィックスは、ソースでセキュリティで保護された変換と | を指定します。prefix は、セキュリティで保護された完全なパス変換を示します。 詳細については、「 セキュリティで保護された変換」を参照してください。 このパラメーターは null でもかまいません。

[in] lgidLanguage

ソースが複数の言語をサポートしている場合に使用する言語。

[in] dwPlatform

インストーラーがスクリプトを作成するプラットフォームを制御するビット フラグ。 szScriptfilePath が null の場合、このパラメーターは無視されます。 dwPlatform がゼロ (0) の場合、スクリプトは現在のプラットフォームに基づいて作成されます。 これは、 MsiAdvertiseProduct と同じ機能です。 dwPlatform が 1 または 2 の場合、インストーラーは指定したプラットフォームのスクリプトを作成します。

フラグ 説明
"なし"
0
現在のプラットフォームのスクリプトを作成します。
MSIARCHITECTUREFLAGS_X86
1
x86 プラットフォームのスクリプトを作成します。
MSIARCHITECTUREFLAGS_IA64
2
Itanium ベースのシステムのスクリプトを作成します。
MSIARCHITECTUREFLAGS_AMD64
4
x64 プラットフォームのスクリプトを作成します。

[in] dwOptions

追加のアドバタイズ オプションを指定するビット フラグ。 0 以外の値は、Windows Server 2003 および WINDOWS XP SP1 以降に付属している Windows インストーラー バージョンでのみ使用できます。

フラグ 説明
MSIADVERTISEOPTIONS_INSTANCE
1
製品コード変更変換サポート フラグを介した複数のインスタンス。 製品の新しいインスタンスをアドバタイズします。 szTransforms パラメーターに、製品コードを変更するインスタンス変換が含まれている必要があります。 詳細については、「製品とパッチの複数のインスタンスをインストールする」を参照してください。

戻り値

意味
ERROR_SUCCESS
関数は正常に完了します。
アクションに関連するエラー
詳細については、エラー コードに関する記事を参照してください。
初期化エラー
初期化エラーが発生しました。
ERROR_CALL_NOT_IMPLEMENTED
このエラーは、Windows 2000 または Windows XP 以外のプラットフォームでアドバタイズ スクリプトを生成しようとした場合に返されます。 ローカル コンピューターへのアドバタイズはすべてのプラットフォームでサポートされています。

注釈

製品コードを変更する変換による複数のインスタンスは、Windows Server 2003 および WINDOWS XP SP1 以降に付属する Windows インストーラー バージョンでのみ使用できます。

注意

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

要件

要件
サポートされている最小のクライアント 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

こちらもご覧ください

複数パッケージのインストール

Windows インストーラー 2.0 以前ではサポートされていません