PATCH: winspool ordinal export

Robert Shearman rob at codeweavers.com
Wed Jan 4 11:18:59 CST 2006


Hi Marcus,

Thanks for submitting a patch for this. I also have an application that 
depends on one of the exports to have a specific ordinal (203 - 
GetDefaultPrinterW).

Marcus Meissner wrote:

>-100 stub @
>+100 stub EnumPrinterPropertySheets at 16
>  
>

This should be --noname.

>+# 101 ClusterSplOpen at 20
>+# 102 ClusterSplClose at 4
>+# 103 ClusterSplIsAlive at 4
>+201 stdcall GetDefaultPrinterA(ptr ptr)
>+# 202 _SetDefaultPrinterA at 4
>+203 stdcall GetDefaultPrinterW(ptr ptr)
>+# 204 _SetDefaultPrinterW at 4
>+# 205 _SplReadPrinter at 12
>+# 206 _AddPerMachineConnectionA at 16
>+# 207 _AddPerMachineConnectionW at 16
>+# 208 _DeletePerMachineConnectionA at 8
>+# 209 _DeletePerMachineConnectionW at 8
>+# 210 _EnumPerMachineConnectionsA at 20
>+# 211 _EnumPerMachineConnectionsW at 20
>+# 212 _LoadPrinterDriver at 4
>+# 213 _RefCntLoadDriver at 16
>+# 214 _RefCntUnloadDriver at 8
>+# 215 _ForceUnloadDriver at 4
>+# 216 _PublishPrinterA at 24
>+# 217 _PublishPrinterW at 24
>+# 218 _CallCommonPropertySheetUI at 16
>+# 219 _PrintUIQueueCreate at 16
>+# 220 _PrintUIPrinterPropPages at 16
>+# 221 _PrintUIDocumentDefaults at 16
>+# 222 _SendRecvBidiData at 16
>+# 223 _RouterFreeBidiResponseContainer at 4
>+# 224 _ExternalConnectToLd64In32Server at 4
>+# 226 _PrintUIWebPnpEntry at 4
>+# 227 _PrintUIWebPnpPostEntry at 16
>+# 228 _PrintUICreateInstance at 8
>+# 229 _PrintUIDocumentPropertiesWrap at 28
>+# 230 _PrintUIPrinterSetup at 24
>+# 231 _PrintUIServerPropPages at 16
>+# 232 _AddDriverCatalog at 16
>+
>  
>

We should add this ordinals, not just comment them out. Why? Because 
they are exported by ordinal only and so if an application (or more 
likely a Microsoft DLL) tries to use one of them it will end up with the 
wrong function, rather than just failing to import it and most likely 
will result in stack corruption. All of these should also be exported 
with --noname as they are ordinal-only exports.

> @ stub ADVANCEDSETUPDIALOG
> @ stdcall AbortPrinter(long)
> @ stdcall AddFormA(long long ptr)
>@@ -89,8 +124,6 @@
> @ stdcall FindFirstPrinterChangeNotification(long long long ptr)
> @ stdcall FindNextPrinterChangeNotification(long ptr ptr ptr)
> @ stdcall FreePrinterNotifyInfo(ptr)
>-@ stdcall GetDefaultPrinterA(ptr ptr)
>-@ stdcall GetDefaultPrinterW(ptr ptr)
> @ stdcall GetFormA(long str long ptr long ptr)
> @ stdcall GetFormW(long wstr long ptr long ptr)
> @ stdcall GetJobA(long long long ptr long ptr)
>


-- 
Rob Shearman




More information about the wine-devel mailing list