IEditionUpgradeHelper
COM公式ドキュメント
ユーザーが購入した Windows 製品を Windows Store がインストールできるようにします。現在インストールされている Windows のエディションへのアップグレードを行うか、または非正規の Windows コピーを正規の Windows コピーに置き換えるために使用します。
解説(Remarks)
このインターフェースのメソッドは、アップグレードの実行に必要なバイナリやビットのダウンロードは行いません。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ユーザーがオペレーティングシステムをアップグレードするのに十分な権限を持っているかどうかを確認し、必要に応じて管理者として実行するようユーザーに求めます。
| isAllowed | BOOL* | out | ユーザーがオペレーティングシステムをアップグレードするのに十分な権限を持っている場合は TRUE、そうでない場合は FALSE。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
インストール済みのオペレーティングシステムのエディションを、ユーザーが Windows Store で購入したエディションにアップグレードするか、またはオペレーティングシステムの正規コピーを取得します。
| contentId | LPWSTR | in | ユーザーが購入し、このメソッドがインストールすべきオペレーティングシステムのエディションのコンテンツ識別子です。 このエディションが現在インストールされている Windows のエディションより上位のエディションである場合、このメソッドはそのエディションへのアップグレードを実行します。このエディションが現在インストールされているエディションと同じエディションである場合、このメソッドはそのエディションの正規コピーをインストールします。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが現在インストールされているエディションからのアップグレードを実行する場合、次の手順を実行します。
- オペレーティングシステムのエディションを、ユーザーが Windows Store から購入した製品にアップグレードします。
- アップグレードの進行状況をユーザーに通知するユーザーインターフェースを表示します。
- アップグレードが完了するとコンピューターを再起動します。
- コンピューターの再起動時にライセンスを確認するために、他のシステムコンポーネントに依存します。
- UpdateOperatingSystem が呼び出される前にストアからダウンロードされたライセンスを確認します。
- 現在の Windows エディションに対して正規でないユーザーエクスペリエンスをすべて無効にします。
オペレーティングシステムをアップグレードするか、または正規コピーを取得するためのプロダクトキーをユーザーが入力できるユーザーインターフェースを表示します。
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
現在インストールされているオペレーティングシステムに対応するコンテンツ識別子を取得します。コンテンツ識別子は、ストアカタログ内でオペレーティングシステム製品を検索するために使用されます。
| contentId | LPWSTR* | out | 現在インストールされているオペレーティングシステムに対応するコンテンツ識別子です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
現在インストールされているオペレーティングシステムがライセンス認証されているかどうかを取得します。
| isGenuine | BOOL* | out | 現在インストールされているオペレーティングシステムがライセンス認証されている場合は TRUE、そうでない場合は FALSE。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IEditionUpgradeHelper "{D3E9E342-5DEB-43B6-849E-6913B85D503A}" #usecom global IEditionUpgradeHelper IID_IEditionUpgradeHelper "{01776DF3-B9AF-4E50-9B1C-56E93116D704}" #comfunc global IEditionUpgradeHelper_CanUpgrade 3 var #comfunc global IEditionUpgradeHelper_UpdateOperatingSystem 4 wstr #comfunc global IEditionUpgradeHelper_ShowProductKeyUI 5 #comfunc global IEditionUpgradeHelper_GetOsProductContentId 6 var #comfunc global IEditionUpgradeHelper_GetGenuineLocalStatus 7 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IEditionUpgradeHelper "{D3E9E342-5DEB-43B6-849E-6913B85D503A}" #usecom global IEditionUpgradeHelper IID_IEditionUpgradeHelper "{01776DF3-B9AF-4E50-9B1C-56E93116D704}" #comfunc global IEditionUpgradeHelper_CanUpgrade 3 sptr #comfunc global IEditionUpgradeHelper_UpdateOperatingSystem 4 wstr #comfunc global IEditionUpgradeHelper_ShowProductKeyUI 5 #comfunc global IEditionUpgradeHelper_GetOsProductContentId 6 sptr #comfunc global IEditionUpgradeHelper_GetGenuineLocalStatus 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。