7zsd.sfx / 7zSD_En.CHM: Undocumented Features
7zsd.sfx / 7zSD_En.CHM: Undocumented Features
7zSD_En.chm is the English help manual for the modified 7zSFX module.
It can be found here.
The last version of 7zSD_En.chm was released for build 1501 of Oleg Scherbakov's modified 7zSFX module.
The current version of the modified module (build 2367) has several new features which are undocumented in that English version of the Help manual. A thread which reveals and explains these undocumented features may be helpful to users of the modified module. Anyone who has information on any undocumented features feel free to supplement, provide corrections, or expand on anything posted here. An authorative source on using the module is gora, who I hope will find time to post in this thread.
My main source of information is 7zSD_RU.chm, the Russian Help manual for build 2100 of the module. I downloaded it several months ago thinking to translate it into English with the help of Google Translate, but have not had the time to do so. The information should still be up to date for build 2367, which was a bugfix release. So I am starting this thread to get the info out to English users of the modified 7zSFX module. Some of the information I have accumulated from posts by gora or Oleg_Sch. And finally, a tiny bit of the information is from my own experience using the module.
Features in version 1.5.0.2367 (beta) not available in verion 1.4.3.2367 (stable):
%%P - environment variable
Values 4 and 8 for MiscFlags option.
waitall: -command prefix
BeginPromptTimeout="n" -timeout option for BeginPrompt or BeginPrompt+Extract dialog windows.
----------------------------------------------------------------------------
gora, please correct me if I post anything inaccurate or incomplete.
It can be found here.
The last version of 7zSD_En.chm was released for build 1501 of Oleg Scherbakov's modified 7zSFX module.
The current version of the modified module (build 2367) has several new features which are undocumented in that English version of the Help manual. A thread which reveals and explains these undocumented features may be helpful to users of the modified module. Anyone who has information on any undocumented features feel free to supplement, provide corrections, or expand on anything posted here. An authorative source on using the module is gora, who I hope will find time to post in this thread.
My main source of information is 7zSD_RU.chm, the Russian Help manual for build 2100 of the module. I downloaded it several months ago thinking to translate it into English with the help of Google Translate, but have not had the time to do so. The information should still be up to date for build 2367, which was a bugfix release. So I am starting this thread to get the info out to English users of the modified 7zSFX module. Some of the information I have accumulated from posts by gora or Oleg_Sch. And finally, a tiny bit of the information is from my own experience using the module.
Features in version 1.5.0.2367 (beta) not available in verion 1.4.3.2367 (stable):
%%P - environment variable
Values 4 and 8 for MiscFlags option.
waitall: -command prefix
BeginPromptTimeout="n" -timeout option for BeginPrompt or BeginPrompt+Extract dialog windows.
----------------------------------------------------------------------------
gora, please correct me if I post anything inaccurate or incomplete.
Last edited by shiner on Sat Apr 14, 2012 2:48 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."
New Command prefixes:
x64
A command with this prefix is executed only on a 64-bit system. Also, the program to be run in the command will be performed in a 64-bit environment, regardless of bit depth of the module (x64 or x86).
When used on a 32-bit system, any command with this prefix is ignored and the program specified in the parameter will not be executed.
x86
A command with this prefix is executed only on a 32-bit system. When used on a 64-bit system, any command with this prefix is ignored and the program specified in the parameter will not be executed.
waitall (see note below)
A command with this prefix makes the module wait for the command to run and complete, including all the "child" processes that were created by running the command, before preceding to the next command.
Examples:
Note: Looking through my notes for this post, the waitall prefix is only present in the 1.5 line, and began in version 1.5.0.1794.
I have not been successful in using the waitall prefix. gora may be able to shed some additional light on it.
x64
A command with this prefix is executed only on a 64-bit system. Also, the program to be run in the command will be performed in a 64-bit environment, regardless of bit depth of the module (x64 or x86).
When used on a 32-bit system, any command with this prefix is ignored and the program specified in the parameter will not be executed.
x86
A command with this prefix is executed only on a 32-bit system. When used on a 64-bit system, any command with this prefix is ignored and the program specified in the parameter will not be executed.
waitall (see note below)
A command with this prefix makes the module wait for the command to run and complete, including all the "child" processes that were created by running the command, before preceding to the next command.
Examples:
Code: Select all
RunProgram="x86:setup_x86.exe"
RunProgram="x64:setup_x64.exe"
RunProgram_"waitall:setup.exe"
I have not been successful in using the waitall prefix. gora may be able to shed some additional light on it.
Last edited by shiner on Fri Apr 13, 2012 6:28 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."
A new variable has been defined in addition to the %%M, %%S, %%T variables,
(this variable was added starting in build 1.5.0.2079 and does not appear present in the stable 1.4 line)
%%P
- this variable is equivalent to "x86" or "x64" (no quotes) depending on the OS architecture in which the module is run.
One possible example:
where in the SFX you have two directories named:
x86
x64
inside the x86 directory is a 32 bit installation named "typical.msi"
inside the x64 directory is a 64 bit installation named "typical.msi"
Many other possibilities to use this variable.
(this variable was added starting in build 1.5.0.2079 and does not appear present in the stable 1.4 line)
%%P
- this variable is equivalent to "x86" or "x64" (no quotes) depending on the OS architecture in which the module is run.
One possible example:
Code: Select all
RunProgram="%%P\\typical.msi"
x86
x64
inside the x86 directory is a 32 bit installation named "typical.msi"
inside the x64 directory is a 64 bit installation named "typical.msi"
Many other possibilities to use this variable.
Last edited by shiner on Fri Apr 13, 2012 6:34 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."
Other pre-defined variables and their destination directories (for XP):
7zSfxFolder00=C:\Documents and Settings\CurrentUser\Desktop
7zSfxFolder02=C:\Documents and Settings\CurrentUser\Start Menu\Programs
7zSfxFolder05=C:\Documents and Settings\CurrentUser\My Documents
7zSfxFolder06=C:\Documents and Settings\CurrentUser\Favorites
7zSfxFolder07=C:\Documents and Settings\CurrentUser\Start Menu\Programs\Startup
7zSfxFolder08=C:\Documents and Settings\CurrentUser\Recent
7zSfxFolder09=C:\Documents and Settings\CurrentUser\SendTo
7zSfxFolder11=C:\Documents and Settings\CurrentUser\Start Menu
7zSfxFolder13=C:\Documents and Settings\CurrentUser\My Documents\My Music
7zSfxFolder14=C:\Documents and Settings\CurrentUser\My Documents\My Videos
7zSfxFolder16=C:\Documents and Settings\CurrentUser\Desktop
7zSfxFolder19=C:\Documents and Settings\CurrentUser\NetHood
7zSfxFolder20=C:\WINDOWS\Fonts
7zSfxFolder21=C:\Documents and Settings\CurrentUser\Templates
7zSfxFolder22=C:\Documents and Settings\All Users\Start Menu
7zSfxFolder23=C:\Documents and Settings\All Users\Start Menu\Programs
7zSfxFolder24=C:\Documents and Settings\All Users\Start Menu\Programs\Startup
7zSfxFolder25=C:\Documents and Settings\All Users\Desktop
7zSfxFolder26=C:\Documents and Settings\CurrentUser\Application Data
7zSfxFolder27=C:\Documents and Settings\CurrentUser\PrintHood
7zSfxFolder28=C:\Documents and Settings\CurrentUser\Local Settings\Application Data
7zSfxFolder31=C:\Documents and Settings\All Users\Favorites
7zSfxFolder32=C:\Documents and Settings\CurrentUser\Local Settings\Temporary Internet Files
7zSfxFolder33=C:\Documents and Settings\CurrentUser\Cookies
7zSfxFolder34=C:\Documents and Settings\CurrentUser\Local Settings\History
7zSfxFolder35=C:\Documents and Settings\All Users\Application Data
7zSfxFolder36=C:\WINDOWS
7zSfxFolder37=C:\WINDOWS\system32
7zSfxFolder38=C:\Program Files
7zSfxFolder39=C:\Documents and Settings\CurrentUser\My Documents\My Pictures
7zSfxFolder40=C:\Documents and Settings\CurrentUser
7zSfxFolder41=C:\WINDOWS\system32
7zSfxFolder43=C:\Program Files\Common Files
7zSfxFolder45=C:\Documents and Settings\All Users\Templates
7zSfxFolder46=C:\Documents and Settings\All Users\Shared Documents
7zSfxFolder47=C:\Documents and Settings\All Users\Start Menu\Programs\Administrative Tools
7zSfxFolder53=C:\Documents and Settings\All Users\Shared Documents\My Music
7zSfxFolder54=C:\Documents and Settings\All Users\Shared Documents\My Pictures
7zSfxFolder55=C:\Documents and Settings\All Users\Shared Documents\My Videos
7zSfxFolder56=C:\WINDOWS\Resources
7zSfxFolder59=C:\Documents and Settings\CurrentUser\Local Settings\Application Data\Microsoft\CD Burning
Quick Launch shortcut Example:
Administrative Tools shortcut Example:
To use as a variable in a commmand, wrap the variable names in %, like:
Someone please be kind enough to post a list of the destinations for the above variables on Win7.
7zSfxFolder00=C:\Documents and Settings\CurrentUser\Desktop
7zSfxFolder02=C:\Documents and Settings\CurrentUser\Start Menu\Programs
7zSfxFolder05=C:\Documents and Settings\CurrentUser\My Documents
7zSfxFolder06=C:\Documents and Settings\CurrentUser\Favorites
7zSfxFolder07=C:\Documents and Settings\CurrentUser\Start Menu\Programs\Startup
7zSfxFolder08=C:\Documents and Settings\CurrentUser\Recent
7zSfxFolder09=C:\Documents and Settings\CurrentUser\SendTo
7zSfxFolder11=C:\Documents and Settings\CurrentUser\Start Menu
7zSfxFolder13=C:\Documents and Settings\CurrentUser\My Documents\My Music
7zSfxFolder14=C:\Documents and Settings\CurrentUser\My Documents\My Videos
7zSfxFolder16=C:\Documents and Settings\CurrentUser\Desktop
7zSfxFolder19=C:\Documents and Settings\CurrentUser\NetHood
7zSfxFolder20=C:\WINDOWS\Fonts
7zSfxFolder21=C:\Documents and Settings\CurrentUser\Templates
7zSfxFolder22=C:\Documents and Settings\All Users\Start Menu
7zSfxFolder23=C:\Documents and Settings\All Users\Start Menu\Programs
7zSfxFolder24=C:\Documents and Settings\All Users\Start Menu\Programs\Startup
7zSfxFolder25=C:\Documents and Settings\All Users\Desktop
7zSfxFolder26=C:\Documents and Settings\CurrentUser\Application Data
7zSfxFolder27=C:\Documents and Settings\CurrentUser\PrintHood
7zSfxFolder28=C:\Documents and Settings\CurrentUser\Local Settings\Application Data
7zSfxFolder31=C:\Documents and Settings\All Users\Favorites
7zSfxFolder32=C:\Documents and Settings\CurrentUser\Local Settings\Temporary Internet Files
7zSfxFolder33=C:\Documents and Settings\CurrentUser\Cookies
7zSfxFolder34=C:\Documents and Settings\CurrentUser\Local Settings\History
7zSfxFolder35=C:\Documents and Settings\All Users\Application Data
7zSfxFolder36=C:\WINDOWS
7zSfxFolder37=C:\WINDOWS\system32
7zSfxFolder38=C:\Program Files
7zSfxFolder39=C:\Documents and Settings\CurrentUser\My Documents\My Pictures
7zSfxFolder40=C:\Documents and Settings\CurrentUser
7zSfxFolder41=C:\WINDOWS\system32
7zSfxFolder43=C:\Program Files\Common Files
7zSfxFolder45=C:\Documents and Settings\All Users\Templates
7zSfxFolder46=C:\Documents and Settings\All Users\Shared Documents
7zSfxFolder47=C:\Documents and Settings\All Users\Start Menu\Programs\Administrative Tools
7zSfxFolder53=C:\Documents and Settings\All Users\Shared Documents\My Music
7zSfxFolder54=C:\Documents and Settings\All Users\Shared Documents\My Pictures
7zSfxFolder55=C:\Documents and Settings\All Users\Shared Documents\My Videos
7zSfxFolder56=C:\WINDOWS\Resources
7zSfxFolder59=C:\Documents and Settings\CurrentUser\Local Settings\Application Data\Microsoft\CD Burning
Quick Launch shortcut Example:
Code: Select all
Shortcut="26,{%Path1%\\Program.EXE},{},{Microsoft\\Internet Explorer\\Quick Launch},{Description},{ProgramName}"
Code: Select all
Shortcut="47,{%Path2%Program.EXE},{},{},{Description},{ProgramName}"
Code: Select all
RunProgram="hidcon:cmd /c copy \"%%T\\program.exe\" \"%7zSfxFolder24%\" /y"
Last edited by shiner on Tue Apr 10, 2012 9:48 am, edited 1 time in total.
"You can lead a horse to water, but you can't make it drink."
MiscFlags="x"
(This option was first added in 1.5.0.1774 and later to 1.4.0.1898. The value 4 was added in 1.5.0.1795, and the value 8 was added in 1.5.0.1937. However, I do not believe the values 4 and 8 were ever added to the stable 1.4 line.)
The sum of the numeric values of flags, or the expanded expression "1+2". The order of the numerical values in the expression is irrevelant. Supported numerical values are defined as follows:
1 - Do not check the disk space required for the process of extracting.
2 - Do not check the size of physical memory required for the process of extracting, (useful for testing large highly compressed SFX in VM with limited memory.)
4 - Request administrative rights for all operations of the current SFX, if the user running the SFX does not have admistrative rights , (according to yumeyao in a past post, it does this by creating a separate process.)
8 - A separate password prompt window (dialog 'PasswordTitle') after the dialog 'BeginPrompt' and 'ExtractPath' or 'BeginPrompt' 'ExtractPath'. Without this flag, the dialog 'PasswordTitle' will appear in the 'BeginPrompt' and 'ExtractPath' or 'BeginPrompt' 'ExtractPath ' dialogs.
One possible example:
These options can be overridden from the command line by using the switch '-mfX'.
(This option was first added in 1.5.0.1774 and later to 1.4.0.1898. The value 4 was added in 1.5.0.1795, and the value 8 was added in 1.5.0.1937. However, I do not believe the values 4 and 8 were ever added to the stable 1.4 line.)
The sum of the numeric values of flags, or the expanded expression "1+2". The order of the numerical values in the expression is irrevelant. Supported numerical values are defined as follows:
1 - Do not check the disk space required for the process of extracting.
2 - Do not check the size of physical memory required for the process of extracting, (useful for testing large highly compressed SFX in VM with limited memory.)
4 - Request administrative rights for all operations of the current SFX, if the user running the SFX does not have admistrative rights , (according to yumeyao in a past post, it does this by creating a separate process.)
8 - A separate password prompt window (dialog 'PasswordTitle') after the dialog 'BeginPrompt' and 'ExtractPath' or 'BeginPrompt' 'ExtractPath'. Without this flag, the dialog 'PasswordTitle' will appear in the 'BeginPrompt' and 'ExtractPath' or 'BeginPrompt' 'ExtractPath ' dialogs.
One possible example:
Code: Select all
MiscFlags="6"
These options can be overridden from the command line by using the switch '-mfX'.
Last edited by shiner on Fri Apr 13, 2012 6:54 am, edited 2 times in total.
"You can lead a horse to water, but you can't make it drink."
New password dialog box window options.
PasswordText="text"
Displays the specified text OVER password field (the default is "Enter password").
Example:
PasswordTitle="new_title"
Changes the title of the Password dialog window, the default is the name of SFX archive (without extension). You can specify something like "This archive is encrypted."
Example:
I think these are to be used with MiscFlags=8 option...
PasswordText="text"
Displays the specified text OVER password field (the default is "Enter password").
Example:
Code: Select all
PasswordText="Please enter the password."
PasswordTitle="new_title"
Changes the title of the Password dialog window, the default is the name of SFX archive (without extension). You can specify something like "This archive is encrypted."
Example:
Code: Select all
PasswordTitle="Password Protected Archive!"
"You can lead a horse to water, but you can't make it drink."
Change default title for warning boxes. (There are currently two possible warning text messages.)
WarningTitle="title_for_warnings"
The window title warning (default: "7z SFX: Warning").
If the parameter is missing, instead of 'WarningTitle' in the warning window will display the name of SFX archive (without extension) to add ": a warning." If the name of SFX archive "unable to determine", it will display the default value.
The two possible warning text messages are defined in the module:
"Not enough physical memory.
Unpacking can take a long time."
or
"On the disk is not enough space to unpack."
Example:
These warning boxes can be avoided by setting flags in the parameter 'MiscFlags', or
the warning windows can also be suppressed by using the switch '-mfX' from the command line.
WarningTitle="title_for_warnings"
The window title warning (default: "7z SFX: Warning").
If the parameter is missing, instead of 'WarningTitle' in the warning window will display the name of SFX archive (without extension) to add ": a warning." If the name of SFX archive "unable to determine", it will display the default value.
The two possible warning text messages are defined in the module:
"Not enough physical memory.
Unpacking can take a long time."
or
"On the disk is not enough space to unpack."
Example:
Code: Select all
WarningTitle="7zSFX archive extraction warning!"
the warning windows can also be suppressed by using the switch '-mfX' from the command line.
Last edited by shiner on Tue Apr 10, 2012 9:42 am, edited 1 time in total.
"You can lead a horse to water, but you can't make it drink."
New Command Line Switches
-bptX
Specifies a time countdown display dialog 'BeginPrompt' or a blend of dialogue 'BeginPrompt' + 'ExtractPath' and the default button, where X:
1 ... 999 - display window 1 ... 999 seconds, the countdown is displayed on the button "Yes" ("OK"), and upon its expiry, it will be pressed automatically.
-1 ... -999 - Display window 1 ... 999 seconds, the countdown is displayed on the button "No" ("Cancel"), and upon its expiry, it will be pressed automatically.
0 - ignored
This switch is used to change the 'BeginPromptTimeout' value which has been written in the configuration file.
========================================================
-mfx
The elevation of rights, separate password prompt, and showing of warning dialog boxes ('WarningTitle') can be suppressed with '-mfx' switch, where X is the sum of values of the MiscFlags:
1 - do not check the disk space required for the extraction process
2 - do not check the size of physical memory required for the extraction process
4 - to request administrative rights for all operations of the current SFX, if such rights do not have the user running the SFX.
8 - the password prompt (dialog 'PasswordTitle') after the dialogues 'BeginPrompt' and 'ExtractPath', without this flag, the dialog 'PasswordTitle' dialog will appear before the 'BeginPrompt' and 'ExtractPath'
This switch is used to override values set in the option 'MiscFlags' which have been written in the configuration file.
========================================================
-pX
Specifies the password for encrypted SFX archives, where X = password with which the packaged source 7z archive has been encrypted.
Password without spaces can be specified without quotes. If there are gaps in the password, it must be in quotes.
Examples of use:
-sfx.exe -pPassword
-sfx.exe -p"Password with a space"
========================================================
-sfxlang
Specifies the language section of the existing configuration file that will be used when the SFX is executed.
The written form:-sfxlang: xxxx (where xxxx - language identifier). This switch must be the first on the command line.
Here are examples of switches to use Russian, Ukrainian, and English sections of an SFX:
-sfxlang:1049
-sfxlang:1058
-sfxlang:1033
Note: the configuration must be written to support the language before this switch will work on a multi-language section SFX.
-bptX
Specifies a time countdown display dialog 'BeginPrompt' or a blend of dialogue 'BeginPrompt' + 'ExtractPath' and the default button, where X:
1 ... 999 - display window 1 ... 999 seconds, the countdown is displayed on the button "Yes" ("OK"), and upon its expiry, it will be pressed automatically.
-1 ... -999 - Display window 1 ... 999 seconds, the countdown is displayed on the button "No" ("Cancel"), and upon its expiry, it will be pressed automatically.
0 - ignored
This switch is used to change the 'BeginPromptTimeout' value which has been written in the configuration file.
========================================================
-mfx
The elevation of rights, separate password prompt, and showing of warning dialog boxes ('WarningTitle') can be suppressed with '-mfx' switch, where X is the sum of values of the MiscFlags:
1 - do not check the disk space required for the extraction process
2 - do not check the size of physical memory required for the extraction process
4 - to request administrative rights for all operations of the current SFX, if such rights do not have the user running the SFX.
8 - the password prompt (dialog 'PasswordTitle') after the dialogues 'BeginPrompt' and 'ExtractPath', without this flag, the dialog 'PasswordTitle' dialog will appear before the 'BeginPrompt' and 'ExtractPath'
This switch is used to override values set in the option 'MiscFlags' which have been written in the configuration file.
========================================================
-pX
Specifies the password for encrypted SFX archives, where X = password with which the packaged source 7z archive has been encrypted.
Password without spaces can be specified without quotes. If there are gaps in the password, it must be in quotes.
Examples of use:
-sfx.exe -pPassword
-sfx.exe -p"Password with a space"
========================================================
-sfxlang
Specifies the language section of the existing configuration file that will be used when the SFX is executed.
The written form:-sfxlang: xxxx (where xxxx - language identifier). This switch must be the first on the command line.
Here are examples of switches to use Russian, Ukrainian, and English sections of an SFX:
-sfxlang:1049
-sfxlang:1058
-sfxlang:1033
Note: the configuration must be written to support the language before this switch will work on a multi-language section SFX.
Last edited by shiner on Tue Apr 17, 2012 10:45 pm, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."
New Option
BeginPromptTimeout="n"
This option can be used when the BeginPrompt or BeginPrompt+Extract command is used in a configuration file. (Also look at GUIFlags=64, and GUIFlags=128 options)
The value "n" defines the number of seconds the "Begin Prompt" or the "BeginPrompt + Extract "dialog window is shown before automatically proceeding on.
If n = a positive integer between 1 and 999 will countdown on the "YES" button. If and once the timeout completes the YES button is chosen and the installation proceeds.
If n = a negative number between -1 and -999 will countdown on the "NO" button. If and once the timeout completes the "NO" button is chosen and the installation is aborted.
If n = 0, there will be no countdown, "YES" or "NO' must be selected by the user for the installation to proceed or abort.
BeginPromptTimeout="n"
This option can be used when the BeginPrompt or BeginPrompt+Extract command is used in a configuration file. (Also look at GUIFlags=64, and GUIFlags=128 options)
The value "n" defines the number of seconds the "Begin Prompt" or the "BeginPrompt + Extract "dialog window is shown before automatically proceeding on.
If n = a positive integer between 1 and 999 will countdown on the "YES" button. If and once the timeout completes the YES button is chosen and the installation proceeds.
If n = a negative number between -1 and -999 will countdown on the "NO" button. If and once the timeout completes the "NO" button is chosen and the installation is aborted.
If n = 0, there will be no countdown, "YES" or "NO' must be selected by the user for the installation to proceed or abort.
"You can lead a horse to water, but you can't make it drink."
1. I have made some edits and added more info to my previous posts.
2. There is more info in the Russian Help manual which I cannot find in the English version.
Mostly about configuration file "Sections." I could attempt a post on it but I hesitate because it is a bit long and mostly concerns multi-platform/multi-language configuration files of a type which haven't been used much in this forum.
2. There is more info in the Russian Help manual which I cannot find in the English version.
Mostly about configuration file "Sections." I could attempt a post on it but I hesitate because it is a bit long and mostly concerns multi-platform/multi-language configuration files of a type which haven't been used much in this forum.
"You can lead a horse to water, but you can't make it drink."
- ricktendo64
- Posts: 3214
- Joined: Mon May 22, 2006 12:27 am
- Location: Honduras
I assume these are the type of features that gora took advantage of when creating his 4-in1 and 6-in-1 Java releases.shiner wrote:There is more info in the Russian Help manual which I cannot find in the English version.
Mostly about configuration file "Sections." I could attempt a post on it but I hesitate because it is a bit long and mostly concerns multi-platform/multi-language configuration files of a type which haven't been used much in this forum.
I would think that the multi-platform (x86/x64) features could be useful for most addon/installer makers these days. And ricktendo64, Onepiece, and others might could use the multi-language parts for the international releases they do.
Thanks for posting all of this shiner. I hope that gora stops by and provides any corrections and other input that might be helpful.
Cheers and Regards
I should clarify the multi-language section part I mentioned. The only languages currently supported by the module as far as multi- language sections are concerned are Russian, Ukrainian, and English. That's it. "Multi-language" here seems to mean targeting the use of loacalized installers for those 3 languages and maybe also dialog box support for them as well. Other languages are not yet supported.bphlpt wrote:And ricktendo64, Onepiece, and others might could use the multi-language parts for the international releases they do.shiner wrote:There is more info in the Russian Help manual which I cannot find in the English version.
Mostly about configuration file "Sections." I could attempt a post on it but I hesitate because it is a bit long and mostly concerns multi-platform/multi-language configuration files of a type which haven't been used much in this forum.
Correction: Built-in messages for dialog boxes or either in Russian or English (only). If the 7zSFX is run on a system with a non-Russian interface, the built-in English messages are always shown. User-defined text in the dialog boxes can be in any language and for a multi-language config.txt used correctly when the appropriate language section has been defined in the configuration file.
So, for example, if the config.txt has two sections starting with:
Code: Select all
;!@Install@!UTF-8:Language:1049!
;!@Install@!UTF-8:Language:1033!
Each section is closed with:
Code: Select all
;!@InstallEnd@:Language:1049!
;!@InstallEnd@:Language:1033!
Code: Select all
;!@Install@!UTF-8:x86!
;!@Install@!UTF-8:x64!
;!@Install@!UTF-8:amd64!
and closed with:
Code: Select all
;!@InstallEnd@:x86!
;!@InstallEnd@:x64!
;!@InstallEnd@:amd64!
If both platform and language sections are used in the configuration file, then the order of the section heading is important and the platform pararmeter must be before the language parameter, like so:
Code: Select all
;!@Install@!UTF-8:x64:Language:1033!
RunProgram="setup_64_en.exe"
;!@InstallEnd@:x64:Language:1033!
I must admit the online translators I have been using sometimes spit out very unclear translations and deciphering them is somewhat hit and miss. Which is why gora or any other forum member who can read Russian would be of great assistance.
Last edited by shiner on Sat Apr 14, 2012 5:53 pm, edited 1 time in total.
"You can lead a horse to water, but you can't make it drink."
I do not read this forum all the time. I accidentally got into this thread.shiner wrote: gora, please correct me if I post anything inaccurate or incomplete.
1 New features of version 1.5 beta or when you do not enter the stable version 1.4. Wait when version 1.5 will take the status of the stable. This will only happen after a new stable version of 7-Zip
2 Support of multivolume and password SFX is only in the specific modules that are not laid out for download. The parameters associated with them, users can not be used without such modules
3
Built-in message modules can only be in two languages (Russian and English). All other text parameters can be in any language. This requires the appropriate language section in the config.shiner wrote:Currently supported languages are Russian, Ukrainian, and English
4
I can read Russian texts!shiner wrote:I must admit the online translators I have been using sometimes spit out very unclear translations and deciphering them is somewhat hit and miss. Which is why gora or any other forum member who can read Russian would be of great assistance.


