NCSwitchプラグイン 開発ドキュメント

このドキュメントでは、NCSwitchプラグインの開発者を対象に、NCSwitchプラグイン開発に必要な情報を提供します。

目次

NCSwitchプラグインとは

NCSwitchプラグインとは、NCSwitchがサポートしていないシステム設定の保存/復元を可能にする、拡張プログラムです。

以下の図は、NCSwitchプラグインの仕組み・役割について説明しています。

NCSwitchプラグインの仕組み
番号 処理概要
NCSwitchは、サポートしている復元項目の設定情報を取得します。
NCSwitchプラグインは、NCSwitchがサポートしていない復元項目 (例の場合、アプリケーションXの設定) の設定情報を取得します。
NCSwitchプラグインは、取得した設定情報をNCSwitchに転送します。 (参考:API仕様 - IPlugin::GetSystemConfiguration)
NCSwitchは、取得した設定情報を、ファイル(config.xml)に保存します。
NCSwitchは、ファイル(config.xml)から保存した設定情報を読み取ります。
NCSwitchは、サポートしている復元項目の設定情報を復元します。
NCSwitchプラグインは、3で転送した設定情報を受け取ります。 (参考:API仕様 - IPlugin::SetSystemConfiguration)
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">
    <!-- opera6.ini --> 
    <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]*" /> 
    <!-- accounts.ini --> 
    <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」にあります。

カスタムプラグイン

用途

iniファイルプラグインレジストリプラグインでは実現できない機能が必要な場合は、 NCSwitchプラグインのAPI仕様に準拠したCOMコンポーネントを開発して、独自の保存/復元処理をプログラミングすることができます。

事前準備

カスタムプラグインの開発に取り掛かる前に、以下の点を調査・検討しておく必要があります。

開発方法

  1. IPlugin実装クラスを含む、COM DLLを作成します。
    IPlugin実装クラスの例 (VC++/ATL8.0)
    // PluginImpl.h : CPluginImpl の宣言

    #pragma once

    // MIDLコンパイラが、SpiralwarePorwer.idlファイルから自動生成したヘッダーファイル
    #include "SpiralwarePower.h"

    // NCSwitch タイプライブラリをインポート
    #import "libid:FEEE0494-3BCC-4C6F-AE1B-89D796F46922" raw_interfaces_only, raw_native_types, named_guids

    // CPluginImpl - IPluginインタフェースの実装クラス
    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:
        // IPlugin Methods
        STDMETHOD(Initialize)(NCSwitchLib::IPluginSite * site)
        {
            //NCSwitchから渡されたオブジェクトをインスタンス変数に保持
            m_spPluginSite = site;
            m_spPluginSite->get_Parameter(&m_spParameter);
            m_spPluginSite->get_Configuration(&m_spConfiguration);

            //ユーザーによる選択・入力操作が必要な場合は、ここでIPropertyPage実装オブジェクトを登録します
            // CComPtr<IPropertyPage> spPage;
            // spPage.CoCreateInstance(_T("XXX.XXX"));
            //
            // CComPtr<NCSwitchLib::IPluginPages> spPages;
            // m_spPluginSite->get_PluginPages(&spPages);
            // spPages->Add(spPage);

            return S_OK;
        }

        STDMETHOD(GetSystemConfiguration)(long * result)
        {
            //OSから、現在の電源設定を取得
            CString sPowerSchemeId = this->GetActivePwrScheme();
            
            if (! sPowerSchemeId.IsEmpty())
            {
                //取得成功
                *result = 1;

                //取得した設定情報を、NCSwitchに転送
                m_spConfiguration->put_Item(CComBSTR(_T("PowerSchemeId")), CComBSTR(sPowerSchemeId));
            }
            else
            {
                //取得失敗
                *result = 0;
            }
            
            return S_OK;
        }

        STDMETHOD(SetSystemConfiguration)(long * result)
        {
            USES_CONVERSION;

            //GetSystemConfigurationで取得した設定情報を変数に退避
            CComBSTR bsId;
            m_spConfiguration->get_Item(CComBSTR(_T("PowerSchemeId")), &bsId);

            //電源設定を、OSに適用
            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)
  2. plugin.xmlタグ仕様に従って、plugin.xmlファイルを作成します。
    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の場合)

  1. NCSwitchプラグインを作成します (参考:NCSwitchプラグインの種類)
  2. 作成したNCSwitchプラグインをpluginsディレクトリに配置します (参考:ファイル構成)
  3. NCSwitchウィザードを起動して、保存処理を実行します

    復元項目の選択時に、開発したNCSwitchプラグインのプラグイン名称が表示されます。

    表示されない場合は、NCSwitchプラグインが正常に機能していません。以下の原因が考えられます。
    • Plugin.xmlのXMLフォーマットが誤っている

      plugin.xmlをInternet Explorerで開くと、誤りのある箇所が表示されます。誤りを修正してください。

    • IPlugin実装クラスのインスタンス生成に失敗した (カスタムプラグインの場合のみ)

      plugin.xmlに含まれるModuleタグのcodeBase設定、classId設定に誤りがあった場合、NCSwitchはIPlugin実装クラス を見つけられず、インスタンス生成に失敗します。設定の誤りを修正してください。

      IPlugin実装クラスのIPlugin::Initializeメソッド呼び出し中に実行時エラーが発生した場合、NCSwitchはインスタンス生成に失敗したとみなしてウィザード画面に表示しません。 IPlugin実装クラスにバグがあれば修正してください。

  4. 保存内容を確認します

    保存に成功すると、デスクトップ上にショートカットが作成されます。ショートカットのプロパティに、config.xmlファイルの保存先が登録されています。

    config.xmlファイルを開くと、プラグインが保存した内容を確認できます。 意図したとおりにシステム設定が保存されているか確認してください。

復元処理の動作確認手順 (NCSwitchの場合)

  1. 保存処理の動作確認手順で作成したショートカットをダブルクリックして、復元処理を実行します。

    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();
引数 (なし)