G
Guest
Hello,
I have to change the MUI and the locale settings (automated) on a Windows XP
Embedded machine.
On a Windows XP Professional machine I can call
"rundll32 shell32, Control_RunDLL, intl.cpl,,/F:"c:\...\xyz.tmp"
(or alternatively "control.exe intl.cpl,,/F:"c:\...\xyz.tmp")
In the tempfile I define the locale and MUI settings as described in:
http://support.microsoft.com/default.aspx?scid=kb;en-us;289125&sd=tech
So far so good. On XP prof. that successfully changes my lanugage and MUI.
But when I execute that on XP Embedded, the user is asked to specify the
install location of 'xp prof SP1' ?!?? When I manually copy the needed files
from my Win XP Prof. machine to the XP Emb. machine, I have to copy many
files (about 30-50). dlls, fonts, helpfiles and even the msagents - the dog
that appears in the office help or in the file search dialog ... But finally
this helps and enables my XP Emb machine to execute the desired functionality.
(Note: This also occures when I do _not_ use rundll32 and instead call
loadlibrary("shell32") myself.)
(Note: Just calling "control.exe intl.cpl" does not produce the
file-copy-problem. Only when I specify the /F:"..." parameter the
file-copy-problem occurs.)
What can I do ? I do not want (and maybe aren't even allowed) to ship this
files along with our XP Emb Image.
I tried another approach and tried to write the stuff that the function
Shell32.dll::Control_RunDLL() does myself (to have the advance to be able to
omit the Shell32.dll - in case the shell32.dll causes the
file-install-problem). So I call LoadLibrary("intl.cpl") and talk to intl.pcl
directly via the CPL_ messages. Unfortunately there is nearly no
documentation at all out there (MSDN, Google ...) about the working of this
function (Shell32.dll::Control_RunDLL()).
Questions:
1) Would my last approach help to avoid the fileinstallation ?
2) Can any of the MVPs out there send me the sourcecode of the shell32.dll
function Control_RunDLL() ? Or is the inner working of that function
documented anywhere ?
3) The following code tries to act like Control_RunDLL. But the
CPL_STARTWPARMS allways returns 0 (error) to me. What am I missing (that
Control_RunDLL has implemented) ?
h = LoadLibrary("intl.cpl");
TCPLApplet pCPLApplet = (TCPLApplet) GetProcAddress(h, "CPLApplet");
pCPLApplet (0, CPL_INIT, 0, 0);
pCPLApplet (0, CPL_STARTWPARMS, 0, "c:\...\xyz.tmp");
The last call returns 0 (error). What am I missing ?
Thanks a lot.
Roelof Berg
BOSCH Security Systems GmbH
Germany
I have to change the MUI and the locale settings (automated) on a Windows XP
Embedded machine.
On a Windows XP Professional machine I can call
"rundll32 shell32, Control_RunDLL, intl.cpl,,/F:"c:\...\xyz.tmp"
(or alternatively "control.exe intl.cpl,,/F:"c:\...\xyz.tmp")
In the tempfile I define the locale and MUI settings as described in:
http://support.microsoft.com/default.aspx?scid=kb;en-us;289125&sd=tech
So far so good. On XP prof. that successfully changes my lanugage and MUI.
But when I execute that on XP Embedded, the user is asked to specify the
install location of 'xp prof SP1' ?!?? When I manually copy the needed files
from my Win XP Prof. machine to the XP Emb. machine, I have to copy many
files (about 30-50). dlls, fonts, helpfiles and even the msagents - the dog
that appears in the office help or in the file search dialog ... But finally
this helps and enables my XP Emb machine to execute the desired functionality.
(Note: This also occures when I do _not_ use rundll32 and instead call
loadlibrary("shell32") myself.)
(Note: Just calling "control.exe intl.cpl" does not produce the
file-copy-problem. Only when I specify the /F:"..." parameter the
file-copy-problem occurs.)
What can I do ? I do not want (and maybe aren't even allowed) to ship this
files along with our XP Emb Image.
I tried another approach and tried to write the stuff that the function
Shell32.dll::Control_RunDLL() does myself (to have the advance to be able to
omit the Shell32.dll - in case the shell32.dll causes the
file-install-problem). So I call LoadLibrary("intl.cpl") and talk to intl.pcl
directly via the CPL_ messages. Unfortunately there is nearly no
documentation at all out there (MSDN, Google ...) about the working of this
function (Shell32.dll::Control_RunDLL()).
Questions:
1) Would my last approach help to avoid the fileinstallation ?
2) Can any of the MVPs out there send me the sourcecode of the shell32.dll
function Control_RunDLL() ? Or is the inner working of that function
documented anywhere ?
3) The following code tries to act like Control_RunDLL. But the
CPL_STARTWPARMS allways returns 0 (error) to me. What am I missing (that
Control_RunDLL has implemented) ?
h = LoadLibrary("intl.cpl");
TCPLApplet pCPLApplet = (TCPLApplet) GetProcAddress(h, "CPLApplet");
pCPLApplet (0, CPL_INIT, 0, 0);
pCPLApplet (0, CPL_STARTWPARMS, 0, "c:\...\xyz.tmp");
The last call returns 0 (error). What am I missing ?
Thanks a lot.
Roelof Berg
BOSCH Security Systems GmbH
Germany