XP上 用VC代码设置主题风格有关问题

XP下 用VC代码设置主题风格问题
C/C++ code
HKEY hkey = NULL;

    char *pSubkey = "Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager";
    char *pValueName = "DllName"; 
    char *pKeyValue = "%SystemRoot%\\Resources\\Theme\\白色法拉利\\白色法拉利.msstyles";    

    //char *pKeyValue = "%SystemRoot%\\Resources\\Themes\\我们的浪漫\\cursor\\AppStarting.ani";
    //char *pSubkey = "Control Panel\\Cursors";
    //char *pValueName = "AppStarting"; 

    int nIndex = strlen(pKeyValue) + 1;
    BYTE szValue[MAX_PATH] = {0};
    memcpy(szValue, pKeyValue, nIndex);

    ::RegOpenKeyEx(HKEY_CURRENT_USER, pSubkey, 0, KEY_WRITE, &hkey);
    if (hkey)
    {
        ::RegSetValueEx(hkey, pValueName, NULL, REG_EXPAND_SZ, szValue, nIndex);        
    }

    ::RegCloseKey(hkey);
    SystemParametersInfo(SPI_SETCURSORS, 0, NULL, SPIF_SENDCHANGE);
}


我想实现用代码更改XP主题, 修改注册表后重启/注销电脑,主题可以更改,
现在我要的效果是不用重启就可以直接更改, 那些重启资源管理器的方法都没用, 发消息也不好使(也许是我方法有误)
应该是要使用 SystemParametersInfo API 只是我不知道参数该怎么带
哪位大大知道的 麻烦来讨论下 在线等...

------解决方案--------------------
以前研究过,StyleXP,WindowBlinds,XP变脸王之类的
一直没找到接口
记得是用重启Themes服务实现的

有实力的话,可以起逆向一下上述软件
或者调试一下“桌面右键属性 - 显示 属性”那个控制面板
------解决方案--------------------
http://topic.****.net/u/20110105/11/4352146f-3f3a-40ee-91d6-76eb53d3da0a.html?25016
------解决方案--------------------
C/C++ code

  typedef int (__stdcall *SetSystemVisualStyle)(LPCWSTR, LPCWSTR, LPCWSTR, int);

  HMODULE hmUxtheme = LoadLibrary("uxtheme.dll");
  if(hmUxtheme)
  {
    SetSystemVisualStyle SetSystemVisualStylePtr = (SetSystemVisualStyle)GetProcAddress(hmUxtheme, MAKEINTRESOURCE(65));
    if(SetSystemVisualStylePtr)
      SetSystemVisualStylePtr(L"C:\\WINDOWS\\Resources\\Themes\\Luna\\luna.msstyles", L"NormalColor", L"NormalSize", 33);
    //FreeLibrary(hmUxtheme);
  }