internal void ConnectToView(IShellView psv) { DisconnectFromView(); HResult hr = psv.GetItemObject( ShellViewGetItemObject.Background, ref IID_IDispatch, out viewDispatch); if (hr == HResult.Ok) { hr = ExplorerBrowserNativeMethods.ConnectToConnectionPoint( this, ref IID_DShellFolderViewEvents, true, viewDispatch, ref viewConnectionPointCookie, ref nullPtr); if (hr != HResult.Ok) { Marshal.ReleaseComObject(viewDispatch); } } }
internal void ConnectToView(IShellView psv) { DisconnectFromView( ); HRESULT hr = psv.GetItemObject( SVGIO.SVGIO_BACKGROUND, ref IID_IDispatch, out viewDispatch); if (hr == HRESULT.S_OK) { hr = ExplorerBrowserNativeMethods.ConnectToConnectionPoint( this, ref IID_DShellFolderViewEvents, true, viewDispatch, ref viewConnectionPointCookie, ref nullPtr); if (hr != HRESULT.S_OK) { Marshal.ReleaseComObject(viewDispatch); } } }
internal void DisconnectFromView() { if (viewDispatch != null) { ExplorerBrowserNativeMethods.ConnectToConnectionPoint( IntPtr.Zero, ref IID_DShellFolderViewEvents, false, viewDispatch, ref viewConnectionPointCookie, ref nullPtr); Marshal.ReleaseComObject(viewDispatch); viewDispatch = null; viewConnectionPointCookie = 0; } }