SetWindowLong/GetWindowLong et 32-bit/64-bit Cpu

Je suis en utilisant le code suivant:

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);

et quelque part...

SetWindowLong(this.Handle, GWL_STYLE,
             ((GetWindowLong(this.Handle, GWL_STYLE) & ~(WS_POPUP)) | WS_CHILD));

Sera-ce s'exécuter correctement sur les versions 32 bits et 64 bits des machines?

Si pas, si je compiler mon application a fonctionné comme un x86 processus, sera-il encore fonctionner sur une machine 64 bits?

Et comment puis-je repasser le code suivant pour être OK dans les deux versions 32 bits et 64 bits des machines?

OriginalL'auteur | 2012-02-14