gora, I have attempted a correction of my previous post on sections. That was a good example of my troubles with the online translators.gora wrote:3Built-in message modules can only be in two languages (Russian and English). All other text parameters can be in any language. This requires the appropriate language section in the config.shiner wrote:Currently supported languages are Russian, Ukrainian, and English
gora, you have been most helpful and thank you for replying. If you see a mistake in my posts just quote the wrong parts and say "This is not correct. It should be ..." With your help I am sure I can eventually get it right.gora wrote:4I can read Russian texts!shiner wrote:I must admit the online translators I have been using sometimes spit out very unclear translations and deciphering them is somewhat hit and miss. Which is why gora or any other forum member who can read Russian would be of great assistance.I can even write the Russian texts! But I can not write English texts.
Excuse me. My native language is Russian.
"You can lead a horse to water, but you can't make it drink."
The history of the last help file:
1.5 beta (build 2367) 21/01/12
* Pressing the "Select Folder" on x64 platforms has led to an error (gora: forum.oszone.net)
+ Button to create "New Folder" dialog "Select Folder"
1.5 beta (build 2308) 22/11/11
* Manifest and the Russian string
1.4.3-Release (build 2367) 21/01/12
* Selecting a folder on x64 platforms led to an error (gora: forum.oszone.net)
1.4.2-Release (build 2308) 11/22/11
* Incorrect conditional compilation with the option _SFX_USE_LANG (YumeYao: msfn.org)
Make two SFX with configs:shiner wrote:I have not been successful in using the waitall prefix. gora may be able to shed some additional light on it.
1
Code: Select all
;!@Install@!UTF-8!
RunProgram="hidcon:cmd /c Echo Start "" notepad.exe >test.bat"
RunProgram="test.bat"
FinishMessage="FinishMessage"
;!@InstallEnd@!
Code: Select all
;!@Install@!UTF-8!
RunProgram="hidcon:cmd /c Echo Start "" notepad.exe >test.bat"
RunProgram="waitall:test.bat"
FinishMessage="FinishMessage"
;!@InstallEnd@!
Second displays SFX finishmessage only after closing the "child" process (in this case Notepad)
==============================================
Real multilingual configs can be found: Universal Extractor (2 languages), Button for work with 7z SFX archives (5 languages, link in my signature)
This is an example of a Universal Extractor configuration file that uses a language section taken from the Russian CHM help manual.bphlpt wrote:I would think that the multi-platform (x86/x64) features could be useful for most addon/installer makers these days. And ricktendo64, Onepiece, and others might could use the multi-language parts for the international releases they do.
Text in yellow are comments translated from Russian, edited to improve the English slightly, and then expanded by me to help understand what is meant.
Edit 20120519
Clarification on the meaning of the expressions "multiple parameters" and "non-multiple parameters" :
multiple parameters are any which can be used several times in a single section of the config.txt, for example, RunProgram, SetEnvironment, Delete, Shortcut, etc.
non-multiple parameters are any which should only be used once in any section, for example, Title, InstallPath, GUIMode, GUIFlags, FinishMessage, etc.
Code: Select all
[color=yellow]; Main section, (to be loaded into the working configuration regardless of user platform or language)[/color]
[color=cyan];!@Install@!UTF-8![/color]
[color=yellow]; [1] Declare multiple parameters which are not dependent on platform or language[/color]
SetEnvironment="Name=Universal Extractor"
SetEnvironment="Vers= v1.6.1.43"
SetEnvironment="PathInst=%ProgramFiles%\\%Name%"
[color=yellow]; [2] Declare a variable which is dependent on platform or language, in this case to be used if no matching language section is found later. If a matching language section is found, this type of variable can be REPLACED in the language section.[/color]
SetEnvironment="NameInf=UExtr_en.inf"
[color=yellow]; [3] Declare non-multiple parameters that are not dependent on platform or language[/color]
InstallPath="%PathInst%"
BeginPromptTimeout="20"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
[color=yellow]; [4] Declare non-multiple parameters dependent on platform or language. Again, if no matching language section is found later these will be used. If a matching platform or language section is later found, these parameters can be REPLACED in the platform or language section found.[/color]
Title="%Name% Setup"
BeginPrompt="Installing %Name%%Vers%"
FinishMessage="%Name%%Vers% Installed!"
ExtractTitle="Extracting files ..."
ExtractDialogText="Please wait ..."
HelpText="Switches for 'silent' install:
> %%M -y -gm2 -fm0
See details on a site: http://7zsfx.info/"
[color=yellow]; [5] Multiple parameters dependent on platform or language. Multiple parameters (here 'RunProgram') can be ADDED TO or CLEARED later in a platform or language section.[/color]
RunProgram="fm20:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
[color=yellow]; [6] Multiple parameters not dependent on platform or language. That is, to be executed regardless of platform or language of the user's system. Therefore, these will not be REPLACED later in a platform or language section.[/color]
Delete="%%T\\UExtr_en.inf"
Delete="%%T\\UExtr_ru.inf"
[color=cyan];!@InstallEnd@![/color]
; =======================================================================
[color=yellow]; Language section (Russian) This section is used, if the sfx is run on a matching language system or if the sfx is run with the command-line switch: sfxlang:1049[/color]
[color=cyan];!@Install@!UTF-8:Language:1049![/color]
[color=yellow]; [7] Declare an environment variable dependent on the system language. Because this same variable was previously declared in the main section, it will be REPLACED with this string.[/color]
SetEnvironment="NameInf=UExtr_ru.inf"
[color=yellow]; [8] Non-multiple parameters dependent on the system language. These parameters will REPLACE those previously loaded by the main section, because each one is used only once in the main section.[/color]
Title="Установка %Name%"
BeginPrompt="Сейчас будет установлен %Name%%Vers%"
FinishMessage="%Name%%Vers% установлен!"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Придется подождать..."
HelpText="Ключи для 'тихой' установки:
> %%M -y -gm2 -fm0
Подробнее на сайте: http://7zsfx.info/"
[color=yellow]; [9] Multiple parameters dependent on the language of the system. The first parameter, [b]RunProgram=-[/b], CLEARS all the RunProgram parameters loaded by the main configuration. This is necessary because RunProgram is used multiple times. In the case of multiple parameters in the main section, parameters (non-multiple or multiple) in a matching platform or language section will be ADDED to (not replace) those loaded by the main section.[/color]
RunProgram=-
RunProgram="fm20:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
RunProgram="hidcon:cmd /c Echo language=Russian>>UniExtract.ini"
[color=cyan];!@InstallEnd@:Language:1049![/color]
When a 7zSFX using the modified module is run, initially the configuration file is parsed for syntax errors and if an error is found, everything stops and an error window will be shown. If no syntax errors, a "working configuration" is created from the configuration file. Although the configuration file can be written with the main section, language sections, and platform sections being in any order, creation of the working configuration is loaded in a specific order:
First, the Main Section is located and loaded to the working configuration.
Second, Platform Sections are located and loaded to the working configuration if it matches the target system's platform architecture.
Third, Language Sections are located and loaded to the working configuration if the target system's UI language matches or if the 7zSFX is run with the command-line switch: -sfxlang:nnnn
Fourth, Platform-Language Sections are located and loaded to the working configuration if both the target's system's architecture and language match.
EDIT: (I forgot something)
If a parameter is used once (non-multiple) in several different matching sections, then the version of that line in the last loaded section REPLACES the previous ones and is used in the working configuration. So suppose Title="PROGRAM NAME ..." (having different content in each section) is written in the main section, a matching platform section, and a matching language section. The line in the language section will be used in the working configuration because it is the last loaded to the working configuration and replaces the previous ones.
ONLY the Main Section is loaded to the working configuration if no MATCHING platform, language, or platform-language section is found (and the switch -sfxlang:nnnn is not used.)
Last edited by shiner on Sat May 19, 2012 5:16 am, edited 3 times in total.
"You can lead a horse to water, but you can't make it drink."
Thanks gora.gora wrote:2 shiner
Good job!
Yes, I had trouble with that when I was composing the post. So, you think "non-multiple'" should replace "single" in that post? That would be more accurate?There are some inaccuracies, but my poor English does not allow me to explain the difference between "single parameters" and "not multiple parameters"
EDIT: OK, I replaced "single" with "non-multiple" in the previous post.
Hmmm, several months ago I thought I would translate the entire manual but never made the time necessary to do it. Also, I don't read or speak Russian so maybe it's not the best idea.Would you like to take up the translation help file completely?
"You can lead a horse to water, but you can't make it drink."
What are the options and commands? In Russian help used the term parameter.shiner wrote:If an option, parameter, or command
Code: Select all
Parameter_name="Parameter_Value"
This is a great pityshiner wrote:Hmmm, several months ago I thought I would translate the entire manual but never made the time necessary to do it. Also, I don't read or speak Russian so maybe it's not the best idea.

