Added regedit unit test, a couple minor changes to regedit.
[wine] / programs / winetest / include / shell32.pm
1 package shell32;
2
3 use strict;
4
5 require Exporter;
6
7 use wine;
8 use vars qw(@ISA @EXPORT @EXPORT_OK);
9
10 @ISA = qw(Exporter);
11 @EXPORT = qw();
12 @EXPORT_OK = qw();
13
14 my $module_declarations = {
15     "SHRegDeleteKeyA" => ["long",  ["long", "str"]],
16     "SHChangeNotifyRegister" => ["long",  ["long", "long", "long", "long", "long", "ptr"]],
17     "SHChangeNotifyDeregister" => ["long",  ["long"]],
18     "SHChangeNotifyUpdateEntryList" => ["long",  ["long", "long", "long", "long"]],
19     "ILGetDisplayName" => ["long",  ["ptr", "str"]],
20     "ILFindLastID" => ["ptr",  ["ptr"]],
21     "ILRemoveLastID" => ["long",  ["ptr"]],
22     "ILClone" => ["ptr",  ["ptr"]],
23     "ILCloneFirst" => ["ptr",  ["ptr"]],
24     "ILGlobalClone" => ["ptr",  ["ptr"]],
25     "ILIsEqual" => ["long",  ["ptr", "ptr"]],
26     "ILIsParent" => ["long",  ["ptr", "ptr", "long"]],
27     "ILFindChild" => ["ptr",  ["ptr", "ptr"]],
28     "ILCombine" => ["ptr",  ["ptr", "ptr"]],
29     "ILLoadFromStream" => ["long",  ["ptr", "ptr"]],
30     "ILSaveToStream" => ["long",  ["ptr", "ptr"]],
31     "SHILCreateFromPath" => ["long",  ["ptr", "ptr", "ptr"]],
32     "PathIsRoot" => ["long",  ["ptr"]],
33     "PathBuildRoot" => ["ptr",  ["ptr", "long"]],
34     "PathFindExtension" => ["ptr",  ["ptr"]],
35     "PathAddBackslash" => ["ptr",  ["ptr"]],
36     "PathRemoveBlanks" => ["void",  ["ptr"]],
37     "PathFindFileName" => ["ptr",  ["ptr"]],
38     "PathRemoveFileSpec" => ["long",  ["ptr"]],
39     "PathAppend" => ["long",  ["ptr", "ptr"]],
40     "PathCombine" => ["ptr",  ["ptr", "ptr", "ptr"]],
41     "PathStripPath" => ["void",  ["ptr"]],
42     "PathIsUNC" => ["long",  ["ptr"]],
43     "PathIsRelative" => ["long",  ["ptr"]],
44     "PathIsExe" => ["long",  ["ptr"]],
45     "PathFileExists" => ["long",  ["ptr"]],
46     "PathMatchSpec" => ["long",  ["ptr", "ptr"]],
47     "PathMakeUniqueName" => ["long",  ["ptr", "long", "ptr", "ptr", "ptr"]],
48     "PathSetDlgItemPath" => ["void",  ["long", "long", "ptr"]],
49     "PathQualify" => ["long",  ["ptr"]],
50     "PathStripToRoot" => ["long",  ["ptr"]],
51     "PathResolve" => ["long",  ["ptr", "ptr", "long"]],
52     "PathGetArgs" => ["ptr",  ["ptr"]],
53     "DoEnvironmentSubst" => ["long",  ["ptr", "ptr"]],
54     "DragAcceptFiles" => ["void",  ["long", "long"]],
55     "PathQuoteSpaces" => ["void",  ["ptr"]],
56     "PathUnquoteSpaces" => ["void",  ["ptr"]],
57     "PathGetDriveNumber" => ["long",  ["ptr"]],
58     "ParseField" => ["long",  ["ptr", "long", "ptr", "long"]],
59     "ExitWindowsDialog" => ["void",  ["long"]],
60     "RunFileDlg" => ["void",  ["long", "long", "str", "str", "str", "long"]],
61     "PickIconDlg" => ["long",  ["long", "str", "long", "ptr"]],
62     "GetFileNameFromBrowse" => ["long",  ["long", "str", "long", "str", "str", "str", "str"]],
63     "DriveType" => ["long",  ["long"]],
64     "IsNetDrive" => ["long",  ["long"]],
65     "Shell_MergeMenus" => ["long",  ["long", "long", "long", "long", "long", "long"]],
66     "SHGetSetSettings" => ["void",  ["long", "long", "long"]],
67     "SHCreateDefClassObject" => ["long",  ["ptr", "ptr", "ptr", "ptr", "ptr"]],
68     "Shell_GetImageList" => ["long",  ["ptr", "ptr"]],
69     "Shell_GetCachedImageIndex" => ["long",  ["ptr", "long", "long"]],
70     "SHShellFolderView_Message" => ["long",  ["long", "long", "long"]],
71     "PathYetAnotherMakeUniqueName" => ["long",  ["str", "str", "str", "str"]],
72     "SHMapPIDLToSystemImageListIndex" => ["long",  ["ptr", "ptr", "ptr"]],
73     "OleStrToStrN" => ["long",  ["ptr", "long", "ptr", "long"]],
74     "StrToOleStrN" => ["long",  ["wstr", "long", "ptr", "long"]],
75     "DragFinish" => ["void",  ["long"]],
76     "DragQueryFile" => ["long",  ["long", "long", "str", "long"]],
77     "DragQueryFileA" => ["long",  ["long", "long", "str", "long"]],
78     "CIDLData_CreateFromIDArray" => ["long",  ["ptr", "long", "ptr", "ptr"]],
79     "SHRegisterDragDrop" => ["long",  ["long", "ptr"]],
80     "SHRevokeDragDrop" => ["long",  ["long"]],
81     "SHDoDragDrop" => ["long",  ["long", "ptr", "ptr", "long", "ptr"]],
82     "SHCloneSpecialIDList" => ["ptr",  ["long", "long", "long"]],
83     "PathGetShortPath" => ["ptr",  ["ptr"]],
84     "SHLogILFromFSIL" => ["ptr",  ["ptr"]],
85     "StrRetToStrN" => ["long",  ["ptr", "long", "ptr", "ptr"]],
86     "SHWaitForFileToOpen" => ["long",  ["ptr", "long", "long"]],
87     "SHGetRealIDL" => ["ptr",  ["ptr", "ptr", "long"]],
88     "SetAppStartingCursor" => ["long",  ["long", "long"]],
89     "SHRestricted" => ["long",  ["long"]],
90     "SHCoCreateInstance" => ["long",  ["str", "ptr", "ptr", "ptr", "ptr"]],
91     "SignalFileOpen" => ["long",  ["long"]],
92     "FileMenu_DeleteAllItems" => ["long",  ["long"]],
93     "FileMenu_DrawItem" => ["long",  ["long", "ptr"]],
94     "FileMenu_FindSubMenuByPidl" => ["long",  ["long", "ptr"]],
95     "FileMenu_GetLastSelectedItemPidls" => ["long",  ["long", "ptr", "ptr"]],
96     "FileMenu_HandleMenuChar" => ["long",  ["long", "long"]],
97     "FileMenu_InitMenuPopup" => ["long",  ["long"]],
98     "FileMenu_InsertUsingPidl" => ["long",  ["long", "long", "ptr", "long", "long", "ptr"]],
99     "FileMenu_Invalidate" => ["void",  ["long"]],
100     "FileMenu_MeasureItem" => ["long",  ["long", "ptr"]],
101     "FileMenu_ReplaceUsingPidl" => ["long",  ["long", "long", "ptr", "long", "ptr"]],
102     "FileMenu_Create" => ["long",  ["long", "long", "long", "long", "long"]],
103     "FileMenu_AppendItem" => ["long",  ["long", "ptr", "long", "long", "long", "long"]],
104     "FileMenu_TrackPopupMenuEx" => ["long",  ["long", "long", "long", "long", "long", "ptr"]],
105     "FileMenu_DeleteItemByCmd" => ["long",  ["long", "long"]],
106     "FileMenu_Destroy" => ["void",  ["long"]],
107     "IsLFNDrive" => ["long",  ["str"]],
108     "FileMenu_AbortInitMenu" => ["void",  []],
109     "SHFlushClipboard" => ["long",  []],
110     "RunDLL_CallEntry16" => ["long",  ["long", "long", "long", "long", "long"]],
111     "SHFreeUnusedLibraries" => ["void",  []],
112     "FileMenu_AppendFilesForPidl" => ["long",  ["long", "ptr", "long"]],
113     "FileMenu_AddFilesForPidl" => ["long",  ["long", "long", "long", "ptr", "long", "long", "ptr"]],
114     "SHOutOfMemoryMessageBox" => ["long",  ["long", "str", "long"]],
115     "SHWinHelp" => ["long",  ["long", "long", "long", "long"]],
116     "DllGetClassObject" => ["long",  ["ptr", "ptr", "ptr"]],
117     "DragQueryFileW" => ["long",  ["long", "long", "wstr", "long"]],
118     "DragQueryPoint" => ["long",  ["long", "ptr"]],
119     "DAD_SetDragImage" => ["long",  ["long", "ptr"]],
120     "DAD_ShowDragImage" => ["long",  ["long"]],
121     "FileMenu_DeleteItemByIndex" => ["long",  ["long", "long"]],
122     "FileMenu_DeleteItemByFirstID" => ["long",  ["long", "long"]],
123     "FileMenu_DeleteSeparator" => ["long",  ["long"]],
124     "FileMenu_EnableItemByCmd" => ["long",  ["long", "long", "long"]],
125     "FileMenu_GetItemExtent" => ["long",  ["long", "long"]],
126     "PathFindOnPath" => ["long",  ["ptr", "ptr"]],
127     "RLBuildListOfPaths" => ["long",  []],
128     "SHCLSIDFromString" => ["long",  ["ptr", "ptr"]],
129     "SHFind_InitMenuPopup" => ["ptr",  ["long", "long", "long", "long"]],
130     "SHLoadOLE" => ["long",  ["long"]],
131     "ILGetSize" => ["long",  ["ptr"]],
132     "ILGetNext" => ["ptr",  ["ptr"]],
133     "ILAppend" => ["ptr",  ["ptr", "ptr", "long"]],
134     "ILFree" => ["long",  ["ptr"]],
135     "ILGlobalFree" => ["void",  ["ptr"]],
136     "ILCreateFromPath" => ["ptr",  ["ptr"]],
137     "PathGetExtension" => ["ptr",  ["ptr", "long", "long"]],
138     "PathIsDirectory" => ["long",  ["ptr"]],
139     "SHRunControlPanel" => ["long",  ["long", "long"]],
140     "SHSimpleIDListFromPath" => ["ptr",  ["ptr"]],
141     "StrToOleStr" => ["long",  ["wstr", "ptr"]],
142     "Win32DeleteFile" => ["long",  ["str"]],
143     "SHCreateDirectory" => ["long",  ["ptr", "str"]],
144     "CallCPLEntry16" => ["long",  ["long", "ptr", "long", "long", "long", "long"]],
145     "SHAddFromPropSheetExtArray" => ["long",  ["long", "long", "long"]],
146     "SHCreatePropSheetExtArray" => ["long",  ["long", "str", "long"]],
147     "SHDestroyPropSheetExtArray" => ["long",  ["long"]],
148     "SHReplaceFromPropSheetExtArray" => ["long",  ["long", "long", "long", "long"]],
149     "PathCleanupSpec" => ["long",  ["ptr", "ptr"]],
150     "SHValidateUNC" => ["long",  ["long", "long", "long"]],
151     "SHCreateShellFolderViewEx" => ["long",  ["ptr", "ptr"]],
152     "SHGetSpecialFolderPath" => ["long",  ["long", "ptr", "long", "long"]],
153     "SHSetInstanceExplorer" => ["long",  ["ptr"]],
154     "RegisterShellHook" => ["long",  ["long", "long"]],
155     "ArrangeWindows" => ["long",  ["long", "long", "ptr", "long", "ptr"]],
156     "SHFree" => ["void",  ["ptr"]],
157     "SHAlloc" => ["ptr",  ["long"]],
158     "SHAbortInvokeCommand" => ["long",  []],
159     "SHInitRestricted" => ["long",  ["str", "str"]],
160     "SHGetDataFromIDListA" => ["long",  ["ptr", "ptr", "long", "ptr", "long"]],
161     "SHGetDataFromIDListW" => ["long",  ["ptr", "ptr", "long", "ptr", "long"]],
162     "PathParseIconLocation" => ["long",  ["ptr"]],
163     "PathRemoveExtension" => ["void",  ["ptr"]],
164     "PathRemoveArgs" => ["void",  ["ptr"]],
165     "SheChangeDirW" => ["long",  ["wstr"]],
166     "SheGetDirW" => ["long",  ["wstr", "wstr"]],
167     "ShellAboutA" => ["long",  ["long", "str", "str", "long"]],
168     "ShellAboutW" => ["long",  ["long", "wstr", "wstr", "long"]],
169     "ShellExecuteA" => ["long",  ["long", "str", "str", "str", "str", "long"]],
170     "ShellExecuteEx" => ["long",  ["ptr"]],
171     "ShellExecuteExA" => ["long",  ["ptr"]],
172     "ShellExecuteExW" => ["long",  ["ptr"]],
173     "ShellExecuteW" => ["long",  ["long", "wstr", "wstr", "wstr", "wstr", "long"]],
174     "Shell_NotifyIcon" => ["long",  ["long", "ptr"]],
175     "Shell_NotifyIconA" => ["long",  ["long", "ptr"]],
176     "Shell_NotifyIconW" => ["long",  ["long", "ptr"]],
177     "SHRegOpenKeyA" => ["long",  ["long", "str", "ptr"]],
178     "SHRegOpenKeyW" => ["long",  ["long", "wstr", "ptr"]],
179     "SHRegQueryValueExA" => ["long",  ["long", "str", "ptr", "ptr", "ptr", "ptr"]],
180     "SHRegQueryValueW" => ["long",  ["long", "wstr", "wstr", "ptr"]],
181     "SHRegQueryValueExW" => ["long",  ["long", "wstr", "ptr", "ptr", "ptr", "ptr"]],
182     "SHRegDeleteKeyW" => ["long",  ["long", "wstr"]],
183     "SHAllocShared" => ["long",  ["ptr", "long", "long"]],
184     "SHLockShared" => ["ptr",  ["long", "long"]],
185     "SHUnlockShared" => ["long",  ["ptr"]],
186     "SHFreeShared" => ["long",  ["long", "long"]],
187     "NTSHChangeNotifyRegister" => ["long",  ["long", "long", "long", "long", "long", "ptr"]],
188     "NTSHChangeNotifyDeregister" => ["long",  ["long"]],
189     "SHChangeNotification_Lock" => ["long",  ["long", "long", "undef", "ptr"]],
190     "SHChangeNotification_Unlock" => ["long",  ["long"]],
191     "PathIsSameRoot" => ["long",  ["ptr", "ptr"]],
192     "ReadCabinetState" => ["long",  ["long", "long"]],
193     "WriteCabinetState" => ["long",  ["long"]],
194     "PathProcessCommand" => ["long",  ["ptr", "ptr", "long", "long"]],
195     "FileIconInit" => ["long",  ["long"]],
196     "IsUserAdmin" => ["long",  []],
197     "CommandLineToArgvW" => ["ptr",  ["wstr", "ptr"]],
198     "Control_FillCache_RunDLL" => ["long",  ["long", "long", "long", "long"]],
199     "Control_RunDLL" => ["void",  ["long", "long", "str", "long"]],
200     "DllCanUnloadNow" => ["long",  []],
201     "DllGetVersion" => ["long",  ["ptr"]],
202     "DllInstall" => ["long",  ["long", "wstr"]],
203     "DoEnvironmentSubstA" => ["long",  ["str", "str"]],
204     "DoEnvironmentSubstW" => ["long",  ["wstr", "wstr"]],
205     "DuplicateIcon" => ["long",  ["long", "long"]],
206     "ExtractAssociatedIconA" => ["long",  ["long", "str", "ptr"]],
207     "ExtractAssociatedIconExW" => ["long",  ["long", "long", "long", "long"]],
208     "ExtractIconA" => ["long",  ["long", "str", "long"]],
209     "ExtractIconEx" => ["long",  ["ptr", "long", "ptr", "ptr", "long"]],
210     "ExtractIconExA" => ["long",  ["str", "long", "ptr", "ptr", "long"]],
211     "ExtractIconExW" => ["long",  ["wstr", "long", "ptr", "ptr", "long"]],
212     "ExtractIconW" => ["long",  ["long", "wstr", "long"]],
213     "FindExecutableA" => ["long",  ["str", "str", "str"]],
214     "FindExecutableW" => ["long",  ["wstr", "wstr", "wstr"]],
215     "FreeIconList" => ["void",  ["long"]],
216     "SHAddToRecentDocs" => ["long",  ["long", "ptr"]],
217     "SHAppBarMessage" => ["long",  ["long", "ptr"]],
218     "SHBrowseForFolder" => ["ptr",  ["ptr"]],
219     "SHBrowseForFolderA" => ["ptr",  ["ptr"]],
220     "SHChangeNotify" => ["void",  ["long", "long", "ptr", "ptr"]],
221     "SHFileOperation" => ["long",  ["ptr"]],
222     "SHFileOperationA" => ["long",  ["ptr"]],
223     "SHFileOperationW" => ["long",  ["ptr"]],
224     "SHGetDesktopFolder" => ["long",  ["ptr"]],
225     "SHGetFileInfo" => ["long",  ["ptr", "long", "ptr", "long", "long"]],
226     "SHGetFileInfoA" => ["long",  ["str", "long", "ptr", "long", "long"]],
227     "SHGetFileInfoW" => ["long",  ["wstr", "long", "ptr", "long", "long"]],
228     "SHGetFolderLocation" => ["long",  ["long", "long", "long", "long", "ptr"]],
229     "SHGetFolderPathA" => ["long",  ["long", "long", "long", "long", "str"]],
230     "SHGetFolderPathW" => ["long",  ["long", "long", "long", "long", "wstr"]],
231     "SHGetInstanceExplorer" => ["long",  ["ptr"]],
232     "SHGetMalloc" => ["long",  ["ptr"]],
233     "SHGetPathFromIDList" => ["long",  ["ptr", "ptr"]],
234     "SHGetPathFromIDListA" => ["long",  ["ptr", "str"]],
235     "SHGetPathFromIDListW" => ["long",  ["ptr", "wstr"]],
236     "SHGetSettings" => ["void",  ["ptr", "long"]],
237     "SHGetSpecialFolderLocation" => ["long",  ["long", "long", "ptr"]],
238     "SHGetSpecialFolderPathA" => ["long",  ["long", "str", "long", "long"]],
239     "SHHelpShortcuts_RunDLL" => ["long",  ["long", "long", "long", "long"]],
240     "SHLoadInProc" => ["long",  ["ptr"]]
241 };
242
243 &wine::declare("shell32",%$module_declarations);
244 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
245 1;