private void buttonShare_Click(object sender, EventArgs e) { Vidyo32.VidyoClientRequestGetAlarms Alarm = new Vidyo32.VidyoClientRequestGetAlarms(); int szAlarm = Marshal.SizeOf(Alarm); IntPtr ptrAlarm = Marshal.AllocCoTaskMem(szAlarm); Marshal.StructureToPtr(Alarm, ptrAlarm, true); uint errAlarm = Vidyo32.VidyoClientSendRequest(Vidyo32.VidyoClientRequest.VIDYO_CLIENT_REQUEST_GET_ALARMS, ptrAlarm, szAlarm); if (errAlarm == 0) { Vidyo32.VidyoClientRequestGetAlarms CurrentAlarm = (Vidyo32.VidyoClientRequestGetAlarms)Marshal.PtrToStructure(ptrAlarm, typeof(Vidyo32.VidyoClientRequestGetAlarms)); } Vidyo32.VidyoClientRequestGetWindowsAndDesktops shares = new Vidyo32.VidyoClientRequestGetWindowsAndDesktops(); shares.Init(); int szShares = Marshal.SizeOf(shares); IntPtr ptrShares = Marshal.AllocCoTaskMem(szShares); Marshal.StructureToPtr(shares, ptrShares, true); uint error = Vidyo32.VidyoClientSendRequest(Vidyo32.VidyoClientRequest.VIDYO_CLIENT_REQUEST_GET_WINDOWS_AND_DESKTOPS, ptrShares, szShares); if (error != 0) { return; } Vidyo32.VidyoClientRequestGetWindowsAndDesktops currentShares = (Vidyo32.VidyoClientRequestGetWindowsAndDesktops)Marshal.PtrToStructure(ptrShares, typeof(Vidyo32.VidyoClientRequestGetWindowsAndDesktops)); if (currentShares.numSystemDesktops > 0) { // string firstDesktopId = Marshal.PtrToStringAuto(currentShares.sysDesktopId[0]); string firstDesktopId = currentShares.sysDesktopId[0]; Vidyo32.VidyoClientInEventShare sharePara = new Vidyo32.VidyoClientInEventShare(); sharePara.shareType = Vidyo32.VidyoClientContentsShareType.VIDYO_CLIENT_CONTENTS_SHARE_TYPE_DESKTOP_WINDOW; sharePara.window = (IntPtr)1; sharePara.desktopId = firstDesktopId; int sizeOfShareEvent = Marshal.SizeOf(sharePara); IntPtr sharePtr = Marshal.AllocCoTaskMem(sizeOfShareEvent); Marshal.StructureToPtr(sharePara, sharePtr, false); Int32 returnValue = Vidyo32.VidyoClientSendEvent(Vidyo32.VidyoClientInEvent.VIDYO_CLIENT_IN_EVENT_SHARE, sharePtr, sizeOfShareEvent); return; } }
private void buttonShareWnd_Click(object sender, EventArgs e) { Vidyo32.VidyoClientRequestGetWindowsAndDesktops shares = new Vidyo32.VidyoClientRequestGetWindowsAndDesktops(); shares.Init(); int szShares = Marshal.SizeOf(shares); IntPtr ptrShares = Marshal.AllocCoTaskMem(szShares); Marshal.StructureToPtr(shares, ptrShares, true); int szShares2 = Marshal.SizeOf(ptrShares); uint error = Vidyo32.VidyoClientSendRequest(Vidyo32.VidyoClientRequest.VIDYO_CLIENT_REQUEST_GET_WINDOWS_AND_DESKTOPS, ptrShares, szShares); if (error != 0) { return; } Vidyo32.VidyoClientRequestGetWindowsAndDesktops currentShares = (Vidyo32.VidyoClientRequestGetWindowsAndDesktops)Marshal.PtrToStructure(ptrShares, typeof(Vidyo32.VidyoClientRequestGetWindowsAndDesktops)); if (currentShares.numApplicationWindows <= m_indexWindow) { m_indexWindow = 0; } if (currentShares.numApplicationWindows > m_indexWindow) { Vidyo32.VidyoClientInEventShare sharePara = new Vidyo32.VidyoClientInEventShare(); sharePara.shareType = Vidyo32.VidyoClientContentsShareType.VIDYO_CLIENT_CONTENTS_SHARE_TYPE_APPLICATION_WINDOW; sharePara.window = (IntPtr)currentShares.appWindowId[m_indexWindow++]; int sizeOfShareEvent = Marshal.SizeOf(sharePara); IntPtr sharePtr = Marshal.AllocCoTaskMem(sizeOfShareEvent); Marshal.StructureToPtr(sharePara, sharePtr, false); Int32 returnValue = Vidyo32.VidyoClientSendEvent(Vidyo32.VidyoClientInEvent.VIDYO_CLIENT_IN_EVENT_SHARE, sharePtr, sizeOfShareEvent); return; } }