1,定義接口
(1)在接口上方加上[guid("1ea4dbf0-3c3b-11cf-810c-00aa00389b71")]
(2)在每個方法上加上[dispid(i)]
using system;
using system.runtime.interopservices;
namespace leading.mis.newsmonitor
......{
/**//**//**//// <summary>
/// 消息監(jiān)控接口的定義
/// </summary>
[guid("1ea4dbf0-3c3b-11cf-810c-00aa00389b71")]
public interface inewsmonitor
......{
發(fā)送文件時,記錄發(fā)送者,接收者和發(fā)送的文件名發(fā)送文件時,記錄發(fā)送者,接收者和發(fā)送的文件名#region 發(fā)送文件時,記錄發(fā)送者,接收者和發(fā)送的文件名
/**//**//**//// <summary>
/// 當發(fā)送文件時,記錄發(fā)送者,接收者和發(fā)送的文件名
/// </summary>
/// <param name="strsendid">文件發(fā)送者</param>
/// <param name="strtargetid">文件接受者</param>
/// <param name="strfilename">文件名</param>
[dispid(1)]
void sendfile(string strsendid,string strtargetid,string strfilename);
#endregion
接收文件時,記錄文件接收者,發(fā)送者和發(fā)送的文件名接收文件時,記錄文件接收者,發(fā)送者和發(fā)送的文件名#region 接收文件時,記錄文件接收者,發(fā)送者和發(fā)送的文件名
/**//**//**//// <summary>
/// 接受文件時,記錄文件接收者,發(fā)送者和發(fā)送的文件名
/// </summary>
/// <param name="strreceiveid">文件接收者</param>
/// <param name="strsendid">文件發(fā)送者</param>
/// <param name="strfilename">文件名</param>
[dispid(2)]
void recvfile(string strreceiveid,string strsendid,string strfilename);
#endregion
文件發(fā)送成功后,記錄發(fā)送者,接收者和發(fā)送的文件名文件發(fā)送成功后,記錄發(fā)送者,接收者和發(fā)送的文件名#region 文件發(fā)送成功后,記錄發(fā)送者,接收者和發(fā)送的文件名
/**//**//**//// <summary>
/// 文件發(fā)送成功后,記錄發(fā)送者,接收者和發(fā)送的文件名
/// </summary>
/// <param name="strsendid">文件發(fā)送者</param>
/// <param name="strtargetid">文件接收者</param>
/// <param name="strfilename">文件名</param>
[dispid(3)]
void filesendok(string strsendid,string strtargetid,string strfilename);
#endregion
取消文件發(fā)送時,記錄發(fā)送者,接收者和發(fā)送的文件名取消文件發(fā)送時,記錄發(fā)送者,接收者和發(fā)送的文件名#region 取消文件發(fā)送時,記錄發(fā)送者,接收者和發(fā)送的文件名
/**//**//**//// <summary>
/// 取消文件發(fā)送時,記錄發(fā)送者,接收者和發(fā)送的文件名
/// </summary>
/// <param name="strcancelid">取消文件發(fā)送者</param>
/// <param name="strtargetid">文件發(fā)送對方</param>
/// <param name="strfilename">文件名</param>
[dispid(4)]
void filesendcancel(string strcancelid,string strtargetid,string strfilename);
#endregion
} // end interface inewsmonitor
} //end namespace leading.mis.newsmonitor
2,類的實現(xiàn)
(1)在類的上方加上 [guid("1ea4dbf0-3c3b-11cf-810c-00aa00389b71")]
[classinterface(classinterfacetype.none)]
using system;
using system.io;
using system.runtime.interopservices;
namespace leading.mis.newsmonitor
......{
/**//**//**//// <summary>
/// 消息監(jiān)控類的實現(xiàn)
/// </summary>
[guid("1ea4dbf0-3c3b-11cf-810c-00aa00389b71")]
[classinterface(classinterfacetype.none)]
public class newsmonitor : inewsmonitor
......{
私有字段#region 私有字段
private string filepath = string.empty;
private string writeline = string.empty;
#endregion
私有方法#region 私有方法
private void newsmsg()
......{
streamwriter sw = null;
if(file.exists(filepath))
......{
sw = file.appendtext(filepath);
}
else
......{
filestream fs = file.create(filepath);
sw = new streamwriter(fs);
}
sw.writeline(writeline);
sw.close();
}
#endregion
共有方法#region 共有方法
發(fā)送文件時,記錄發(fā)送者,接收者和發(fā)送的文件名#region 發(fā)送文件時,記錄發(fā)送者,接收者和發(fā)送的文件名
/**//// <summary>
/// 當發(fā)送文件時,記錄發(fā)送者,接收者和發(fā)送的文件名
/// </summary>
/// <param name="strsendid">文件發(fā)送者</param>
/// <param name="strtargetid">文件接受者</param>
/// <param name="strfilename">文件名</param>
public void sendfile(string strsendid,string strtargetid,string strfilename)
......{
filepath = @"c:msgmonitorsendfile.txt";
writeline = strsendid + " 向 " + strtargetid + " 發(fā)送 < " + strfilename + " > 文件";
newsmsg();
}
#endregion
接收文件時,記錄文件接收者,發(fā)送者和發(fā)送的文件名#region 接收文件時,記錄文件接收者,發(fā)送者和發(fā)送的文件名
/**//// <summary>
/// 接受文件時,記錄文件接收者,發(fā)送者和發(fā)送的文件名
/// </summary>
/// <param name="strreceiveid">文件接收者</param>
/// <param name="strsendid">文件發(fā)送者</param>
/// <param name="strfilename">文件名</param>
public void recvfile(string strreceiveid,string strsendid,string strfilename)
......{
filepath = @"c:msgmonitorrecvfile.txt";
writeline = strreceiveid + " 接收到 " + strsendid + " 發(fā)送的 < " + strfilename + " > 文件";
newsmsg();
}
#endregion
文件發(fā)送成功后,記錄發(fā)送者,接收者和發(fā)送的文件名#region 文件發(fā)送成功后,記錄發(fā)送者,接收者和發(fā)送的文件名
/**//// <summary>
/// 文件發(fā)送成功后,記錄發(fā)送者,接收者和發(fā)送的文件名
/// </summary>
/// <param name="strsendid">文件發(fā)送者</param>
/// <param name="strtargetid">文件接收者</param>
/// <param name="strfilename">文件名</param>
public void filesendok(string strsendid,string strtargetid,string strfilename)
......{
filepath = @"c:msgmonitorfilesendok.txt";
writeline = strsendid + " 已經(jīng)成功向 " + strtargetid + " 發(fā)送 < " + strfilename + " > 文件";
newsmsg();
}
#endregion
取消文件發(fā)送時,記錄發(fā)送者,接收者和發(fā)送的文件名#region 取消文件發(fā)送時,記錄發(fā)送者,接收者和發(fā)送的文件名
/**//// <summary>
/// 取消文件發(fā)送時,記錄發(fā)送者,接收者和發(fā)送的文件名
/// </summary>
/// <param name="strcancelid">取消文件發(fā)送者</param>
/// <param name="strtargetid">文件發(fā)送對方</param>
/// <param name="strfilename">文件名</param>
public void filesendcancel(string strcancelid,string strtargetid,string strfilename)
......{
filepath = @"c:msgmonitorfilesendcancel.txt";
writeline = strcancelid + " 取消和 " + strtargetid + " 發(fā)送 < " + strfilename + " > 文件";
newsmsg();
}
#endregion
#endregion
} // end class newsmonitor
} //end namespace leading.mis.newsmonitor
3,用 regasm 工具進行注冊
regasm newsmsg.dll / tlb: newsmsg.tlb
新聞熱點
疑難解答
圖片精選