SetWindowsHookEx と 64-bit アプリケーション

まあ当然のことではありますが,SetWindowsHookEx で 32-bit DLL を 64-bit アプリケーションに inject することは出来ません.64-bit DLL を 32-bit アプリケーションにというのも無理です.
紙 copi』のようなユーティリティ系のツールで影響を受けるものが多いでしょう.

SetWindowsHookEx can be used to inject a DLL into another process. A 32-bit DLL cannot be injected into a 64-bit process, and a 64-bit DLL cannot be injected into a 32-bit process. If an application requires the use of hooks in other processes, a 32-bit application must call SetWindowsHookEx to inject a 32-bit DLL into 32-bit processes, and a 64-bit application must call SetWindowsHookEx to inject a 64-bit DLL into 64-bit processes. Also, the 32-bit and 64-bit DLLs must have different names.