Russian users do not need English help. English help to make the users who need it - English users.
If I need Russian help for 7-zip, then I translate it, although I do not know English.
Yes, it seems there is confusion between us about the word "parameter."gora wrote:What are the options and commands? In Russian help used the term parameter.shiner wrote:If an option, parameter, or commandThe term "command" is used to determine the parameters of a particular type: 'AutoInstall', 'AutoInstallX', 'RunProgram' & 'ExecuteFile'. In the description section the term command is not usedCode: Select all
Parameter_name="Parameter_Value"
I am not a professional programmer, but I am referring to lines like:
RunProgram=""
AutoIntall=""
Delete=""
as "commands." I could be wrong.
Also, I would call a line like:
GuiFlags=""
an option, but I guess some people might consider that a command as well.
So, it seems to me that your usage of the word "parameter" means ANY line in a configuration file that is not a Heading or Comment. I don't think that is how most people use the word "parameter" in English. (Someone please correct me if I am wrong on that.)
Which is why I added the words "options' and "commands" in my translation.
I may still attempt rewriting the entire manual.This is a great pityshiner wrote:Hmmm, several months ago I thought I would translate the entire manual but never made the time necessary to do it. Also, I don't read or speak Russian so maybe it's not the best idea.
Russian users do not need English help. English help to make the users who need it - English users.
If I need Russian help for 7-zip, then I translate it, although I do not know English.
I don't think your comparison is a fair one though.
gora, I think it is clear that, at the very least, you CAN read some English and understand what has been written. (Or are you using on online translator to read posts in this forum as I do to read posts at OSZone?)
For myself, I cannot read a word of Russian.
Anyway, I value your input because you are quite knowledgeable about the modified module and your English posts are definitely readable.
"You can lead a horse to water, but you can't make it drink."
Quoting from http://en.wikipedia.org/wiki/Parameter_ ... ogramming):
But, and I'm not an expert computer programmer either especiaqlly regarding configuration files, I can understand considering 'RunProgram=""', 'AutoIntall=""', and 'Delete=""' as commands. Quoting from http://en.wikipedia.org/wiki/Command_(computing):
But for all the above, configuration files might have their own common terminology that I am not familiar with so I could be wrong.
Regarding an earlier discussion, I'm afraid my English skills do not allow me to understand the difference between "single parameters" and "not multiple parameters". If it is not multiple, doesn't that imply single? Is the confusion due to the possibility of "none"? I'm confused.
And yes, from my working with gora in the past, I believe he does use an online translator to read and write posts in the forum, and he does do a very excellent job at it, though it is difficult for him.
Cheers and Regards
For 'GUIFlags="2+4+8+16+32+2048+4096"', GUIFlags is the name of the varable or parameter and "2+4+8+16+32+2048+4096" is the value or argument. Since there can be both optional parameters and required parameters, I would agree with gora that you should drop the use of "option" and just use parameter.Parameters are a special kind of variables, used in a subroutine to refer to one/more of the pieces of data provided as input to the subroutine
An argument is usually defined as the actual value passed to a function, procedure, or command line program.
But, and I'm not an expert computer programmer either especiaqlly regarding configuration files, I can understand considering 'RunProgram=""', 'AutoIntall=""', and 'Delete=""' as commands. Quoting from http://en.wikipedia.org/wiki/Command_(computing):
Using this as an example:In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task.
that seems to me to be executing four different commands, rather than assigning four different values to the variable "RunProgram". And for:RunProgram=-
RunProgram="fm20:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
RunProgram="hidcon:cmd /c Echo language=Russian>>UniExtract.ini"
I would consider "SetEnvironment" as a command, and "Name", "Vers", and "PathInst" as variables or paramaters.SetEnvironment="Name=Universal Extractor"
SetEnvironment="Vers= v1.6.1.43"
SetEnvironment="PathInst=%ProgramFiles%\\%Name%"
But for all the above, configuration files might have their own common terminology that I am not familiar with so I could be wrong.
Regarding an earlier discussion, I'm afraid my English skills do not allow me to understand the difference between "single parameters" and "not multiple parameters". If it is not multiple, doesn't that imply single? Is the confusion due to the possibility of "none"? I'm confused.
And yes, from my working with gora in the past, I believe he does use an online translator to read and write posts in the forum, and he does do a very excellent job at it, though it is difficult for him.
Cheers and Regards
2 gora
I don't think there was any disrespect meant by either shiner's comments or mine. And no matter whether shiner plans to do a complete English help file (which would be awesome!) or not, we really would like to understand the correct way to use all the various features available in 7-Zip in general and the modified 7zSFX module in particular. Please have patience with us as we try to understand the technical details and then try to translate the descriptions into terms that are more familiar to us. If we misunderstand anything I hope you will continue to correct us and not just "Я умываю руки!". Perhaps you could recommend someone who you feel could do a good job of helping us with the translation, or a program that you feel does a more accurate translation?
Cheers and Regards
I don't think there was any disrespect meant by either shiner's comments or mine. And no matter whether shiner plans to do a complete English help file (which would be awesome!) or not, we really would like to understand the correct way to use all the various features available in 7-Zip in general and the modified 7zSFX module in particular. Please have patience with us as we try to understand the technical details and then try to translate the descriptions into terms that are more familiar to us. If we misunderstand anything I hope you will continue to correct us and not just "Я умываю руки!". Perhaps you could recommend someone who you feel could do a good job of helping us with the translation, or a program that you feel does a more accurate translation?
Cheers and Regards
That I think is very normal in translation.gora wrote:2 shiner
Questions of the terms cause a lot of discussion here.

