NCSwitchプラグイン 開発ドキュメント
このドキュメントでは、NCSwitchプラグインの開発者を対象に、NCSwitchプラグイン開発に必要な情報を提供します。
目次
NCSwitchプラグインとは
NCSwitchプラグインとは、NCSwitchがサポートしていないシステム設定の保存/復元を可能にする、拡張プログラムです。
以下の図は、NCSwitchプラグインの仕組み・役割について説明しています。
| 番号 |
処理概要 |
| 1 |
NCSwitchは、サポートしている復元項目の設定情報を取得します。 |
| 2 |
NCSwitchプラグインは、NCSwitchがサポートしていない復元項目 (例の場合、アプリケーションXの設定) の設定情報を取得します。 |
| 3 |
NCSwitchプラグインは、取得した設定情報をNCSwitchに転送します。 (参考:API仕様
- IPlugin::GetSystemConfiguration) |
| 4 |
NCSwitchは、取得した設定情報を、ファイル(config.xml)に保存します。 |
| 5 |
NCSwitchは、ファイル(config.xml)から保存した設定情報を読み取ります。 |
| 6 |
NCSwitchは、サポートしている復元項目の設定情報を復元します。 |
| 7 |
NCSwitchプラグインは、3で転送した設定情報を受け取ります。 (参考:API仕様
- IPlugin::SetSystemConfiguration) |
| 8 |
NCSwitchプラグインは、NCSwitchがサポートしていない復元項目 (例の場合、アプリケーションXの設定) の設定情報を復元します。
(参考:API仕様 - IPlugin::SetSystemConfiguration) |
NCSwitchプラグインの種類
iniファイルプラグイン
用途
任意のiniファイルの設定項目を保存/復元します。
事前準備
iniファイルプラグインの開発に取り掛かる前に、どのiniファイル項目 (セクション名および項目名)
を保存/復元するか決めておく必要があります。
開発方法
下記のタグ仕様に従って、plugin.xmlファイル (XML形式) を作成します。
plugin.xmlタグ仕様
| タグ |
属性 |
説明 |
| NCSwitchPlugin |
属性の詳細については、plugin.xmlタグ仕様を参照してください。 |
NCSwitchPlugin
/Module |
ref |
"Spiralware.Inifile" (固定値) |
NCSwitchPlugin
/Module/TargetOS |
属性の詳細については、plugin.xmlタグ仕様を参照してください。 |
NCSwitchPlugin
/Module/Parameter |
name |
iniファイル識別子 + '.' (ドット) + iniファイルプロパティ名称
- iniファイル識別子
各iniファイルを識別する為の内部名 (英数字から構成される任意の文字列)
復元したいiniファイル項目が複数のiniファイルに散在している場合、各iniファイルに重複しないiniファイル識別子を割当ててください。
- iniファイルプロパティ
| 名称 |
値 |
| IniFileName |
iniファイル名
iniファイルの名称
|
| IniFilePath |
iniファイルパス
iniファイルの保存場所が複数想定される場合は、各パスをカンマ区切りで指定します。
(NCSwitchは、先頭のパスからiniファイルが見つかるまで順に検索します)
iniファイルパスには、以下の特殊文字列を埋め込むことができます。
- 環境変数の値
- '%' + (環境変数名) + '%'
- 他のiniファイル項目の値
- '$(' + (iniファイル識別子) + ':[' +(セクション名) + ']'
+ (項目名) + ')'
iniファイルの保存場所をユーザーに選択させたい場合は、空にします。
|
| TargetItem |
iniファイル項目(カンマ区切りで、複数の項目を指定できます)
以下の指定方法があります。
| 特定項目 |
[(セクション名)](項目名) |
| 特定セクション内の全項目 |
[(セクション名)]* |
| 全項目 |
* |
|
|
| value |
iniファイルプロパティの値 |
plugin.xml サンプル
<?xml version="1.0" encoding="Shift_JIS" ?>
<NCSwitchPlugin
name="Opera プロキシ設定"
description="Operaブラウザのホームページおよびプロキシ設定を保存/復元します"
support="support@spiralware.jp">
<Module ref="Spiralware.Inifile">
<Parameter name="Config.IniFileName" value="Operaの設定ファイル(opera6.ini)" />
<Parameter name="Config.IniFilePath" value="%APPDATA%\Opera\Opera\profile\opera6.ini,%PROGRAMFILES%\Opera\profile\opera6.ini" />
<Parameter name="Config.TargetItem" value="[User Prefs]Home URL,[Proxy]*" />
<Parameter name="MailConfig.IniFileName" value="Operaの設定ファイル(accounts.ini)" />
<Parameter name="MailConfig.IniFilePath" value="$(Config:[Mail]Mail Root Directory)\accounts.ini" />
<Parameter name="MailConfig.TargetItem" value="[User Prefs]Home URL,[Proxy]*" />
</Module>
</NCSwitchPlugin>
|
iniファイルプラグインのサンプルは、プラグインルートディレクトリ内の「Spiralware.Opera」にあります。
レジストリプラグイン
用途
任意のレジストリ項目を保存/復元します。
事前準備
レジストリプラグインの開発に取り掛かる前に、どのレジストリ項目 (キーおよび値)
を保存/復元するか決めておく必要があります。
開発方法
下記のタグ仕様に従って、plugin.xmlファイル (XML形式) を作成します。
plugin.xmlタグ仕様
| タグ |
属性 |
説明 |
| NCSwitchPlugin |
属性の詳細については、plugin.xmlタグ仕様を参照してください。 |
NCSwitchPlugin
/Module |
ref |
"Spiralware.Registry" (固定値) |
NCSwitchPlugin
/Module/TargetOS |
属性の詳細については、plugin.xmlタグ仕様を参照してください。 |
NCSwitchPlugin
/Module/Parameter |
name |
保存/復元対象項目のレジストリキーパス |
| value |
下記形式のいずれか
| 形式 |
説明 |
| "DATA=" + (値の名称) |
指定した値のみを保存・復元 (カンマ区切りで、複数の値を指定できます)
既定値の場合は、(値の名称)を空にします
|
| "ALL_DATA" |
全ての値を保存・復元 |
| "ALL_SUBKEY" |
全ての値と全てのサブキーを保存・復元 |
|
plugin.xml サンプル
<?xml version="1.0" encoding="Shift_JIS" ?>
<NCSwitchPlugin
name="スタートメニュー:インターネット、電子メール"
description="[スタート]メニューの [インターネット]、[電子メール]を切り替えます"
support="support@spiralware.jp">
<Module ref="Spiralware.Registry">
<Parameter name="HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet" value="DATA=" />
<Parameter name="HKEY_CURRENT_USER\SOFTWARE\Clients\Mail" value="DATA=" />
</Module>
</NCSwitchPlugin>
|
レジストリプラグインのサンプルは、プラグインルートディレクトリ内の「Spiralware.DefaultBrowser」にあります。
カスタムプラグイン
用途
事前準備
カスタムプラグインの開発に取り掛かる前に、以下の点を調査・検討しておく必要があります。
-
COM DLL の開発言語
特に不特定多数に配布する場合は、ターゲットOS、依存ライブラリ (Visual Basicランタイム、.Net
Frameworkなど) の制約を考慮する必要があります。
-
保存/復元処理の実現方法
保存/復元処理に必要なAPI (Win32APIなど) や外部コマンドの呼び出し手順、設定情報の仕様について調査しておく必要があります。
-
ユーザーによる選択・入力操作の有無
保存処理時に、ユーザーによる選択・入力操作が必要な場合は、GUIを提供する必要があります。GUIは、プロパティページ (IPropertyPageインタフェース) として実装します。 (参考:API仕様 - IPlugin::Initialize)
開発方法
-
IPlugin実装クラスを含む、COM DLLを作成します。
IPlugin実装クラスの例 (VC++/ATL8.0)
#pragma once
#include "SpiralwarePower.h"
#import "libid:FEEE0494-3BCC-4C6F-AE1B-89D796F46922" raw_interfaces_only, raw_native_types, named_guids
class ATL_NO_VTABLE CPluginImpl :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CPluginImpl, &CLSID_PluginImpl>,
public NCSwitchLib::IPlugin
{
public:
CPluginImpl()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_PLUGINIMPL)
BEGIN_COM_MAP(CPluginImpl)
COM_INTERFACE_ENTRY(IPlugin)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
STDMETHOD(Initialize)(NCSwitchLib::IPluginSite * site)
{
m_spPluginSite = site;
m_spPluginSite->get_Parameter(&m_spParameter);
m_spPluginSite->get_Configuration(&m_spConfiguration);
return S_OK;
}
STDMETHOD(GetSystemConfiguration)(long * result)
{
CString sPowerSchemeId = this->GetActivePwrScheme();
if (! sPowerSchemeId.IsEmpty())
{
*result = 1;
m_spConfiguration->put_Item(CComBSTR(_T("PowerSchemeId")), CComBSTR(sPowerSchemeId));
}
else
{
*result = 0;
}
return S_OK;
}
STDMETHOD(SetSystemConfiguration)(long * result)
{
USES_CONVERSION;
CComBSTR bsId;
m_spConfiguration->get_Item(CComBSTR(_T("PowerSchemeId")), &bsId);
if (this->SetActivePwrScheme(OLE2T(bsId)))
{
*result = 1;
}
else
{
*result = 0;
}
return S_OK;
}
private:
CString GetActivePwrScheme();
bool SetActivePwrScheme(LPCTSTR pszSchemeId);
CComPtr<NCSwitchLib::IPluginSite> m_spPluginSite;
CComPtr<NCSwitchLib::IDictionary> m_spConfiguration;
CComPtr<NCSwitchLib::IDictionary> m_spParameter;
};
OBJECT_ENTRY_AUTO(__uuidof(PluginImpl), CPluginImpl)
|
-
plugin.xmlサンプル
<?xml version="1.0" encoding="Shift_JIS" ?>
<NCSwitchPlugin
name="電源設定"
description="電源設定を切り替えます"
support="support@spiralware.jp">
<Module codeBase="Spiralware.Power.dll" classId="{7B2F451A-6DC3-4175-A22D-F85E6295ACED}">
</Module>
</NCSwitchPlugin>
|
カスタムプラグインのサンプルは、プラグインルートディレクトリ内の「Spiralware.Power」にあります。 (Visual
C++ 2005 プロジェクト)
NCSwitchプラグインの動作確認
保存処理の動作確認手順 (NCSwitchの場合)
- NCSwitchプラグインを作成します (参考:NCSwitchプラグインの種類)
- 作成したNCSwitchプラグインをpluginsディレクトリに配置します (参考:ファイル構成)
-
NCSwitchウィザードを起動して、保存処理を実行します
復元項目の選択時に、開発したNCSwitchプラグインのプラグイン名称が表示されます。
表示されない場合は、NCSwitchプラグインが正常に機能していません。以下の原因が考えられます。
-
Plugin.xmlのXMLフォーマットが誤っている
plugin.xmlをInternet
Explorerで開くと、誤りのある箇所が表示されます。誤りを修正してください。
-
IPlugin実装クラスのインスタンス生成に失敗した (カスタムプラグインの場合のみ)
plugin.xmlに含まれるModuleタグのcodeBase設定、classId設定に誤りがあった場合、NCSwitchはIPlugin実装クラス
を見つけられず、インスタンス生成に失敗します。設定の誤りを修正してください。
IPlugin実装クラスのIPlugin::Initializeメソッド呼び出し中に実行時エラーが発生した場合、NCSwitchはインスタンス生成に失敗したとみなしてウィザード画面に表示しません。
IPlugin実装クラスにバグがあれば修正してください。
-
保存内容を確認します
保存に成功すると、デスクトップ上にショートカットが作成されます。ショートカットのプロパティに、config.xmlファイルの保存先が登録されています。
config.xmlファイルを開くと、プラグインが保存した内容を確認できます。
意図したとおりにシステム設定が保存されているか確認してください。
復元処理の動作確認手順 (NCSwitchの場合)
-
NCSwitchがサポートしている復元項目と同様に、復元画面上に処理結果が表示されます。
NCSwitchプラグイン リファレンス
ファイル構成
NCSwitchプラグインは、下記のファイルから構成されています。
pluginsディレクトリ配下に構成ファイルを含むディレクトリをコピーすると、NCSwitchの起動時にロードされるようになります。 (レジストリへのCOM登録は不要です)
| ファイル名 |
必須 |
説明 |
| plugin.xml |
○ |
NCSwitchプラグインの設定ファイル (参考:plugin.xml) |
| ***.dll |
△ |
NCSwitchプラグインAPIに準拠した、COM DLLモジュール
|
| plugin.png |
× |
NCSwitchプラグインのアイコン画像(32x32 pixel) |
| plugin_*.xml |
× |
NCSwitchプラグインの設定ファイル (国際化対応版)
NCSwitchプラグインの設定を、NCSwitchが日本語版か英語版かによって切り替えたい場合に作成します。 (日本語版:"plugin_ja.xml"、英語版:"plugin_en.xml")
ロケールと一致するファイルが存在しない場合、NCSwitchは"plugin.xml"ファイルを使用します。
|
プラグイン識別子は、他のプラグインと重複しないようにする必要がある為、
(組織名または個人名) + '.' (ドット) +
(任意の名称)という形式にすることを推奨します。
plugin.xml
plugin.xmlタグ仕様
| タグ |
属性 |
説明 |
| NCSwitchPlugin |
name |
プラグイン名称 |
| description |
プラグイン説明 |
| support |
プラグインに関する問合せ先URLもしくはメールアドレス |
| version 《*1.1》 |
"1.1" (固定値 (plugin.xmlスキーマのバージョン) ) |
| type 《*1.1》 |
- "NORMAL":NCSwitchの復元処理後に、プラグインの復元処理を行う (既定値)
- "BOOTSTRAP":プラグインの復元処理後に、NCSwitchの復元処理を行う
|
| requireAdministrator 《*1.1》 |
- "TRUE":プラグインの復元処理時に管理者権限が必要
- "FALSE":プラグインの復元処理時に管理者権限は不要 (既定値)
|
NCSwitchPlugin
/Module |
codeBase |
NCSwitchプラグインAPIに準拠した、COM DLLモジュールのファイル名 |
| classId |
IPluginインタフェースの実装クラス (CLSID)
ProgID (例:"SpiralwarePower.PluginImpl.1") は指定できなくなりました。必ずCLSID (例:"{7B2F451A-6DC3-4175-A22D-F85E6295ACED}") を指定してください。
|
NCSwitchPlugin
/Module/TargetOS |
minVersion 《*1.1》 |
プラグインがサポートするWindows OSの最小バージョン
(Windows OSの内部バージョン + "-" + ServicePack番号)
【バージョン例】
"" (ブランク) :最小バージョン指定なし
"5.0-4":Windows2000 SP4以降
"5.2-0":Windows Server 2003 SPなし以降
"6.0-0":WindowsVista SPなし以降
|
| maxVersion 《*1.1》 |
プラグインがサポートするWindows OSの最大バージョン
(Windows OSの内部バージョン + "-" + ServicePack番号)
【バージョン例】
"" (ブランク) :最大バージョン指定なし
"5.1-1":WindowsXP SP1以前
|
NCSwitchPlugin
/Module/Parameter |
name |
NCSwitchプラグインの設定情報
この設定値は、IPluginSite::Parameter
を通じて、カスタムプラグインから参照できます。
|
| value |
《*1.1》 - plugin.xmlバージョン1.1から追加された属性。NCSwitch
3.1以降で対応しています。
API仕様
NCSwitchプラグインAPIは、COM仕様に基づいています。
NCSwitch
タイプライブラリ
NCSwitch3をインストールすると、API仕様を定義した以下のタイプライブラリが登録されます。
| ファイル |
NCSwitchLib.dll (NCSwitchのインストール先ディレクトリにあります) |
| LibID |
FEEE0494-3BCC-4C6F-AE1B-89D796F46922 |
IPlugin
設定情報の保存/復元を行うインターフェース。NCSwitchプラグインが実装し、NCSwitchが呼び出します。
| 継承インタフェース |
IUnknown |
| ProgID |
NCSwitchLib.IPlugin |
| IID |
AAA4726C-53EF-49a5-B0B4-0D0F1F4F5BCE |
IPlugin::Initialize
NCSiwtchプラグインの初期化を行います。オブジェクト生成後に、1回だけ呼び出されます。
HRESULT Initialize([in] IPluginSite* site);
| 引数 |
site - NCSwitchとの連携用オブジェクト |
| 戻り値 |
S_OK - 成功 |
| 備考 |
- site引数によって渡されるIPluginSiteオブジェクトは、インスタンス変数などに退避しておくべきです。
(この後呼び出されるGetSystemConfigurationメソッド、SetSystemConfigurationメソッドの処理において使用します)
- NCSwitch 設定ウィザード実行時に、NCSwitchプラグイン専用の入力フォームを表示する必要がある場合は、
このメソッド内で、IPluginSite::PluginPagesプロパティにPropertyPageを登録します。
|
IPlugin::GetSystemConfiguration
設定情報を保存します。
HRESULT GetSystemConfiguration([out, retval] long*
result);
| 引数 |
result - 処理結果 (0:失敗、1:成功) |
| 戻り値 |
S_OK - 成功 |
| 備考 |
- 取得した設定情報は、Initializeメソッドにて渡されたIPluginSiteオブジェクトのConfigurationプロパティに格納します。
- 保存処理が失敗した場合は、IPluginSiteオブジェクトのPromptメソッドを通じて
エラー内容を通知し、result引数に0 (失敗) を設定します。 (戻り値はS_OK)
|
IPlugin::SetSystemConfiguration
設定情報を復元します。
HRESULT SetSystemConfiguration([out, retval] long*
result);
| 引数 |
result - 処理結果 (0:失敗、1:成功 (再起動は不要) 、2:成功 (再起動が必要) ) |
| 戻り値 |
S_OK - 成功 |
| 備考 |
- Initializeメソッドにて渡されたIPluginSiteオブジェクトのConfigurationプロパティから、前回GetSystemConfiguration実行時に格納した設定情報を取得できます。
-
IPluginSiteオブジェクトのPromptメソッドを通じて復元内容を通知できます。通知内容は、NCSwitchの復元画面に表示されます。
- 復元処理が失敗した場合は、IPluginSiteオブジェクトのPromptメソッドを通じて
エラー内容を通知し、result引数に0 (失敗) を設定します。 (戻り値はS_OK)
|
IPluginSite
NCSwitchプラグインが、NCSwitchと連携する為に使用するインターフェース
| 継承インタフェース |
IDispatch |
| ProgID |
NCSwitchLib.IPluginSite |
| IID |
34A6BD3A-3A1A-4697-9287-BF1A432FA66D |
IPluginSite::Locale
NCSwitchのロケール文字列を取得します。
[propget, id(1)] HRESULT Locale([out, retval] BSTR*
pVal);
| 引数 |
pVal - NCSwitchのロケール("ja":日本語版、"en":英語版) |
IPluginSite::Parameter
NCSwitchプラグイン設定を取得します。
[propget, id(2)] HRESULT Parameter([out, retval]
IDictionary** pVal);
| 引数 |
pVal - NCSwitchプラグイン設定 |
| 備考 |
NCSwitchプラグイン設定とは、plugin.xmlの<Parameter>に記述した設定値のことです。 |
IPluginSite::Configuration
連想配列にて設定情報の書き込み・読み取りを行います。
[propget, id(3)] HRESULT Configuration([out, retval]
IDictionary** pVal);
| 引数 |
pVal - 設定情報 |
| 備考 |
- IPlugin::GetSystemConfiguration
の実装にて、このプロパティを通じて設定情報を書き込みます。
- IPlugin::SetSystemConfiguration
の実装にて、このプロパティを通じて設定情報を読み取ります。
|
IPluginSite::PluginPages
入力フォームのコレクションを取得/更新します。
[propget, id(4)] HRESULT PluginPages([out, retval]
IPluginPages** pVal);
| 引数 |
pVal - 入力フォーム (プロパティページオブジェクト) のコレクション |
| 備考 |
NCSwitch
ウィザード実行時に、NCSwitchプラグイン専用の入力フォームを表示する必要がある場合のみ、設定します。 |
IPluginSite::Prompt
ステータスメッセージ/エラーメッセージを送信します。
[id(20)] HRESULT Prompt([in] long priority, [in]
BSTR message);
| 引数 |
priority - メッセージ種別(0:情報、1:注意、2:警告)
message - メッセージ内容
|
| 備考 |
NCSwitchプラグイン(IPlugin実装クラス) が、IPluginメソッドの処理中に呼び出します。 |
IPluginSite::ConfigurationXml 《*Version2以降
(NCSwitch 3.1)》
XMLにて設定情報の書き込み・読み取りを行います。
[propget, id(5)] HRESULT ConfigurationXml([out,
retval] BSTR* pVal);
[propput, id(5)] HRESULT ConfigurationXml([in] BSTR pVal);
| 引数 |
pVal - XML形式の設定情報文字列 |
| 備考 |
IPluginSite::Configurationは設定情報を連想配列として取り扱いますが、このプロパティは設定情報をXML形式の文字列として取り扱います。
プラグインは、どちらのプロパティを使用することもできます。 (両方使用することもできます)
- IPlugin::GetSystemConfiguration
の実装にて、このプロパティを通じて設定情報を書き込みます。
- IPlugin::SetSystemConfiguration
の実装にて、このプロパティを通じて設定情報を読み取ります。
|
IPluginSite::PreviousConfiguration 《*Version2以降
(NCSwitch 3.1)》
前回の保存処理時に保存した設定情報を取得します。
[propget, id(6)] HRESULT PreviousConfiguration([out,
retval] IDictionary** pVal);
| 引数 |
pVal - 設定情報 |
| 備考 |
IPlugin::GetSystemConfiguration
の実装にて、前回保存した設定情報を取得します。このプロパティは、前回保存した設定情報をプロパティページのデフォルト値として使用する場合などを想定して設けられています。 |
IPluginSite::Version 《*Version2以降 (NCSwitch
3.1)》
IPluginSiteのバージョンを取得します。
[propget, id(7)] HRESULT Version([out, retval] long*
pVal);
| 引数 |
pVal - バージョン番号 (2:NCSwitch 3.1) |
IPluginSite::GetPrivateFilePath 《*Version2以降
(NCSwitch 3.1)》
設定情報の書き込み・読み取りに使用するファイルパスを取得します。
[id(21)] HRESULT GetPrivateFilePath([in] BSTR name,
[out, retval] BSTR* pPath);
| 引数 |
name - ファイル識別子 pPath - ファイルパス |
| 備考 |
-
データ量の多い(100KBを超える)設定情報は、IPluginSite::ConfigurationやIPluginSite::ConfigurationXmlではなく、このメソッドを使用してファイル経由で設定情報を取得/更新するようにしてください。
- IPlugin::GetSystemConfiguration
の実行中に、このメソッドが提供するファイルパスに設定情報を書き込みます。
(GetPrivateFilePathは、長さ0バイトの書き込み可能ファイルのパスを返します)
- IPlugin::SetSystemConfiguration
の実行中に、このメソッドが提供するファイルパスから設定情報を読み取ります。
(GetPrivateFilePathは、IPlugin::GetSystemConfiguration
の処理中に書き込んだ設定情報を保持する、読み取り可能ファイルのパスを返します)
|
IDictionary
NCSwitchプラグイン設定、設定情報などを取得/設定する為に使用する連想配列インターフェース
| 継承インタフェース |
IDispatch |
| ProgID |
NCSwitchLib.IDictionary |
| IID |
F3520743-F03B-4D49-9BBB-013887F45419 |
IDictionary::Item
連想配列の要素を取得/設定します。
[propget, id(0)] HRESULT Item([in] BSTR key, [out,
retval] BSTR* pVal);
[propput, id(0)] HRESULT Item([in] BSTR key, [in] BSTR newVal);
| 引数 |
key - キー文字列
pVal - 取得値
newVal - 更新値 |
IDictionary::Count
連想配列の要素数を取得します。
[propget, id(1)] HRESULT Count([out, retval] long*
pVal);
| 引数 |
pVal - 要素数 |
IDictionary::IsExist
連想配列のキーが存在するか確認します。
[id(2)] HRESULT IsExist([in] BSTR key, [out,retval]
VARIANT_BOOL* pVal);
| 引数 |
key - キー文字列
pVal - TRUE:キーあり/FALSE:キーなし |
IDictionary::Clear
連想配列のキー/値をすべてクリアします。
[id(3)] HRESULT Clear();
| 引数 |
(なし) |
IPluginPages
NCSwitchプラグインの入力フォームを登録する為に使用するコレクションインターフェース
| 継承インタフェース |
IDispatch |
| ProgID |
NCSwitchLib.IPluginPages |
| IID |
4E11DE89-2E12-4890-95B4-30EE9FD63CF9 |
IPluginPages::Item
入力フォームを取得します。
[propget, id(0)] HRESULT Item([in] long index, [out,
retval] IPropertyPage** pVal);
| 引数 |
index - インデックス
pVal - 取得値 |
IPluginPages::Count
入力フォームの要素数を取得します。
[propget, id(1)] HRESULT Count([out, retval] long*
pVal);
| 引数 |
pVal - 要素数 |
IPluginPages::Add
入力フォームを登録します。
[id(2)] HRESULT Add([in] IPropertyPage* newVal);
| 引数 |
newVal - 入力フォーム (プロパティページ) |
| 備考 |
- 入力フォームを2つ以上登録したい場合は、メソッドを複数回呼び出します。
|
IPluginPages::Clear
コレクションに含まれている要素をすべて削除します。
[id(3)] HRESULT Clear();
| 引数 |
(なし) |