Win32 API 日本語リファレンス
ホームSystem.SettingsManagementInfrastructure › ISettingsEngine

ISettingsEngine

COM
IID9f7d7bb9-20b3-11da-81a5-0030f1642e3c継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

名前空間を開き、その開き方を制御するための中心的なインターフェイスです。

メソッド 16

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetNamespaces(WcmNamespaceEnumerationFlags Flags, void* Reserved, IItemEnumerator** Namespaces)

インストールされている名前空間の列挙子を返します。

FlagsWcmNamespaceEnumerationFlagsin名前空間のコレクションに含めるコンテキストを指定する WcmNamespaceEnumerationFlags 値です。
Reservedvoid*in予約されています。NULL を指定する必要があります。
NamespacesIItemEnumerator**outコレクションのメンバーにアクセスするためのメソッドを備えた IItemEnumerator インターフェイスポインターです。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。ストアが読み込まれていない場合は WCM_E_USERNOTFOUND を返します。

vtbl 4 HRESULT GetNamespace(ISettingsIdentity* SettingsID, WcmNamespaceAccess Access, void* Reserved, ISettingsNamespace** NamespaceItem)

ISettingsIdentity パラメーターで指定された既存の名前空間を開きます。

SettingsIDISettingsIdentity*in取得する既存の名前空間を指定する ISettingsIdentity オブジェクトです。
AccessWcmNamespaceAccessinアクセスの種類(読み取り専用か、読み書きアクセスか)を指定する WcmNamespaceAccess 値です。
Reservedvoid*in予約されています。NULL を指定する必要があります。
NamespaceItemISettingsNamespace**out取得操作の結果となる ISettingsNamespace オブジェクトへのポインターです。

戻り値

このメソッドは、次のいずれかの値を返す場合があります。

リターンコード 説明
S_OK
成功を示します。
WCM_E_USERNOTFOUND
ストアが現在読み込まれていないことを示します。
WCM_E_NAMESPACENOTFOUND
指定された identity が、ストアに登録されている名前空間と一致しないことを示します。
vtbl 5 HRESULT GetErrorDescription(INT HResult, LPWSTR* Message)

返された HRESULT コードに対応するテキストメッセージを取得します。

HResultINTinこのメソッドがエラーの説明を取得する対象の HRESULT コードです。
MessageLPWSTR*outHRESULT コードに対応するテキストメッセージです。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。メッセージで返される文字列を割り当てるリソースが不足している場合は E_OUTOFMEMORY を返すことがあります。

vtbl 6 HRESULT CreateSettingsIdentity(ISettingsIdentity** SettingsID)

空の設定 identity を作成します。

SettingsIDISettingsIdentity**out空の ISettingsIdentity オブジェクトへのポインターを返す値です。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。ISettingsIdentity オブジェクトを割り当てるリソースが不足している場合は E_OUTOFMEMORY を返すことがあります。

vtbl 7 HRESULT GetStoreStatus(void* Reserved, WcmUserStatus* Status)

スキーマストアの状態を取得します。

Reservedvoid*in予約されています。NULL を指定する必要があります。
StatusWcmUserStatus*outストアの状態を示す WcmUserStatus 値です。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。

vtbl 8 HRESULT LoadStore(DWORD Flags)

スキーマストアハイブを初期化して読み込みます。

FlagsDWORDinFlags には値 0、または LINK_STORE_TO_ENGINE_INSTANCE の値を指定する必要があります。通常の操作では、ストアの読み込みはシステム全体の状態に影響する永続的な操作です。ストアはプロセスの終了後もクリーンアップされません。ハイブのリークを防ぐため、開発者は UnloadStore を呼び出す必要があります。ハイブのリークは、同じイメージにアクセスする際に将来の問題を引き起こす可能性があります。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。

解説(Remarks)

メモ 入力パラメーターとしてフラグ LINK_STORE_TO_ENGINE_INSTANCE を渡した場合、読み込まれたストアは現在のエンジンに関連付けられているとみなされ、このメソッドが呼び出された ISettingsEngine オブジェクトがファイナライズされるときにアンロードされます。ISettingsEngine オブジェクトは、そのすべてのポインターを解放するか、プロセスを終了することでファイナライズできます。開発者は UnloadStore を呼び出してストアを早期に強制アンロードすることもできますが、このフラグを使用する場合は必要ありません。
メモ ターゲットを使用する場合、つまりデフォルトファイルからレジストリのデフォルトの場所にストアを読み込むのではない場合は、ファイルをロックしていないことを確認するために UnloadStore を呼び出す必要があります。
vtbl 9 HRESULT UnloadStore(void* Reserved)

スキーマストアハイブをアンロードし、リソースを解放します。

Reservedvoid*in予約されています。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。UnloadStore の呼び出し時に解放されていない SMI オブジェクトが存在する場合、UnloadStore は失敗し、E_ACCESSDENIED を返します。UnloadStore を呼び出す前に、すべての SMI オブジェクトを解放してください。ストアがまだ読み込まれていなかった場合は、E_INVALIDARG を返すことがあります。

vtbl 10 HRESULT RegisterNamespace(ISettingsIdentity* SettingsID, IStream* Stream, BOOL PushSettings, VARIANT* Results)

ストリームから名前空間を登録します。

