インストーラー機能を有効にするには、アプリケーションが初期化中に多数の関数を呼び出す必要があります。 詳細については、「インストール メカニズムの」を参照してください。 次の手順では、インストーラーを使用してアプリケーションを初期化する方法について説明します。
アプリケーション を初期化するには
アプリケーションがインストーラーを識別できるように、MsiGetProductCode 関数を呼び出します。
製品コードは、多くのインストーラー関数に必要なパラメーターです。
MsiGetUserInfo 関数を呼び出して、アプリケーションの初回起動時にユーザー情報を収集します。
MsiGetUserInfo の呼び出しが失敗した場合は、MsiCollectUserInfo 関数を呼び出してユーザー情報を収集します。
必要に応じて、MsiSetInternalUI 関数を呼び出して、既定のユーザー インターフェイスを表示します。
独自のユーザー インターフェイスを作成するには、MsiSetExternalUI 関数を呼び出してインストーラーに登録します。
MsiEnableLog 関数を呼び出して、ログ レベルを設定します。
アプリケーションの機能を列挙して、使用可能な機能をユーザーに提示します。 次の方法で機能を列挙できます。
- インストーラーの機能ごとにクエリを実行します。 たとえば、アプリケーションがボタンまたはメニュー項目を描画する前に、アプリケーションは MsiQueryFeatureState 関数を呼び出して、インストーラーが機能が使用可能であることを確認できるようにします。
- MsiEnumFeatures 関数を呼び出して、使用可能なすべての機能を一度に列挙します。 この関数を使用するには、アプリケーション MsiEnumFeatures をインデックスのインクリメント中に繰り返し呼び出す必要があります。
次の列挙関数を繰り返し呼び出し、呼び出しごとにインデックス変数をインクリメントすることで、現在のインストールに関する詳細情報を取得します。
- MsiEnumProducts 関数を呼び出して、インストーラーに登録されている製品を列挙します。
- MsiEnumComponents 関数を呼び出して、コンポーネントを列挙します。
- MsiEnumComponentQualifiers 関数を呼び出して、コンポーネント修飾子を列挙します。
- MsiEnumClients 関数を呼び出して、特定のコンポーネントの製品を列挙します。
列挙関数の戻り値がERROR_SUCCESS場合は、列挙する項目がまだ残っており、インクリメントされたインデックス変数を使用して関数を再度呼び出す必要があります。 戻り値がERROR_NO_MORE_ITEMS場合、すべての項目が列挙されているため、関数を再度呼び出すべきではありません。