32/64-bit detection

The Codebase of RichCopy version 4.0 is completely different from version 3.x. RichCopy 3.x consists of COM components, and the UI is a just an interface for COM components. It supports automation and shell scripting; however component registration is required, and it is not light enough on Vista because of UAC. RichCopy version 4.0 is designed to run standalone and actually without updating registries or installing multiple components. If you copy RichCopy.exe or RichCopy64.exe into your working directory, and then it should run.
32/64-bit detection: RichCopy.exe determines whether the platform is 32-bit or 64-bit. On a 64-bit platform and RichCopy64.exe is present, and then RichCopy64.exe is executed instead. Here is actual code RichCopy uses.

hKernel32 = GetModuleHandle(TEXT("kernel32.dll"));
 if (hKernel32)
 {
  pIsWow64Process   = (LPISWOW64PROCESS)GetProcAddress(hKernel32, (LPCSTR)"IsWow64Process");
  pGetNativeSystemInfo = (LPGETNATIVESYSTEMINFO)GetProcAddress(hKernel32, (LPCSTR)"GetNativeSystemInfo");
  if (pIsWow64Process)
   (*pIsWow64Process)(GetCurrentProcess(), &fWow64);
  if (pGetNativeSystemInfo)
   (*pGetNativeSystemInfo)(&si);   FreeModule(hKernel32);
 }
 else
 {
  GetSystemInfo(&si);
 } .....
  if ((sizeof(LONG_PTR) == sizeof(DWORD)) &&
  (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64))
 {