8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "BindImage" => ["long", ["str", "str", "str"]],
16 "BindImageEx" => ["long", ["long", "str", "str", "str", "ptr"]],
17 "CheckSumMappedFile" => ["ptr", ["ptr", "long", "ptr", "ptr"]],
18 "EnumerateLoadedModules" => ["long", ["long", "ptr", "ptr"]],
19 "FindDebugInfoFile" => ["long", ["str", "str", "str"]],
20 "FindExecutableImage" => ["long", ["str", "str", "str"]],
21 "GetImageConfigInformation" => ["long", ["ptr", "ptr"]],
22 "GetImageUnusedHeaderBytes" => ["long", ["ptr", "ptr"]],
23 "GetTimestampForLoadedLibrary" => ["long", ["long"]],
24 "ImageAddCertificate" => ["long", ["long", "ptr", "ptr"]],
25 "ImageDirectoryEntryToData" => ["ptr", ["ptr", "long", "long", "ptr"]],
26 "ImageEnumerateCertificates" => ["long", ["long", "long", "ptr", "ptr", "long"]],
27 "ImageGetCertificateData" => ["long", ["long", "long", "ptr", "ptr"]],
28 "ImageGetCertificateHeader" => ["long", ["long", "long", "ptr"]],
29 "ImageGetDigestStream" => ["long", ["long", "long", "ptr", "ptr"]],
30 "ImageLoad" => ["ptr", ["str", "str"]],
31 "ImageNtHeader" => ["ptr", ["ptr"]],
32 "ImageRemoveCertificate" => ["long", ["long", "long"]],
33 "ImageRvaToSection" => ["ptr", ["ptr", "ptr", "long"]],
34 "ImageRvaToVa" => ["ptr", ["ptr", "ptr", "long", "ptr"]],
35 "ImageUnload" => ["long", ["ptr"]],
36 "ImagehlpApiVersion" => ["ptr", ["undef"]],
37 "ImagehlpApiVersionEx" => ["ptr", ["ptr"]],
38 "MakeSureDirectoryPathExists" => ["long", ["str"]],
39 "MapAndLoad" => ["long", ["str", "str", "ptr", "long", "long"]],
40 "MapDebugInformation" => ["ptr", ["long", "str", "str", "long"]],
41 "MapFileAndCheckSumA" => ["long", ["str", "ptr", "ptr"]],
42 "MapFileAndCheckSumW" => ["long", ["wstr", "ptr", "ptr"]],
43 "ReBaseImage" => ["long", ["str", "str", "long", "long", "long", "long", "ptr", "ptr", "ptr", "ptr", "long"]],
44 "RemovePrivateCvSymbolic" => ["long", ["ptr", "ptr", "ptr"]],
45 "RemoveRelocations" => ["void", ["ptr"]],
46 "SearchTreeForFile" => ["long", ["str", "str", "str"]],
47 "SetImageConfigInformation" => ["long", ["ptr", "ptr"]],
48 "SplitSymbols" => ["long", ["str", "str", "str", "long"]],
49 "StackWalk" => ["long", ["long", "long", "long", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
50 "SymCleanup" => ["long", ["long"]],
51 "SymEnumerateModules" => ["long", ["long", "ptr", "ptr"]],
52 "SymEnumerateSymbols" => ["long", ["long", "long", "ptr", "ptr"]],
53 "SymFunctionTableAccess" => ["ptr", ["long", "long"]],
54 "SymGetModuleBase" => ["long", ["long", "long"]],
55 "SymGetModuleInfo" => ["long", ["long", "long", "ptr"]],
56 "SymGetOptions" => ["long", ["undef"]],
57 "SymGetSearchPath" => ["long", ["long", "str", "long"]],
58 "SymGetSymFromAddr" => ["long", ["long", "long", "ptr", "ptr"]],
59 "SymGetSymFromName" => ["long", ["long", "str", "ptr"]],
60 "SymGetSymNext" => ["long", ["long", "ptr"]],
61 "SymGetSymPrev" => ["long", ["long", "ptr"]],
62 "SymInitialize" => ["long", ["long", "str", "long"]],
63 "SymLoadModule" => ["long", ["long", "long", "str", "str", "long", "long"]],
64 "SymRegisterCallback" => ["long", ["long", "ptr", "ptr"]],
65 "SymSetOptions" => ["long", ["long"]],
66 "SymSetSearchPath" => ["long", ["long", "str"]],
67 "SymUnDName" => ["long", ["ptr", "str", "long"]],
68 "SymUnloadModule" => ["long", ["long", "long"]],
69 "TouchFileTimes" => ["long", ["long", "ptr"]],
70 "UnDecorateSymbolName" => ["long", ["str", "str", "long", "long"]],
71 "UnMapAndLoad" => ["long", ["ptr"]],
72 "UnmapDebugInformation" => ["long", ["ptr"]],
73 "UpdateDebugInfoFile" => ["long", ["str", "str", "str", "ptr"]],
74 "UpdateDebugInfoFileEx" => ["long", ["str", "str", "str", "ptr", "long"]]
77 &wine::declare("imagehlp",%$module_declarations);
78 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));