Well, I am much less experienced and knowledgeable than both gora and bphlpt when it comes to writing batch scripts, so I have changed the above post to use only "parameter" instead of "options," "commands," and "parameters."
After reading it again, it does seem a bit more consistent that way.
gora and bphlpt, thanks again for reviewing what I wrote and making suggestions. Your words of advice will always be welcome.
gora, I know you keep very busy so I am most impressed that you are posting here, if you cannot read English. I think that is incredible.
"You can lead a horse to water, but you can't make it drink."
- OnePiece Alb
- Posts: 525
- Joined: Sat Sep 01, 2007 7:01 pm
- Location: Albania
- Contact:
are the same?shiner wrote: Someone please be kind enough to post a list of the destinations for the above variables on Win7.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Code: Select all
/*===========================================================================
Copyright (c) Microsoft Corporation. All rights reserved.
File: shlobj.h
===========================================================================*/
#if (NTDDI_VERSION >= NTDDI_WINXP)
SHSTDAPI SHOpenFolderAndSelectItems(_In_ PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, _In_reads_opt_(cidl) PCUITEMID_CHILD_ARRAY apidl, DWORD dwFlags);
// deprecated because of parameter ambiguity
// call SHCreateItemWithParent() or SHCreateItemFromIDList() instead
SHSTDAPI SHCreateShellItem(_In_opt_ PCIDLIST_ABSOLUTE pidlParent, _In_opt_ IShellFolder *psfParent, _In_ PCUITEMID_CHILD pidl, _Outptr_ IShellItem **ppsi);
#endif
//
// SHGetSpecialFolderLocation
//
// Caller should use SHGetMalloc to obtain an allocator that can free the pidl
//
// registry entries for special paths are kept in :
#define REGSTR_PATH_SPECIAL_FOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders")
#define CSIDL_DESKTOP 0x0000 // <desktop>
#define CSIDL_INTERNET 0x0001 // Internet Explorer (icon on desktop)
#define CSIDL_PROGRAMS 0x0002 // Start Menu\Programs
#define CSIDL_CONTROLS 0x0003 // My Computer\Control Panel
#define CSIDL_PRINTERS 0x0004 // My Computer\Printers
#define CSIDL_PERSONAL 0x0005 // My Documents
#define CSIDL_FAVORITES 0x0006 // <user name>\Favorites
#define CSIDL_STARTUP 0x0007 // Start Menu\Programs\Startup
#define CSIDL_RECENT 0x0008 // <user name>\Recent
#define CSIDL_SENDTO 0x0009 // <user name>\SendTo
#define CSIDL_BITBUCKET 0x000a // <desktop>\Recycle Bin
#define CSIDL_STARTMENU 0x000b // <user name>\Start Menu
#define CSIDL_MYDOCUMENTS CSIDL_PERSONAL // Personal was just a silly name for My Documents
#define CSIDL_MYMUSIC 0x000d // "My Music" folder
#define CSIDL_MYVIDEO 0x000e // "My Videos" folder
#define CSIDL_DESKTOPDIRECTORY 0x0010 // <user name>\Desktop
#define CSIDL_DRIVES 0x0011 // My Computer
#define CSIDL_NETWORK 0x0012 // Network Neighborhood (My Network Places)
#define CSIDL_NETHOOD 0x0013 // <user name>\nethood
#define CSIDL_FONTS 0x0014 // windows\fonts
#define CSIDL_TEMPLATES 0x0015
#define CSIDL_COMMON_STARTMENU 0x0016 // All Users\Start Menu
#define CSIDL_COMMON_PROGRAMS 0X0017 // All Users\Start Menu\Programs
#define CSIDL_COMMON_STARTUP 0x0018 // All Users\Startup
#define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 // All Users\Desktop
#define CSIDL_APPDATA 0x001a // <user name>\Application Data
#define CSIDL_PRINTHOOD 0x001b // <user name>\PrintHood
#ifndef CSIDL_LOCAL_APPDATA
#define CSIDL_LOCAL_APPDATA 0x001c // <user name>\Local Settings\Applicaiton Data (non roaming)
#endif // CSIDL_LOCAL_APPDATA
#define CSIDL_ALTSTARTUP 0x001d // non localized startup
#define CSIDL_COMMON_ALTSTARTUP 0x001e // non localized common startup
#define CSIDL_COMMON_FAVORITES 0x001f
#ifndef _SHFOLDER_H_
#define CSIDL_INTERNET_CACHE 0x0020
#define CSIDL_COOKIES 0x0021
#define CSIDL_HISTORY 0x0022
#define CSIDL_COMMON_APPDATA 0x0023 // All Users\Application Data
#define CSIDL_WINDOWS 0x0024 // GetWindowsDirectory()
#define CSIDL_SYSTEM 0x0025 // GetSystemDirectory()
#define CSIDL_PROGRAM_FILES 0x0026 // C:\Program Files
#define CSIDL_MYPICTURES 0x0027 // C:\Program Files\My Pictures
#endif // _SHFOLDER_H_
#define CSIDL_PROFILE 0x0028 // USERPROFILE
#define CSIDL_SYSTEMX86 0x0029 // x86 system directory on RISC
#define CSIDL_PROGRAM_FILESX86 0x002a // x86 C:\Program Files on RISC
#ifndef _SHFOLDER_H_
#define CSIDL_PROGRAM_FILES_COMMON 0x002b // C:\Program Files\Common
#endif // _SHFOLDER_H_
#define CSIDL_PROGRAM_FILES_COMMONX86 0x002c // x86 Program Files\Common on RISC
#define CSIDL_COMMON_TEMPLATES 0x002d // All Users\Templates
#ifndef _SHFOLDER_H_
#define CSIDL_COMMON_DOCUMENTS 0x002e // All Users\Documents
#define CSIDL_COMMON_ADMINTOOLS 0x002f // All Users\Start Menu\Programs\Administrative Tools
#define CSIDL_ADMINTOOLS 0x0030 // <user name>\Start Menu\Programs\Administrative Tools
#endif // _SHFOLDER_H_
#define CSIDL_CONNECTIONS 0x0031 // Network and Dial-up Connections
#define CSIDL_COMMON_MUSIC 0x0035 // All Users\My Music
#define CSIDL_COMMON_PICTURES 0x0036 // All Users\My Pictures
#define CSIDL_COMMON_VIDEO 0x0037 // All Users\My Video
#define CSIDL_RESOURCES 0x0038 // Resource Direcotry
#ifndef _SHFOLDER_H_
#define CSIDL_RESOURCES_LOCALIZED 0x0039 // Localized Resource Direcotry
#endif // _SHFOLDER_H_
#define CSIDL_COMMON_OEM_LINKS 0x003a // Links to All Users OEM specific apps
#define CSIDL_CDBURN_AREA 0x003b // USERPROFILE\Local Settings\Application Data\Microsoft\CD Burning
// unused 0x003c
#define CSIDL_COMPUTERSNEARME 0x003d // Computers Near Me (computered from Workgroup membership)
#ifndef _SHFOLDER_H_
#define CSIDL_FLAG_CREATE 0x8000 // combine with CSIDL_ value to force folder creation in SHGetFolderPath()
#endif // _SHFOLDER_H_
typedef enum {
SHGFP_TYPE_CURRENT = 0, // current value for user, verify it exists
SHGFP_TYPE_DEFAULT = 1, // default value, may not exist
} SHGFP_TYPE;
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
setupapi.h
--*/
//
// Target directory specs.
//
#define DIRID_ABSOLUTE -1 // real 32-bit -1
#define DIRID_ABSOLUTE_16BIT 0xffff // 16-bit -1 for compat w/setupx
#define DIRID_NULL 0
#define DIRID_SRCPATH 1
#define DIRID_WINDOWS 10
#define DIRID_SYSTEM 11 // system32
#define DIRID_DRIVERS 12
#define DIRID_IOSUBSYS DIRID_DRIVERS
#define DIRID_INF 17
#define DIRID_HELP 18
#define DIRID_FONTS 20
#define DIRID_VIEWERS 21
#define DIRID_COLOR 23
#define DIRID_APPS 24
#define DIRID_SHARED 25
#define DIRID_BOOT 30
#define DIRID_SYSTEM16 50
#define DIRID_SPOOL 51
#define DIRID_SPOOLDRIVERS 52
#define DIRID_USERPROFILE 53
#define DIRID_LOADER 54
#define DIRID_PRINTPROCESSOR 55
#define DIRID_DEFAULT DIRID_SYSTEM
//
// The following DIRIDs are for commonly-used shell "special folders". The
// complete list of such folders is contained in shlobj.h. In that headerfile,
// each folder is assigned a CSIDL_* value. The DIRID values below are created
// by taking the CSIDL value in shlobj.h and OR'ing it with 0x4000. Thus, if
// an INF needs to reference other special folders not defined below, it may
// generate one using the above mechanism, and setupapi will automatically deal
// with it and use the corresponding shell's path where appropriate. (Remember
// that DIRIDs must be specified in decimal, not hex, in an INF when used for
// string substitution.)
//
#define DIRID_COMMON_STARTMENU 16406 // All Users\Start Menu
#define DIRID_COMMON_PROGRAMS 16407 // All Users\Start Menu\Programs
#define DIRID_COMMON_STARTUP 16408 // All Users\Start Menu\Programs\Startup
#define DIRID_COMMON_DESKTOPDIRECTORY 16409 // All Users\Desktop
#define DIRID_COMMON_FAVORITES 16415 // All Users\Favorites
#define DIRID_COMMON_APPDATA 16419 // All Users\Application Data
#define DIRID_PROGRAM_FILES 16422 // Program Files
#define DIRID_SYSTEM_X86 16425 // system32 for WOW
#define DIRID_PROGRAM_FILES_X86 16426 // Program Files for WOW
#define DIRID_PROGRAM_FILES_COMMON 16427 // Program Files\Common
#define DIRID_PROGRAM_FILES_COMMONX86 16428 // x86 Program Files\Common for WOW
#define DIRID_COMMON_TEMPLATES 16429 // All Users\Templates
#define DIRID_COMMON_DOCUMENTS 16430 // All Users\Documents
for special directory in Windows NT6.x Vista/Seven/8/Next http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Code: Select all
#pragma once
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef DEFINE_KNOWN_FOLDER
#undef DEFINE_KNOWN_FOLDER
#endif
#ifdef INITGUID
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID DECLSPEC_SELECTANY name \
= { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
#else
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID name
#endif // INITGUID
// legacy CSIDL value: CSIDL_NETWORK
// display name: "Network"
// legacy display name: "My Network Places"
// default path:
// {D20BEEC4-5CA8-4905-AE3B-BF251EA09B53}
DEFINE_KNOWN_FOLDER(FOLDERID_NetworkFolder, 0xD20BEEC4, 0x5CA8, 0x4905, 0xAE, 0x3B, 0xBF, 0x25, 0x1E, 0xA0, 0x9B, 0x53);
// {0AC0837C-BBF8-452A-850D-79D08E667CA7}
DEFINE_KNOWN_FOLDER(FOLDERID_ComputerFolder, 0x0AC0837C, 0xBBF8, 0x452A, 0x85, 0x0D, 0x79, 0xD0, 0x8E, 0x66, 0x7C, 0xA7);
// {4D9F7874-4E0C-4904-967B-40B0D20C3E4B}
DEFINE_KNOWN_FOLDER(FOLDERID_InternetFolder, 0x4D9F7874, 0x4E0C, 0x4904, 0x96, 0x7B, 0x40, 0xB0, 0xD2, 0x0C, 0x3E, 0x4B);
// {82A74AEB-AEB4-465C-A014-D097EE346D63}
DEFINE_KNOWN_FOLDER(FOLDERID_ControlPanelFolder, 0x82A74AEB, 0xAEB4, 0x465C, 0xA0, 0x14, 0xD0, 0x97, 0xEE, 0x34, 0x6D, 0x63);
// {76FC4E2D-D6AD-4519-A663-37BD56068185}
DEFINE_KNOWN_FOLDER(FOLDERID_PrintersFolder, 0x76FC4E2D, 0xD6AD, 0x4519, 0xA6, 0x63, 0x37, 0xBD, 0x56, 0x06, 0x81, 0x85);
// {43668BF8-C14E-49B2-97C9-747784D784B7}
DEFINE_KNOWN_FOLDER(FOLDERID_SyncManagerFolder, 0x43668BF8, 0xC14E, 0x49B2, 0x97, 0xC9, 0x74, 0x77, 0x84, 0xD7, 0x84, 0xB7);
// {0F214138-B1D3-4a90-BBA9-27CBC0C5389A}
DEFINE_KNOWN_FOLDER(FOLDERID_SyncSetupFolder, 0xf214138, 0xb1d3, 0x4a90, 0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a);
// {4bfefb45-347d-4006-a5be-ac0cb0567192}
DEFINE_KNOWN_FOLDER(FOLDERID_ConflictFolder, 0x4bfefb45, 0x347d, 0x4006, 0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92);
// {289a9a43-be44-4057-a41b-587a76d7e7f9}
DEFINE_KNOWN_FOLDER(FOLDERID_SyncResultsFolder, 0x289a9a43, 0xbe44, 0x4057, 0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9);
// {B7534046-3ECB-4C18-BE4E-64CD4CB7D6AC}
DEFINE_KNOWN_FOLDER(FOLDERID_RecycleBinFolder, 0xB7534046, 0x3ECB, 0x4C18, 0xBE, 0x4E, 0x64, 0xCD, 0x4C, 0xB7, 0xD6, 0xAC);
// {6F0CD92B-2E97-45D1-88FF-B0D186B8DEDD}
DEFINE_KNOWN_FOLDER(FOLDERID_ConnectionsFolder, 0x6F0CD92B, 0x2E97, 0x45D1, 0x88, 0xFF, 0xB0, 0xD1, 0x86, 0xB8, 0xDE, 0xDD);
// {FD228CB7-AE11-4AE3-864C-16F3910AB8FE}
DEFINE_KNOWN_FOLDER(FOLDERID_Fonts, 0xFD228CB7, 0xAE11, 0x4AE3, 0x86, 0x4C, 0x16, 0xF3, 0x91, 0x0A, 0xB8, 0xFE);
// display name: "Desktop"
// default path: "C:\Users\<UserName>\Desktop"
// legacy default path: "C:\Documents and Settings\<userName>\Desktop"
// legacy CSIDL value: CSIDL_DESKTOP
// {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
DEFINE_KNOWN_FOLDER(FOLDERID_Desktop, 0xB4BFCC3A, 0xDB2C, 0x424C, 0xB0, 0x29, 0x7F, 0xE9, 0x9A, 0x87, 0xC6, 0x41);
// {B97D20BB-F46A-4C97-BA10-5E3608430854}
DEFINE_KNOWN_FOLDER(FOLDERID_Startup, 0xB97D20BB, 0xF46A, 0x4C97, 0xBA, 0x10, 0x5E, 0x36, 0x08, 0x43, 0x08, 0x54);
// {A77F5D77-2E2B-44C3-A6A2-ABA601054A51}
DEFINE_KNOWN_FOLDER(FOLDERID_Programs, 0xA77F5D77, 0x2E2B, 0x44C3, 0xA6, 0xA2, 0xAB, 0xA6, 0x01, 0x05, 0x4A, 0x51);
// {625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}
DEFINE_KNOWN_FOLDER(FOLDERID_StartMenu, 0x625B53C3, 0xAB48, 0x4EC1, 0xBA, 0x1F, 0xA1, 0xEF, 0x41, 0x46, 0xFC, 0x19);
// {AE50C081-EBD2-438A-8655-8A092E34987A}
DEFINE_KNOWN_FOLDER(FOLDERID_Recent, 0xAE50C081, 0xEBD2, 0x438A, 0x86, 0x55, 0x8A, 0x09, 0x2E, 0x34, 0x98, 0x7A);
// {8983036C-27C0-404B-8F08-102D10DCFD74}
DEFINE_KNOWN_FOLDER(FOLDERID_SendTo, 0x8983036C, 0x27C0, 0x404B, 0x8F, 0x08, 0x10, 0x2D, 0x10, 0xDC, 0xFD, 0x74);
// {FDD39AD0-238F-46AF-ADB4-6C85480369C7}
DEFINE_KNOWN_FOLDER(FOLDERID_Documents, 0xFDD39AD0, 0x238F, 0x46AF, 0xAD, 0xB4, 0x6C, 0x85, 0x48, 0x03, 0x69, 0xC7);
// {1777F761-68AD-4D8A-87BD-30B759FA33DD}
DEFINE_KNOWN_FOLDER(FOLDERID_Favorites, 0x1777F761, 0x68AD, 0x4D8A, 0x87, 0xBD, 0x30, 0xB7, 0x59, 0xFA, 0x33, 0xDD);
// {C5ABBF53-E17F-4121-8900-86626FC2C973}
DEFINE_KNOWN_FOLDER(FOLDERID_NetHood, 0xC5ABBF53, 0xE17F, 0x4121, 0x89, 0x00, 0x86, 0x62, 0x6F, 0xC2, 0xC9, 0x73);
// {9274BD8D-CFD1-41C3-B35E-B13F55A758F4}
DEFINE_KNOWN_FOLDER(FOLDERID_PrintHood, 0x9274BD8D, 0xCFD1, 0x41C3, 0xB3, 0x5E, 0xB1, 0x3F, 0x55, 0xA7, 0x58, 0xF4);
// {A63293E8-664E-48DB-A079-DF759E0509F7}
DEFINE_KNOWN_FOLDER(FOLDERID_Templates, 0xA63293E8, 0x664E, 0x48DB, 0xA0, 0x79, 0xDF, 0x75, 0x9E, 0x05, 0x09, 0xF7);
// {82A5EA35-D9CD-47C5-9629-E15D2F714E6E}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonStartup, 0x82A5EA35, 0xD9CD, 0x47C5, 0x96, 0x29, 0xE1, 0x5D, 0x2F, 0x71, 0x4E, 0x6E);
// {0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonPrograms, 0x0139D44E, 0x6AFE, 0x49F2, 0x86, 0x90, 0x3D, 0xAF, 0xCA, 0xE6, 0xFF, 0xB8);
// {A4115719-D62E-491D-AA7C-E74B8BE3B067}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonStartMenu, 0xA4115719, 0xD62E, 0x491D, 0xAA, 0x7C, 0xE7, 0x4B, 0x8B, 0xE3, 0xB0, 0x67);
// {C4AA340D-F20F-4863-AFEF-F87EF2E6BA25}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicDesktop, 0xC4AA340D, 0xF20F, 0x4863, 0xAF, 0xEF, 0xF8, 0x7E, 0xF2, 0xE6, 0xBA, 0x25);
// {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramData, 0x62AB5D82, 0xFDC1, 0x4DC3, 0xA9, 0xDD, 0x07, 0x0D, 0x1D, 0x49, 0x5D, 0x97);
// {B94237E7-57AC-4347-9151-B08C6C32D1F7}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonTemplates, 0xB94237E7, 0x57AC, 0x4347, 0x91, 0x51, 0xB0, 0x8C, 0x6C, 0x32, 0xD1, 0xF7);
// {ED4824AF-DCE4-45A8-81E2-FC7965083634}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicDocuments, 0xED4824AF, 0xDCE4, 0x45A8, 0x81, 0xE2, 0xFC, 0x79, 0x65, 0x08, 0x36, 0x34);
// {3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}
DEFINE_KNOWN_FOLDER(FOLDERID_RoamingAppData, 0x3EB685DB, 0x65F9, 0x4CF6, 0xA0, 0x3A, 0xE3, 0xEF, 0x65, 0x72, 0x9F, 0x3D);
// {F1B32785-6FBA-4FCF-9D55-7B8E7F157091}
DEFINE_KNOWN_FOLDER(FOLDERID_LocalAppData, 0xF1B32785, 0x6FBA, 0x4FCF, 0x9D, 0x55, 0x7B, 0x8E, 0x7F, 0x15, 0x70, 0x91);
// {A520A1A4-1780-4FF6-BD18-167343C5AF16}
DEFINE_KNOWN_FOLDER(FOLDERID_LocalAppDataLow, 0xA520A1A4, 0x1780, 0x4FF6, 0xBD, 0x18, 0x16, 0x73, 0x43, 0xC5, 0xAF, 0x16);
// {352481E8-33BE-4251-BA85-6007CAEDCF9D}
DEFINE_KNOWN_FOLDER(FOLDERID_InternetCache, 0x352481E8, 0x33BE, 0x4251, 0xBA, 0x85, 0x60, 0x07, 0xCA, 0xED, 0xCF, 0x9D);
// {2B0F765D-C0E9-4171-908E-08A611B84FF6}
DEFINE_KNOWN_FOLDER(FOLDERID_Cookies, 0x2B0F765D, 0xC0E9, 0x4171, 0x90, 0x8E, 0x08, 0xA6, 0x11, 0xB8, 0x4F, 0xF6);
// {D9DC8A3B-B784-432E-A781-5A1130A75963}
DEFINE_KNOWN_FOLDER(FOLDERID_History, 0xD9DC8A3B, 0xB784, 0x432E, 0xA7, 0x81, 0x5A, 0x11, 0x30, 0xA7, 0x59, 0x63);
// {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}
DEFINE_KNOWN_FOLDER(FOLDERID_System, 0x1AC14E77, 0x02E7, 0x4E5D, 0xB7, 0x44, 0x2E, 0xB1, 0xAE, 0x51, 0x98, 0xB7);
// {D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}
DEFINE_KNOWN_FOLDER(FOLDERID_SystemX86, 0xD65231B0, 0xB2F1, 0x4857, 0xA4, 0xCE, 0xA8, 0xE7, 0xC6, 0xEA, 0x7D, 0x27);
// {F38BF404-1D43-42F2-9305-67DE0B28FC23}
DEFINE_KNOWN_FOLDER(FOLDERID_Windows, 0xF38BF404, 0x1D43, 0x42F2, 0x93, 0x05, 0x67, 0xDE, 0x0B, 0x28, 0xFC, 0x23);
// {5E6C858F-0E22-4760-9AFE-EA3317B67173}
DEFINE_KNOWN_FOLDER(FOLDERID_Profile, 0x5E6C858F, 0x0E22, 0x4760, 0x9A, 0xFE, 0xEA, 0x33, 0x17, 0xB6, 0x71, 0x73);
// {33E28130-4E1E-4676-835A-98395C3BC3BB}
DEFINE_KNOWN_FOLDER(FOLDERID_Pictures, 0x33E28130, 0x4E1E, 0x4676, 0x83, 0x5A, 0x98, 0x39, 0x5C, 0x3B, 0xC3, 0xBB);
// {7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesX86, 0x7C5A40EF, 0xA0FB, 0x4BFC, 0x87, 0x4A, 0xC0, 0xF2, 0xE0, 0xB9, 0xFA, 0x8E);
// {DE974D24-D9C6-4D3E-BF91-F4455120B917}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesCommonX86, 0xDE974D24, 0xD9C6, 0x4D3E, 0xBF, 0x91, 0xF4, 0x45, 0x51, 0x20, 0xB9, 0x17);
// {6D809377-6AF0-444b-8957-A3773F02200E}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesX64, 0x6d809377, 0x6af0, 0x444b, 0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e );
// {6365D5A7-0F0D-45e5-87F6-0DA56B6A4F7D}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesCommonX64, 0x6365d5a7, 0xf0d, 0x45e5, 0x87, 0xf6, 0xd, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d );
// {905e63b6-c1bf-494e-b29c-65b732d3d21a}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFiles, 0x905e63b6, 0xc1bf, 0x494e, 0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a);
// {F7F1ED05-9F6D-47A2-AAAE-29D317C6F066}
DEFINE_KNOWN_FOLDER(FOLDERID_ProgramFilesCommon, 0xF7F1ED05, 0x9F6D, 0x47A2, 0xAA, 0xAE, 0x29, 0xD3, 0x17, 0xC6, 0xF0, 0x66);
// {5cd7aee2-2219-4a67-b85d-6c9ce15660cb}
DEFINE_KNOWN_FOLDER(FOLDERID_UserProgramFiles, 0x5cd7aee2, 0x2219, 0x4a67, 0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb);
// {bcbd3057-ca5c-4622-b42d-bc56db0ae516}
DEFINE_KNOWN_FOLDER(FOLDERID_UserProgramFilesCommon, 0xbcbd3057, 0xca5c, 0x4622, 0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16);
// {724EF170-A42D-4FEF-9F26-B60E846FBA4F}
DEFINE_KNOWN_FOLDER(FOLDERID_AdminTools, 0x724EF170, 0xA42D, 0x4FEF, 0x9F, 0x26, 0xB6, 0x0E, 0x84, 0x6F, 0xBA, 0x4F);
// {D0384E7D-BAC3-4797-8F14-CBA229B392B5}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonAdminTools, 0xD0384E7D, 0xBAC3, 0x4797, 0x8F, 0x14, 0xCB, 0xA2, 0x29, 0xB3, 0x92, 0xB5);
// {4BD8D571-6D19-48D3-BE97-422220080E43}
DEFINE_KNOWN_FOLDER(FOLDERID_Music, 0x4BD8D571, 0x6D19, 0x48D3, 0xBE, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0E, 0x43);
// {18989B1D-99B5-455B-841C-AB7C74E4DDFC}
DEFINE_KNOWN_FOLDER(FOLDERID_Videos, 0x18989B1D, 0x99B5, 0x455B, 0x84, 0x1C, 0xAB, 0x7C, 0x74, 0xE4, 0xDD, 0xFC);
// {C870044B-F49E-4126-A9C3-B52A1FF411E8}
DEFINE_KNOWN_FOLDER(FOLDERID_Ringtones, 0xC870044B, 0xF49E, 0x4126, 0xA9, 0xC3, 0xB5, 0x2A, 0x1F, 0xF4, 0x11, 0xE8);
// {B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicPictures, 0xB6EBFB86, 0x6907, 0x413C, 0x9A, 0xF7, 0x4F, 0xC2, 0xAB, 0xF0, 0x7C, 0xC5);
// {3214FAB5-9757-4298-BB61-92A9DEAA44FF}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicMusic, 0x3214FAB5, 0x9757, 0x4298, 0xBB, 0x61, 0x92, 0xA9, 0xDE, 0xAA, 0x44, 0xFF);
// {2400183A-6185-49FB-A2D8-4A392A602BA3}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicVideos, 0x2400183A, 0x6185, 0x49FB, 0xA2, 0xD8, 0x4A, 0x39, 0x2A, 0x60, 0x2B, 0xA3);
// {E555AB60-153B-4D17-9F04-A5FE99FC15EC}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicRingtones, 0xE555AB60, 0x153B, 0x4D17, 0x9F, 0x04, 0xA5, 0xFE, 0x99, 0xFC, 0x15, 0xEC);
// {8AD10C31-2ADB-4296-A8F7-E4701232C972}
DEFINE_KNOWN_FOLDER(FOLDERID_ResourceDir, 0x8AD10C31, 0x2ADB, 0x4296, 0xA8, 0xF7, 0xE4, 0x70, 0x12, 0x32, 0xC9, 0x72);
// {2A00375E-224C-49DE-B8D1-440DF7EF3DDC}
DEFINE_KNOWN_FOLDER(FOLDERID_LocalizedResourcesDir, 0x2A00375E, 0x224C, 0x49DE, 0xB8, 0xD1, 0x44, 0x0D, 0xF7, 0xEF, 0x3D, 0xDC);
// {C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D}
DEFINE_KNOWN_FOLDER(FOLDERID_CommonOEMLinks, 0xC1BAE2D0, 0x10DF, 0x4334, 0xBE, 0xDD, 0x7A, 0xA2, 0x0B, 0x22, 0x7A, 0x9D);
// {9E52AB10-F80D-49DF-ACB8-4330F5687855}
DEFINE_KNOWN_FOLDER(FOLDERID_CDBurning, 0x9E52AB10, 0xF80D, 0x49DF, 0xAC, 0xB8, 0x43, 0x30, 0xF5, 0x68, 0x78, 0x55);
// {0762D272-C50A-4BB0-A382-697DCD729B80}
DEFINE_KNOWN_FOLDER(FOLDERID_UserProfiles, 0x0762D272, 0xC50A, 0x4BB0, 0xA3, 0x82, 0x69, 0x7D, 0xCD, 0x72, 0x9B, 0x80);
// {DE92C1C7-837F-4F69-A3BB-86E631204A23}
DEFINE_KNOWN_FOLDER(FOLDERID_Playlists, 0xDE92C1C7, 0x837F, 0x4F69, 0xA3, 0xBB, 0x86, 0xE6, 0x31, 0x20, 0x4A, 0x23);
// {15CA69B3-30EE-49C1-ACE1-6B5EC372AFB5}
DEFINE_KNOWN_FOLDER(FOLDERID_SamplePlaylists, 0x15CA69B3, 0x30EE, 0x49C1, 0xAC, 0xE1, 0x6B, 0x5E, 0xC3, 0x72, 0xAF, 0xB5);
// {B250C668-F57D-4EE1-A63C-290EE7D1AA1F}
DEFINE_KNOWN_FOLDER(FOLDERID_SampleMusic, 0xB250C668, 0xF57D, 0x4EE1, 0xA6, 0x3C, 0x29, 0x0E, 0xE7, 0xD1, 0xAA, 0x1F);
// {C4900540-2379-4C75-844B-64E6FAF8716B}
DEFINE_KNOWN_FOLDER(FOLDERID_SamplePictures, 0xC4900540, 0x2379, 0x4C75, 0x84, 0x4B, 0x64, 0xE6, 0xFA, 0xF8, 0x71, 0x6B);
// {859EAD94-2E85-48AD-A71A-0969CB56A6CD}
DEFINE_KNOWN_FOLDER(FOLDERID_SampleVideos, 0x859EAD94, 0x2E85, 0x48AD, 0xA7, 0x1A, 0x09, 0x69, 0xCB, 0x56, 0xA6, 0xCD);
// {69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C}
DEFINE_KNOWN_FOLDER(FOLDERID_PhotoAlbums, 0x69D2CF90, 0xFC33, 0x4FB7, 0x9A, 0x0C, 0xEB, 0xB0, 0xF0, 0xFC, 0xB4, 0x3C);
// {DFDF76A2-C82A-4D63-906A-5644AC457385}
DEFINE_KNOWN_FOLDER(FOLDERID_Public, 0xDFDF76A2, 0xC82A, 0x4D63, 0x90, 0x6A, 0x56, 0x44, 0xAC, 0x45, 0x73, 0x85);
// {df7266ac-9274-4867-8d55-3bd661de872d}
DEFINE_KNOWN_FOLDER(FOLDERID_ChangeRemovePrograms,0xdf7266ac, 0x9274, 0x4867, 0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d);
// {a305ce99-f527-492b-8b1a-7e76fa98d6e4}
DEFINE_KNOWN_FOLDER(FOLDERID_AppUpdates, 0xa305ce99, 0xf527, 0x492b, 0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4);
// {de61d971-5ebc-4f02-a3a9-6c82895e5c04}
DEFINE_KNOWN_FOLDER(FOLDERID_AddNewPrograms, 0xde61d971, 0x5ebc, 0x4f02, 0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04);
// {374DE290-123F-4565-9164-39C4925E467B}
DEFINE_KNOWN_FOLDER(FOLDERID_Downloads, 0x374de290, 0x123f, 0x4565, 0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b);
// {3D644C9B-1FB8-4f30-9B45-F670235F79C0}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicDownloads, 0x3d644c9b, 0x1fb8, 0x4f30, 0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0);
// {7d1d3a04-debb-4115-95cf-2f29da2920da}
DEFINE_KNOWN_FOLDER(FOLDERID_SavedSearches, 0x7d1d3a04, 0xdebb, 0x4115, 0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda);
// {52a4f021-7b75-48a9-9f6b-4b87a210bc8f}
DEFINE_KNOWN_FOLDER(FOLDERID_QuickLaunch, 0x52a4f021, 0x7b75, 0x48a9, 0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f);
// {56784854-C6CB-462b-8169-88E350ACB882}
DEFINE_KNOWN_FOLDER(FOLDERID_Contacts, 0x56784854, 0xc6cb, 0x462b, 0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82);
// {A75D362E-50FC-4fb7-AC2C-A8BEAA314493}
DEFINE_KNOWN_FOLDER(FOLDERID_SidebarParts, 0xa75d362e, 0x50fc, 0x4fb7, 0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93);
// {7B396E54-9EC5-4300-BE0A-2482EBAE1A26}
DEFINE_KNOWN_FOLDER(FOLDERID_SidebarDefaultParts, 0x7b396e54, 0x9ec5, 0x4300, 0xbe, 0xa, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26);
// {DEBF2536-E1A8-4c59-B6A2-414586476AEA}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicGameTasks, 0xdebf2536, 0xe1a8, 0x4c59, 0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea);
// {054FAE61-4DD8-4787-80B6-090220C4B700}
DEFINE_KNOWN_FOLDER(FOLDERID_GameTasks, 0x54fae61, 0x4dd8, 0x4787, 0x80, 0xb6, 0x9, 0x2, 0x20, 0xc4, 0xb7, 0x0);
// {4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}
DEFINE_KNOWN_FOLDER(FOLDERID_SavedGames, 0x4c5c32ff, 0xbb9d, 0x43b0, 0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4);
// {CAC52C1A-B53D-4edc-92D7-6B2E8AC19434}
DEFINE_KNOWN_FOLDER(FOLDERID_Games, 0xcac52c1a, 0xb53d, 0x4edc, 0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34);
// {98ec0e18-2098-4d44-8644-66979315a281}
DEFINE_KNOWN_FOLDER(FOLDERID_SEARCH_MAPI, 0x98ec0e18, 0x2098, 0x4d44, 0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81);
// {ee32e446-31ca-4aba-814f-a5ebd2fd6d5e}
DEFINE_KNOWN_FOLDER(FOLDERID_SEARCH_CSC, 0xee32e446, 0x31ca, 0x4aba, 0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e);
// {bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}
DEFINE_KNOWN_FOLDER(FOLDERID_Links, 0xbfb9d5e0, 0xc6a9, 0x404c, 0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68);
// {f3ce0f7c-4901-4acc-8648-d5d44b04ef8f}
DEFINE_KNOWN_FOLDER(FOLDERID_UsersFiles, 0xf3ce0f7c, 0x4901, 0x4acc, 0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f);
// {A302545D-DEFF-464b-ABE8-61C8648D939B}
DEFINE_KNOWN_FOLDER(FOLDERID_UsersLibraries, 0xa302545d, 0xdeff, 0x464b, 0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b);
// {190337d1-b8ca-4121-a639-6d472d16972a}
DEFINE_KNOWN_FOLDER(FOLDERID_SearchHome, 0x190337d1, 0xb8ca, 0x4121, 0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a);
// {2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39}
DEFINE_KNOWN_FOLDER(FOLDERID_OriginalImages, 0x2C36C0AA, 0x5812, 0x4b87, 0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39);
// {7b0db17d-9cd2-4a93-9733-46cc89022e7c}
DEFINE_KNOWN_FOLDER(FOLDERID_DocumentsLibrary, 0x7b0db17d, 0x9cd2, 0x4a93, 0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c);
// {2112AB0A-C86A-4ffe-A368-0DE96E47012E}
DEFINE_KNOWN_FOLDER(FOLDERID_MusicLibrary, 0x2112ab0a, 0xc86a, 0x4ffe, 0xa3, 0x68, 0xd, 0xe9, 0x6e, 0x47, 0x1, 0x2e);
// {A990AE9F-A03B-4e80-94BC-9912D7504104}
DEFINE_KNOWN_FOLDER(FOLDERID_PicturesLibrary, 0xa990ae9f, 0xa03b, 0x4e80, 0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x4);
// {491E922F-5643-4af4-A7EB-4E7A138D8174}
DEFINE_KNOWN_FOLDER(FOLDERID_VideosLibrary, 0x491e922f, 0x5643, 0x4af4, 0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74);
// {1A6FDBA2-F42D-4358-A798-B74D745926C5}
DEFINE_KNOWN_FOLDER(FOLDERID_RecordedTVLibrary, 0x1a6fdba2, 0xf42d, 0x4358, 0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5);
// {52528A6B-B9E3-4add-B60D-588C2DBA842D}
DEFINE_KNOWN_FOLDER(FOLDERID_HomeGroup, 0x52528a6b, 0xb9e3, 0x4add, 0xb6, 0xd, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d);
// {9B74B6A3-0DFD-4f11-9E78-5F7800F2E772}
DEFINE_KNOWN_FOLDER(FOLDERID_HomeGroupCurrentUser, 0x9b74b6a3, 0xdfd, 0x4f11, 0x9e, 0x78, 0x5f, 0x78, 0x0, 0xf2, 0xe7, 0x72);
// {5CE4A5E9-E4EB-479D-B89F-130C02886155}
DEFINE_KNOWN_FOLDER(FOLDERID_DeviceMetadataStore, 0x5ce4a5e9, 0xe4eb, 0x479d, 0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55);
// {1B3EA5DC-B587-4786-B4EF-BD1DC332AEAE}
DEFINE_KNOWN_FOLDER(FOLDERID_Libraries, 0x1b3ea5dc, 0xb587, 0x4786, 0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae);
// {48daf80b-e6cf-4f4e-b800-0e69d84ee384}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicLibraries, 0x48daf80b, 0xe6cf, 0x4f4e, 0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84);
// {9e3995ab-1f9c-4f13-b827-48b24b6c7174}
DEFINE_KNOWN_FOLDER(FOLDERID_UserPinned, 0x9e3995ab, 0x1f9c, 0x4f13, 0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74);
// {bcb5256f-79f6-4cee-b725-dc34e402fd46}
DEFINE_KNOWN_FOLDER(FOLDERID_ImplicitAppShortcuts,0xbcb5256f, 0x79f6, 0x4cee, 0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x2, 0xfd, 0x46);
// {008ca0b1-55b4-4c56-b8a8-4de4b299d3be}
DEFINE_KNOWN_FOLDER(FOLDERID_UserTiles, 0x008ca0b1, 0x55b4, 0x4c56, 0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe);
// {0482af6c-08f1-4c34-8c90-e17ec98b1e17}
DEFINE_KNOWN_FOLDER(FOLDERID_PublicUserTiles, 0x0482af6c, 0x08f1, 0x4c34, 0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17);
// {1e87508d-89c2-42f0-8a7e-645a0f50ca58}
DEFINE_KNOWN_FOLDER(FOLDERID_AppsFolder, 0x1e87508d, 0x89c2, 0x42f0, 0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58);
// {A3918781-E5F2-4890-B3D9-A7E54332328C}
DEFINE_KNOWN_FOLDER(FOLDERID_ApplicationShortcuts, 0xa3918781, 0xe5f2, 0x4890, 0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c);
// {00BCFC5A-ED94-4e48-96A1-3F6217F21990}
DEFINE_KNOWN_FOLDER(FOLDERID_RoamingTiles, 0xbcfc5a, 0xed94, 0x4e48, 0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90);
// {AAA8D5A5-F1D6-4259-BAA8-78E7EF60835E}
DEFINE_KNOWN_FOLDER(FOLDERID_RoamedTileImages, 0xaaa8d5a5, 0xf1d6, 0x4259, 0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
here
Code: Select all
FOLDERID_AddNewPrograms = {de61d971-5ebc-4f02-a3a9-6c82895e5c04}
FOLDERID_AdminTools = {724EF170-A42D-4FEF-9F26-B60E846FBA4F}
FOLDERID_AppsFolder = {1e87508d-89c2-42f0-8a7e-645a0f50ca58}
FOLDERID_AppUpdates = {a305ce99-f527-492b-8b1a-7e76fa98d6e4}
FOLDERID_CDBurning = {9E52AB10-F80D-49DF-ACB8-4330F5687855}
FOLDERID_ChangeRemovePrograms = {df7266ac-9274-4867-8d55-3bd661de872d}
FOLDERID_CommonAdminTools = {D0384E7D-BAC3-4797-8F14-CBA229B392B5}
FOLDERID_CommonOEMLinks = {C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D}
FOLDERID_CommonPrograms = {0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}
FOLDERID_CommonStartMenu = {A4115719-D62E-491D-AA7C-E74B8BE3B067}
FOLDERID_CommonStartup = {82A5EA35-D9CD-47C5-9629-E15D2F714E6E}
FOLDERID_CommonTemplates = {B94237E7-57AC-4347-9151-B08C6C32D1F7}
FOLDERID_ComputerFolder = {0AC0837C-BBF8-452A-850D-79D08E667CA7}
FOLDERID_ConflictFolder = {4bfefb45-347d-4006-a5be-ac0cb0567192}
FOLDERID_ConnectionsFolder = {6F0CD92B-2E97-45D1-88FF-B0D186B8DEDD}
FOLDERID_Contacts = {56784854-C6CB-462b-8169-88E350ACB882}
FOLDERID_ControlPanelFolder = {82A74AEB-AEB4-465C-A014-D097EE346D63}
FOLDERID_Cookies = {2B0F765D-C0E9-4171-908E-08A611B84FF6}
FOLDERID_Desktop = {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}
FOLDERID_DeviceMetadataStore = {5CE4A5E9-E4EB-479D-B89F-130C02886155}
FOLDERID_Documents = {FDD39AD0-238F-46AF-ADB4-6C85480369C7}
FOLDERID_DocumentsLibrary = {7B0DB17D-9CD2-4A93-9733-46CC89022E7C}
FOLDERID_Downloads = {374DE290-123F-4565-9164-39C4925E467B}
FOLDERID_Favorites = {1777F761-68AD-4D8A-87BD-30B759FA33DD}
FOLDERID_Fonts = {FD228CB7-AE11-4AE3-864C-16F3910AB8FE}
FOLDERID_Games = {CAC52C1A-B53D-4edc-92D7-6B2E8AC19434}
FOLDERID_GameTasks = {054FAE61-4DD8-4787-80B6-090220C4B700}
FOLDERID_History = {D9DC8A3B-B784-432E-A781-5A1130A75963}
FOLDERID_HomeGroup = {52528A6B-B9E3-4ADD-B60D-588C2DBA842D}
FOLDERID_HomeGroupCurrentUser = {9B74B6A3-0DFD-4f11-9E78-5F7800F2E772}
FOLDERID_ImmersiveApplicationShortcuts = {A3918781-E5F2-4890-B3D9-A7E54332328C}
FOLDERID_ImplicitAppShortcuts = {BCB5256F-79F6-4CEE-B725-DC34E402FD46}
FOLDERID_InternetCache = {352481E8-33BE-4251-BA85-6007CAEDCF9D}
FOLDERID_InternetFolder = {4D9F7874-4E0C-4904-967B-40B0D20C3E4B}
FOLDERID_Libraries = {1B3EA5DC-B587-4786-B4EF-BD1DC332AEAE}
FOLDERID_Links = {bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}
FOLDERID_LocalAppData = {F1B32785-6FBA-4FCF-9D55-7B8E7F157091}
FOLDERID_LocalAppDataLow = {A520A1A4-1780-4FF6-BD18-167343C5AF16}
FOLDERID_LocalizedResourcesDir = {2A00375E-224C-49DE-B8D1-440DF7EF3DDC}
FOLDERID_Music = {4BD8D571-6D19-48D3-BE97-422220080E43}
FOLDERID_MusicLibrary = {2112AB0A-C86A-4FFE-A368-0DE96E47012E}
FOLDERID_NetHood = {C5ABBF53-E17F-4121-8900-86626FC2C973}
FOLDERID_NetworkFolder = {D20BEEC4-5CA8-4905-AE3B-BF251EA09B53}
FOLDERID_OriginalImages = {2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39}
FOLDERID_PhotoAlbums = {69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C}
FOLDERID_Pictures = {33E28130-4E1E-4676-835A-98395C3BC3BB}
FOLDERID_PicturesLibrary = {A990AE9F-A03B-4E80-94BC-9912D7504104}
FOLDERID_Playlists = {DE92C1C7-837F-4F69-A3BB-86E631204A23}
FOLDERID_PrintersFolder = {76FC4E2D-D6AD-4519-A663-37BD56068185}
FOLDERID_PrintHood = {9274BD8D-CFD1-41C3-B35E-B13F55A758F4}
FOLDERID_Profile = {5E6C858F-0E22-4760-9AFE-EA3317B67173}
FOLDERID_ProgramData = {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}
FOLDERID_ProgramFiles = {905e63b6-c1bf-494e-b29c-65b732d3d21a}
FOLDERID_ProgramFilesCommon = {F7F1ED05-9F6D-47A2-AAAE-29D317C6F066}
FOLDERID_ProgramFilesCommonX64 = {6365D5A7-0F0D-45E5-87F6-0DA56B6A4F7D}
FOLDERID_ProgramFilesCommonX86 = {DE974D24-D9C6-4D3E-BF91-F4455120B917}
FOLDERID_ProgramFilesX64 = {6D809377-6AF0-444b-8957-A3773F02200E}
FOLDERID_ProgramFilesX86 = {7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}
FOLDERID_Programs = {A77F5D77-2E2B-44C3-A6A2-ABA601054A51}
FOLDERID_Public = {DFDF76A2-C82A-4D63-906A-5644AC457385}
FOLDERID_PublicDesktop = {C4AA340D-F20F-4863-AFEF-F87EF2E6BA25}
FOLDERID_PublicDocuments = {ED4824AF-DCE4-45A8-81E2-FC7965083634}
FOLDERID_PublicDownloads = {3D644C9B-1FB8-4f30-9B45-F670235F79C0}
FOLDERID_PublicGameTasks = {DEBF2536-E1A8-4c59-B6A2-414586476AEA}
FOLDERID_PublicLibraries = {48DAF80B-E6CF-4F4E-B800-0E69D84EE384}
FOLDERID_PublicMusic = {3214FAB5-9757-4298-BB61-92A9DEAA44FF}
FOLDERID_PublicPictures = {B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5}
FOLDERID_PublicRingtones = {E555AB60-153B-4D17-9F04-A5FE99FC15EC}
FOLDERID_PublicUserTiles = {0482af6c-08f1-4c34-8c90-e17ec98b1e17}
FOLDERID_PublicVideos = {2400183A-6185-49FB-A2D8-4A392A602BA3}
FOLDERID_QuickLaunch = {52a4f021-7b75-48a9-9f6b-4b87a210bc8f}
FOLDERID_Recent = {AE50C081-EBD2-438A-8655-8A092E34987A}
;;;;FOLDERID_RecordedTV = non used. This value is not defined in Windows 7 and later.
FOLDERID_RecordedTVLibrary = {1A6FDBA2-F42D-4358-A798-B74D745926C5}
FOLDERID_RecycleBinFolder = {B7534046-3ECB-4C18-BE4E-64CD4CB7D6AC}
FOLDERID_ResourceDir = {8AD10C31-2ADB-4296-A8F7-E4701232C972}
FOLDERID_Ringtones = {C870044B-F49E-4126-A9C3-B52A1FF411E8}
FOLDERID_RoamingAppData = {3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}
FOLDERID_RoamingTiles = {00BCFC5A-ED94-4e48-96A1-3F6217F21990}
FOLDERID_SampleMusic = {B250C668-F57D-4EE1-A63C-290EE7D1AA1F}
FOLDERID_SamplePictures = {C4900540-2379-4C75-844B-64E6FAF8716B}
FOLDERID_SamplePlaylists = {15CA69B3-30EE-49C1-ACE1-6B5EC372AFB5}
FOLDERID_SampleVideos = {859EAD94-2E85-48AD-A71A-0969CB56A6CD}
FOLDERID_SavedGames = {4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}
FOLDERID_SavedSearches = {7d1d3a04-debb-4115-95cf-2f29da2920da}
FOLDERID_SEARCH_CSC = {ee32e446-31ca-4aba-814f-a5ebd2fd6d5e}
FOLDERID_SEARCH_MAPI = {98ec0e18-2098-4d44-8644-66979315a281}
FOLDERID_SearchHome = {190337d1-b8ca-4121-a639-6d472d16972a}
FOLDERID_SendTo = {8983036C-27C0-404B-8F08-102D10DCFD74}
FOLDERID_SidebarDefaultParts = {7B396E54-9EC5-4300-BE0A-2482EBAE1A26}
FOLDERID_SidebarParts = {A75D362E-50FC-4fb7-AC2C-A8BEAA314493}
FOLDERID_StartMenu = {625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}
FOLDERID_Startup = {B97D20BB-F46A-4C97-BA10-5E3608430854}
FOLDERID_SyncManagerFolder = {43668BF8-C14E-49B2-97C9-747784D784B7}
FOLDERID_SyncResultsFolder = {289a9a43-be44-4057-a41b-587a76d7e7f9}
FOLDERID_SyncSetupFolder = {0F214138-B1D3-4a90-BBA9-27CBC0C5389A}
FOLDERID_System = {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}
FOLDERID_SystemX86 = {D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}
FOLDERID_Templates = {A63293E8-664E-48DB-A079-DF759E0509F7}
;;;;FOLDERID_TreeProperties = Non supported in Windows 7 and later systems. Not used in Windows Vista.
FOLDERID_UserPinned = {9E3995AB-1F9C-4F13-B827-48B24B6C7174}
FOLDERID_UserProfiles = {0762D272-C50A-4BB0-A382-697DCD729B80}
FOLDERID_UserProgramFiles = {5CD7AEE2-2219-4A67-B85D-6C9CE15660CB}
FOLDERID_UserProgramFilesCommon = {BCBD3057-CA5C-4622-B42D-BC56DB0AE516}
FOLDERID_UsersFiles = {f3ce0f7c-4901-4acc-8648-d5d44b04ef8f}
FOLDERID_UsersLibraries = {A302545D-DEFF-464b-ABE8-61C8648D939B}
FOLDERID_UserTiles = {008ca0b1-55b4-4c56-b8a8-4de4b299d3be}
FOLDERID_Videos = {18989B1D-99B5-455B-841C-AB7C74E4DDFC}
FOLDERID_VideosLibrary = {491E922F-5643-4AF4-A7EB-4E7A138D8174}
FOLDERID_Windows = {F38BF404-1D43-42F2-9305-67DE0B28FC23}
Ciao.
- ricktendo64
- Posts: 3214
- Joined: Mon May 22, 2006 12:27 am
- Location: Honduras
@gora any chance you can talk to your friend about including localizational switches like international inf's?
Code: Select all
RunProgram=0409:EN\\installer.exe
RunProgram=0c0a:ES\\installer.exe
Code: Select all
; 0436 is the language ID for Afrikaans
[Strings.0436]
; 041C is the language ID for Albanian
[Strings.041C]
; 1401 is the language ID for Arabic - Algeria
[Strings.1401]
; 3C01 is the language ID for Arabic - Bahrain
[Strings.3C01]
; 0C01 is the language ID for Arabic - Egypt
[Strings.0C01]
; 0801 is the language ID for Arabic - Iraq
[Strings.0801]
; 2C01 is the language ID for Arabic - Jordan
[Strings.2C01]
; 3401 is the language ID for Arabic - Kuwait
[Strings.3401]
; 3001 is the language ID for Arabic - Lebanon
[Strings.3001]
; 1001 is the language ID for Arabic - Libya
[Strings.1001]
; 1801 is the language ID for Arabic - Morocco
[Strings.1801]
; 2001 is the language ID for Arabic - Oman
[Strings.2001]
; 4001 is the language ID for Arabic - Qatar
[Strings.4001]
; 0401 is the language ID for Arabic - Saudi Arabia
[Strings.0401]
; 2801 is the language ID for Arabic - Syria
[Strings.2801]
; 1C01 is the language ID for Arabic - Tunisia
[Strings.1C01]
; 3801 is the language ID for Arabic - United Arab Emirates
[Strings.3801]
; 2401 is the language ID for Arabic - Yemen
[Strings.2401]
; 042B is the language ID for Armenian
[Strings.042B]
; 082C is the language ID for Azeri - Cyrillic
[Strings.082C]
; 042C is the language ID for Azeri - Latin
[Strings.042C]
; 042D is the language ID for Basque
[Strings.042D]
; 0423 is the language ID for Belarusian
[Strings.0423]
; 0402 is the language ID for Bulgarian
[Strings.0402]
; 0403 is the language ID for Catalan
[Strings.0403]
; 0804 is the language ID for Chinese - China
[Strings.0804]
; 0C04 is the language ID for Chinese - Hong Kong SAR
[Strings.0C04]
; 1404 is the language ID for Chinese - Macau SAR
[Strings.1404]
; 1004 is the language ID for Chinese - Singapore
[Strings.1004]
; 0404 is the language ID for Chinese - Taiwan
[Strings.0404]
; 041A is the language ID for Croatian
[Strings.041A]
; 0405 is the language ID for Czech
[Strings.0405]
; 0405 is the language ID for Danish
[Strings.0406]
; 0813 is the language ID for Dutch - Belgium
[Strings.0813]
; 0413 is the language ID for Dutch - Netherlands
[Strings.0413]
; 0C09 is the language ID for English - Australia
[Strings.0C09]
; 2809 is the language ID for English - Belize
[Strings.2809]
; 1009 is the language ID for English - Canada
[Strings.1009]
; 2409 is the language ID for English - Caribbean
[Strings.2409]
; 0809 is the language ID for English - United Kingdom
[Strings.0809]
; 1809 is the language ID for English - Ireland
[Strings.1809]
; 2009 is the language ID for English - Jamaica
[Strings.2009]
; 1409 is the language ID for English - New Zealand
[Strings.1409]
; 3409 is the language ID for English - Phillippines
[Strings.3409]
; 2C09 is the language ID for English - Trinidad
[Strings.2C09]
; 0409 is the language ID for English - United States
[Strings.0409]
; 1C09 is the language ID for English - South Africa
[Strings.1C09]
; 0425 is the language ID for Estonian
[Strings.0425]
; 0438 is the language ID for Faroese
[Strings.0438]
; 0429 is the language ID for Farsi
[Strings.0429]
; 040B is the language ID for Finnish
[Strings.040B]
; 0C0C is the language ID for French - Canada
[Strings.0C0C]
; 100C is the language ID for French - Switzerland
[Strings.100C]
; 040C is the language ID for French - France
[Strings.040C]
; 140C is the language ID for French - Luxembourg
[Strings.140C]
; 083C is the language ID for Gaelic - Ireland
[Strings.083C]
; 043C is the language ID for Gaelic - Scotland
[Strings.043C]
; 0C07 is the language ID for German - Austria
[Strings.0C07]
; 0807 is the language ID for German - Switzerland
[Strings.0807]
; 0407 is the language ID for German - Germany
[Strings.0407]
; 1407 is the language ID for German - Liechtenstein
[Strings.1407]
; 1007 is the language ID for German - Luxembourg
[Strings.1007]
; 0408 is the language ID for Greek
[Strings.0408]
; 040D is the language ID for Hebrew
[Strings.040D]
; 0439 is the language ID for Hindi
[Strings.0439]
; 040E is the language ID for Hungarian
[Strings.040E]
; 040F is the language ID for Icelandic
[Strings.040F]
; 0421 is the language ID for Indonesian
[Strings.0421]
; 0810 is the language ID for Italian - Switzerland
[Strings.0810]
; 0410 is the language ID for Italian - Italy
[Strings.0410]
; 0411 is the language ID for Japanese
[Strings.0411]
; 0412 is the language ID for Korean
[Strings.0412]
; 0426 is the language ID for Latvian
[Strings.0426]
; 0427 is the language ID for Lithuanian
[Strings.0427]
; 042F is the language ID for Macedonian (FYROM)
[Strings.042F]
; 083E is the language ID for Malay – Brunei
[Strings.083E]
; 043E is the language ID for Malay - Malaysia
[Strings.043E]
; 043A is the language ID for Maltese
[Strings.043A]
; 044E is the language ID for Marathi
[Strings.044E]
; 0414 is the language ID for Norwegian - Bokml
[Strings.0414]
; 0814 is the language ID for Norwegian - Nynorsk
[Strings.0814]
; 0415 is the language ID for Polish
[Strings.0415]
; 0416 is the language ID for Portuguese - Brazil
[Strings.0416]
; 0816 is the language ID for Portuguese - Portugal
[Strings.0816]
; 0417 is the language ID for Raeto-Romance
[Strings.0417]
; 0818 is the language ID for Romanian - Republic of Moldova
[Strings.0818]
; 0418 is the language ID for Romanian - Romania
[Strings.0418]
; 0419 is the language ID for Russian
[Strings.0419]
; 0819 is the language ID for Russian - Republic of Moldova
[Strings.0819]
; 044F is the language ID for Sanskrit
[Strings.044F]
; 0C1A is the language ID for Serbian - Cyrillic
[Strings.0C1A]
; 081A is the language ID for Serbian - Latin
[Strings.081A]
; 0432 is the language ID for Setsuana
[Strings.0432]
; 041B is the language ID for Slovak
[Strings.041B]
; 0424 is the language ID for Slovenian
[Strings.0424]
; 042E is the language ID for Sorbian
[Strings.042E]
; 2C0A is the language ID for Spanish - Argentina
[Strings.2C0A]
; 400A is the language ID for Spanish - Bolivia
[Strings.400A]
; 340A is the language ID for Spanish - Chile
[Strings.340A]
; 240A is the language ID for Spanish - Colombia
[Strings.240A]
; 140A is the language ID for Spanish - Costa Rica
[Strings.140A]
; 1C0A is the language ID for Spanish - Dominican Republic
[Strings.1C0A]
; 300A is the language ID for Spanish - Ecuador
[Strings.300A]
; 0C0A is the language ID for Spanish - Spain
[Strings.0C0A]
; 100A is the language ID for Spanish - Guatemala
[Strings.100A]
; 480A is the language ID for Spanish - Honduras
[Strings.480A]
; 080A is the language ID for Spanish - Mexico
[Strings.080A]
; 4C0A is the language ID for Spanish - Nicaragua
[Strings.4C0A]
; 180A is the language ID for Spanish - Panama
[Strings.180A]
; 280A is the language ID for Spanish - Peru
[Strings.280A]
; 500A is the language ID for Spanish - Puerto Rico
[Strings.500A]
; 3C0A is the language ID for Spanish - Paraguay
[Strings.3C0A]
; 440A is the language ID for Spanish - El Salvador
[Strings.440A]
; 380A is the language ID for Spanish - Uruguay
[Strings.380A]
; 200A is the language ID for Spanish - Venezuela
[Strings.200A]
; 0441 is the language ID for Swahili
[Strings.0441]
; 081D is the language ID for Swedish - Finland
[Strings.081D]
; 041D is the language ID for Swedish - Sweden
[Strings.041D]
; 0430 is the language ID for Southern Sotho
[Strings.0430]
; 0449 is the language ID for Tamil
[Strings.0449]
; 0444 is the language ID for Tatar
[Strings.0444]
; 041E is the language ID for Thai
[Strings.041E]
; 0431 is the language ID for Tsonga
[Strings.0431]
; 041F is the language ID for Turkish
[Strings.041F]
; 0422 is the language ID for Ukrainian
[Strings.0422]
; 0420 is the language ID for Urdu
[Strings.0420]
; 0843 is the language ID for Uzbek - Cyrillic
[Strings.0843]
; 0443 is the language ID for Uzbek - Latin
[Strings.0443]
; 042A is the language ID for Vietnamese
[Strings.042A]
; 0434 is the language ID for Xhosa
[Strings.0434]
; 043D is the language ID for Yiddish
[Strings.043D]
; 0435 is the language ID for Zulu
[Strings.0435]
Who is it? Oleg?ricktendo64 wrote:your friend
I do not understand.ricktendo64 wrote:Code: Select all
RunProgram=0409:EN\\installer.exe RunProgram=0c0a:ES\\installer.exe
You want to get a new language prefix?
Do you want to get the prefix in the format LCIDHex or the fit format LCIDDec?
The sections are now using the format LCIDDec.
- ricktendo64
- Posts: 3214
- Joined: Mon May 22, 2006 12:27 am
- Location: Honduras
2 gora,
I just noticed that the module did not detect syntax errors in Language sections.
Are you and Oleg_Sch aware of this?
In my case, I was testing an installer with the -sfxlang:nnnn switch.
The installation completed with no error messages, but the language section I specified was not run. When I re-checked my config.txt I noticed a syntax error ( too many \") which was not reported by the module. When I corrected the syntax error and rebuilt the installer, the installation completed successfully with the language section run.
I just noticed that the module did not detect syntax errors in Language sections.
Are you and Oleg_Sch aware of this?
In my case, I was testing an installer with the -sfxlang:nnnn switch.
The installation completed with no error messages, but the language section I specified was not run. When I re-checked my config.txt I noticed a syntax error ( too many \") which was not reported by the module. When I corrected the syntax error and rebuilt the installer, the installation completed successfully with the language section run.
"You can lead a horse to water, but you can't make it drink."
Please send feature requests and bug reports to the author of modules - Oleg Scherbakov
Email here, an official Russian forum, the official English forum.
Sorry, I can not answer, instead of the author.
Email here, an official Russian forum, the official English forum.
Sorry, I can not answer, instead of the author.

Last edited by gora on Mon May 21, 2012 6:21 am, edited 1 time in total.
Done.gora wrote:Please send feature requests and bug reports to the author of modules - Oleg Shcherbakov
I posted about the lack of an error message when a language section does contain a syntax error at the MSFN 7zsd thread.
UPDATE:
gora has explained that the module does not check if each " in a parameter is paired or unpaired in the config.txt.
So if a non-paired " is used incorrectly, the module will not give an error message. This explains why the line in my config.txt was not giving an error message when it contained an unpaired ".
"You can lead a horse to water, but you can't make it drink."
Modules, help file, site updated
1.5 beta (build 2478) 05/10/12
1.6 develop (build 2478) 05/10/12
+ Support for encryption
1.5 beta (build 2478) 05/10/12
1.6 develop (build 2478) 05/10/12
+ Support for encryption
- ricktendo64
- Posts: 3214
- Joined: Mon May 22, 2006 12:27 am
- Location: Honduras
2 ricktendo64
This is normal behavior of the module
OK+Shift run AutoInstall.
In Russian help file is written:
This is normal behavior of the module
OK+Shift run AutoInstall.
In Russian help file is written:
После всех операций (распаковка, запуск программ, удаление файлов, создание ярлыков и т.д.) будет выведен диалог с текстом, содержащимся в 'FinishMessage'. При любой автоматической установке ('AutoInstall' или 'AutoInstallX') вывод диалога блокируется.
-
- Posts: 1
- Joined: Tue Mar 02, 2010 2:18 am
I have begun translating portions of 7zSD_RU_2712.chm into English with Google Translate. Please bear with me. I will start with the changelog for build 2712 as given in the Russian Help Manual for v.2712. In the coming days, I will update the first post and other previous posts which have been affected by this release.
History modified SFX module
# = Changed
* = Fixed
+ = Added
– = Removed
1.5-Release (build 2712) 30.12.12
# Changed the logic processing of language sections
# Changes associated with batch build
# Changed the logic in the switch '-!' Forced leading spaces removed (gora:forum.oszone.net)
# dialogue '-sfxversion'
* Incorrect operation of switch '-mf'
* When invoking external programs "folder extract" is not set to "Default Folder"
* Wrong size dialogues with strings, using environment variables (Das Betrunkene Pferd:forum.oszone.net)
* Switch not working '-fm0' (usver32:forum.oszone.net)
* Incorrect operation of switch '-fm0' (irod61:forum.oszone.net)
* Displaying errors with incorrect sequence volumes
* lack of method 'Copy'
* Did not work 'FinishMessage' no switches or prefixes 'fmX' (jameszero:forum.oszone.net)
* The variable '%% P' does not understand the command parameters 'Shortcut', 'ShortcutX' (gora:forum.oszone.net)
* The manifest and the Russian string
* Pressing the "Select" on x64 platforms resulted in an error (gora:forum.oszone.net)
* Folder no extraction was current in the presence of the prefix 'waitall' (gora:forum.oszone.net)
+ Supports volumes
+ Button to create the "New Folder" in the "Select Folder"
+ Mapping support volumes (switch '-sfxversion')
+ Encryption support archives
+ Parameters 'BeginPromptTimeout', 'PasswordTitle', 'VolumeNameStyle' and 'PasswordText' in the configuration file
+ The prefix 'waitall' in the configuration file
+ switches '-bptX' and '-pX'
+ Flag 16384 'GUIFlags'
+ Flags 4 and 8 'MiscFlags'
+ variable module '%%P'
History modified SFX module
# = Changed
* = Fixed
+ = Added
– = Removed
1.5-Release (build 2712) 30.12.12
# Changed the logic processing of language sections
# Changes associated with batch build
# Changed the logic in the switch '-!' Forced leading spaces removed (gora:forum.oszone.net)
# dialogue '-sfxversion'
* Incorrect operation of switch '-mf'
* When invoking external programs "folder extract" is not set to "Default Folder"
* Wrong size dialogues with strings, using environment variables (Das Betrunkene Pferd:forum.oszone.net)
* Switch not working '-fm0' (usver32:forum.oszone.net)
* Incorrect operation of switch '-fm0' (irod61:forum.oszone.net)
* Displaying errors with incorrect sequence volumes
* lack of method 'Copy'
* Did not work 'FinishMessage' no switches or prefixes 'fmX' (jameszero:forum.oszone.net)
* The variable '%% P' does not understand the command parameters 'Shortcut', 'ShortcutX' (gora:forum.oszone.net)
* The manifest and the Russian string
* Pressing the "Select" on x64 platforms resulted in an error (gora:forum.oszone.net)
* Folder no extraction was current in the presence of the prefix 'waitall' (gora:forum.oszone.net)
+ Supports volumes
+ Button to create the "New Folder" in the "Select Folder"
+ Mapping support volumes (switch '-sfxversion')
+ Encryption support archives
+ Parameters 'BeginPromptTimeout', 'PasswordTitle', 'VolumeNameStyle' and 'PasswordText' in the configuration file
+ The prefix 'waitall' in the configuration file
+ switches '-bptX' and '-pX'
+ Flag 16384 'GUIFlags'
+ Flags 4 and 8 'MiscFlags'
+ variable module '%%P'
"You can lead a horse to water, but you can't make it drink."
- ricktendo64
- Posts: 3214
- Joined: Mon May 22, 2006 12:27 am
- Location: Honduras
You know what I found did not work
What am I doing wrong?
Code: Select all
Delete="\"%CommonDesktop%\\<link>.lnk\""
Rick, I don't use the parameter "Delete" in any of my SFX's, but looking at gora's examples it should work if the SFX is run without autoinstall options chosen. I think if the config.txt has autoinstall options you want to use "DeleteX" instead.
It would help if you could possibly post the entire config.txt.
Then if gora drops by, I am pretty sure you will get an answer.
It would help if you could possibly post the entire config.txt.
Then if gora drops by, I am pretty sure you will get an answer.
"You can lead a horse to water, but you can't make it drink."
- ricktendo64
- Posts: 3214
- Joined: Mon May 22, 2006 12:27 am
- Location: Honduras
From what I read, Delete should be called if you use RunProgram or AutoInstall (without a-b, A-B, 1-0)
This was my config.txt for EasyBCD
Had to use this instead of "Delete" to delete the desktop shortcut
This was my config.txt for EasyBCD
Code: Select all
;!@Install@!UTF-8!
GUIMode="2"
MiscFlags="4"
SetEnvironment="ProgName=EasyBCD"
SetEnvironment="ver=2.2"
RunProgram="\"%ProgName% %ver%.exe\" /S /NCRC"
Delete="\"%CommonDesktop%\\%ProgName% %ver%.lnk\""
;!@InstallEnd@!
Code: Select all
RunProgram="hidcon:cmd /c del /f /q \"%CommonDesktop%\\%ProgName% %ver%.lnk\""
ricktendo64, need to remove the extra quotes
Code: Select all
Delete="%CommonDesktop%\\%ProgName% %ver%.lnk"
- ricktendo64
- Posts: 3214
- Joined: Mon May 22, 2006 12:27 am
- Location: Honduras
Thanks gora, it worked (I added the quotes because of the space in the path, did not realize the regular quotes solved that problem)gora wrote:ricktendo64, need to remove the extra quotesCode: Select all
Delete="%CommonDesktop%\\%ProgName% %ver%.lnk"