public HResult BindToHandler(IntPtr pbc, Guid bhid, Guid riid, out IntPtr obj) { if (riid == typeof(IShellFolder).GUID) { obj = Marshal.GetIUnknownForObject(GetIShellFolder()); return HResult.S_OK; } else { throw new InvalidCastException(); } }