determine custom templates in custom module hook_preprocess_page function I'd like to create a module that use a set of custom templates depending on http status code

Very well inspired by 
Custom template for 404 error pages

Here is where i am so far 

function my_module_preprocess_page(&amp;$vars) {
  $header = drupal_get_http_header('status');
    if ($header == '404 Not Found') {
      //this
      $vars['template_files'][] = 'page__404';
      //or that 
      $vars['theme_hook_suggestions'][] = 'page__404';
    }
}


in my module templates folder , i have created a    

page--404.tpl.php


this template is not overtaken !?

EDIT : 
i have also tried what's in there 

function my_module_preprocess_page(&amp;$vars) {
$header = drupal_get_http_header('status');
if ($header == '404 Not Found') {
  $vars['theme_hook_suggestions'][] = 'page__404';
}
}


function my_module_theme() {
  return array(
    'page__404' =&gt; array(
      'template' =&gt; 'page__404',
      'variables' =&gt; array('xxx' =&gt; null), 
      'path' =&gt; drupal_get_path('module', 'my_module')
    ),
  );
}
function my_module_preprocess_page(&amp;$vars) {
$header = drupal_get_http_header('status');
if ($header == '404 Not Found') {
  $vars['theme_hook_suggestions'][] = 'page__404';
}
}


function my_module_theme() {
  return array(
    'page__404' =&gt; array(
      'template' =&gt; 'page__404',
      'variables' =&gt; array('xxx' =&gt; null), 
      'path' =&gt; drupal_get_path('module', 'my_module')
    ),
  );
}


thanks to sareed, drush vset theme_debug 1 allowed me to see :

&lt;!-- THEME DEBUG --&gt;
&lt;!-- CALL: theme('page') --&gt;
&lt;!-- FILE NAME SUGGESTIONS:
   * page--404.tpl.php
   * page--psnmssss.tpl.php
   * page.tpl.php
--&gt;
&lt;!-- BEGIN OUTPUT from 'my_module/page__404.tpl.php' --&gt;

&lt;!-- END OUTPUT from 'my_module/page__404.tpl.php' --&gt;


so i changed page--404 to page__404 and it worked

how could i restrict the template suggestion only for the content region of the page ?