WPFxUPnP その7

SwitchPowerサービスのインターフェースを作成します。
インターフェースを作成して、SwitchPowerサービス定義のメソッドをわかりやすくします。

using System.Runtime.InteropServices;

/// <summary>
/// SwitchPowerサービスI/F
/// </summary>
[ComVisible(true)]
public interface ISwitchPower
{
    #region 操作
    void SetTarget(Boolean newTargetValue);

    void GetTarget(out Boolean RetTargetValue);

    void GetStatus(out Boolean ResultStatus);
    #endregion

    #region 変数
    Boolean Target { get; set; }

    [DispId( (int) (SwitchPowerNotifyID.Status) )]
    Boolean Status { get; set; }
    #endregion
}
/// <summary>
/// UPnPイベント通知用のID
/// </summary>
[ComVisible(false)]
public enum SwitchPowerNotifyID : int
{
    /// <summary>
    /// Statusの通知ID
    /// </summary>
    Status = 1
}

ComVisible属性でCOMに参照可能の設定を行います。

SwitchPowerサービス定義の変数でイベント通知がある場合は、DispId属性を付加して、IDを割り振ります。
プロパティ値が変更された場合、このIDを指定して、UPnPフレームワークに変更されたことを通知します。