SettingsIDISettingsIdentity*in登録する名前空間を識別する ISettingsIdentity 値です。
StreamIStream*in構成を指定するストリームです。
PushSettingsBOOLinこのフラグが TRUE に設定されている場合、設定はレジストリまたは初期化ファイルにプッシュされます。フラグが設定されていない場合は、設定用のストアのみが変更されます。
ResultsVARIANT*outResults は VT_VARIANT 型または VT_ARRAY 型の variant で、それぞれがマニフェストのコンパイル中に検出されたエラーまたは警告を記述する ISettingsResult オブジェクトを指します。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。

vtbl 11 HRESULT UnregisterNamespace(ISettingsIdentity* SettingsID, BOOL RemoveSettings)

既存の名前空間の登録を解除します。

SettingsIDISettingsIdentity*in登録を解除する名前空間を識別する ISettingsIdentity インターフェイス値です。
RemoveSettingsBOOLintrue の場合、設定を削除する必要があることを指定します。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。

vtbl 12 HRESULT CreateTargetInfo(ITargetInfo** Target)

空のターゲットを作成します。

TargetITargetInfo**out空のターゲットへの ITargetInfo インターフェイスポインターです。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。ITargetInfo オブジェクトを作成するリソースが不足している場合は E_OUTOFMEMORY を返すことがあります。

vtbl 13 HRESULT GetTargetInfo(ITargetInfo** Target)

エンジンの現在のオフラインターゲットを取得します。

TargetITargetInfo**outエンジンの現在のターゲットである ITargetInfo オブジェクトへのポインターです。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。

vtbl 14 HRESULT SetTargetInfo(ITargetInfo* Target)

エンジンの現在のオフラインターゲットを設定します。

TargetITargetInfo*inターゲットを指定する ITargetInfo 値です。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。

vtbl 15 HRESULT CreateSettingsContext(DWORD Flags, void* Reserved, ISettingsContext** SettingsContext)

設定コンテキストを作成します。

FlagsDWORDinFlags パラメーターの値は、"通常モード" を示す 0、または LIMITED_VALIDATION_MODE を示す 0x00000001 を指定できます。通常モードでは、設定コンテキストは、リスト項目に対して行われたすべての変更を、ターゲットイメージの現在の状態に照らして検証します。たとえば、イメージ内に既に存在するリスト要素を作成しようとすると、作成操作は失敗します。LIMITED_VALIDATION_MODE では、矛盾するデータは受け入れられません。リスト項目を変更してから追加することはできません。ただし、行われた変更をシステムの現在の状態に照らして検証する処理は行われません。LIMITED_VALIDATION_MODE は、シリアル化するコンテキストを作成する目的の場合にのみ使用してください。ISettingsEngine::ApplySettingsContext に使用するコンテキストを作成するときは、このフラグを指定しないでください。指定した場合、コンテキストが十分に検証されず、適用時に失敗する可能性があります。
Reservedvoid*in予約されています。NULL を指定する必要があります。
SettingsContextISettingsContext**out作成されたコンテキストを表す ISettingsContext オブジェクトへのポインターです。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。ISettingsContext オブジェクトを作成するリソースが不足していた場合、このメソッドは E_OUTOFMEMORY を返すことがあります。

vtbl 16 HRESULT SetSettingsContext(ISettingsContext* SettingsContext)
SettingsContextISettingsContext*in設定する ISettingsContext インターフェイスへのポインタである。
vtbl 17 HRESULT ApplySettingsContext(ISettingsContext* SettingsContext, LPWSTR** pppwzIdentities, UINT_PTR* pcIdentities)

設定コンテキストを適用します。

SettingsContextISettingsContext*in適用する設定データを含むコンテキストです。
pppwzIdentitiesLPWSTR**outシステムに適用された名前空間の identity を文字列形式で表したものです。
pcIdentitiesUINT_PTR*outpppwzIdentities 内の identity の数です。

戻り値

このメソッドは HRESULT 値を返します。S_OK は成功を示します。

vtbl 18 HRESULT GetSettingsContext(ISettingsContext** SettingsContext)
SettingsContextISettingsContext**out現在の ISettingsContext インターフェイスを受け取るポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ISettingsEngine "{9F7D7BB9-20B3-11DA-81A5-0030F1642E3C}"
#usecom global ISettingsEngine IID_ISettingsEngine "{9F7D7BB5-20B3-11DA-81A5-0030F1642E3C}"
#comfunc global ISettingsEngine_GetNamespaces           3 int,sptr,sptr
#comfunc global ISettingsEngine_GetNamespace            4 sptr,int,sptr,sptr
#comfunc global ISettingsEngine_GetErrorDescription     5 int,var
#comfunc global ISettingsEngine_CreateSettingsIdentity  6 sptr
#comfunc global ISettingsEngine_GetStoreStatus          7 sptr,var
#comfunc global ISettingsEngine_LoadStore               8 int
#comfunc global ISettingsEngine_UnloadStore             9 sptr
#comfunc global ISettingsEngine_RegisterNamespace       10 sptr,sptr,int,var
#comfunc global ISettingsEngine_UnregisterNamespace     11 sptr,int
#comfunc global ISettingsEngine_CreateTargetInfo        12 sptr
#comfunc global ISettingsEngine_GetTargetInfo           13 sptr
#comfunc global ISettingsEngine_SetTargetInfo           14 sptr
#comfunc global ISettingsEngine_CreateSettingsContext   15 int,sptr,sptr
#comfunc global ISettingsEngine_SetSettingsContext      16 sptr
#comfunc global ISettingsEngine_ApplySettingsContext    17 sptr,var,var
#comfunc global ISettingsEngine_GetSettingsContext      18 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。