Пример #1
0
 public void Dispose()
 {
     if (m_VirtualUI != null)
     {
         Marshal.ReleaseComObject(m_VirtualUI);
     }
     if (m_BrowserInfo != null)
     {
         ((IDisposable)m_BrowserInfo).Dispose();
     }
     if (m_DevServer != null)
     {
         ((IDisposable)m_DevServer).Dispose();
     }
     m_VirtualUI = null;
     m_BrowserInfo = null;
     m_DevServer = null;
 }
Пример #2
0
        public VirtualUI()
            : base()
        {
            if (LibHandle != IntPtr.Zero)
            {
                IntPtr pAddressOfFunctionToCall = GetProcAddress(LibHandle, "DllGetInstance");
                GetInstance = (funcGetInstance)Marshal.GetDelegateForFunctionPointer(
                    pAddressOfFunctionToCall,
                    typeof(funcGetInstance));
                GetInstance(ref m_VirtualUI);

                virtualUIEventSink = new VirtualUISink(this);
                connectionPointContainer = (System.Runtime.InteropServices.ComTypes.IConnectionPointContainer)m_VirtualUI;
                Guid virtualUIEventsInterfaceId = typeof(IEvents).GUID;
                connectionPointContainer.FindConnectionPoint(ref virtualUIEventsInterfaceId, out connectionPoint);
                if (connectionPoint != null)
                    connectionPoint.Advise((IEvents)virtualUIEventSink, out connectionCookie);
            }
            m_BrowserInfo = new BrowserInfo(m_VirtualUI);
            m_DevServer = new DevServer(m_VirtualUI);
            if (!g_virtualUIExists)
            {
                g_virtualUIExists = true;
                g_virtualUI = new VirtualUI();
            }
        }