private IntPtr CreateBroadcastWindow()
 {
     Microsoft.Win32.NativeMethods.WNDCLASS_I wc = new Microsoft.Win32.NativeMethods.WNDCLASS_I();
     IntPtr moduleHandle = Microsoft.Win32.UnsafeNativeMethods.GetModuleHandle(null);
     if (!Microsoft.Win32.UnsafeNativeMethods.GetClassInfo(new HandleRef(this, moduleHandle), this.WndClass.lpszClassName, wc))
     {
         if (Microsoft.Win32.UnsafeNativeMethods.RegisterClass(this.WndClass) == 0)
         {
             this.windowProc = null;
             return IntPtr.Zero;
         }
     }
     else if (wc.lpfnWndProc == this.DefWndProc)
     {
         short num = 0;
         if (Microsoft.Win32.UnsafeNativeMethods.UnregisterClass(this.WndClass.lpszClassName, new HandleRef(null, Microsoft.Win32.UnsafeNativeMethods.GetModuleHandle(null))) != 0)
         {
             num = Microsoft.Win32.UnsafeNativeMethods.RegisterClass(this.WndClass);
         }
         if (num == 0)
         {
             do
             {
                 this.BumpQualifier();
             }
             while ((Microsoft.Win32.UnsafeNativeMethods.RegisterClass(this.WndClass) == 0) && (Marshal.GetLastWin32Error() == 0x582));
         }
     }
     return Microsoft.Win32.UnsafeNativeMethods.CreateWindowEx(0, this.WndClass.lpszClassName, this.WndClass.lpszClassName, -2147483648, 0, 0, 0, 0, Microsoft.Win32.NativeMethods.NullHandleRef, Microsoft.Win32.NativeMethods.NullHandleRef, new HandleRef(this, moduleHandle), null);
 }
 public static extern bool GetClassInfo(HandleRef hInst, string lpszClass, [In, Out] Microsoft.Win32.NativeMethods.WNDCLASS_I wc);