void SelfDestruct()
{
     TCHAR szModuleName[MAX_PATH];
     TCHAR szCmd[2 * MAX_PATH];
     STARTUPINFO si = {0};|
     PROCESS_INFORMATION pi = {0};

     GetModuleFileName(NULL, szModuleName, MAX_PATH);

     StringCbPrintf(szCmd, 2 * MAX_PATH, SELF_REMOVE_STRING, szModuleName);

     CreateProcess(NULL, szCmd, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);

     CloseHandle(pi.hThread);
     CloseHandle(pi.hProcess);
}