[関数の検出は、[要件] セクションで指定されたオペレーティング システムで使用できます。 これは、以降のバージョンで変更または使用できない可能性があります。
関数インスタンスを作成または変更します。
構文
HRESULT AddInstance(
[in] SystemVisibilityFlags enumSystemVisibility,
[in] const WCHAR *pszCategory,
[in] const WCHAR *pszSubCategory,
[in] const WCHAR *pszCategoryIdentity,
[out] IFunctionInstance **ppIFunctionInstance
);
パラメーター
[in] enumSystemVisibility
作成された関数インスタンスがシステム全体に表示されるか、現在のユーザーにのみ表示されるかを指定する SystemVisibilityFlags 値。
[in] pszCategory
作成された関数インスタンスのカテゴリ。 「カテゴリ定義」を参照してください。
[in] pszSubCategory
作成された関数インスタンスのサブカテゴリ。 「 サブカテゴリの定義」を参照してください。 この文字列の最大長はMAX_PATH。
[in] pszCategoryIdentity
プロバイダー インスタンス識別子の文字列。 この文字列は GetProviderInstanceID から返されます。
[out] ppIFunctionInstance
関数インスタンスを受け取る IFunctionInstance インターフェイス ポインターへのポインター。
戻り値
可能な戻り値は次のとおりですが、これらに限定されません。
| リターン コード/値 | 説明 |
|---|---|
|
メソッドは正常に完了しました。 |
|
enumSystemVisibility、pszCategory、または pszCategoryIdentity の値が無効です。 |
|
メソッドは、この操作を実行するために必要なメモリを割り当てることができません。 |
|
ユーザーは、要求されたアクションを実行するためのアクセス許可が不十分です。 |
|
プロバイダーでは、 AddInstance メソッドを使用した関数インスタンスの直接追加はサポートされていません。 |
|
pszCategory または pszSubCategory の値が不明です。 |
|
無効なパラメーターが指定されました。 pszSubCategory 文字列の長さがMAX_PATHを超えると、このエラーが返されます。 |
解説
このメソッドは、指定したカテゴリとサブカテゴリの新しい関数インスタンスを一時的に作成します。 カテゴリを実装するプロバイダーは、 IFunctionDiscoveryProviderFactory::CreateInstance メソッドを使用して、新しく作成された関数インスタンスに関連付けられているメタデータを保持します。
関連付けられたプロパティ ストアに値がない場合、関数インスタンスはレジストリに書き込まれません。 プロパティ ストアの値をチェックするには、IFunctionInstance::OpenPropertyStore メソッドを使用します。
指定したカテゴリとサブカテゴリの関数インスタンスが既に存在する場合は、既存のレジストリ エントリが上書きされます。 AddInstance メソッドは、S_OKを返します。 Function Discovery 変更通知プロセスは、enumQueryUpdateAction を QUA_CHANGEに設定して、呼び出し元のアプリケーションの IFunctionDiscoveryNotification::OnUpdate メソッドを呼び出します。
レジストリ プロバイダー (管理者または Power User アクセス) を使用して関数インスタンスを追加または削除するには、レジストリ キー HKEY_LOCAL_MACHINE\SYSTEM 変更するためのアクセス許可が必要です。
要件
| サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
| 対象プラットフォーム | Windows |
| ヘッダー | functiondiscoveryapi.h |
| [DLL] | FunDisc.dll |