| package shell32; |
| |
| use strict; |
| |
| require Exporter; |
| |
| use wine; |
| use vars qw(@ISA @EXPORT @EXPORT_OK); |
| |
| @ISA = qw(Exporter); |
| @EXPORT = qw(); |
| @EXPORT_OK = qw(); |
| |
| my $module_declarations = { |
| "SHRegDeleteKeyA" => ["long", ["long", "str"]], |
| "SHChangeNotifyRegister" => ["long", ["long", "long", "long", "long", "long", "ptr"]], |
| "SHChangeNotifyDeregister" => ["long", ["long"]], |
| "SHChangeNotifyUpdateEntryList" => ["long", ["long", "long", "long", "long"]], |
| "ILGetDisplayName" => ["long", ["ptr", "str"]], |
| "ILFindLastID" => ["ptr", ["ptr"]], |
| "ILRemoveLastID" => ["long", ["ptr"]], |
| "ILClone" => ["ptr", ["ptr"]], |
| "ILCloneFirst" => ["ptr", ["ptr"]], |
| "ILGlobalClone" => ["ptr", ["ptr"]], |
| "ILIsEqual" => ["long", ["ptr", "ptr"]], |
| "ILIsParent" => ["long", ["ptr", "ptr", "long"]], |
| "ILFindChild" => ["ptr", ["ptr", "ptr"]], |
| "ILCombine" => ["ptr", ["ptr", "ptr"]], |
| "ILLoadFromStream" => ["long", ["ptr", "ptr"]], |
| "ILSaveToStream" => ["long", ["ptr", "ptr"]], |
| "SHILCreateFromPath" => ["long", ["ptr", "ptr", "ptr"]], |
| "PathIsRoot" => ["long", ["ptr"]], |
| "PathBuildRoot" => ["ptr", ["ptr", "long"]], |
| "PathFindExtension" => ["ptr", ["ptr"]], |
| "PathAddBackslash" => ["ptr", ["ptr"]], |
| "PathRemoveBlanks" => ["void", ["ptr"]], |
| "PathFindFileName" => ["ptr", ["ptr"]], |
| "PathRemoveFileSpec" => ["long", ["ptr"]], |
| "PathAppend" => ["long", ["ptr", "ptr"]], |
| "PathCombine" => ["ptr", ["ptr", "ptr", "ptr"]], |
| "PathStripPath" => ["void", ["ptr"]], |
| "PathIsUNC" => ["long", ["ptr"]], |
| "PathIsRelative" => ["long", ["ptr"]], |
| "PathIsExe" => ["long", ["ptr"]], |
| "PathFileExists" => ["long", ["ptr"]], |
| "PathMatchSpec" => ["long", ["ptr", "ptr"]], |
| "PathMakeUniqueName" => ["long", ["ptr", "long", "ptr", "ptr", "ptr"]], |
| "PathSetDlgItemPath" => ["long", ["long", "long", "ptr"]], |
| "PathQualify" => ["long", ["ptr"]], |
| "PathStripToRoot" => ["long", ["ptr"]], |
| "PathResolve" => ["long", ["ptr", "ptr", "long"]], |
| "PathGetArgs" => ["ptr", ["ptr"]], |
| "DoEnvironmentSubst" => ["long", ["ptr", "ptr"]], |
| "DragAcceptFiles" => ["void", ["long", "long"]], |
| "PathQuoteSpaces" => ["ptr", ["ptr"]], |
| "PathUnquoteSpaces" => ["void", ["ptr"]], |
| "PathGetDriveNumber" => ["long", ["ptr"]], |
| "ParseField" => ["long", ["ptr", "long", "ptr", "long"]], |
| "ExitWindowsDialog" => ["void", ["long"]], |
| "RunFileDlg" => ["void", ["long", "long", "str", "str", "str", "long"]], |
| "PickIconDlg" => ["long", ["long", "str", "long", "ptr"]], |
| "GetFileNameFromBrowse" => ["long", ["long", "str", "long", "str", "str", "str", "str"]], |
| "DriveType" => ["long", ["long"]], |
| "IsNetDrive" => ["long", ["long"]], |
| "Shell_MergeMenus" => ["long", ["long", "long", "long", "long", "long", "long"]], |
| "SHGetSetSettings" => ["void", ["long", "long", "long"]], |
| "SHCreateDefClassObject" => ["long", ["ptr", "ptr", "ptr", "ptr", "ptr"]], |
| "Shell_GetImageList" => ["long", ["ptr", "ptr"]], |
| "Shell_GetCachedImageIndex" => ["long", ["ptr", "long", "long"]], |
| "SHShellFolderView_Message" => ["long", ["long", "long", "long"]], |
| "PathYetAnotherMakeUniqueName" => ["long", ["str", "str", "str", "str"]], |
| "SHMapPIDLToSystemImageListIndex" => ["long", ["ptr", "ptr", "ptr"]], |
| "OleStrToStrN" => ["long", ["ptr", "long", "ptr", "long"]], |
| "StrToOleStrN" => ["long", ["wstr", "long", "ptr", "long"]], |
| "DragFinish" => ["void", ["long"]], |
| "DragQueryFile" => ["long", ["long", "long", "str", "long"]], |
| "DragQueryFileA" => ["long", ["long", "long", "str", "long"]], |
| "CIDLData_CreateFromIDArray" => ["long", ["ptr", "long", "ptr", "ptr"]], |
| "SHRegisterDragDrop" => ["long", ["long", "ptr"]], |
| "SHRevokeDragDrop" => ["long", ["long"]], |
| "SHDoDragDrop" => ["long", ["long", "ptr", "ptr", "long", "ptr"]], |
| "SHCloneSpecialIDList" => ["ptr", ["long", "long", "long"]], |
| "PathGetShortPath" => ["ptr", ["ptr"]], |
| "SHLogILFromFSIL" => ["ptr", ["ptr"]], |
| "StrRetToStrN" => ["long", ["ptr", "long", "ptr", "ptr"]], |
| "SHWaitForFileToOpen" => ["long", ["ptr", "long", "long"]], |
| "SHGetRealIDL" => ["ptr", ["ptr", "ptr", "long"]], |
| "SetAppStartingCursor" => ["long", ["long", "long"]], |
| "SHRestricted" => ["long", ["long"]], |
| "SHCoCreateInstance" => ["long", ["str", "ptr", "ptr", "ptr", "ptr"]], |
| "SignalFileOpen" => ["long", ["long"]], |
| "FileMenu_DeleteAllItems" => ["long", ["long"]], |
| "FileMenu_DrawItem" => ["long", ["long", "ptr"]], |
| "FileMenu_FindSubMenuByPidl" => ["long", ["long", "ptr"]], |
| "FileMenu_GetLastSelectedItemPidls" => ["long", ["long", "ptr", "ptr"]], |
| "FileMenu_HandleMenuChar" => ["long", ["long", "long"]], |
| "FileMenu_InitMenuPopup" => ["long", ["long"]], |
| "FileMenu_InsertUsingPidl" => ["long", ["long", "long", "ptr", "long", "long", "ptr"]], |
| "FileMenu_Invalidate" => ["void", ["long"]], |
| "FileMenu_MeasureItem" => ["long", ["long", "ptr"]], |
| "FileMenu_ReplaceUsingPidl" => ["long", ["long", "long", "ptr", "long", "ptr"]], |
| "FileMenu_Create" => ["long", ["long", "long", "long", "long", "long"]], |
| "FileMenu_AppendItem" => ["long", ["long", "ptr", "long", "long", "long", "long"]], |
| "FileMenu_TrackPopupMenuEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]], |
| "FileMenu_DeleteItemByCmd" => ["long", ["long", "long"]], |
| "FileMenu_Destroy" => ["void", ["long"]], |
| "IsLFNDrive" => ["long", ["str"]], |
| "FileMenu_AbortInitMenu" => ["void", []], |
| "SHFlushClipboard" => ["long", []], |
| "RunDLL_CallEntry16" => ["long", ["long", "long", "long", "long", "long"]], |
| "SHFreeUnusedLibraries" => ["void", []], |
| "FileMenu_AppendFilesForPidl" => ["long", ["long", "ptr", "long"]], |
| "FileMenu_AddFilesForPidl" => ["long", ["long", "long", "long", "ptr", "long", "long", "ptr"]], |
| "SHOutOfMemoryMessageBox" => ["long", ["long", "str", "long"]], |
| "SHWinHelp" => ["long", ["long", "long", "long", "long"]], |
| "DllGetClassObject" => ["long", ["ptr", "ptr", "ptr"]], |
| "DragQueryFileW" => ["long", ["long", "long", "wstr", "long"]], |
| "DragQueryPoint" => ["long", ["long", "ptr"]], |
| "DAD_SetDragImage" => ["long", ["long", "ptr"]], |
| "DAD_ShowDragImage" => ["long", ["long"]], |
| "FileMenu_DeleteItemByIndex" => ["long", ["long", "long"]], |
| "FileMenu_DeleteItemByFirstID" => ["long", ["long", "long"]], |
| "FileMenu_DeleteSeparator" => ["long", ["long"]], |
| "FileMenu_EnableItemByCmd" => ["long", ["long", "long", "long"]], |
| "FileMenu_GetItemExtent" => ["long", ["long", "long"]], |
| "PathFindOnPath" => ["long", ["ptr", "ptr"]], |
| "RLBuildListOfPaths" => ["long", []], |
| "SHCLSIDFromString" => ["long", ["ptr", "ptr"]], |
| "SHFind_InitMenuPopup" => ["ptr", ["long", "long", "long", "long"]], |
| "SHLoadOLE" => ["long", ["long"]], |
| "ILGetSize" => ["long", ["ptr"]], |
| "ILGetNext" => ["ptr", ["ptr"]], |
| "ILAppend" => ["ptr", ["ptr", "ptr", "long"]], |
| "ILFree" => ["long", ["ptr"]], |
| "ILGlobalFree" => ["void", ["ptr"]], |
| "ILCreateFromPath" => ["ptr", ["ptr"]], |
| "PathGetExtension" => ["ptr", ["ptr", "long", "long"]], |
| "PathIsDirectory" => ["long", ["ptr"]], |
| "SHRunControlPanel" => ["long", ["long", "long"]], |
| "SHSimpleIDListFromPath" => ["ptr", ["ptr"]], |
| "StrToOleStr" => ["long", ["wstr", "ptr"]], |
| "Win32DeleteFile" => ["long", ["str"]], |
| "SHCreateDirectory" => ["long", ["ptr", "str"]], |
| "CallCPLEntry16" => ["long", ["long", "ptr", "long", "long", "long", "long"]], |
| "SHAddFromPropSheetExtArray" => ["long", ["long", "long", "long"]], |
| "SHCreatePropSheetExtArray" => ["long", ["long", "str", "long"]], |
| "SHDestroyPropSheetExtArray" => ["long", ["long"]], |
| "SHReplaceFromPropSheetExtArray" => ["long", ["long", "long", "long", "long"]], |
| "PathCleanupSpec" => ["long", ["ptr", "ptr"]], |
| "SHValidateUNC" => ["long", ["long", "long", "long"]], |
| "SHCreateShellFolderViewEx" => ["long", ["ptr", "ptr"]], |
| "SHGetSpecialFolderPath" => ["long", ["long", "ptr", "long", "long"]], |
| "SHSetInstanceExplorer" => ["long", ["ptr"]], |
| "RegisterShellHook" => ["long", ["long", "long"]], |
| "ArrangeWindows" => ["long", ["long", "long", "ptr", "long", "ptr"]], |
| "SHFree" => ["void", ["ptr"]], |
| "SHAlloc" => ["ptr", ["long"]], |
| "SHAbortInvokeCommand" => ["long", []], |
| "SHInitRestricted" => ["long", ["str", "str"]], |
| "SHGetDataFromIDListA" => ["long", ["ptr", "ptr", "long", "ptr", "long"]], |
| "SHGetDataFromIDListW" => ["long", ["ptr", "ptr", "long", "ptr", "long"]], |
| "PathParseIconLocation" => ["long", ["ptr"]], |
| "PathRemoveExtension" => ["void", ["ptr"]], |
| "PathRemoveArgs" => ["void", ["ptr"]], |
| "SheChangeDirW" => ["long", ["wstr"]], |
| "SheGetDirW" => ["long", ["wstr", "wstr"]], |
| "ShellAboutA" => ["long", ["long", "str", "str", "long"]], |
| "ShellAboutW" => ["long", ["long", "wstr", "wstr", "long"]], |
| "ShellExecuteA" => ["long", ["long", "str", "str", "str", "str", "long"]], |
| "ShellExecuteEx" => ["long", ["ptr"]], |
| "ShellExecuteExA" => ["long", ["ptr"]], |
| "ShellExecuteExW" => ["long", ["ptr"]], |
| "ShellExecuteW" => ["long", ["long", "wstr", "wstr", "wstr", "wstr", "long"]], |
| "Shell_NotifyIcon" => ["long", ["long", "ptr"]], |
| "Shell_NotifyIconA" => ["long", ["long", "ptr"]], |
| "Shell_NotifyIconW" => ["long", ["long", "ptr"]], |
| "SHRegOpenKeyA" => ["long", ["long", "str", "ptr"]], |
| "SHRegOpenKeyW" => ["long", ["long", "wstr", "ptr"]], |
| "SHRegQueryValueExA" => ["long", ["long", "str", "ptr", "ptr", "ptr", "ptr"]], |
| "SHRegQueryValueW" => ["long", ["long", "wstr", "wstr", "ptr"]], |
| "SHRegQueryValueExW" => ["long", ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]], |
| "SHRegDeleteKeyW" => ["long", ["long", "wstr"]], |
| "SHAllocShared" => ["long", ["ptr", "long", "long"]], |
| "SHLockShared" => ["ptr", ["long", "long"]], |
| "SHUnlockShared" => ["long", ["ptr"]], |
| "SHFreeShared" => ["long", ["long", "long"]], |
| "NTSHChangeNotifyRegister" => ["long", ["long", "long", "long", "long", "long", "ptr"]], |
| "NTSHChangeNotifyDeregister" => ["long", ["long"]], |
| "SHChangeNotification_Lock" => ["long", ["long", "long", "undef", "ptr"]], |
| "SHChangeNotification_Unlock" => ["long", ["long"]], |
| "PathIsSameRoot" => ["long", ["ptr", "ptr"]], |
| "ReadCabinetState" => ["long", ["long", "long"]], |
| "WriteCabinetState" => ["long", ["long"]], |
| "PathProcessCommand" => ["long", ["ptr", "ptr", "long", "long"]], |
| "FileIconInit" => ["long", ["long"]], |
| "IsUserAdmin" => ["long", []], |
| "CommandLineToArgvW" => ["ptr", ["wstr", "ptr"]], |
| "Control_FillCache_RunDLL" => ["long", ["long", "long", "long", "long"]], |
| "Control_RunDLL" => ["void", ["long", "long", "str", "long"]], |
| "DllCanUnloadNow" => ["long", []], |
| "DllGetVersion" => ["long", ["ptr"]], |
| "DllInstall" => ["long", ["long", "wstr"]], |
| "DoEnvironmentSubstA" => ["long", ["str", "str"]], |
| "DoEnvironmentSubstW" => ["long", ["wstr", "wstr"]], |
| "DuplicateIcon" => ["long", ["long", "long"]], |
| "ExtractAssociatedIconA" => ["long", ["long", "str", "ptr"]], |
| "ExtractIconA" => ["long", ["long", "str", "long"]], |
| "ExtractIconEx" => ["long", ["ptr", "long", "ptr", "ptr", "long"]], |
| "ExtractIconExA" => ["long", ["str", "long", "ptr", "ptr", "long"]], |
| "ExtractIconExW" => ["long", ["wstr", "long", "ptr", "ptr", "long"]], |
| "ExtractIconW" => ["long", ["long", "wstr", "long"]], |
| "FindExecutableA" => ["long", ["str", "str", "str"]], |
| "FindExecutableW" => ["long", ["wstr", "wstr", "wstr"]], |
| "FreeIconList" => ["void", ["long"]], |
| "SHAddToRecentDocs" => ["long", ["long", "ptr"]], |
| "SHAppBarMessage" => ["long", ["long", "ptr"]], |
| "SHBrowseForFolder" => ["ptr", ["ptr"]], |
| "SHBrowseForFolderA" => ["ptr", ["ptr"]], |
| "SHChangeNotify" => ["void", ["long", "long", "ptr", "ptr"]], |
| "SHFileOperation" => ["long", ["ptr"]], |
| "SHFileOperationA" => ["long", ["ptr"]], |
| "SHFileOperationW" => ["long", ["ptr"]], |
| "SHGetDesktopFolder" => ["long", ["ptr"]], |
| "SHGetFileInfo" => ["long", ["ptr", "long", "ptr", "long", "long"]], |
| "SHGetFileInfoA" => ["long", ["str", "long", "ptr", "long", "long"]], |
| "SHGetFileInfoW" => ["long", ["wstr", "long", "ptr", "long", "long"]], |
| "SHGetFolderLocation" => ["long", ["long", "long", "long", "long", "ptr"]], |
| "SHGetFolderPathA" => ["long", ["long", "long", "long", "long", "str"]], |
| "SHGetFolderPathW" => ["long", ["long", "long", "long", "long", "wstr"]], |
| "SHGetInstanceExplorer" => ["long", ["ptr"]], |
| "SHGetMalloc" => ["long", ["ptr"]], |
| "SHGetPathFromIDList" => ["long", ["ptr", "ptr"]], |
| "SHGetPathFromIDListA" => ["long", ["ptr", "str"]], |
| "SHGetPathFromIDListW" => ["long", ["ptr", "wstr"]], |
| "SHGetSettings" => ["void", ["ptr", "long"]], |
| "SHGetSpecialFolderLocation" => ["long", ["long", "long", "ptr"]], |
| "SHGetSpecialFolderPathA" => ["long", ["long", "str", "long", "long"]], |
| "SHHelpShortcuts_RunDLL" => ["long", ["long", "long", "long", "long"]], |
| "SHLoadInProc" => ["long", ["ptr"]] |
| }; |
| |
| &wine::declare("shell32",%$module_declarations); |
| push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations)); |
| 1; |