title: SetWindowLong/GetWindowLong and 32-bit/64-bit CPUs
body: <p>I'm using the following code:</p>
  
  <pre><code>const int GWL_STYLE = (-16);
  
  const UInt32 WS_POPUP = 0x80000000;
  const UInt32 WS_CHILD = 0x40000000;
  
  [DllImport("user32.dll", SetLastError = true)]
  static extern UInt32 GetWindowLong(IntPtr hWnd, int nIndex);
  
  [DllImport("user32.dll")]
  static extern int SetWindowLong(IntPtr hWnd, int nIndex, UInt32 dwNewLong);
  </code></pre>
  
  <p>and somewhere...</p>
  
  <pre><code>SetWindowLong(this.Handle, GWL_STYLE,
               ((GetWindowLong(this.Handle, GWL_STYLE) &amp; ~(WS_POPUP)) | WS_CHILD));
  </code></pre>
  
  <p>Will this run properly on both 32-bit and 64-bit machines?</p>
  
  <p>If not, if I compile my application to be ran as a x86 process, will it still work fine on a 64-bit machine?</p>
  
  <p>And how can I rewrite the following code to be OK in both 32-bit and 64-bit machines?</p>