我正在尝试根据此处找到的说明和此处和此处找到的文档制作屏幕共享应用程序。但是,这是一个没有太多信息的主题,文档也很少。
这是我正在使用的代码片段。这是在我的会话(服务器)端,因此将把它的桌面共享给客户端。
private void Form1_Load(object sender, EventArgs e)
{
session.OnAttendeeConnected += session_OnAttendeeConnected;
session.Open();
IRDPSRAPIInvitation invitation = session.Invitations.CreateInvitation(null, "test", "", 10);
invitationTextBox.Text = invitation.ConnectionString;
log.Debug("Created invitation: " + invitation.ConnectionString);
}
void session_OnAttendeeConnected(object pAttendee)
{
IRDPSRAPIAttendee attendee = pAttendee as IRDPSRAPIAttendee;
attendee.ControlLevel = CTRL_LEVEL.CTRL_LEVEL_INTERACTIVE;
log.Info("Attendee Connected from " + attendee.RemoteName);
}
private void requestColourDepth(object sender, EventArgs e)
{
session.Pause();
if (eightBitRadio.Checked)
{
session.colordepth = 8;
}
else if (sixteenBitRadio.Checked)
{
session.colordepth = 16;
}
else if (twentyfourBitRadio.Checked)
{
session.colordepth = 24;
}
else
{
session.colordepth = 32;
}
session.Resume();
}
我的问题是 Form1_Load 之外的任何尝试与会话对象交互的东西都会导致以下异常:
base {"Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))"} System.Runtime.InteropServices.ExternalException {System.Runtime.InteropServices.COMException}
ErrorCode -2147418113 int
我不认为这完全是我的代码错误,我相信在处理 COM 的地方不能正确加载某些东西,但我没有太多使用 COM 对象的经验,可以使用一些方向。
谢谢!