skypeプログラミング続き

skypeapi com wrapperを使った時にCOMからイベントを拾う方法.ドキュメントだとイベントハンドラ用のインタフェース名が"IAccessEvents"になっていたが,やってみたらそんなインタフェース名がなかった.Ildasmを使ってskypeapilib.dllを調べてみたら"_IAccessEvents"だった.んでもって,自分のステータス,つまり,オンラインとか離籍中とか,を調べるプログラミングはこんな感じになった.

//skypevent.cs
// Ildasm skypeapilib.dll
// TlbImp \windows\system32\SkypeAPI.dll
// csc /r:SKYPEAPILib.dll skypevent.cs

using System;
using System.Text;
using SKYPEAPILib;

public class MyApp{

	public static void Main(string[] args)
	{
		Access ao = new Access();
		ao.Connect();
		ao.UserStatusChanged += new _IAccessEvents_UserStatusChangedEventHandler(StatusChange);
		Console.WriteLine(ao.CurrentUserStatus);
		ao.CurrentUserStatus = SkypeOnlineStatus.olsDoNotDisturb;

		String s;
		Console.Write("Enter to quit ");
		s = Console.ReadLine();
		while (s != ""){
			Console.Write("Enter to quit ");
			s = Console.ReadLine();
		}
	}
	
	static void StatusChange(SkypeOnlineStatus status)
	{
		Console.WriteLine(status);
	}
}