2002-01-21 18:36:35 +01:00
|
|
|
package shlwapi;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
|
|
|
|
require Exporter;
|
|
|
|
|
|
|
|
use wine;
|
|
|
|
use vars qw(@ISA @EXPORT @EXPORT_OK);
|
|
|
|
|
|
|
|
@ISA = qw(Exporter);
|
|
|
|
@EXPORT = qw();
|
|
|
|
@EXPORT_OK = qw();
|
|
|
|
|
|
|
|
my $module_declarations = {
|
|
|
|
"ChrCmpIA" => ["long", ["long", "long"]],
|
|
|
|
"ChrCmpIW" => ["long", ["long", "long"]],
|
|
|
|
"ColorHLSToRGB" => ["long", ["long", "long", "long"]],
|
|
|
|
"ColorRGBToHLS" => ["void", ["long", "ptr", "ptr", "ptr"]],
|
|
|
|
"DllGetVersion" => ["long", ["ptr"]],
|
|
|
|
"GetMenuPosFromID" => ["long", ["long", "long"]],
|
|
|
|
"HashData" => ["long", ["ptr", "long", "ptr", "long"]],
|
|
|
|
"PathAddBackslashA" => ["str", ["str"]],
|
|
|
|
"PathAddBackslashW" => ["wstr", ["wstr"]],
|
|
|
|
"PathAddExtensionA" => ["long", ["str", "str"]],
|
|
|
|
"PathAddExtensionW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathAppendA" => ["long", ["str", "str"]],
|
|
|
|
"PathAppendW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathBuildRootA" => ["str", ["str", "long"]],
|
|
|
|
"PathBuildRootW" => ["wstr", ["wstr", "long"]],
|
|
|
|
"PathCanonicalizeA" => ["long", ["str", "str"]],
|
|
|
|
"PathCanonicalizeW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathCombineA" => ["str", ["str", "str", "str"]],
|
|
|
|
"PathCombineW" => ["wstr", ["wstr", "wstr", "wstr"]],
|
|
|
|
"PathCommonPrefixA" => ["long", ["str", "str", "str"]],
|
|
|
|
"PathCommonPrefixW" => ["long", ["wstr", "wstr", "wstr"]],
|
|
|
|
"PathCompactPathA" => ["long", ["long", "str", "long"]],
|
|
|
|
"PathCompactPathExA" => ["long", ["str", "str", "long", "long"]],
|
|
|
|
"PathCompactPathExW" => ["long", ["wstr", "wstr", "long", "long"]],
|
|
|
|
"PathCompactPathW" => ["long", ["long", "wstr", "long"]],
|
|
|
|
"PathCreateFromUrlA" => ["long", ["str", "str", "ptr", "long"]],
|
|
|
|
"PathCreateFromUrlW" => ["long", ["wstr", "wstr", "ptr", "long"]],
|
|
|
|
"PathFileExistsA" => ["long", ["str"]],
|
|
|
|
"PathFileExistsW" => ["long", ["wstr"]],
|
|
|
|
"PathFindExtensionA" => ["str", ["str"]],
|
|
|
|
"PathFindExtensionW" => ["wstr", ["wstr"]],
|
|
|
|
"PathFindFileNameA" => ["str", ["str"]],
|
|
|
|
"PathFindFileNameW" => ["wstr", ["wstr"]],
|
|
|
|
"PathFindNextComponentA" => ["str", ["str"]],
|
|
|
|
"PathFindNextComponentW" => ["wstr", ["wstr"]],
|
|
|
|
"PathFindOnPathA" => ["long", ["str", "ptr"]],
|
|
|
|
"PathFindOnPathW" => ["long", ["wstr", "ptr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"PathFindSuffixArrayA" => ["long", ["str", "ptr", "long"]],
|
|
|
|
"PathFindSuffixArrayW" => ["long", ["wstr", "ptr", "long"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"PathGetArgsA" => ["str", ["str"]],
|
|
|
|
"PathGetArgsW" => ["wstr", ["wstr"]],
|
|
|
|
"PathGetCharTypeA" => ["long", ["long"]],
|
|
|
|
"PathGetCharTypeW" => ["long", ["long"]],
|
|
|
|
"PathGetDriveNumberA" => ["long", ["str"]],
|
|
|
|
"PathGetDriveNumberW" => ["long", ["wstr"]],
|
|
|
|
"PathIsContentTypeA" => ["long", ["str", "str"]],
|
|
|
|
"PathIsContentTypeW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathIsDirectoryA" => ["long", ["str"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"PathIsDirectoryEmptyA" => ["long", ["str"]],
|
|
|
|
"PathIsDirectoryEmptyW" => ["long", ["wstr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"PathIsDirectoryW" => ["long", ["wstr"]],
|
|
|
|
"PathIsFileSpecA" => ["long", ["str"]],
|
|
|
|
"PathIsFileSpecW" => ["long", ["wstr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"PathIsLFNFileSpecA" => ["long", ["str"]],
|
|
|
|
"PathIsLFNFileSpecW" => ["long", ["wstr"]],
|
|
|
|
"PathIsNetworkPathA" => ["long", ["str"]],
|
|
|
|
"PathIsNetworkPathW" => ["long", ["wstr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"PathIsPrefixA" => ["long", ["str", "str"]],
|
|
|
|
"PathIsPrefixW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathIsRelativeA" => ["long", ["str"]],
|
|
|
|
"PathIsRelativeW" => ["long", ["wstr"]],
|
|
|
|
"PathIsRootA" => ["long", ["str"]],
|
|
|
|
"PathIsRootW" => ["long", ["wstr"]],
|
|
|
|
"PathIsSameRootA" => ["long", ["str", "str"]],
|
|
|
|
"PathIsSameRootW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathIsSystemFolderA" => ["long", ["str", "long"]],
|
|
|
|
"PathIsSystemFolderW" => ["long", ["wstr", "long"]],
|
|
|
|
"PathIsUNCA" => ["long", ["str"]],
|
|
|
|
"PathIsUNCServerA" => ["long", ["str"]],
|
|
|
|
"PathIsUNCServerShareA" => ["long", ["str"]],
|
|
|
|
"PathIsUNCServerShareW" => ["long", ["wstr"]],
|
|
|
|
"PathIsUNCServerW" => ["long", ["wstr"]],
|
|
|
|
"PathIsUNCW" => ["long", ["wstr"]],
|
|
|
|
"PathIsURLA" => ["long", ["str"]],
|
|
|
|
"PathIsURLW" => ["long", ["wstr"]],
|
|
|
|
"PathMakePrettyA" => ["long", ["str"]],
|
|
|
|
"PathMakePrettyW" => ["long", ["wstr"]],
|
|
|
|
"PathMakeSystemFolderA" => ["long", ["str"]],
|
|
|
|
"PathMakeSystemFolderW" => ["long", ["wstr"]],
|
|
|
|
"PathMatchSpecA" => ["long", ["str", "str"]],
|
|
|
|
"PathMatchSpecW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathParseIconLocationA" => ["long", ["str"]],
|
|
|
|
"PathParseIconLocationW" => ["long", ["wstr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"PathQuoteSpacesA" => ["void", ["str"]],
|
|
|
|
"PathQuoteSpacesW" => ["void", ["wstr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"PathRelativePathToA" => ["long", ["str", "str", "long", "str", "long"]],
|
|
|
|
"PathRelativePathToW" => ["long", ["wstr", "wstr", "long", "wstr", "long"]],
|
|
|
|
"PathRemoveArgsA" => ["void", ["str"]],
|
|
|
|
"PathRemoveArgsW" => ["void", ["wstr"]],
|
|
|
|
"PathRemoveBackslashA" => ["str", ["str"]],
|
|
|
|
"PathRemoveBackslashW" => ["wstr", ["wstr"]],
|
|
|
|
"PathRemoveBlanksA" => ["void", ["str"]],
|
|
|
|
"PathRemoveBlanksW" => ["void", ["wstr"]],
|
|
|
|
"PathRemoveExtensionA" => ["void", ["str"]],
|
|
|
|
"PathRemoveExtensionW" => ["void", ["wstr"]],
|
|
|
|
"PathRemoveFileSpecA" => ["long", ["str"]],
|
|
|
|
"PathRemoveFileSpecW" => ["long", ["wstr"]],
|
|
|
|
"PathRenameExtensionA" => ["long", ["str", "str"]],
|
|
|
|
"PathRenameExtensionW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"PathSearchAndQualifyA" => ["long", ["str", "str", "long"]],
|
|
|
|
"PathSearchAndQualifyW" => ["long", ["wstr", "wstr", "long"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"PathSetDlgItemPathA" => ["void", ["long", "long", "str"]],
|
|
|
|
"PathSetDlgItemPathW" => ["void", ["long", "long", "wstr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"PathSkipRootA" => ["str", ["str"]],
|
|
|
|
"PathSkipRootW" => ["wstr", ["wstr"]],
|
|
|
|
"PathStripPathA" => ["void", ["str"]],
|
|
|
|
"PathStripPathW" => ["void", ["wstr"]],
|
|
|
|
"PathStripToRootA" => ["long", ["str"]],
|
|
|
|
"PathStripToRootW" => ["long", ["wstr"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"PathUndecorateA" => ["void", ["str"]],
|
|
|
|
"PathUndecorateW" => ["void", ["wstr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"PathUnmakeSystemFolderA" => ["long", ["str"]],
|
|
|
|
"PathUnmakeSystemFolderW" => ["long", ["wstr"]],
|
|
|
|
"PathUnquoteSpacesA" => ["void", ["str"]],
|
|
|
|
"PathUnquoteSpacesW" => ["void", ["wstr"]],
|
|
|
|
"SHCreateShellPalette" => ["long", ["long"]],
|
|
|
|
"SHDeleteEmptyKeyA" => ["long", ["long", "str"]],
|
|
|
|
"SHDeleteEmptyKeyW" => ["long", ["long", "wstr"]],
|
|
|
|
"SHDeleteKeyA" => ["long", ["long", "str"]],
|
|
|
|
"SHDeleteKeyW" => ["long", ["long", "wstr"]],
|
|
|
|
"SHDeleteOrphanKeyA" => ["long", ["long", "str"]],
|
|
|
|
"SHDeleteOrphanKeyW" => ["long", ["long", "wstr"]],
|
|
|
|
"SHDeleteValueA" => ["long", ["long", "str", "str"]],
|
|
|
|
"SHDeleteValueW" => ["long", ["long", "wstr", "wstr"]],
|
|
|
|
"SHEnumKeyExA" => ["long", ["long", "long", "str", "ptr"]],
|
|
|
|
"SHEnumKeyExW" => ["long", ["long", "long", "wstr", "ptr"]],
|
|
|
|
"SHEnumValueA" => ["long", ["long", "long", "str", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHEnumValueW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHGetInverseCMAP" => ["long", ["ptr", "long"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"SHGetThreadRef" => ["long", ["ptr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"SHGetValueA" => ["long", ["long", "str", "str", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHGetValueW" => ["long", ["long", "wstr", "wstr", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHIsLowMemoryMachine" => ["long", ["long"]],
|
|
|
|
"SHOpenRegStream2A" => ["ptr", ["long", "str", "str", "long"]],
|
|
|
|
"SHOpenRegStream2W" => ["ptr", ["long", "wstr", "wstr", "long"]],
|
|
|
|
"SHOpenRegStreamA" => ["ptr", ["long", "str", "str", "long"]],
|
|
|
|
"SHOpenRegStreamW" => ["ptr", ["long", "wstr", "wstr", "long"]],
|
|
|
|
"SHQueryInfoKeyA" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHQueryInfoKeyW" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHQueryValueExA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHQueryValueExW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
|
|
|
|
"SHRegCloseUSKey" => ["long", ["long"]],
|
|
|
|
"SHRegDuplicateHKey" => ["long", ["long"]],
|
|
|
|
"SHRegEnumUSKeyA" => ["long", ["long", "long", "str", "ptr", "long"]],
|
|
|
|
"SHRegEnumUSKeyW" => ["long", ["long", "long", "wstr", "ptr", "long"]],
|
|
|
|
"SHRegGetBoolUSValueA" => ["long", ["str", "str", "long", "long"]],
|
|
|
|
"SHRegGetBoolUSValueW" => ["long", ["wstr", "wstr", "long", "long"]],
|
|
|
|
"SHRegGetPathA" => ["long", ["long", "str", "str", "str", "long"]],
|
|
|
|
"SHRegGetPathW" => ["long", ["long", "wstr", "wstr", "wstr", "long"]],
|
|
|
|
"SHRegGetUSValueA" => ["long", ["str", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
|
|
|
|
"SHRegGetUSValueW" => ["long", ["wstr", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
|
|
|
|
"SHRegOpenUSKeyA" => ["long", ["str", "long", "long", "ptr", "long"]],
|
|
|
|
"SHRegOpenUSKeyW" => ["long", ["wstr", "long", "long", "ptr", "long"]],
|
|
|
|
"SHRegQueryInfoUSKeyA" => ["long", ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
|
|
|
|
"SHRegQueryInfoUSKeyW" => ["long", ["long", "ptr", "ptr", "ptr", "ptr", "long"]],
|
|
|
|
"SHRegQueryUSValueA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
|
|
|
|
"SHRegQueryUSValueW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "long", "ptr", "long"]],
|
|
|
|
"SHRegSetPathA" => ["long", ["long", "str", "str", "str", "long"]],
|
|
|
|
"SHRegSetPathW" => ["long", ["long", "wstr", "wstr", "wstr", "long"]],
|
|
|
|
"SHRegWriteUSValueA" => ["long", ["long", "str", "long", "ptr", "long", "long"]],
|
|
|
|
"SHRegWriteUSValueW" => ["long", ["long", "wstr", "long", "ptr", "long", "long"]],
|
2002-04-27 02:19:41 +02:00
|
|
|
"SHSetThreadRef" => ["long", ["ptr"]],
|
2002-01-21 18:36:35 +01:00
|
|
|
"SHSetValueA" => ["long", ["long", "str", "str", "long", "ptr", "long"]],
|
|
|
|
"SHSetValueW" => ["long", ["long", "wstr", "wstr", "long", "ptr", "long"]],
|
|
|
|
"StrCSpnA" => ["long", ["str", "str"]],
|
|
|
|
"StrCSpnW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"StrCatBuffA" => ["str", ["str", "str", "long"]],
|
|
|
|
"StrCatBuffW" => ["wstr", ["wstr", "wstr", "long"]],
|
|
|
|
"StrCatW" => ["wstr", ["wstr", "wstr"]],
|
|
|
|
"StrChrA" => ["str", ["str", "long"]],
|
|
|
|
"StrChrW" => ["wstr", ["wstr", "long"]],
|
|
|
|
"StrCmpIW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"StrCmpNA" => ["long", ["str", "str", "long"]],
|
|
|
|
"StrCmpNIA" => ["long", ["str", "str", "long"]],
|
|
|
|
"StrCmpNIW" => ["long", ["wstr", "wstr", "long"]],
|
|
|
|
"StrCmpNW" => ["long", ["wstr", "wstr", "long"]],
|
|
|
|
"StrCmpW" => ["long", ["wstr", "wstr"]],
|
|
|
|
"StrCpyNW" => ["wstr", ["wstr", "wstr", "long"]],
|
|
|
|
"StrCpyW" => ["wstr", ["wstr", "wstr"]],
|
|
|
|
"StrDupA" => ["str", ["str"]],
|
|
|
|
"StrDupW" => ["wstr", ["wstr"]],
|
|
|
|
"StrFormatByteSizeA" => ["str", ["long", "str", "long"]],
|
|
|
|
"StrFormatByteSizeW" => ["wstr", ["long", "wstr", "long"]],
|
|
|
|
"StrNCatA" => ["str", ["str", "str", "long"]],
|
|
|
|
"StrNCatW" => ["wstr", ["wstr", "wstr", "long"]],
|
|
|
|
"StrRChrA" => ["str", ["str", "str", "long"]],
|
|
|
|
"StrRChrIA" => ["str", ["str", "str", "long"]],
|
|
|
|
"StrRChrIW" => ["wstr", ["wstr", "wstr", "long"]],
|
|
|
|
"StrRChrW" => ["wstr", ["wstr", "wstr", "long"]],
|
|
|
|
"StrRetToBufA" => ["long", ["ptr", "ptr", "str", "long"]],
|
|
|
|
"StrRetToBufW" => ["long", ["ptr", "ptr", "wstr", "long"]],
|
|
|
|
"StrStrA" => ["str", ["str", "str"]],
|
|
|
|
"StrStrIA" => ["str", ["str", "str"]],
|
|
|
|
"StrStrIW" => ["wstr", ["wstr", "wstr"]],
|
|
|
|
"StrStrW" => ["wstr", ["wstr", "wstr"]],
|
|
|
|
"StrToIntA" => ["long", ["str"]],
|
|
|
|
"StrToIntExA" => ["long", ["str", "long", "ptr"]],
|
|
|
|
"StrToIntExW" => ["long", ["wstr", "long", "ptr"]],
|
|
|
|
"StrToIntW" => ["long", ["wstr"]],
|
|
|
|
"StrTrimA" => ["long", ["str", "str"]],
|
|
|
|
"UrlApplySchemeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
|
|
|
|
"UrlCanonicalizeA" => ["long", ["str", "str", "ptr", "long"]],
|
|
|
|
"UrlCanonicalizeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
|
|
|
|
"UrlCombineA" => ["long", ["str", "str", "str", "ptr", "long"]],
|
|
|
|
"UrlCombineW" => ["long", ["wstr", "wstr", "wstr", "ptr", "long"]],
|
|
|
|
"UrlCompareA" => ["long", ["str", "str", "long"]],
|
|
|
|
"UrlCompareW" => ["long", ["wstr", "wstr", "long"]],
|
|
|
|
"UrlEscapeA" => ["long", ["str", "str", "ptr", "long"]],
|
|
|
|
"UrlEscapeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
|
|
|
|
"UrlGetLocationA" => ["str", ["str"]],
|
|
|
|
"UrlGetLocationW" => ["wstr", ["wstr"]],
|
|
|
|
"UrlGetPartA" => ["long", ["str", "str", "ptr", "long", "long"]],
|
|
|
|
"UrlGetPartW" => ["long", ["wstr", "wstr", "ptr", "long", "long"]],
|
|
|
|
"UrlHashA" => ["long", ["str", "ptr", "long"]],
|
|
|
|
"UrlIsA" => ["long", ["str", "long"]],
|
|
|
|
"UrlIsNoHistoryA" => ["long", ["str"]],
|
|
|
|
"UrlIsNoHistoryW" => ["long", ["wstr"]],
|
|
|
|
"UrlIsOpaqueA" => ["long", ["str"]],
|
|
|
|
"UrlIsOpaqueW" => ["long", ["wstr"]],
|
|
|
|
"UrlIsW" => ["long", ["wstr", "long"]],
|
|
|
|
"UrlUnescapeA" => ["long", ["str", "str", "ptr", "long"]],
|
|
|
|
"UrlUnescapeW" => ["long", ["wstr", "wstr", "ptr", "long"]],
|
|
|
|
"_SHGetInstanceExplorer\@4" => ["long", ["ptr"]]
|
|
|
|
};
|
|
|
|
|
|
|
|
&wine::declare("shlwapi",%$module_declarations);
|
|
|
|
push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
|
|
|
|
1;
|